// Copyright 2010-2012 The W32 Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package w32 import ( "syscall" "unsafe" ) var ( modopengl32 = syscall.NewLazyDLL("opengl32.dll") procwglCreateContext = modopengl32.NewProc("wglCreateContext") procwglCreateLayerContext = modopengl32.NewProc("wglCreateLayerContext") procwglDeleteContext = modopengl32.NewProc("wglDeleteContext") procwglGetProcAddress = modopengl32.NewProc("wglGetProcAddress") procwglMakeCurrent = modopengl32.NewProc("wglMakeCurrent") procwglShareLists = modopengl32.NewProc("wglShareLists") ) func WglCreateContext(hdc HDC) HGLRC { ret, _, _ := procwglCreateContext.Call( uintptr(hdc), ) return HGLRC(ret) } func WglCreateLayerContext(hdc HDC, iLayerPlane int) HGLRC { ret, _, _ := procwglCreateLayerContext.Call( uintptr(hdc), uintptr(iLayerPlane), ) return HGLRC(ret) } func WglDeleteContext(hglrc HGLRC) bool { ret, _, _ := procwglDeleteContext.Call( uintptr(hglrc), ) return ret == TRUE } func WglGetProcAddress(szProc string) uintptr { ret, _, _ := procwglGetProcAddress.Call( uintptr(unsafe.Pointer(syscall.StringBytePtr(szProc))), ) return ret } func WglMakeCurrent(hdc HDC, hglrc HGLRC) bool { ret, _, _ := procwglMakeCurrent.Call( uintptr(hdc), uintptr(hglrc), ) return ret == TRUE } func WglShareLists(hglrc1, hglrc2 HGLRC) bool { ret, _, _ := procwglShareLists.Call( uintptr(hglrc1), uintptr(hglrc2), ) return ret == TRUE }