Visage

GPU-accelerated, cross-platform C++ library for native UI and 2D graphics. UI framework meets creative coding.

#include <visage/app.h>

int main() {
  visage::ApplicationWindow app;

  app.onDraw() = [&app](visage::Canvas& canvas) {
    canvas.setColor(0xffff00ff);
    canvas.fill(0, 0, app.width(), app.height());
  };

  app.show(800, 600);
  app.runEventLoop();
  return 0;
}

Features

⚡ GPU Accelerated

Hardware-accelerated rendering with automatic shape batching for optimal performance.

🎨 Blend Modes & Shaders

Custom blend modes, real-time effects like blur and bloom, and write-once shaders that transpile to D3D, Metal, and OpenGL.

🖥️ Cross-Platform

Windows (D3D11), macOS (Metal), Linux (Vulkan), and Web (WebGL) from a single codebase.

🔄 Fluid Motion

Frames sync to monitor refresh rate. Partial rendering redraws only dirty regions.

✏️ Text & Input

Unicode text entry, multi-line editing, and cross-platform keyboard/mouse normalization.

📐 Pixel Perfect

Device pixel access ensures precise rendering without unwanted blurring.

Try the Demos

Supported Platforms

Windows · Direct3D 11 macOS · Metal Linux · Vulkan Web · WebGL