001: /*******************************************************************************
002: * Copyright (c) 2000, 2003 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: *******************************************************************************/package org.eclipse.swt.opengl.internal.win32;
011:
012: import org.eclipse.swt.opengl.*;
013: import org.eclipse.swt.opengl.Library;
014: import org.eclipse.swt.internal.win32.OS;
015:
016: public class WGL {
017:
018: static {
019: Library.loadLibrary("gl");
020: }
021:
022: public static final int WGL_FONT_LINES = 0;
023: public static final int WGL_FONT_POLYGONS = 1;
024:
025: /* LAYERPLANEDESCRIPTOR flags */
026: public static final int LPD_DOUBLEBUFFER = 0x00000001;
027: public static final int LPD_STEREO = 0x00000002;
028: public static final int LPD_SUPPORT_GDI = 0x00000010;
029: public static final int LPD_SUPPORT_OPENGL = 0x00000020;
030: public static final int LPD_SHARE_DEPTH = 0x00000040;
031: public static final int LPD_SHARE_STENCIL = 0x00000080;
032: public static final int LPD_SHARE_ACCUM = 0x00000100;
033: public static final int LPD_SWAP_EXCHANGE = 0x00000200;
034: public static final int LPD_SWAP_COPY = 0x00000400;
035: public static final int LPD_TRANSPARENT = 0x00001000;
036:
037: public static final int LPD_TYPE_RGBA = 0;
038: public static final int LPD_TYPE_COLORINDEX = 1;
039:
040: /* wglSwapLayerBuffers flags */
041: public static final int WGL_SWAP_MAIN_PLANE = 0x00000001;
042: public static final int WGL_SWAP_OVERLAY1 = 0x00000002;
043: public static final int WGL_SWAP_OVERLAY2 = 0x00000004;
044: public static final int WGL_SWAP_OVERLAY3 = 0x00000008;
045: public static final int WGL_SWAP_OVERLAY4 = 0x00000010;
046: public static final int WGL_SWAP_OVERLAY5 = 0x00000020;
047: public static final int WGL_SWAP_OVERLAY6 = 0x00000040;
048: public static final int WGL_SWAP_OVERLAY7 = 0x00000080;
049: public static final int WGL_SWAP_OVERLAY8 = 0x00000100;
050: public static final int WGL_SWAP_OVERLAY9 = 0x00000200;
051: public static final int WGL_SWAP_OVERLAY10 = 0x00000400;
052: public static final int WGL_SWAP_OVERLAY11 = 0x00000800;
053: public static final int WGL_SWAP_OVERLAY12 = 0x00001000;
054: public static final int WGL_SWAP_OVERLAY13 = 0x00002000;
055: public static final int WGL_SWAP_OVERLAY14 = 0x00004000;
056: public static final int WGL_SWAP_OVERLAY15 = 0x00008000;
057: public static final int WGL_SWAP_UNDERLAY1 = 0x00010000;
058: public static final int WGL_SWAP_UNDERLAY2 = 0x00020000;
059: public static final int WGL_SWAP_UNDERLAY3 = 0x00040000;
060: public static final int WGL_SWAP_UNDERLAY4 = 0x00080000;
061: public static final int WGL_SWAP_UNDERLAY5 = 0x00100000;
062: public static final int WGL_SWAP_UNDERLAY6 = 0x00200000;
063: public static final int WGL_SWAP_UNDERLAY7 = 0x00400000;
064: public static final int WGL_SWAP_UNDERLAY8 = 0x00800000;
065: public static final int WGL_SWAP_UNDERLAY9 = 0x01000000;
066: public static final int WGL_SWAP_UNDERLAY10 = 0x02000000;
067: public static final int WGL_SWAP_UNDERLAY11 = 0x04000000;
068: public static final int WGL_SWAP_UNDERLAY12 = 0x08000000;
069: public static final int WGL_SWAP_UNDERLAY13 = 0x10000000;
070: public static final int WGL_SWAP_UNDERLAY14 = 0x20000000;
071: public static final int WGL_SWAP_UNDERLAY15 = 0x40000000;
072:
073: /* pixel types */
074: public static final int PFD_TYPE_RGBA = 0;
075: public static final int PFD_TYPE_COLORINDEX = 1;
076:
077: /* layer types */
078: public static final int PFD_MAIN_PLANE = 0;
079: public static final int PFD_OVERLAY_PLANE = 1;
080: public static final int PFD_UNDERLAY_PLANE = (-1);
081:
082: /* PIXELFORMATDESCRIPTOR flags */
083: public static final int PFD_DOUBLEBUFFER = 0x00000001;
084: public static final int PFD_STEREO = 0x00000002;
085: public static final int PFD_DRAW_TO_WINDOW = 0x00000004;
086: public static final int PFD_DRAW_TO_BITMAP = 0x00000008;
087: public static final int PFD_SUPPORT_GDI = 0x00000010;
088: public static final int PFD_SUPPORT_OPENGL = 0x00000020;
089: public static final int PFD_GENERIC_FORMAT = 0x00000040;
090: public static final int PFD_NEED_PALETTE = 0x00000080;
091: public static final int PFD_NEED_SYSTEM_PALETTE = 0x00000100;
092: public static final int PFD_SWAP_EXCHANGE = 0x00000200;
093: public static final int PFD_SWAP_COPY = 0x00000400;
094: public static final int PFD_SWAP_LAYER_BUFFERS = 0x00000800;
095: public static final int PFD_GENERIC_ACCELERATED = 0x00001000;
096: public static final int PFD_SUPPORT_DIRECTDRAW = 0x00002000;
097:
098: /* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */
099: public static final int PFD_DEPTH_DONTCARE = 0x20000000;
100: public static final int PFD_DOUBLEBUFFER_DONTCARE = 0x40000000;
101: public static final int PFD_STEREO_DONTCARE = 0x80000000;
102:
103: public static final native int ChoosePixelFormat(int hdc,
104: PIXELFORMATDESCRIPTOR ppfd);
105:
106: public static final native int DescribePixelFormat(int hdc,
107: int iPixelFormat, int nBytes, PIXELFORMATDESCRIPTOR ppfd);
108:
109: public static final native int GetPixelFormat(int hdc);
110:
111: public static final native boolean SetPixelFormat(int hdc,
112: int iPixelFormat, PIXELFORMATDESCRIPTOR ppfd);
113:
114: public static final native boolean SwapBuffers(int hdc);
115:
116: public static final native boolean wglCopyContext(int hglrcSrc,
117: int hglrcDst, int mask);
118:
119: public static final native int wglCreateContext(int hdc);
120:
121: public static final native int wglCreateLayerContext(int hdc,
122: int iLayerPlane);
123:
124: public static final native boolean wglDeleteContext(int hglrc);
125:
126: public static final native int wglGetCurrentContext();
127:
128: public static final native int wglGetCurrentDC();
129:
130: public static final native int wglGetProcAddress(byte[] lpszProc);
131:
132: public static final native boolean wglMakeCurrent(int hdc, int hglrc);
133:
134: public static final native boolean wglShareLists(int hglrc1,
135: int hglrc2);
136:
137: public static final native boolean wglUseFontBitmapsA(int hdc,
138: int first, int count, int listBase);
139:
140: public static final native boolean wglUseFontBitmapsW(int hdc,
141: int first, int count, int listBase);
142:
143: public static final boolean wglUseFontBitmaps(int hdc, int first,
144: int count, int listBase) {
145: if (OS.IsUnicode)
146: return wglUseFontBitmapsW(hdc, first, count, listBase);
147: return wglUseFontBitmapsA(hdc, first, count, listBase);
148: }
149:
150: public static final native boolean wglUseFontOutlinesA(int hdc,
151: int first, int count, int listBase, float deviation,
152: float extrusion, int format, int lpgmf);
153:
154: public static final native boolean wglUseFontOutlinesW(int hdc,
155: int first, int count, int listBase, float deviation,
156: float extrusion, int format, int lpgmf);
157:
158: public static final boolean wglUseFontOutlines(int hdc, int first,
159: int count, int listBase, float deviation, float extrusion,
160: int format, int lpgmf) {
161: if (OS.IsUnicode)
162: return wglUseFontOutlinesW(hdc, first, count, listBase,
163: deviation, extrusion, format, lpgmf);
164: return wglUseFontOutlinesA(hdc, first, count, listBase,
165: deviation, extrusion, format, lpgmf);
166: }
167:
168: public static final native boolean wglDescribeLayerPlane(int hdc,
169: int iPixelFormat, int iLayerPlane, int nBytes,
170: LAYERPLANEDESCRIPTOR plpd);
171:
172: public static final native int wglSetLayerPaletteEntries(int hdc,
173: int iLayerPlane, int iStart, int cEntries, int[] pcr);
174:
175: public static final native int wglGetLayerPaletteEntries(int hdc,
176: int iLayerPlane, int iStart, int cEntries, int[] pcr);
177:
178: public static final native boolean wglRealizeLayerPalette(int hdc,
179: int iLayerPlane, boolean bRealize);
180:
181: public static final native boolean wglSwapLayerBuffers(int hdc,
182: int fuPlanes);
183: }
|