From 701fc4d7782c5abb031438ef4d74ccdecd25ece8 Mon Sep 17 00:00:00 2001 From: Jay Shen Date: Fri, 26 Dec 2025 11:10:30 +0800 Subject: [PATCH] example: request stencil + MSAA buffers for GL contexts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Request a stencil buffer and multisample buffers for the SDL GL contexts in Example and MultiCanvas so the direct back‑buffer path has the needed stencil/multisample support. --- src/Example.h | 3 +++ src/MultiCanvas.cpp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/Example.h b/src/Example.h index a91ce86..45ff815 100644 --- a/src/Example.h +++ b/src/Example.h @@ -370,6 +370,9 @@ struct GlWindow : Window SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3); + SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1); + SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, 4); #endif window = SDL_CreateWindow("ThorVG Example (OpenGL/ES)", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, width, height, SDL_WINDOW_OPENGL | SDL_WINDOW_HIDDEN | SDL_WINDOW_RESIZABLE); context = SDL_GL_CreateContext(window); diff --git a/src/MultiCanvas.cpp b/src/MultiCanvas.cpp index 8488082..1727c6e 100644 --- a/src/MultiCanvas.cpp +++ b/src/MultiCanvas.cpp @@ -183,6 +183,9 @@ void runGl() SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3); + SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1); + SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, 4); #endif auto window = SDL_CreateWindow("ThorVG Example (OpenGL)", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WIDTH, HEIGHT, SDL_WINDOW_OPENGL | SDL_WINDOW_HIDDEN);