sequences libc opengl.gl opengl.gl.extensions opengl.gl.windows ;
IN: windows.opengl32
-! PIXELFORMATDESCRIPTOR flags
-CONSTANT: PFD_DOUBLEBUFFER HEX: 00000001
-CONSTANT: PFD_STEREO HEX: 00000002
-CONSTANT: PFD_DRAW_TO_WINDOW HEX: 00000004
-CONSTANT: PFD_DRAW_TO_BITMAP HEX: 00000008
-CONSTANT: PFD_SUPPORT_GDI HEX: 00000010
-CONSTANT: PFD_SUPPORT_OPENGL HEX: 00000020
-CONSTANT: PFD_GENERIC_FORMAT HEX: 00000040
-CONSTANT: PFD_NEED_PALETTE HEX: 00000080
-CONSTANT: PFD_NEED_SYSTEM_PALETTE HEX: 00000100
-CONSTANT: PFD_SWAP_EXCHANGE HEX: 00000200
-CONSTANT: PFD_SWAP_COPY HEX: 00000400
-CONSTANT: PFD_SWAP_LAYER_BUFFERS HEX: 00000800
-CONSTANT: PFD_GENERIC_ACCELERATED HEX: 00001000
-CONSTANT: PFD_SUPPORT_DIRECTDRAW HEX: 00002000
-
-! PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only
-CONSTANT: PFD_DEPTH_DONTCARE HEX: 20000000
-CONSTANT: PFD_DOUBLEBUFFER_DONTCARE HEX: 40000000
-CONSTANT: PFD_STEREO_DONTCARE HEX: 80000000
-
-! pixel types
-CONSTANT: PFD_TYPE_RGBA 0
-CONSTANT: PFD_TYPE_COLORINDEX 1
-
-! layer types
-CONSTANT: PFD_MAIN_PLANE 0
-CONSTANT: PFD_OVERLAY_PLANE 1
-CONSTANT: PFD_UNDERLAY_PLANE -1
-
CONSTANT: LPD_TYPE_RGBA 0
CONSTANT: LPD_TYPE_COLORINDEX 1
! wglSwapLayerBuffers flags
-CONSTANT: WGL_SWAP_MAIN_PLANE HEX: 00000001
-CONSTANT: WGL_SWAP_OVERLAY1 HEX: 00000002
-CONSTANT: WGL_SWAP_OVERLAY2 HEX: 00000004
-CONSTANT: WGL_SWAP_OVERLAY3 HEX: 00000008
-CONSTANT: WGL_SWAP_OVERLAY4 HEX: 00000010
-CONSTANT: WGL_SWAP_OVERLAY5 HEX: 00000020
-CONSTANT: WGL_SWAP_OVERLAY6 HEX: 00000040
-CONSTANT: WGL_SWAP_OVERLAY7 HEX: 00000080
-CONSTANT: WGL_SWAP_OVERLAY8 HEX: 00000100
-CONSTANT: WGL_SWAP_OVERLAY9 HEX: 00000200
-CONSTANT: WGL_SWAP_OVERLAY10 HEX: 00000400
-CONSTANT: WGL_SWAP_OVERLAY11 HEX: 00000800
-CONSTANT: WGL_SWAP_OVERLAY12 HEX: 00001000
-CONSTANT: WGL_SWAP_OVERLAY13 HEX: 00002000
-CONSTANT: WGL_SWAP_OVERLAY14 HEX: 00004000
-CONSTANT: WGL_SWAP_OVERLAY15 HEX: 00008000
-CONSTANT: WGL_SWAP_UNDERLAY1 HEX: 00010000
-CONSTANT: WGL_SWAP_UNDERLAY2 HEX: 00020000
-CONSTANT: WGL_SWAP_UNDERLAY3 HEX: 00040000
-CONSTANT: WGL_SWAP_UNDERLAY4 HEX: 00080000
-CONSTANT: WGL_SWAP_UNDERLAY5 HEX: 00100000
-CONSTANT: WGL_SWAP_UNDERLAY6 HEX: 00200000
-CONSTANT: WGL_SWAP_UNDERLAY7 HEX: 00400000
-CONSTANT: WGL_SWAP_UNDERLAY8 HEX: 00800000
-CONSTANT: WGL_SWAP_UNDERLAY9 HEX: 01000000
-CONSTANT: WGL_SWAP_UNDERLAY10 HEX: 02000000
-CONSTANT: WGL_SWAP_UNDERLAY11 HEX: 04000000
-CONSTANT: WGL_SWAP_UNDERLAY12 HEX: 08000000
-CONSTANT: WGL_SWAP_UNDERLAY13 HEX: 10000000
-CONSTANT: WGL_SWAP_UNDERLAY14 HEX: 20000000
-CONSTANT: WGL_SWAP_UNDERLAY15 HEX: 40000000
+CONSTANT: WGL_SWAP_MAIN_PLANE 0x00000001
+CONSTANT: WGL_SWAP_OVERLAY1 0x00000002
+CONSTANT: WGL_SWAP_OVERLAY2 0x00000004
+CONSTANT: WGL_SWAP_OVERLAY3 0x00000008
+CONSTANT: WGL_SWAP_OVERLAY4 0x00000010
+CONSTANT: WGL_SWAP_OVERLAY5 0x00000020
+CONSTANT: WGL_SWAP_OVERLAY6 0x00000040
+CONSTANT: WGL_SWAP_OVERLAY7 0x00000080
+CONSTANT: WGL_SWAP_OVERLAY8 0x00000100
+CONSTANT: WGL_SWAP_OVERLAY9 0x00000200
+CONSTANT: WGL_SWAP_OVERLAY10 0x00000400
+CONSTANT: WGL_SWAP_OVERLAY11 0x00000800
+CONSTANT: WGL_SWAP_OVERLAY12 0x00001000
+CONSTANT: WGL_SWAP_OVERLAY13 0x00002000
+CONSTANT: WGL_SWAP_OVERLAY14 0x00004000
+CONSTANT: WGL_SWAP_OVERLAY15 0x00008000
+CONSTANT: WGL_SWAP_UNDERLAY1 0x00010000
+CONSTANT: WGL_SWAP_UNDERLAY2 0x00020000
+CONSTANT: WGL_SWAP_UNDERLAY3 0x00040000
+CONSTANT: WGL_SWAP_UNDERLAY4 0x00080000
+CONSTANT: WGL_SWAP_UNDERLAY5 0x00100000
+CONSTANT: WGL_SWAP_UNDERLAY6 0x00200000
+CONSTANT: WGL_SWAP_UNDERLAY7 0x00400000
+CONSTANT: WGL_SWAP_UNDERLAY8 0x00800000
+CONSTANT: WGL_SWAP_UNDERLAY9 0x01000000
+CONSTANT: WGL_SWAP_UNDERLAY10 0x02000000
+CONSTANT: WGL_SWAP_UNDERLAY11 0x04000000
+CONSTANT: WGL_SWAP_UNDERLAY12 0x08000000
+CONSTANT: WGL_SWAP_UNDERLAY13 0x10000000
+CONSTANT: WGL_SWAP_UNDERLAY14 0x20000000
+CONSTANT: WGL_SWAP_UNDERLAY15 0x40000000
LIBRARY: gl
! FUNCTION: int SaveDC( HDC hDC ) ;
! FUNCTION: HGDIOBJ SelectObject ( HDC hDC, HGDIOBJ hgdiobj ) ;
-FUNCTION: HGLRC wglCreateContext ( HDC hDC ) ;
-FUNCTION: BOOL wglDeleteContext ( HGLRC hRC ) ;
-FUNCTION: BOOL wglMakeCurrent ( HDC hDC, HGLRC hglrc ) ;
+FUNCTION: HGLRC wglCreateContext ( HDC hDC )
+FUNCTION: BOOL wglDeleteContext ( HGLRC hRC )
+FUNCTION: BOOL wglMakeCurrent ( HDC hDC, HGLRC hglrc )
! WGL_ARB_extensions_string extension
-GL-FUNCTION: char* wglGetExtensionsStringARB { } ( HDC hDC ) ;
+GL-FUNCTION: c-string wglGetExtensionsStringARB { } ( HDC hDC )
! WGL_ARB_pixel_format extension
-CONSTANT: WGL_NUMBER_PIXEL_FORMATS_ARB HEX: 2000
-CONSTANT: WGL_DRAW_TO_WINDOW_ARB HEX: 2001
-CONSTANT: WGL_DRAW_TO_BITMAP_ARB HEX: 2002
-CONSTANT: WGL_ACCELERATION_ARB HEX: 2003
-CONSTANT: WGL_NEED_PALETTE_ARB HEX: 2004
-CONSTANT: WGL_NEED_SYSTEM_PALETTE_ARB HEX: 2005
-CONSTANT: WGL_SWAP_LAYER_BUFFERS_ARB HEX: 2006
-CONSTANT: WGL_SWAP_METHOD_ARB HEX: 2007
-CONSTANT: WGL_NUMBER_OVERLAYS_ARB HEX: 2008
-CONSTANT: WGL_NUMBER_UNDERLAYS_ARB HEX: 2009
-CONSTANT: WGL_TRANSPARENT_ARB HEX: 200A
-CONSTANT: WGL_TRANSPARENT_RED_VALUE_ARB HEX: 2037
-CONSTANT: WGL_TRANSPARENT_GREEN_VALUE_ARB HEX: 2038
-CONSTANT: WGL_TRANSPARENT_BLUE_VALUE_ARB HEX: 2039
-CONSTANT: WGL_TRANSPARENT_ALPHA_VALUE_ARB HEX: 203A
-CONSTANT: WGL_TRANSPARENT_INDEX_VALUE_ARB HEX: 203B
-CONSTANT: WGL_SHARE_DEPTH_ARB HEX: 200C
-CONSTANT: WGL_SHARE_STENCIL_ARB HEX: 200D
-CONSTANT: WGL_SHARE_ACCUM_ARB HEX: 200E
-CONSTANT: WGL_SUPPORT_GDI_ARB HEX: 200F
-CONSTANT: WGL_SUPPORT_OPENGL_ARB HEX: 2010
-CONSTANT: WGL_DOUBLE_BUFFER_ARB HEX: 2011
-CONSTANT: WGL_STEREO_ARB HEX: 2012
-CONSTANT: WGL_PIXEL_TYPE_ARB HEX: 2013
-CONSTANT: WGL_COLOR_BITS_ARB HEX: 2014
-CONSTANT: WGL_RED_BITS_ARB HEX: 2015
-CONSTANT: WGL_RED_SHIFT_ARB HEX: 2016
-CONSTANT: WGL_GREEN_BITS_ARB HEX: 2017
-CONSTANT: WGL_GREEN_SHIFT_ARB HEX: 2018
-CONSTANT: WGL_BLUE_BITS_ARB HEX: 2019
-CONSTANT: WGL_BLUE_SHIFT_ARB HEX: 201A
-CONSTANT: WGL_ALPHA_BITS_ARB HEX: 201B
-CONSTANT: WGL_ALPHA_SHIFT_ARB HEX: 201C
-CONSTANT: WGL_ACCUM_BITS_ARB HEX: 201D
-CONSTANT: WGL_ACCUM_RED_BITS_ARB HEX: 201E
-CONSTANT: WGL_ACCUM_GREEN_BITS_ARB HEX: 201F
-CONSTANT: WGL_ACCUM_BLUE_BITS_ARB HEX: 2020
-CONSTANT: WGL_ACCUM_ALPHA_BITS_ARB HEX: 2021
-CONSTANT: WGL_DEPTH_BITS_ARB HEX: 2022
-CONSTANT: WGL_STENCIL_BITS_ARB HEX: 2023
-CONSTANT: WGL_AUX_BUFFERS_ARB HEX: 2024
-
-CONSTANT: WGL_NO_ACCELERATION_ARB HEX: 2025
-CONSTANT: WGL_GENERIC_ACCELERATION_ARB HEX: 2026
-CONSTANT: WGL_FULL_ACCELERATION_ARB HEX: 2027
-
-CONSTANT: WGL_SWAP_EXCHANGE_ARB HEX: 2028
-CONSTANT: WGL_SWAP_COPY_ARB HEX: 2029
-CONSTANT: WGL_SWAP_UNDEFINED_ARB HEX: 202A
-
-CONSTANT: WGL_TYPE_RGBA_ARB HEX: 202B
-CONSTANT: WGL_TYPE_COLORINDEX_ARB HEX: 202C
+CONSTANT: WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
+CONSTANT: WGL_DRAW_TO_WINDOW_ARB 0x2001
+CONSTANT: WGL_DRAW_TO_BITMAP_ARB 0x2002
+CONSTANT: WGL_ACCELERATION_ARB 0x2003
+CONSTANT: WGL_NEED_PALETTE_ARB 0x2004
+CONSTANT: WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
+CONSTANT: WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
+CONSTANT: WGL_SWAP_METHOD_ARB 0x2007
+CONSTANT: WGL_NUMBER_OVERLAYS_ARB 0x2008
+CONSTANT: WGL_NUMBER_UNDERLAYS_ARB 0x2009
+CONSTANT: WGL_TRANSPARENT_ARB 0x200A
+CONSTANT: WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
+CONSTANT: WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
+CONSTANT: WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
+CONSTANT: WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
+CONSTANT: WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
+CONSTANT: WGL_SHARE_DEPTH_ARB 0x200C
+CONSTANT: WGL_SHARE_STENCIL_ARB 0x200D
+CONSTANT: WGL_SHARE_ACCUM_ARB 0x200E
+CONSTANT: WGL_SUPPORT_GDI_ARB 0x200F
+CONSTANT: WGL_SUPPORT_OPENGL_ARB 0x2010
+CONSTANT: WGL_DOUBLE_BUFFER_ARB 0x2011
+CONSTANT: WGL_STEREO_ARB 0x2012
+CONSTANT: WGL_PIXEL_TYPE_ARB 0x2013
+CONSTANT: WGL_COLOR_BITS_ARB 0x2014
+CONSTANT: WGL_RED_BITS_ARB 0x2015
+CONSTANT: WGL_RED_SHIFT_ARB 0x2016
+CONSTANT: WGL_GREEN_BITS_ARB 0x2017
+CONSTANT: WGL_GREEN_SHIFT_ARB 0x2018
+CONSTANT: WGL_BLUE_BITS_ARB 0x2019
+CONSTANT: WGL_BLUE_SHIFT_ARB 0x201A
+CONSTANT: WGL_ALPHA_BITS_ARB 0x201B
+CONSTANT: WGL_ALPHA_SHIFT_ARB 0x201C
+CONSTANT: WGL_ACCUM_BITS_ARB 0x201D
+CONSTANT: WGL_ACCUM_RED_BITS_ARB 0x201E
+CONSTANT: WGL_ACCUM_GREEN_BITS_ARB 0x201F
+CONSTANT: WGL_ACCUM_BLUE_BITS_ARB 0x2020
+CONSTANT: WGL_ACCUM_ALPHA_BITS_ARB 0x2021
+CONSTANT: WGL_DEPTH_BITS_ARB 0x2022
+CONSTANT: WGL_STENCIL_BITS_ARB 0x2023
+CONSTANT: WGL_AUX_BUFFERS_ARB 0x2024
+
+CONSTANT: WGL_NO_ACCELERATION_ARB 0x2025
+CONSTANT: WGL_GENERIC_ACCELERATION_ARB 0x2026
+CONSTANT: WGL_FULL_ACCELERATION_ARB 0x2027
+
+CONSTANT: WGL_SWAP_EXCHANGE_ARB 0x2028
+CONSTANT: WGL_SWAP_COPY_ARB 0x2029
+CONSTANT: WGL_SWAP_UNDEFINED_ARB 0x202A
+
+CONSTANT: WGL_TYPE_RGBA_ARB 0x202B
+CONSTANT: WGL_TYPE_COLORINDEX_ARB 0x202C
GL-FUNCTION: BOOL wglGetPixelFormatAttribivARB { } (
HDC hdc,
UINT nAttributes,
int* piAttributes,
int* piValues
- ) ;
+ )
GL-FUNCTION: BOOL wglGetPixelFormatAttribfvARB { } (
HDC hdc,
UINT nAttributes,
int* piAttributes,
FLOAT* pfValues
- ) ;
+ )
GL-FUNCTION: BOOL wglChoosePixelFormatARB { } (
HDC hdc,
UINT nMaxFormats,
int* piFormats,
UINT* nNumFormats
- ) ;
+ )
! WGL_ARB_multisample extension
-CONSTANT: WGL_SAMPLE_BUFFERS_ARB HEX: 2041
-CONSTANT: WGL_SAMPLES_ARB HEX: 2042
+CONSTANT: WGL_SAMPLE_BUFFERS_ARB 0x2041
+CONSTANT: WGL_SAMPLES_ARB 0x2042
! WGL_ARB_pixel_format_float extension
-CONSTANT: WGL_TYPE_RGBA_FLOAT_ARB HEX: 21A0
+CONSTANT: WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
! wgl extensions querying
"wglGetExtensionsStringARB" wglGetProcAddress >boolean ;
: wgl-extensions ( hdc -- extensions )
- has-wglGetExtensionsStringARB? [ wglGetExtensionsStringARB " " split ] [ drop { } ] if ;
+ has-wglGetExtensionsStringARB? [ wglGetExtensionsStringARB words ] [ drop { } ] if ;
: has-wgl-extensions? ( hdc extensions -- ? )
swap wgl-extensions [ member? ] curry all? ;