blob: 52db66974741774f9e17faf7a4c21d1ba3655e2b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2003 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.swt.opengl.internal.win32;
import org.eclipse.swt.opengl.*;
import org.eclipse.swt.opengl.Library;
import org.eclipse.swt.internal.win32.OS;
public class WGL {
static {
Library.loadLibrary("gl");
}
public static final int WGL_FONT_LINES = 0;
public static final int WGL_FONT_POLYGONS = 1;
/* LAYERPLANEDESCRIPTOR flags */
public static final int LPD_DOUBLEBUFFER = 0x00000001;
public static final int LPD_STEREO = 0x00000002;
public static final int LPD_SUPPORT_GDI = 0x00000010;
public static final int LPD_SUPPORT_OPENGL = 0x00000020;
public static final int LPD_SHARE_DEPTH = 0x00000040;
public static final int LPD_SHARE_STENCIL = 0x00000080;
public static final int LPD_SHARE_ACCUM = 0x00000100;
public static final int LPD_SWAP_EXCHANGE = 0x00000200;
public static final int LPD_SWAP_COPY = 0x00000400;
public static final int LPD_TRANSPARENT = 0x00001000;
public static final int LPD_TYPE_RGBA = 0;
public static final int LPD_TYPE_COLORINDEX = 1;
/* wglSwapLayerBuffers flags */
public static final int WGL_SWAP_MAIN_PLANE = 0x00000001;
public static final int WGL_SWAP_OVERLAY1 = 0x00000002;
public static final int WGL_SWAP_OVERLAY2 = 0x00000004;
public static final int WGL_SWAP_OVERLAY3 = 0x00000008;
public static final int WGL_SWAP_OVERLAY4 = 0x00000010;
public static final int WGL_SWAP_OVERLAY5 = 0x00000020;
public static final int WGL_SWAP_OVERLAY6 = 0x00000040;
public static final int WGL_SWAP_OVERLAY7 = 0x00000080;
public static final int WGL_SWAP_OVERLAY8 = 0x00000100;
public static final int WGL_SWAP_OVERLAY9 = 0x00000200;
public static final int WGL_SWAP_OVERLAY10 = 0x00000400;
public static final int WGL_SWAP_OVERLAY11 = 0x00000800;
public static final int WGL_SWAP_OVERLAY12 = 0x00001000;
public static final int WGL_SWAP_OVERLAY13 = 0x00002000;
public static final int WGL_SWAP_OVERLAY14 = 0x00004000;
public static final int WGL_SWAP_OVERLAY15 = 0x00008000;
public static final int WGL_SWAP_UNDERLAY1 = 0x00010000;
public static final int WGL_SWAP_UNDERLAY2 = 0x00020000;
public static final int WGL_SWAP_UNDERLAY3 = 0x00040000;
public static final int WGL_SWAP_UNDERLAY4 = 0x00080000;
public static final int WGL_SWAP_UNDERLAY5 = 0x00100000;
public static final int WGL_SWAP_UNDERLAY6 = 0x00200000;
public static final int WGL_SWAP_UNDERLAY7 = 0x00400000;
public static final int WGL_SWAP_UNDERLAY8 = 0x00800000;
public static final int WGL_SWAP_UNDERLAY9 = 0x01000000;
public static final int WGL_SWAP_UNDERLAY10 = 0x02000000;
public static final int WGL_SWAP_UNDERLAY11 = 0x04000000;
public static final int WGL_SWAP_UNDERLAY12 = 0x08000000;
public static final int WGL_SWAP_UNDERLAY13 = 0x10000000;
public static final int WGL_SWAP_UNDERLAY14 = 0x20000000;
public static final int WGL_SWAP_UNDERLAY15 = 0x40000000;
/* pixel types */
public static final int PFD_TYPE_RGBA = 0;
public static final int PFD_TYPE_COLORINDEX = 1;
/* layer types */
public static final int PFD_MAIN_PLANE = 0;
public static final int PFD_OVERLAY_PLANE = 1;
public static final int PFD_UNDERLAY_PLANE = (-1);
/* PIXELFORMATDESCRIPTOR flags */
public static final int PFD_DOUBLEBUFFER = 0x00000001;
public static final int PFD_STEREO = 0x00000002;
public static final int PFD_DRAW_TO_WINDOW = 0x00000004;
public static final int PFD_DRAW_TO_BITMAP = 0x00000008;
public static final int PFD_SUPPORT_GDI = 0x00000010;
public static final int PFD_SUPPORT_OPENGL = 0x00000020;
public static final int PFD_GENERIC_FORMAT = 0x00000040;
public static final int PFD_NEED_PALETTE = 0x00000080;
public static final int PFD_NEED_SYSTEM_PALETTE = 0x00000100;
public static final int PFD_SWAP_EXCHANGE = 0x00000200;
public static final int PFD_SWAP_COPY = 0x00000400;
public static final int PFD_SWAP_LAYER_BUFFERS = 0x00000800;
public static final int PFD_GENERIC_ACCELERATED = 0x00001000;
public static final int PFD_SUPPORT_DIRECTDRAW = 0x00002000;
/* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */
public static final int PFD_DEPTH_DONTCARE = 0x20000000;
public static final int PFD_DOUBLEBUFFER_DONTCARE = 0x40000000;
public static final int PFD_STEREO_DONTCARE = 0x80000000;
public static final native int ChoosePixelFormat(int hdc, PIXELFORMATDESCRIPTOR ppfd);
public static final native int DescribePixelFormat(int hdc, int iPixelFormat, int nBytes, PIXELFORMATDESCRIPTOR ppfd);
public static final native int GetPixelFormat(int hdc);
public static final native boolean SetPixelFormat(int hdc, int iPixelFormat, PIXELFORMATDESCRIPTOR ppfd);
public static final native boolean SwapBuffers(int hdc);
public static final native boolean wglCopyContext(int hglrcSrc, int hglrcDst, int mask);
public static final native int wglCreateContext(int hdc);
public static final native int wglCreateLayerContext(int hdc, int iLayerPlane);
public static final native boolean wglDeleteContext(int hglrc);
public static final native int wglGetCurrentContext();
public static final native int wglGetCurrentDC();
public static final native int wglGetProcAddress(byte[] lpszProc);
public static final native boolean wglMakeCurrent(int hdc, int hglrc);
public static final native boolean wglShareLists(int hglrc1, int hglrc2);
public static final native boolean wglUseFontBitmapsA(int hdc, int first, int count, int listBase);
public static final native boolean wglUseFontBitmapsW(int hdc, int first, int count, int listBase);
public static final boolean wglUseFontBitmaps(int hdc, int first, int count, int listBase) {
if (OS.IsUnicode) return wglUseFontBitmapsW(hdc, first, count, listBase);
return wglUseFontBitmapsA(hdc, first, count, listBase);
}
public static final native boolean wglUseFontOutlinesA(int hdc, int first, int count, int listBase, float deviation, float extrusion, int format, int lpgmf);
public static final native boolean wglUseFontOutlinesW(int hdc, int first, int count, int listBase, float deviation, float extrusion, int format, int lpgmf);
public static final boolean wglUseFontOutlines(int hdc, int first, int count, int listBase, float deviation, float extrusion, int format, int lpgmf) {
if (OS.IsUnicode) return wglUseFontOutlinesW(hdc, first, count, listBase, deviation, extrusion, format, lpgmf);
return wglUseFontOutlinesA(hdc, first, count, listBase, deviation, extrusion, format, lpgmf);
}
public static final native boolean wglDescribeLayerPlane(int hdc, int iPixelFormat, int iLayerPlane, int nBytes, LAYERPLANEDESCRIPTOR plpd);
public static final native int wglSetLayerPaletteEntries(int hdc, int iLayerPlane, int iStart, int cEntries, int[] pcr);
public static final native int wglGetLayerPaletteEntries(int hdc, int iLayerPlane, int iStart, int cEntries, int[] pcr);
public static final native boolean wglRealizeLayerPalette(int hdc, int iLayerPlane, boolean bRealize);
public static final native boolean wglSwapLayerBuffers(int hdc, int fuPlanes);
}