Back to Clay

README

examples/GLES3-GLFW-video-demo/README.md

0.141.8 KB
Original Source

GLES3 Renderer Video Demo (Using GLFW)

This directory contains a standard Video-Demo example using work-in-progress GLES3 renderer. While it still needs refinement, the renderer is already functional and demonstrates the core rendering pipeline.

Current features

  • Supports all draw commands except custom.
  • In the best-case scenario (no clipping):
  • All quad-based commands (Rectangle, Image, Border) are rendered in a single draw call.
  • All glyphs belonging to the same font are rendered in one instanced draw call.
  • When clipping (scissoring) is used:
  • The renderer flushes draw calls before and after each scissor region.
  • Supports up to 4 fonts and 4 image textures.
  • Image textures may also be used as texture atlases.
  • Custom UserData provides per-image UV coordinates, allowing multiple images to share a single OpenGL texture.
  • Uses stb_image.h and stb_truetype.h as single-header dependencies for asset loading.
  • The loading layer is modular and can be replaced with a different asset pipeline if needed.

Currently builds on:

  • Emscripten
  • clang++ / macOS
  • CMake support is not available yet.

Windowing and platform support

This example uses GLFW, and the renderer is framework agnostic

How to build it with CMake?

Cmake build is the easiest way to build it:

mkdir build
cmake -S . -B ./build

How to build and run on Emscripten:

For Emscripten the build is a bit custom, but it depends on CMakeBuild to install header-stb dependency. So you still need to build it with CMake first.

And then you have to source the Emscripten SDK:

source /path/to/emscripten/emsdk/emsdk_env.sh

Then build it with hand-crafted Makefile.emscripten:

make -f Makefile.emscripten test

and then navigate to http://localhost:8080