# This .cfg file is used to generate the interface to the wgl routines
# used internally by the WindowsGLContext implementation.
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl/Windows

Package jogamp.opengl.windows.wgl
JavaClass WGL
Style AllStatic
Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg

GLHeader wingdi.h
GLHeader GL/wglext.h

ForceProcAddressGen __ALL__
LocalProcAddressCallingConvention __ALL__ APIENTRY

AllowNonGLExtensions true
EmitProcAddressTable true
ProcAddressTableClassName WGLProcAddressTable
GetProcAddressTableExpr wglProcAddressTable

Import com.jogamp.gluegen.runtime.opengl.GLProcAddressResolver

CustomJavaCode WGL private static WGLProcAddressTable wglProcAddressTable = new WGLProcAddressTable(new GLProcAddressResolver());
CustomJavaCode WGL public  static WGLProcAddressTable getWGLProcAddressTable() { return wglProcAddressTable; }

# Implement the first argument to wglGetProcAddress as String instead
# of byte[]
ArgumentIsString wglGetProcAddress 0

CustomCCode #define WIN32_LEAN_AND_MEAN
CustomCCode #include <windows.h>
CustomCCode #undef WIN32_LEAN_AND_MEAN

CustomCCode #include <wingdi.h>
CustomCCode #include <stddef.h>

Include ../intptr.cfg

DropUniqVendorExtensions AMD
# We need GL_APPLE_float_pixels for our pbuffer implementation
# DropUniqVendorExtensions APPLE
DropUniqVendorExtensions ATI
DropUniqVendorExtensions HP
DropUniqVendorExtensions IBM
DropUniqVendorExtensions MESA
DropUniqVendorExtensions MESAX
DropUniqVendorExtensions NV
DropUniqVendorExtensions SGI
DropUniqVendorExtensions SGIS
DropUniqVendorExtensions SGIX
DropUniqVendorExtensions SUN
DropUniqVendorExtensions WIN

CustomJavaCode WGL  protected static long wglGetProcAddress(long wglGetProcAddressHandle, java.lang.String procname)
CustomJavaCode WGL  {
CustomJavaCode WGL    if (wglGetProcAddressHandle == 0) {
CustomJavaCode WGL      throw new GLException("Passed null pointer for method \"wglGetProcAddress\"");
CustomJavaCode WGL    }
CustomJavaCode WGL    return dispatch_wglGetProcAddress1(procname, wglGetProcAddressHandle);
CustomJavaCode WGL  }