diff options
| author | David Robillard <d@drobilla.net> | 2014-08-28 22:13:17 +0000 | 
|---|---|---|
| committer | David Robillard <d@drobilla.net> | 2014-08-28 22:13:17 +0000 | 
| commit | dd9b6fe61373e0f1ff0015a2d6b01360897fa8fc (patch) | |
| tree | ca1e01e0e33ebda96c904b8753742f8547e2f14a /pugl | |
| parent | d0c878fe0e496083a1e892795c23a1ac939714a9 (diff) | |
Fix compilation on Windows.
Diffstat (limited to 'pugl')
| -rw-r--r-- | pugl/pugl_win.cpp | 32 | 
1 files changed, 24 insertions, 8 deletions
| diff --git a/pugl/pugl_win.cpp b/pugl/pugl_win.cpp index 9dfa70c..16c6b0b 100644 --- a/pugl/pugl_win.cpp +++ b/pugl/pugl_win.cpp @@ -71,6 +71,27 @@ puglInitInternals()  	return (PuglInternals*)calloc(1, sizeof(PuglInternals));  } +void +puglEnterContext(PuglView* view) +{ +#ifdef PUGL_HAVE_GL +	if (view->ctx_type == PUGL_GL) { +		wglMakeCurrent(view->impl->hdc, view->impl->hglrc); +	} +#endif +} + +void +puglLeaveContext(PuglView* view, bool flush) +{ +#ifdef PUGL_HAVE_GL +	if (view->ctx_type == PUGL_GL && flush) { +		glFlush(); +		SwapBuffers(view->impl->hdc); +	} +#endif +} +  int  puglCreateWindow(PuglView* view, const char* title)  { @@ -178,12 +199,10 @@ puglDestroy(PuglView* view)  static void  puglReshape(PuglView* view, int width, int height)  { -	wglMakeCurrent(view->impl->hdc, view->impl->hglrc); +	puglEnterContext(view);  	if (view->reshapeFunc) {  		view->reshapeFunc(view, width, height); -	} else { -		puglDefaultReshape(view, width, height);  	}  	view->width  = width; @@ -193,16 +212,13 @@ puglReshape(PuglView* view, int width, int height)  static void  puglDisplay(PuglView* view)  { -	wglMakeCurrent(view->impl->hdc, view->impl->hglrc); -	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); -	glLoadIdentity(); +	puglEnterContext(view);  	if (view->displayFunc) {  		view->displayFunc(view);  	} -	glFlush(); -	SwapBuffers(view->impl->hdc); +	puglLeaveContext(view, true);  	view->redisplay = false;  } | 
