]> gitweb.factorcode.org Git - factor.git/blob - core/windows/opengl32.factor
more sql changes
[factor.git] / core / windows / opengl32.factor
1 ! Copyright (C) 2005, 2006 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien parser namespaces kernel syntax words math io prettyprint ;
4 IN: win32-api
5
6 ! PIXELFORMATDESCRIPTOR flags
7 : PFD_DOUBLEBUFFER            HEX: 00000001 ; inline
8 : PFD_STEREO                  HEX: 00000002 ; inline
9 : PFD_DRAW_TO_WINDOW          HEX: 00000004 ; inline
10 : PFD_DRAW_TO_BITMAP          HEX: 00000008 ; inline
11 : PFD_SUPPORT_GDI             HEX: 00000010 ; inline
12 : PFD_SUPPORT_OPENGL          HEX: 00000020 ; inline
13 : PFD_GENERIC_FORMAT          HEX: 00000040 ; inline
14 : PFD_NEED_PALETTE            HEX: 00000080 ; inline
15 : PFD_NEED_SYSTEM_PALETTE     HEX: 00000100 ; inline
16 : PFD_SWAP_EXCHANGE           HEX: 00000200 ; inline
17 : PFD_SWAP_COPY               HEX: 00000400 ; inline
18 : PFD_SWAP_LAYER_BUFFERS      HEX: 00000800 ; inline
19 : PFD_GENERIC_ACCELERATED     HEX: 00001000 ; inline
20 : PFD_SUPPORT_DIRECTDRAW      HEX: 00002000 ; inline
21
22 ! PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only
23 : PFD_DEPTH_DONTCARE          HEX: 20000000 ; inline
24 : PFD_DOUBLEBUFFER_DONTCARE   HEX: 40000000 ; inline
25 : PFD_STEREO_DONTCARE         HEX: 80000000 ; inline
26
27 ! pixel types
28 : PFD_TYPE_RGBA        0 ; inline
29 : PFD_TYPE_COLORINDEX  1 ; inline
30  
31 ! layer types
32 : PFD_MAIN_PLANE       0 ; inline
33 : PFD_OVERLAY_PLANE    1 ; inline
34 : PFD_UNDERLAY_PLANE   -1 ; inline
35
36 : LPD_TYPE_RGBA        0 ; inline
37 : LPD_TYPE_COLORINDEX  1 ; inline
38
39 ! wglSwapLayerBuffers flags
40 : WGL_SWAP_MAIN_PLANE     HEX: 00000001 ; inline
41 : WGL_SWAP_OVERLAY1       HEX: 00000002 ; inline
42 : WGL_SWAP_OVERLAY2       HEX: 00000004 ; inline
43 : WGL_SWAP_OVERLAY3       HEX: 00000008 ; inline
44 : WGL_SWAP_OVERLAY4       HEX: 00000010 ; inline
45 : WGL_SWAP_OVERLAY5       HEX: 00000020 ; inline
46 : WGL_SWAP_OVERLAY6       HEX: 00000040 ; inline
47 : WGL_SWAP_OVERLAY7       HEX: 00000080 ; inline
48 : WGL_SWAP_OVERLAY8       HEX: 00000100 ; inline
49 : WGL_SWAP_OVERLAY9       HEX: 00000200 ; inline
50 : WGL_SWAP_OVERLAY10      HEX: 00000400 ; inline
51 : WGL_SWAP_OVERLAY11      HEX: 00000800 ; inline
52 : WGL_SWAP_OVERLAY12      HEX: 00001000 ; inline
53 : WGL_SWAP_OVERLAY13      HEX: 00002000 ; inline
54 : WGL_SWAP_OVERLAY14      HEX: 00004000 ; inline
55 : WGL_SWAP_OVERLAY15      HEX: 00008000 ; inline
56 : WGL_SWAP_UNDERLAY1      HEX: 00010000 ; inline
57 : WGL_SWAP_UNDERLAY2      HEX: 00020000 ; inline
58 : WGL_SWAP_UNDERLAY3      HEX: 00040000 ; inline
59 : WGL_SWAP_UNDERLAY4      HEX: 00080000 ; inline
60 : WGL_SWAP_UNDERLAY5      HEX: 00100000 ; inline
61 : WGL_SWAP_UNDERLAY6      HEX: 00200000 ; inline
62 : WGL_SWAP_UNDERLAY7      HEX: 00400000 ; inline
63 : WGL_SWAP_UNDERLAY8      HEX: 00800000 ; inline
64 : WGL_SWAP_UNDERLAY9      HEX: 01000000 ; inline
65 : WGL_SWAP_UNDERLAY10     HEX: 02000000 ; inline
66 : WGL_SWAP_UNDERLAY11     HEX: 04000000 ; inline
67 : WGL_SWAP_UNDERLAY12     HEX: 08000000 ; inline
68 : WGL_SWAP_UNDERLAY13     HEX: 10000000 ; inline
69 : WGL_SWAP_UNDERLAY14     HEX: 20000000 ; inline
70 : WGL_SWAP_UNDERLAY15     HEX: 40000000 ; inline
71
72
73
74 : pfd-dwFlags
75     PFD_DRAW_TO_WINDOW PFD_SUPPORT_OPENGL bitor PFD_DOUBLEBUFFER bitor ;
76
77 ! TODO: compare to http://www.nullterminator.net/opengl32.html
78 : make-pfd ( bits -- pfd )
79     "PIXELFORMATDESCRIPTOR" <c-object>
80     "PIXELFORMATDESCRIPTOR" c-size over set-PIXELFORMATDESCRIPTOR-nSize
81     1 over set-PIXELFORMATDESCRIPTOR-nVersion
82     pfd-dwFlags over set-PIXELFORMATDESCRIPTOR-dwFlags
83     PFD_TYPE_RGBA over set-PIXELFORMATDESCRIPTOR-iPixelType
84     [ set-PIXELFORMATDESCRIPTOR-cColorBits ] keep
85     16 over set-PIXELFORMATDESCRIPTOR-cDepthBits
86     PFD_MAIN_PLANE over set-PIXELFORMATDESCRIPTOR-dwLayerMask ;
87
88
89 LIBRARY: gl
90
91
92 ! FUNCTION: int ReleaseDC ( HWND hWnd, HDC hDC ) ;
93 ! FUNCTION: HDC ResetDC ( HDC hdc, DEVMODE* lpInitData ) ;
94 ! FUNCTION: BOOL RestoreDC ( HDC hdc, int nSavedDC ) ;
95 ! FUNCTION: int SaveDC( HDC hDC ) ;
96 ! FUNCTION: HGDIOBJ SelectObject ( HDC hDC, HGDIOBJ hgdiobj ) ;
97
98 FUNCTION: HGLRC wglCreateContext ( HDC hDC ) ;
99 FUNCTION: BOOL wglDeleteContext ( HGLRC hRC ) ;
100 FUNCTION: BOOL wglMakeCurrent ( HDC hDC, HGLRC hglrc ) ;
101
102