summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library')
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/build.bat34
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/glw.c283
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/make_win32.mak56
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/structs.c304
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/structs.h24
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/swt.rc67
6 files changed, 768 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/build.bat b/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/build.bat
new file mode 100755
index 0000000000..e3cd949c2e
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/build.bat
@@ -0,0 +1,34 @@
+rem *******************************************************************************
+rem Copyright (c) 2000, 2005 IBM Corporation and others.
+rem All rights reserved. This program and the accompanying materials
+rem are made available under the terms of the Eclipse Public License v1.0
+rem which accompanies this distribution, and is available at
+rem http://www.eclipse.org/legal/epl-v10.html
+rem
+rem Contributors:
+rem IBM Corporation - initial API and implementation
+rem *******************************************************************************
+
+@echo off
+
+IF NOT "%JAVA_HOME%"=="" GOTO MAKE
+
+rem *****
+rem Javah
+rem *****
+set JAVA_HOME=j:\teamswt\swt-builddir\ive\bin
+set path=%JAVA_HOME%;%path%
+
+rem ********
+rem MSVC 6.0
+rem ********
+call k:\dev\products\msvc60\vc98\bin\vcvars32.bat
+
+rem ******
+rem MS-SDK
+rem ******
+set Mssdk=j:\teamswt\swt-builddir\mssdk
+call %mssdk%\setenv.bat
+
+:MAKE
+nmake -f make_win32.mak %1 %2 %3 %4
diff --git a/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/glw.c b/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/glw.c
new file mode 100755
index 0000000000..81c8ed5494
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/glw.c
@@ -0,0 +1,283 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 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
+ *******************************************************************************/
+#include <windows.h>
+#include <wingdi.h>
+#include "jni.h"
+#include "swt.h"
+#include "structs.h"
+
+#define WGL_NATIVE(func) Java_org_eclipse_swt_opengl_internal_win32_WGL_##func
+
+JNIEXPORT jint JNICALL WGL_NATIVE(ChoosePixelFormat)
+ (JNIEnv *env, jclass that, jint arg0, jobject arg1)
+{
+ PIXELFORMATDESCRIPTOR _arg1, *lparg1=NULL;
+ jint rc;
+
+ DEBUG_CALL("ChoosePixelFormat\n")
+
+ if (arg1) lparg1 = getPIXELFORMATDESCRIPTORFields(env, arg1, &_arg1);
+ rc = (jint)ChoosePixelFormat((HDC)arg0, (CONST PIXELFORMATDESCRIPTOR *)lparg1);
+ if (arg1) setPIXELFORMATDESCRIPTORFields(env, arg1, lparg1);
+ return rc;
+}
+
+JNIEXPORT jint JNICALL WGL_NATIVE(DescribePixelFormat)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)
+{
+ PIXELFORMATDESCRIPTOR _arg3, *lparg3=NULL;
+ jint rc;
+
+ DEBUG_CALL("DescribePixelFormat\n")
+
+ if (arg3) lparg3 = getPIXELFORMATDESCRIPTORFields(env, arg3, &_arg3);
+ rc = (jint)DescribePixelFormat((HDC)arg0, arg1, arg2, (LPPIXELFORMATDESCRIPTOR)lparg3);
+ if (arg3) setPIXELFORMATDESCRIPTORFields(env, arg3, lparg3);
+ return rc;
+}
+
+JNIEXPORT jint JNICALL WGL_NATIVE(GetPixelFormat)
+ (JNIEnv *env, jclass that, jint arg0)
+{
+ DEBUG_CALL("GetPixelFormat\n")
+
+ return (jint)GetPixelFormat((HDC)arg0);
+}
+
+JNIEXPORT jboolean JNICALL WGL_NATIVE(SetPixelFormat)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2)
+{
+ PIXELFORMATDESCRIPTOR _arg2, *lparg2=NULL;
+ jboolean rc;
+
+ DEBUG_CALL("SetPixelFormat\n")
+
+ if (arg2) lparg2 = getPIXELFORMATDESCRIPTORFields(env, arg2, &_arg2);
+ rc = (jboolean)SetPixelFormat((HDC)arg0, arg1, (CONST PIXELFORMATDESCRIPTOR *)lparg2);
+ if (arg2) setPIXELFORMATDESCRIPTORFields(env, arg2, lparg2);
+ return rc;
+}
+
+JNIEXPORT jboolean JNICALL WGL_NATIVE(SwapBuffers)
+ (JNIEnv *env, jclass that, jint arg0)
+{
+ DEBUG_CALL("SwapBuffers\n")
+
+ return (jboolean)SwapBuffers((HDC)arg0);
+}
+
+JNIEXPORT jboolean JNICALL WGL_NATIVE(wglCopyContext)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)
+{
+ DEBUG_CALL("wglCopyContext\n")
+
+ return (jboolean)wglCopyContext((HGLRC)arg0, (HGLRC)arg1, (UINT)arg2);
+}
+
+JNIEXPORT jint JNICALL WGL_NATIVE(wglCreateContext)
+ (JNIEnv *env, jclass that, jint arg0)
+{
+ DEBUG_CALL("wglCreateContext\n")
+
+ return (jint)wglCreateContext((HDC)arg0);
+}
+
+JNIEXPORT jint JNICALL WGL_NATIVE(wglCreateLayerContext)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1)
+{
+ DEBUG_CALL("wglCreateLayerContext\n")
+
+ return (jint)wglCreateLayerContext((HDC)arg0, arg1);
+}
+
+JNIEXPORT jboolean JNICALL WGL_NATIVE(wglDeleteContext)
+ (JNIEnv *env, jclass that, jint arg0)
+{
+ DEBUG_CALL("wglDeleteContext\n")
+
+ return (jboolean)wglDeleteContext((HGLRC)arg0);
+}
+
+JNIEXPORT jboolean JNICALL WGL_NATIVE(wglDescribeLayerPlane)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jobject arg4)
+{
+ LAYERPLANEDESCRIPTOR _arg4, *lparg4=NULL;
+ jboolean rc;
+
+ DEBUG_CALL("wglDescribeLayerPlane\n")
+
+ if (arg4) lparg4 = getLAYERPLANEDESCRIPTORFields(env, arg4, &_arg4);
+ rc = (jboolean)wglDescribeLayerPlane((HDC)arg0, arg1, arg2, arg3, (LPLAYERPLANEDESCRIPTOR)lparg4);
+ if (arg4) setLAYERPLANEDESCRIPTORFields(env, arg4, lparg4);
+ return rc;
+}
+
+JNIEXPORT jint JNICALL WGL_NATIVE(wglGetCurrentContext)
+ (JNIEnv *env, jclass that)
+{
+ DEBUG_CALL("wglGetCurrentContext\n")
+
+ return (jint)wglGetCurrentContext();
+}
+
+JNIEXPORT jint JNICALL WGL_NATIVE(wglGetCurrentDC)
+ (JNIEnv *env, jclass that)
+{
+ DEBUG_CALL("wglGetCurrentDC\n")
+
+ return (jint)wglGetCurrentDC();
+}
+
+JNIEXPORT jint JNICALL WGL_NATIVE(wglGetLayerPaletteEntries)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jintArray arg4)
+{
+ jint *lparg4=NULL;
+ jint rc;
+
+ DEBUG_CALL("wglGetLayerPaletteEntries\n")
+
+ if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL);
+ rc = (jint)wglGetLayerPaletteEntries((HDC)arg0, arg1, arg2, arg3, (COLORREF *)lparg4);
+ if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0);
+ return rc;
+}
+
+JNIEXPORT jint JNICALL WGL_NATIVE(wglGetProcAddress)
+ (JNIEnv *env, jclass that, jbyteArray arg0)
+{
+ jbyte *lparg0=NULL;
+ jint rc;
+
+ DEBUG_CALL("wglGetProcAddress\n")
+
+ if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);
+ rc = (jint)wglGetProcAddress((LPCSTR)lparg0);
+ if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);
+ return rc;
+}
+
+JNIEXPORT jboolean JNICALL WGL_NATIVE(wglMakeCurrent)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1)
+{
+ DEBUG_CALL("wglMakeCurrent\n")
+
+ return (jboolean)wglMakeCurrent((HDC)arg0, (HGLRC)arg1);
+}
+
+JNIEXPORT jboolean JNICALL WGL_NATIVE(wglRealizeLayerPalette)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jboolean arg2)
+{
+ DEBUG_CALL("wglRealizeLayerPalette\n")
+
+ return (jboolean)wglRealizeLayerPalette((HDC)arg0, arg1, (BOOL)arg2);
+}
+
+JNIEXPORT jint JNICALL WGL_NATIVE(wglSetLayerPaletteEntries)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jintArray arg4)
+{
+ jint *lparg4=NULL;
+ jint rc;
+
+ DEBUG_CALL("wglSetLayerPaletteEntries\n")
+
+ if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL);
+ rc = (jint)wglSetLayerPaletteEntries((HDC)arg0, arg1, arg2, arg3, (CONST COLORREF *)lparg4);
+ if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0);
+ return rc;
+}
+
+JNIEXPORT jboolean JNICALL WGL_NATIVE(wglShareLists)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1)
+{
+ DEBUG_CALL("wglShareLists\n")
+
+ return (jboolean)wglShareLists((HGLRC)arg0, (HGLRC)arg1);
+}
+
+JNIEXPORT jboolean JNICALL WGL_NATIVE(wglSwapLayerBuffers)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1)
+{
+ DEBUG_CALL("wglSwapLayerBuffers\n")
+
+ return (jboolean)wglSwapLayerBuffers((HDC)arg0, arg1);
+}
+
+JNIEXPORT jboolean JNICALL WGL_NATIVE(wglUseFontBitmapsA)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)
+{
+ DEBUG_CALL("wglUseFontBitmapsA\n")
+
+ return (jboolean)wglUseFontBitmapsA((HDC)arg0, arg1, arg2, arg3);
+}
+
+JNIEXPORT jboolean JNICALL WGL_NATIVE(wglUseFontBitmapsW)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)
+{
+ DEBUG_CALL("wglUseFontBitmapsW\n")
+
+ return (jboolean)wglUseFontBitmapsW((HDC)arg0, arg1, arg2, arg3);
+}
+
+JNIEXPORT jboolean JNICALL WGL_NATIVE(wglUseFontOutlinesA)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jfloat arg4, jfloat arg5, jint arg6, jobject arg7)
+{
+// GLYPHMETRICSFLOAT _arg7, *lparg7=NULL;
+ jboolean rc;
+
+ DEBUG_CALL("wglUseFontOutlinesA\n")
+
+// if (arg7) lparg7 = getGLYPHMETRICSFLOATFields(env, arg7, &_arg7);
+ rc = (jboolean)wglUseFontOutlinesA((HDC)arg0, arg1, arg2, arg3, (FLOAT)arg4, (FLOAT)arg5, arg6, (LPGLYPHMETRICSFLOAT)arg7);
+// if (arg7) setGLYPHMETRICSFLOATFields(env, arg7, lparg7);
+ return rc;
+}
+
+JNIEXPORT jboolean JNICALL WGL_NATIVE(wglUseFontOutlinesW)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jfloat arg4, jfloat arg5, jint arg6, jobject arg7)
+{
+// GLYPHMETRICSFLOAT _arg7, *lparg7=NULL;
+ jboolean rc;
+
+ DEBUG_CALL("wglUseFontOutlinesW\n")
+
+// if (arg7) lparg7 = getGLYPHMETRICSFLOATFields(env, arg7, &_arg7);
+ rc = (jboolean)wglUseFontOutlinesW((HDC)arg0, arg1, arg2, arg3, (FLOAT)arg4, (FLOAT)arg5, arg6, (LPGLYPHMETRICSFLOAT)arg7);
+// if (arg7) setGLYPHMETRICSFLOATFields(env, arg7, lparg7);
+ return rc;
+}
+
+JNIEXPORT void JNICALL WGL_NATIVE(MoveMemoryW__Lorg_eclipse_swt_opengl_internal_win32_GLYPHMETRICSFLOAT_2II)
+ (JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)
+{
+ GLYPHMETRICSFLOAT _arg0, *lparg0=NULL;
+
+ DEBUG_CALL("MoveMemoryW__Lorg_eclipse_swt_opengl_internal_win32_GLYPHMETRICSFLOAT_2II\n")
+ DEBUG_CHECK_NULL(env, arg1)
+
+ if (arg0) lparg0 = &_arg0;
+ MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);
+ if (arg0) setGLYPHMETRICSFLOATFields(env, arg0, lparg0);
+}
+
+JNIEXPORT void JNICALL WGL_NATIVE(MoveMemoryA__Lorg_eclipse_swt_opengl_internal_win32_GLYPHMETRICSFLOAT_2II)
+ (JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)
+{
+ GLYPHMETRICSFLOAT _arg0, *lparg0=NULL;
+
+ DEBUG_CALL("MoveMemoryA__Lorg_eclipse_swt_opengl_internal_win32_GLYPHMETRICSFLOAT_2II\n")
+ DEBUG_CHECK_NULL(env, arg1)
+
+ if (arg0) lparg0 = &_arg0;
+ MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);
+ if (arg0) setGLYPHMETRICSFLOATFields(env, arg0, lparg0);
+}
+
+
diff --git a/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/make_win32.mak b/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/make_win32.mak
new file mode 100755
index 0000000000..af6a861e89
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/make_win32.mak
@@ -0,0 +1,56 @@
+#*******************************************************************************
+# Copyright (c) 2000, 2005 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
+#*******************************************************************************
+
+# assumes JAVA_HOME is set in the environment from which nmake is run
+
+APPVER=5.0
+!include <win32.mak>
+
+pgm_ver_str="SWT $(maj_ver).$(min_ver) for Windows"
+timestamp_str=__DATE__\" \"__TIME__\" (EST)\"
+copyright = "Copyright (C) 1999, 2003 IBM Corp. All rights reserved."
+
+SWT_PREFIX=gl
+WS_PREFIX=win32
+SWT_LIB = $(SWT_PREFIX)-$(WS_PREFIX).dll
+
+LINK_LIBS = opengl32.lib glu32.lib gdi32.lib
+
+# note: thoroughly test all examples after changing any optimization flags
+SWT_CDEBUG = #-Zi -Odi
+SWT_LDEBUG = #/DEBUG /DEBUGTYPE:both
+CFLAGS = -c -W3 -G6 -GD -O1 $(SWT_CDEBUG) -nologo -D_X86_=1 -D_WIN32 -D_WIN95 -D_WIN32_WINDOWS=0x0400 -D_MT -MT -DWIN32 -D_WIN32_DCOM /I$(JAVA_HOME)\include /I.
+RCFLAGS = -DSWT_COMMA_VERSION=$(comma_ver)
+LFLAGS = /INCREMENTAL:NO /PDB:NONE /RELEASE /NOLOGO $(SWT_LDEBUG) -entry:_DllMainCRTStartup@12 -dll /BASE:0x10000000 /comment:$(pgm_ver_str) /comment:$(copyright) /DLL
+
+SWT_OBJS = swt.obj gl.obj glu.obj glw.obj structs.obj
+
+all: $(SWT_LIB)
+
+.c.obj:
+ cl $(CFLAGS) $*.c
+
+$(SWT_LIB): $(SWT_OBJS) swt.res
+ echo $(LFLAGS) >templrf
+ echo $(LINK_LIBS) >>templrf
+ echo -machine:IX86 >>templrf
+ echo -subsystem:windows >>templrf
+ echo -out:$(SWT_LIB) >>templrf
+ echo $(SWT_OBJS) >>templrf
+ echo swt.res >>templrf
+ link @templrf
+ del templrf
+
+swt.res:
+ rc $(RCFLAGS) -DSWT_ORG_FILENAME=\"$(SWT_LIB)\" -r -fo swt.res swt.rc
+
+clean:
+ del *.obj *.res *.dll *.lib *.exp
diff --git a/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/structs.c b/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/structs.c
new file mode 100755
index 0000000000..a38435b144
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/structs.c
@@ -0,0 +1,304 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 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
+ *******************************************************************************/
+
+#include "swt.h"
+#include "structs.h"
+
+typedef struct GLYPHMETRICSFLOAT_FID_CACHE {
+ int cached;
+ jclass clazz;
+ jfieldID gmfCellIncY, gmfCellIncX, gmfptGlyphOrigin_y, gmfptGlyphOrigin_x, gmfBlackBoxY, gmfBlackBoxX;
+} GLYPHMETRICSFLOAT_FID_CACHE;
+typedef GLYPHMETRICSFLOAT_FID_CACHE *PGLYPHMETRICSFLOAT_FID_CACHE;
+
+GLYPHMETRICSFLOAT_FID_CACHE GLYPHMETRICSFLOATFc;
+
+void cacheGLYPHMETRICSFLOATFids(JNIEnv *env, jobject lpObject, PGLYPHMETRICSFLOAT_FID_CACHE lpCache)
+{
+ if (lpCache->cached) return;
+ lpCache->clazz = (*env)->GetObjectClass(env, lpObject);
+ lpCache->gmfCellIncY = (*env)->GetFieldID(env, lpCache->clazz, "gmfCellIncY", "F");
+ lpCache->gmfCellIncX = (*env)->GetFieldID(env, lpCache->clazz, "gmfCellIncX", "F");
+ lpCache->gmfptGlyphOrigin_y = (*env)->GetFieldID(env, lpCache->clazz, "gmfptGlyphOrigin_y", "F");
+ lpCache->gmfptGlyphOrigin_x = (*env)->GetFieldID(env, lpCache->clazz, "gmfptGlyphOrigin_x", "F");
+ lpCache->gmfBlackBoxY = (*env)->GetFieldID(env, lpCache->clazz, "gmfBlackBoxY", "F");
+ lpCache->gmfBlackBoxX = (*env)->GetFieldID(env, lpCache->clazz, "gmfBlackBoxX", "F");
+ lpCache->cached = 1;
+}
+
+GLYPHMETRICSFLOAT *getGLYPHMETRICSFLOATFields(JNIEnv *env, jobject lpObject, GLYPHMETRICSFLOAT *lpStruct)
+{
+ PGLYPHMETRICSFLOAT_FID_CACHE lpCache = &GLYPHMETRICSFLOATFc;
+ if (!lpCache->cached) cacheGLYPHMETRICSFLOATFids(env, lpObject, lpCache);
+ lpStruct->gmfCellIncY = (*env)->GetFloatField(env, lpObject, lpCache->gmfCellIncY);
+ lpStruct->gmfCellIncX = (*env)->GetFloatField(env, lpObject, lpCache->gmfCellIncX);
+ lpStruct->gmfptGlyphOrigin.y = (*env)->GetFloatField(env, lpObject, lpCache->gmfptGlyphOrigin_y);
+ lpStruct->gmfptGlyphOrigin.x = (*env)->GetFloatField(env, lpObject, lpCache->gmfptGlyphOrigin_x);
+ lpStruct->gmfBlackBoxY = (*env)->GetFloatField(env, lpObject, lpCache->gmfBlackBoxY);
+ lpStruct->gmfBlackBoxX = (*env)->GetFloatField(env, lpObject, lpCache->gmfBlackBoxX);
+ return lpStruct;
+}
+
+void setGLYPHMETRICSFLOATFields(JNIEnv *env, jobject lpObject, GLYPHMETRICSFLOAT *lpStruct)
+{
+ PGLYPHMETRICSFLOAT_FID_CACHE lpCache = &GLYPHMETRICSFLOATFc;
+ if (!lpCache->cached) cacheGLYPHMETRICSFLOATFids(env, lpObject, lpCache);
+ (*env)->SetFloatField(env, lpObject, lpCache->gmfCellIncY, (jfloat)lpStruct->gmfCellIncY);
+ (*env)->SetFloatField(env, lpObject, lpCache->gmfCellIncX, (jfloat)lpStruct->gmfCellIncX);
+ (*env)->SetFloatField(env, lpObject, lpCache->gmfptGlyphOrigin_y, (jfloat)lpStruct->gmfptGlyphOrigin.y);
+ (*env)->SetFloatField(env, lpObject, lpCache->gmfptGlyphOrigin_x, (jfloat)lpStruct->gmfptGlyphOrigin.x);
+ (*env)->SetFloatField(env, lpObject, lpCache->gmfBlackBoxY, (jfloat)lpStruct->gmfBlackBoxY);
+ (*env)->SetFloatField(env, lpObject, lpCache->gmfBlackBoxX, (jfloat)lpStruct->gmfBlackBoxX);
+}
+
+typedef struct LAYERPLANEDESCRIPTOR_FID_CACHE {
+ int cached;
+ jclass clazz;
+ jfieldID crTransparent, bReserved, iLayerPlane, cAuxBuffers, cStencilBits, cDepthBits, cAccumAlphaBits, cAccumBlueBits, cAccumGreenBits, cAccumRedBits, cAccumBits, cAlphaShift, cAlphaBits, cBlueShift, cBlueBits, cGreenShift, cGreenBits, cRedShift, cRedBits, cColorBits, iPixelType, dwFlags, nVersion, nSize;
+} LAYERPLANEDESCRIPTOR_FID_CACHE;
+typedef LAYERPLANEDESCRIPTOR_FID_CACHE *PLAYERPLANEDESCRIPTOR_FID_CACHE;
+
+LAYERPLANEDESCRIPTOR_FID_CACHE LAYERPLANEDESCRIPTORFc;
+
+void cacheLAYERPLANEDESCRIPTORFids(JNIEnv *env, jobject lpObject, PLAYERPLANEDESCRIPTOR_FID_CACHE lpCache)
+{
+ if (lpCache->cached) return;
+ lpCache->clazz = (*env)->GetObjectClass(env, lpObject);
+ lpCache->crTransparent = (*env)->GetFieldID(env, lpCache->clazz, "crTransparent", "I");
+ lpCache->bReserved = (*env)->GetFieldID(env, lpCache->clazz, "bReserved", "B");
+ lpCache->iLayerPlane = (*env)->GetFieldID(env, lpCache->clazz, "iLayerPlane", "B");
+ lpCache->cAuxBuffers = (*env)->GetFieldID(env, lpCache->clazz, "cAuxBuffers", "B");
+ lpCache->cStencilBits = (*env)->GetFieldID(env, lpCache->clazz, "cStencilBits", "B");
+ lpCache->cDepthBits = (*env)->GetFieldID(env, lpCache->clazz, "cDepthBits", "B");
+ lpCache->cAccumAlphaBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumAlphaBits", "B");
+ lpCache->cAccumBlueBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumBlueBits", "B");
+ lpCache->cAccumGreenBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumGreenBits", "B");
+ lpCache->cAccumRedBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumRedBits", "B");
+ lpCache->cAccumBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumBits", "B");
+ lpCache->cAlphaShift = (*env)->GetFieldID(env, lpCache->clazz, "cAlphaShift", "B");
+ lpCache->cAlphaBits = (*env)->GetFieldID(env, lpCache->clazz, "cAlphaBits", "B");
+ lpCache->cBlueShift = (*env)->GetFieldID(env, lpCache->clazz, "cBlueShift", "B");
+ lpCache->cBlueBits = (*env)->GetFieldID(env, lpCache->clazz, "cBlueBits", "B");
+ lpCache->cGreenShift = (*env)->GetFieldID(env, lpCache->clazz, "cGreenShift", "B");
+ lpCache->cGreenBits = (*env)->GetFieldID(env, lpCache->clazz, "cGreenBits", "B");
+ lpCache->cRedShift = (*env)->GetFieldID(env, lpCache->clazz, "cRedShift", "B");
+ lpCache->cRedBits = (*env)->GetFieldID(env, lpCache->clazz, "cRedBits", "B");
+ lpCache->cColorBits = (*env)->GetFieldID(env, lpCache->clazz, "cColorBits", "B");
+ lpCache->iPixelType = (*env)->GetFieldID(env, lpCache->clazz, "iPixelType", "B");
+ lpCache->dwFlags = (*env)->GetFieldID(env, lpCache->clazz, "dwFlags", "I");
+ lpCache->nVersion = (*env)->GetFieldID(env, lpCache->clazz, "nVersion", "S");
+ lpCache->nSize = (*env)->GetFieldID(env, lpCache->clazz, "nSize", "S");
+ lpCache->cached = 1;
+}
+
+LAYERPLANEDESCRIPTOR *getLAYERPLANEDESCRIPTORFields(JNIEnv *env, jobject lpObject, LAYERPLANEDESCRIPTOR *lpStruct)
+{
+ PLAYERPLANEDESCRIPTOR_FID_CACHE lpCache = &LAYERPLANEDESCRIPTORFc;
+ if (!lpCache->cached) cacheLAYERPLANEDESCRIPTORFids(env, lpObject, lpCache);
+ lpStruct->crTransparent = (*env)->GetIntField(env, lpObject, lpCache->crTransparent);
+ lpStruct->bReserved = (*env)->GetByteField(env, lpObject, lpCache->bReserved);
+ lpStruct->iLayerPlane = (*env)->GetByteField(env, lpObject, lpCache->iLayerPlane);
+ lpStruct->cAuxBuffers = (*env)->GetByteField(env, lpObject, lpCache->cAuxBuffers);
+ lpStruct->cStencilBits = (*env)->GetByteField(env, lpObject, lpCache->cStencilBits);
+ lpStruct->cDepthBits = (*env)->GetByteField(env, lpObject, lpCache->cDepthBits);
+ lpStruct->cAccumAlphaBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumAlphaBits);
+ lpStruct->cAccumBlueBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumBlueBits);
+ lpStruct->cAccumGreenBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumGreenBits);
+ lpStruct->cAccumRedBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumRedBits);
+ lpStruct->cAccumBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumBits);
+ lpStruct->cAlphaShift = (*env)->GetByteField(env, lpObject, lpCache->cAlphaShift);
+ lpStruct->cAlphaBits = (*env)->GetByteField(env, lpObject, lpCache->cAlphaBits);
+ lpStruct->cBlueShift = (*env)->GetByteField(env, lpObject, lpCache->cBlueShift);
+ lpStruct->cBlueBits = (*env)->GetByteField(env, lpObject, lpCache->cBlueBits);
+ lpStruct->cGreenShift = (*env)->GetByteField(env, lpObject, lpCache->cGreenShift);
+ lpStruct->cGreenBits = (*env)->GetByteField(env, lpObject, lpCache->cGreenBits);
+ lpStruct->cRedShift = (*env)->GetByteField(env, lpObject, lpCache->cRedShift);
+ lpStruct->cRedBits = (*env)->GetByteField(env, lpObject, lpCache->cRedBits);
+ lpStruct->cColorBits = (*env)->GetByteField(env, lpObject, lpCache->cColorBits);
+ lpStruct->iPixelType = (*env)->GetByteField(env, lpObject, lpCache->iPixelType);
+ lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, lpCache->dwFlags);
+ lpStruct->nVersion = (*env)->GetShortField(env, lpObject, lpCache->nVersion);
+ lpStruct->nSize = (*env)->GetShortField(env, lpObject, lpCache->nSize);
+ return lpStruct;
+}
+
+void setLAYERPLANEDESCRIPTORFields(JNIEnv *env, jobject lpObject, LAYERPLANEDESCRIPTOR *lpStruct)
+{
+ PLAYERPLANEDESCRIPTOR_FID_CACHE lpCache = &LAYERPLANEDESCRIPTORFc;
+ if (!lpCache->cached) cacheLAYERPLANEDESCRIPTORFids(env, lpObject, lpCache);
+ (*env)->SetIntField(env, lpObject, lpCache->crTransparent, (jint)lpStruct->crTransparent);
+ (*env)->SetByteField(env, lpObject, lpCache->bReserved, (jbyte)lpStruct->bReserved);
+ (*env)->SetByteField(env, lpObject, lpCache->iLayerPlane, (jbyte)lpStruct->iLayerPlane);
+ (*env)->SetByteField(env, lpObject, lpCache->cAuxBuffers, (jbyte)lpStruct->cAuxBuffers);
+ (*env)->SetByteField(env, lpObject, lpCache->cStencilBits, (jbyte)lpStruct->cStencilBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cDepthBits, (jbyte)lpStruct->cDepthBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cAccumAlphaBits, (jbyte)lpStruct->cAccumAlphaBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cAccumBlueBits, (jbyte)lpStruct->cAccumBlueBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cAccumGreenBits, (jbyte)lpStruct->cAccumGreenBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cAccumRedBits, (jbyte)lpStruct->cAccumRedBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cAccumBits, (jbyte)lpStruct->cAccumBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cAlphaShift, (jbyte)lpStruct->cAlphaShift);
+ (*env)->SetByteField(env, lpObject, lpCache->cAlphaBits, (jbyte)lpStruct->cAlphaBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cBlueShift, (jbyte)lpStruct->cBlueShift);
+ (*env)->SetByteField(env, lpObject, lpCache->cBlueBits, (jbyte)lpStruct->cBlueBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cGreenShift, (jbyte)lpStruct->cGreenShift);
+ (*env)->SetByteField(env, lpObject, lpCache->cGreenBits, (jbyte)lpStruct->cGreenBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cRedShift, (jbyte)lpStruct->cRedShift);
+ (*env)->SetByteField(env, lpObject, lpCache->cRedBits, (jbyte)lpStruct->cRedBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cColorBits, (jbyte)lpStruct->cColorBits);
+ (*env)->SetByteField(env, lpObject, lpCache->iPixelType, (jbyte)lpStruct->iPixelType);
+ (*env)->SetIntField(env, lpObject, lpCache->dwFlags, (jint)lpStruct->dwFlags);
+ (*env)->SetShortField(env, lpObject, lpCache->nVersion, (jshort)lpStruct->nVersion);
+ (*env)->SetShortField(env, lpObject, lpCache->nSize, (jshort)lpStruct->nSize);
+}
+
+typedef struct POINTFLOAT_FID_CACHE {
+ int cached;
+ jclass clazz;
+ jfieldID y, x;
+} POINTFLOAT_FID_CACHE;
+typedef POINTFLOAT_FID_CACHE *PPOINTFLOAT_FID_CACHE;
+
+POINTFLOAT_FID_CACHE POINTFLOATFc;
+
+void cachePOINTFLOATFids(JNIEnv *env, jobject lpObject, PPOINTFLOAT_FID_CACHE lpCache)
+{
+ if (lpCache->cached) return;
+ lpCache->clazz = (*env)->GetObjectClass(env, lpObject);
+ lpCache->y = (*env)->GetFieldID(env, lpCache->clazz, "y", "F");
+ lpCache->x = (*env)->GetFieldID(env, lpCache->clazz, "x", "F");
+ lpCache->cached = 1;
+}
+
+POINTFLOAT *getPOINTFLOATFields(JNIEnv *env, jobject lpObject, POINTFLOAT *lpStruct)
+{
+ PPOINTFLOAT_FID_CACHE lpCache = &POINTFLOATFc;
+ if (!lpCache->cached) cachePOINTFLOATFids(env, lpObject, lpCache);
+ lpStruct->y = (*env)->GetFloatField(env, lpObject, lpCache->y);
+ lpStruct->x = (*env)->GetFloatField(env, lpObject, lpCache->x);
+ return lpStruct;
+}
+
+void setPOINTFLOATFields(JNIEnv *env, jobject lpObject, POINTFLOAT *lpStruct)
+{
+ PPOINTFLOAT_FID_CACHE lpCache = &POINTFLOATFc;
+ if (!lpCache->cached) cachePOINTFLOATFids(env, lpObject, lpCache);
+ (*env)->SetFloatField(env, lpObject, lpCache->y, (jfloat)lpStruct->y);
+ (*env)->SetFloatField(env, lpObject, lpCache->x, (jfloat)lpStruct->x);
+}
+
+typedef struct PIXELFORMATDESCRIPTOR_FID_CACHE {
+ int cached;
+ jclass clazz;
+ jfieldID dwDamageMask, dwVisibleMask, dwLayerMask, bReserved, iLayerType, cAuxBuffers, cStencilBits, cDepthBits, cAccumAlphaBits, cAccumBlueBits, cAccumGreenBits, cAccumRedBits, cAccumBits, cAlphaShift, cAlphaBits, cBlueShift, cBlueBits, cGreenShift, cGreenBits, cRedShift, cRedBits, cColorBits, iPixelType, dwFlags, nVersion, nSize;
+} PIXELFORMATDESCRIPTOR_FID_CACHE;
+typedef PIXELFORMATDESCRIPTOR_FID_CACHE *PPIXELFORMATDESCRIPTOR_FID_CACHE;
+
+PIXELFORMATDESCRIPTOR_FID_CACHE PIXELFORMATDESCRIPTORFc;
+
+void cachePIXELFORMATDESCRIPTORFids(JNIEnv *env, jobject lpObject, PPIXELFORMATDESCRIPTOR_FID_CACHE lpCache)
+{
+ if (lpCache->cached) return;
+ lpCache->clazz = (*env)->GetObjectClass(env, lpObject);
+ lpCache->dwDamageMask = (*env)->GetFieldID(env, lpCache->clazz, "dwDamageMask", "I");
+ lpCache->dwVisibleMask = (*env)->GetFieldID(env, lpCache->clazz, "dwVisibleMask", "I");
+ lpCache->dwLayerMask = (*env)->GetFieldID(env, lpCache->clazz, "dwLayerMask", "I");
+ lpCache->bReserved = (*env)->GetFieldID(env, lpCache->clazz, "bReserved", "B");
+ lpCache->iLayerType = (*env)->GetFieldID(env, lpCache->clazz, "iLayerType", "B");
+ lpCache->cAuxBuffers = (*env)->GetFieldID(env, lpCache->clazz, "cAuxBuffers", "B");
+ lpCache->cStencilBits = (*env)->GetFieldID(env, lpCache->clazz, "cStencilBits", "B");
+ lpCache->cDepthBits = (*env)->GetFieldID(env, lpCache->clazz, "cDepthBits", "B");
+ lpCache->cAccumAlphaBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumAlphaBits", "B");
+ lpCache->cAccumBlueBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumBlueBits", "B");
+ lpCache->cAccumGreenBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumGreenBits", "B");
+ lpCache->cAccumRedBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumRedBits", "B");
+ lpCache->cAccumBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumBits", "B");
+ lpCache->cAlphaShift = (*env)->GetFieldID(env, lpCache->clazz, "cAlphaShift", "B");
+ lpCache->cAlphaBits = (*env)->GetFieldID(env, lpCache->clazz, "cAlphaBits", "B");
+ lpCache->cBlueShift = (*env)->GetFieldID(env, lpCache->clazz, "cBlueShift", "B");
+ lpCache->cBlueBits = (*env)->GetFieldID(env, lpCache->clazz, "cBlueBits", "B");
+ lpCache->cGreenShift = (*env)->GetFieldID(env, lpCache->clazz, "cGreenShift", "B");
+ lpCache->cGreenBits = (*env)->GetFieldID(env, lpCache->clazz, "cGreenBits", "B");
+ lpCache->cRedShift = (*env)->GetFieldID(env, lpCache->clazz, "cRedShift", "B");
+ lpCache->cRedBits = (*env)->GetFieldID(env, lpCache->clazz, "cRedBits", "B");
+ lpCache->cColorBits = (*env)->GetFieldID(env, lpCache->clazz, "cColorBits", "B");
+ lpCache->iPixelType = (*env)->GetFieldID(env, lpCache->clazz, "iPixelType", "B");
+ lpCache->dwFlags = (*env)->GetFieldID(env, lpCache->clazz, "dwFlags", "I");
+ lpCache->nVersion = (*env)->GetFieldID(env, lpCache->clazz, "nVersion", "S");
+ lpCache->nSize = (*env)->GetFieldID(env, lpCache->clazz, "nSize", "S");
+ lpCache->cached = 1;
+}
+
+PIXELFORMATDESCRIPTOR *getPIXELFORMATDESCRIPTORFields(JNIEnv *env, jobject lpObject, PIXELFORMATDESCRIPTOR *lpStruct)
+{
+ PPIXELFORMATDESCRIPTOR_FID_CACHE lpCache = &PIXELFORMATDESCRIPTORFc;
+ if (!lpCache->cached) cachePIXELFORMATDESCRIPTORFids(env, lpObject, lpCache);
+ lpStruct->dwDamageMask = (*env)->GetIntField(env, lpObject, lpCache->dwDamageMask);
+ lpStruct->dwVisibleMask = (*env)->GetIntField(env, lpObject, lpCache->dwVisibleMask);
+ lpStruct->dwLayerMask = (*env)->GetIntField(env, lpObject, lpCache->dwLayerMask);
+ lpStruct->bReserved = (*env)->GetByteField(env, lpObject, lpCache->bReserved);
+ lpStruct->iLayerType = (*env)->GetByteField(env, lpObject, lpCache->iLayerType);
+ lpStruct->cAuxBuffers = (*env)->GetByteField(env, lpObject, lpCache->cAuxBuffers);
+ lpStruct->cStencilBits = (*env)->GetByteField(env, lpObject, lpCache->cStencilBits);
+ lpStruct->cDepthBits = (*env)->GetByteField(env, lpObject, lpCache->cDepthBits);
+ lpStruct->cAccumAlphaBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumAlphaBits);
+ lpStruct->cAccumBlueBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumBlueBits);
+ lpStruct->cAccumGreenBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumGreenBits);
+ lpStruct->cAccumRedBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumRedBits);
+ lpStruct->cAccumBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumBits);
+ lpStruct->cAlphaShift = (*env)->GetByteField(env, lpObject, lpCache->cAlphaShift);
+ lpStruct->cAlphaBits = (*env)->GetByteField(env, lpObject, lpCache->cAlphaBits);
+ lpStruct->cBlueShift = (*env)->GetByteField(env, lpObject, lpCache->cBlueShift);
+ lpStruct->cBlueBits = (*env)->GetByteField(env, lpObject, lpCache->cBlueBits);
+ lpStruct->cGreenShift = (*env)->GetByteField(env, lpObject, lpCache->cGreenShift);
+ lpStruct->cGreenBits = (*env)->GetByteField(env, lpObject, lpCache->cGreenBits);
+ lpStruct->cRedShift = (*env)->GetByteField(env, lpObject, lpCache->cRedShift);
+ lpStruct->cRedBits = (*env)->GetByteField(env, lpObject, lpCache->cRedBits);
+ lpStruct->cColorBits = (*env)->GetByteField(env, lpObject, lpCache->cColorBits);
+ lpStruct->iPixelType = (*env)->GetByteField(env, lpObject, lpCache->iPixelType);
+ lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, lpCache->dwFlags);
+ lpStruct->nVersion = (*env)->GetShortField(env, lpObject, lpCache->nVersion);
+ lpStruct->nSize = (*env)->GetShortField(env, lpObject, lpCache->nSize);
+ return lpStruct;
+}
+
+void setPIXELFORMATDESCRIPTORFields(JNIEnv *env, jobject lpObject, PIXELFORMATDESCRIPTOR *lpStruct)
+{
+ PPIXELFORMATDESCRIPTOR_FID_CACHE lpCache = &PIXELFORMATDESCRIPTORFc;
+ if (!lpCache->cached) cachePIXELFORMATDESCRIPTORFids(env, lpObject, lpCache);
+ (*env)->SetIntField(env, lpObject, lpCache->dwDamageMask, (jint)lpStruct->dwDamageMask);
+ (*env)->SetIntField(env, lpObject, lpCache->dwVisibleMask, (jint)lpStruct->dwVisibleMask);
+ (*env)->SetIntField(env, lpObject, lpCache->dwLayerMask, (jint)lpStruct->dwLayerMask);
+ (*env)->SetByteField(env, lpObject, lpCache->bReserved, (jbyte)lpStruct->bReserved);
+ (*env)->SetByteField(env, lpObject, lpCache->iLayerType, (jbyte)lpStruct->iLayerType);
+ (*env)->SetByteField(env, lpObject, lpCache->cAuxBuffers, (jbyte)lpStruct->cAuxBuffers);
+ (*env)->SetByteField(env, lpObject, lpCache->cStencilBits, (jbyte)lpStruct->cStencilBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cDepthBits, (jbyte)lpStruct->cDepthBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cAccumAlphaBits, (jbyte)lpStruct->cAccumAlphaBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cAccumBlueBits, (jbyte)lpStruct->cAccumBlueBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cAccumGreenBits, (jbyte)lpStruct->cAccumGreenBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cAccumRedBits, (jbyte)lpStruct->cAccumRedBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cAccumBits, (jbyte)lpStruct->cAccumBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cAlphaShift, (jbyte)lpStruct->cAlphaShift);
+ (*env)->SetByteField(env, lpObject, lpCache->cAlphaBits, (jbyte)lpStruct->cAlphaBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cBlueShift, (jbyte)lpStruct->cBlueShift);
+ (*env)->SetByteField(env, lpObject, lpCache->cBlueBits, (jbyte)lpStruct->cBlueBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cGreenShift, (jbyte)lpStruct->cGreenShift);
+ (*env)->SetByteField(env, lpObject, lpCache->cGreenBits, (jbyte)lpStruct->cGreenBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cRedShift, (jbyte)lpStruct->cRedShift);
+ (*env)->SetByteField(env, lpObject, lpCache->cRedBits, (jbyte)lpStruct->cRedBits);
+ (*env)->SetByteField(env, lpObject, lpCache->cColorBits, (jbyte)lpStruct->cColorBits);
+ (*env)->SetByteField(env, lpObject, lpCache->iPixelType, (jbyte)lpStruct->iPixelType);
+ (*env)->SetIntField(env, lpObject, lpCache->dwFlags, (jint)lpStruct->dwFlags);
+ (*env)->SetShortField(env, lpObject, lpCache->nVersion, (jshort)lpStruct->nVersion);
+ (*env)->SetShortField(env, lpObject, lpCache->nSize, (jshort)lpStruct->nSize);
+}
+
diff --git a/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/structs.h b/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/structs.h
new file mode 100755
index 0000000000..14c62a85dd
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/structs.h
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 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
+ *******************************************************************************/
+#include <windows.h>
+
+GLYPHMETRICSFLOAT *getGLYPHMETRICSFLOATFields(JNIEnv *env, jobject lpObject, GLYPHMETRICSFLOAT *lpStruct);
+void setGLYPHMETRICSFLOATFields(JNIEnv *env, jobject lpObject, GLYPHMETRICSFLOAT *lpStruct);
+
+LAYERPLANEDESCRIPTOR *getLAYERPLANEDESCRIPTORFields(JNIEnv *env, jobject lpObject, LAYERPLANEDESCRIPTOR *lpStruct);
+void setLAYERPLANEDESCRIPTORFields(JNIEnv *env, jobject lpObject, LAYERPLANEDESCRIPTOR *lpStruct);
+
+POINTFLOAT *getPOINTFLOATFields(JNIEnv *env, jobject lpObject, POINTFLOAT *lpStruct);
+void setPOINTFLOATFields(JNIEnv *env, jobject lpObject, POINTFLOAT *lpStruct);
+
+PIXELFORMATDESCRIPTOR *getPIXELFORMATDESCRIPTORFields(JNIEnv *env, jobject lpObject, PIXELFORMATDESCRIPTOR *lpStruct);
+void setPIXELFORMATDESCRIPTORFields(JNIEnv *env, jobject lpObject, PIXELFORMATDESCRIPTOR *lpStruct);
+
diff --git a/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/swt.rc b/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/swt.rc
new file mode 100755
index 0000000000..c5b350cb38
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT OpenGL/win32/library/swt.rc
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 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
+ *******************************************************************************/
+
+#include "windows.h"
+
+VS_VERSION_INFO VERSIONINFO
+ PRODUCTVERSION 0,0,0,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40000L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "IBM Corporation\0"
+ VALUE "FileDescription", "Standard Widget Toolkit\0"
+ VALUE "InternalName", "SWT\0"
+ VALUE "LegalCopyright", "© Copyright 2000, 2003 IBM Corp. All Rights Reserved.\0"
+ VALUE "OriginalFilename", SWT_ORG_FILENAME
+ VALUE "ProductName", "\0"
+ VALUE "ProductVersion", "0,0,0,0\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+/* SHMENUBAR Pocket PC
+ * ID_MENU SHMENUBAR DISCARDABLE
+ * BEGIN
+ * ID_MENU, 1,
+ * IMAGE_NONE, ID_MENU_ITEM1, 0, 0,
+ * 0, 0, 0,
+ * END
+ * ID_MENU MENU DISCARDABLE
+ * BEGIN
+ * MENUITEM "", ID_MENU_ITEM1
+ * END
+ */
+100 RCDATA DISCARDABLE
+BEGIN
+ 100, 1,
+ -2, 101, 0, 0,
+ 0, 0, 0,
+END
+
+100 MENU DISCARDABLE
+BEGIN
+ MENUITEM "", 101
+END \ No newline at end of file