X-Git-Url: http://git.tdb.fi/?p=libs%2Fgui.git;a=blobdiff_plain;f=source%2Fgraphics%2Fwgl%2Fglcontext.cpp;h=68088970ac13cab32cd856a2a23980d838ad3bf7;hp=ebca3f1912ef9ee67e1570c41ae71e98c5cb281f;hb=0d205a19dc087768da1e803d8dfde27f12cb9d99;hpb=1d0d0b91c1df8b563d1f8817e042ebdc06762236 diff --git a/source/graphics/wgl/glcontext.cpp b/source/graphics/wgl/glcontext.cpp index ebca3f1..6808897 100644 --- a/source/graphics/wgl/glcontext.cpp +++ b/source/graphics/wgl/glcontext.cpp @@ -7,6 +7,16 @@ using namespace std; +namespace { + +template +T get_proc(const char *name) +{ + return reinterpret_cast(reinterpret_cast(wglGetProcAddress(name))); +} + +} + namespace Msp { namespace Graphics { @@ -48,7 +58,7 @@ void GLContext::platform_init(const GLOptions &opts) ContextHandle fake_context = wglCreateContext(dc); wglMakeCurrent(dc, fake_context); - PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribs = reinterpret_cast(wglGetProcAddress("wglCreateContextAttribsARB")); + PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribs = get_proc("wglCreateContextAttribsARB"); if(!wglCreateContextAttribs) throw unsupported_gl_mode(opts); @@ -100,7 +110,7 @@ GLContext::~GLContext() void GLContext::set_swap_interval(unsigned i) { - PFNWGLSWAPINTERVALEXTPROC wglSwapInterval = reinterpret_cast(wglGetProcAddress("wglSwapIntervalEXT")); + PFNWGLSWAPINTERVALEXTPROC wglSwapInterval = get_proc("wglSwapIntervalEXT"); if(!wglSwapInterval) throw runtime_error("wglSwapIntervalEXT not found"); wglSwapInterval(i);