aboutsummaryrefslogtreecommitdiffstats
path: root/pugl/pugl.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2016-09-01 22:23:47 -0400
committerDavid Robillard <d@drobilla.net>2016-09-01 22:23:47 -0400
commitddfcee0fd3e6daf7174497c6a7183d83651a5c88 (patch)
treede8b1ac8a9636dc1166690ef60e148260e136340 /pugl/pugl.h
parenta25ecaf03e75e61314b7271068a030b7d33eaf09 (diff)
downloadpugl-ddfcee0fd3e6daf7174497c6a7183d83651a5c88.tar.gz
pugl-ddfcee0fd3e6daf7174497c6a7183d83651a5c88.tar.bz2
pugl-ddfcee0fd3e6daf7174497c6a7183d83651a5c88.zip
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.
Diffstat (limited to 'pugl/pugl.h')
-rw-r--r--pugl/pugl.h21
1 files changed, 20 insertions, 1 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().
@@ -310,6 +310,25 @@ 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.
@{