WGL_ARB_pixel_format extension binding

db4
Joe Groff 2009-04-30 21:35:50 -05:00
parent 3edd57aaa4
commit 9149f375d1
1 changed files with 109 additions and 3 deletions

View File

@ -2,7 +2,7 @@
! See http://factorcode.org/license.txt for BSD license.
USING: alien alien.c-types alien.syntax parser namespaces kernel
math math.bitwise windows.types init assocs
sequences libc opengl.gl ;
sequences libc opengl.gl opengl.gl.extensions opengl.gl.windows ;
IN: windows.opengl32
! PIXELFORMATDESCRIPTOR flags
@ -101,5 +101,111 @@ FUNCTION: HGLRC wglCreateContext ( HDC hDC ) ;
FUNCTION: BOOL wglDeleteContext ( HGLRC hRC ) ;
FUNCTION: BOOL wglMakeCurrent ( HDC hDC, HGLRC hglrc ) ;
FUNCTION: HGLRC wglGetCurrentContext ( ) ;
FUNCTION: void* wglGetProcAddress ( char* name ) ;
! WGL_ARB_extensions_string extension
GL-FUNCTION: char* 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
GL-FUNCTION: BOOL wglGetPixelFormatAttribivARB (
HDC hdc,
int iPixelFormat,
int iLayerPlane,
UINT nAttributes,
int* piAttributes,
int* piValues
) ;
GL-FUNCTION: BOOL wglGetPixelFormatAttribfvARB (
HDC hdc,
int iPixelFormat,
int iLayerPlane,
UINT nAttributes,
int* piAttributes,
FLOAT* pfValues
) ;
GL-FUNCTION: BOOL wglChoosePixelFormatARB (
HDC hdc,
int* piAttribIList,
FLOAT* pfAttribFList,
UINT nMaxFormats,
int* piFormats,
UINT* nNumFormats
) ;
! WGL_ARB_multisample extension
CONSTANT: WGL_SAMPLE_BUFFERS_ARB HEX: 2041
CONSTANT: WGL_SAMPLES_ARB HEX: 2042
! WGL_ARB_pixel_format_float extension
CONSTANT: WGL_TYPE_RGBA_FLOAT_ARB HEX: 21A0
! wgl extensions querying
: has-wglGetExtensionsStringARB? ( -- ? )
"wglGetExtensionsStringARB" wglGetProcAddress >boolean ;
: wgl-extensions ( hdc -- extensions )
has-wglGetExtensionsStringARB? [ wglGetExtensionsStringARB " " split ] [ drop { } ] if ;
: has-wgl-extensions? ( hdc extensions -- ? )
swap wgl-extensions [ member? ] curry all? ;
: has-wgl-pixel-format-extension? ( hdc -- ? )
{ "WGL_ARB_pixel_format" } has-wgl-extensions? ;