From ddfcee0fd3e6daf7174497c6a7183d83651a5c88 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 1 Sep 2016 22:23:47 -0400 Subject: Expose puglEnterContext() and puglLeaveContext() This allows code in the main thread to set up the GL context outside the scope of a draw callback, which is useful for porting existing code that assumes the GL context can be entered anywhere. --- pugl/pugl.h | 21 ++++++++++++++++++++- pugl/pugl_internal.h | 6 ------ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/pugl/pugl.h b/pugl/pugl.h index 0c6dd79..c376d3f 100644 --- a/pugl/pugl.h +++ b/pugl/pugl.h @@ -141,7 +141,7 @@ typedef void (*PuglSpecialFunc)(PuglView* view, bool press, PuglKey key); */ /** - Create a Pugl context. + Create a Pugl view. To create a window, call the various puglInit* functions as necessary, then call puglCreateWindow(). @@ -309,6 +309,25 @@ puglGetModifiers(PuglView* view); PUGL_API void puglIgnoreKeyRepeat(PuglView* view, bool ignore); +/** + Enter the drawing context. + + This must be called before any code that accesses the drawing context, + including any GL functions. This is only necessary for code that does so + outside the usual draw callback or handling of an expose event. +*/ +PUGL_API void +puglEnterContext(PuglView* view); + +/** + Leave the drawing context. + + This must be called after puglEnterContext and applies the results of the + drawing code (for example, by swapping buffers). +*/ +PUGL_API void +puglLeaveContext(PuglView* view, bool flush); + /** @name Event Callbacks Functions to set event callbacks for handling user input. diff --git a/pugl/pugl_internal.h b/pugl/pugl_internal.h index 9566c6f..d9dfdfa 100644 --- a/pugl/pugl_internal.h +++ b/pugl/pugl_internal.h @@ -253,12 +253,6 @@ puglSetSpecialFunc(PuglView* view, PuglSpecialFunc specialFunc) view->specialFunc = specialFunc; } -void -puglEnterContext(PuglView* view); - -void -puglLeaveContext(PuglView* view, bool flush); - /** Return the code point for buf, or the replacement character on error. */ static uint32_t puglDecodeUTF8(const uint8_t* buf) -- cgit v1.2.3