# HG changeset patch # User Jacob Carlborg # Date 1230734779 -3600 # Node ID 580596d83ac4c2421c3fbde71e68cce7325c5826 # Parent a2d82e6fd0546801393df0821ded00b8344da508 Ported dwt.opengl.GLCanvas diff -r a2d82e6fd054 -r 580596d83ac4 dwt/internal/cocoa/NSOpenGLPixelFormat.d --- a/dwt/internal/cocoa/NSOpenGLPixelFormat.d Wed Dec 31 15:32:40 2008 +0100 +++ b/dwt/internal/cocoa/NSOpenGLPixelFormat.d Wed Dec 31 15:46:19 2008 +0100 @@ -16,8 +16,8 @@ import dwt.dwthelper.utils; import cocoa = dwt.internal.cocoa.id; import dwt.internal.cocoa.NSObject; -import dwt.internal.cocoa.NSOpenGL; import dwt.internal.cocoa.OS; +import dwt.internal.objc.cocoa.Cocoa; import objc = dwt.internal.objc.runtime; public class NSOpenGLPixelFormat : NSObject { diff -r a2d82e6fd054 -r 580596d83ac4 dwt/internal/cocoa/OS.d --- a/dwt/internal/cocoa/OS.d Wed Dec 31 15:32:40 2008 +0100 +++ b/dwt/internal/cocoa/OS.d Wed Dec 31 15:46:19 2008 +0100 @@ -3213,7 +3213,7 @@ public static const int NSOpenGLPFAAccumSize = 14; public static const int NSOpenGLPFAAllRenderers = 1; public static const int NSOpenGLPFAAllowOfflineRenderers = 96; -public static const int NSOpenGLPFAAlphaSize = 11; +alias Cocoa.NSOpenGLPixelFormatAttribute.NSOpenGLPFAAlphaSize NSOpenGLPFAAlphaSize; public static const int NSOpenGLPFAAuxBuffers = 7; public static const int NSOpenGLPFAAuxDepthStencil = 57; public static const int NSOpenGLPFABackingStore = 76; @@ -3221,8 +3221,8 @@ public static const int NSOpenGLPFAColorFloat = 58; public static const int NSOpenGLPFAColorSize = 8; public static const int NSOpenGLPFACompliant = 83; -public static const int NSOpenGLPFADepthSize = 12; -public static const int NSOpenGLPFADoubleBuffer = 5; +alias Cocoa.NSOpenGLPixelFormatAttribute.NSOpenGLPFADepthSize NSOpenGLPFADepthSize; +alias Cocoa.NSOpenGLPixelFormatAttribute.NSOpenGLPFADoubleBuffer NSOpenGLPFADoubleBuffer; public static const int NSOpenGLPFAFullScreen = 54; public static const int NSOpenGLPFAMPSafe = 78; public static const int NSOpenGLPFAMaximumPolicy = 52; @@ -3235,12 +3235,12 @@ public static const int NSOpenGLPFARendererID = 70; public static const int NSOpenGLPFARobust = 75; public static const int NSOpenGLPFASampleAlpha = 61; -public static const int NSOpenGLPFASampleBuffers = 55; -public static const int NSOpenGLPFASamples = 56; +alias Cocoa.NSOpenGLPixelFormatAttribute.NSOpenGLPFASampleBuffers NSOpenGLPFASampleBuffers; +alias Cocoa.NSOpenGLPixelFormatAttribute.NSOpenGLPFASamples NSOpenGLPFASamples; public static const int NSOpenGLPFAScreenMask = 84; public static const int NSOpenGLPFASingleRenderer = 71; -public static const int NSOpenGLPFAStencilSize = 13; -public static const int NSOpenGLPFAStereo = 6; +alias Cocoa.NSOpenGLPixelFormatAttribute.NSOpenGLPFAStencilSize NSOpenGLPFAStencilSize; +alias Cocoa.NSOpenGLPixelFormatAttribute.NSOpenGLPFAStereo NSOpenGLPFAStereo; public static const int NSOpenGLPFASupersample = 60; public static const int NSOpenGLPFAVirtualScreenCount = 128; public static const int NSOpenGLPFAWindow = 80; diff -r a2d82e6fd054 -r 580596d83ac4 dwt/internal/objc/cocoa/Cocoa.d --- a/dwt/internal/objc/cocoa/Cocoa.d Wed Dec 31 15:32:40 2008 +0100 +++ b/dwt/internal/objc/cocoa/Cocoa.d Wed Dec 31 15:46:19 2008 +0100 @@ -476,6 +476,48 @@ +// NSOpenGL.h +enum NSOpenGLPixelFormatAttribute : uint +{ + NSOpenGLPFAAllRenderers = 1, + NSOpenGLPFADoubleBuffer = 5, + NSOpenGLPFAStereo = 6, + NSOpenGLPFAAuxBuffers = 7, + NSOpenGLPFAColorSize = 8, + NSOpenGLPFAAlphaSize = 11, + NSOpenGLPFADepthSize = 12, + NSOpenGLPFAStencilSize = 13, + NSOpenGLPFAAccumSize = 14, + NSOpenGLPFAMinimumPolicy = 51, + NSOpenGLPFAMaximumPolicy = 52, + NSOpenGLPFAOffScreen = 53, + NSOpenGLPFAFullScreen = 54, + NSOpenGLPFASampleBuffers = 55, + NSOpenGLPFASamples = 56, + NSOpenGLPFAAuxDepthStencil = 57, + NSOpenGLPFAColorFloat = 58, + NSOpenGLPFAMultisample = 59, + NSOpenGLPFASupersample = 60, + NSOpenGLPFASampleAlpha = 61, + NSOpenGLPFARendererID = 70, + NSOpenGLPFASingleRenderer = 71, + NSOpenGLPFANoRecovery = 72, + NSOpenGLPFAAccelerated = 73, + NSOpenGLPFAClosestPolicy = 74, + NSOpenGLPFARobust = 75, + NSOpenGLPFABackingStore = 76, + NSOpenGLPFAMPSafe = 78, + NSOpenGLPFAWindow = 80, + NSOpenGLPFAMultiScreen = 81, + NSOpenGLPFACompliant = 83, + NSOpenGLPFAScreenMask = 84, + NSOpenGLPFAPixelBuffer = 90, + NSOpenGLPFAAllowOfflineRenderers = 96, + NSOpenGLPFAVirtualScreenCount = 128 +} + + + // NSParagraphStyle.h enum NSLineBreakMode { diff -r a2d82e6fd054 -r 580596d83ac4 dwt/opengl/GLCanvas.d --- a/dwt/opengl/GLCanvas.d Wed Dec 31 15:32:40 2008 +0100 +++ b/dwt/opengl/GLCanvas.d Wed Dec 31 15:46:19 2008 +0100 @@ -7,6 +7,9 @@ * * Contributors: * IBM Corporation - initial API and implementation + * + * Port to the D programming language: + * Jacob Carlborg *******************************************************************************/ module dwt.opengl.GLCanvas; @@ -23,6 +26,9 @@ import dwt.widgets.Event; import dwt.widgets.Listener; +import dwt.internal.objc.cocoa.Cocoa; +import dwt.opengl.GLData; + /** * GLCanvas is a widget capable of displaying OpenGL content. * @@ -36,7 +42,7 @@ public class GLCanvas : Canvas { NSOpenGLView glView; NSOpenGLPixelFormat pixelFormat; - static final int MAX_ATTRIBUTES = 32; + static const int MAX_ATTRIBUTES = 32; /** * Create a GLCanvas widget using the attributes described in the GLData @@ -109,14 +115,14 @@ attrib [pos++] = data.samples; } attrib [pos++] = 0; - pixelFormat = cast(NSOpenGLPixelFormat)new NSOpenGLPixelFormat().alloc(); + pixelFormat = cast(NSOpenGLPixelFormat)(new NSOpenGLPixelFormat()).alloc(); if (pixelFormat is null) { dispose (); DWT.error (DWT.ERROR_UNSUPPORTED_DEPTH); } - pixelFormat.initWithAttributes(attrib); + pixelFormat.initWithAttributes((cast(NSOpenGLPixelFormatAttribute[])attrib).ptr); - glView = cast(NSOpenGLView)new NSOpenGLView().alloc(); + glView = cast(NSOpenGLView)(new NSOpenGLView()).alloc(); if (glView is null) { dispose (); DWT.error (DWT.ERROR_UNSUPPORTED_DEPTH); @@ -125,7 +131,7 @@ glView.setAutoresizingMask(OS.NSViewWidthSizable | OS.NSViewHeightSizable); parent.view.addSubview(glView); - Listener listener = new Listener () { + Listener listener = new class () Listener { public void handleEvent (Event event) { switch (event.type) { case DWT.Dispose: @@ -137,6 +143,7 @@ if (pixelFormat !is null) pixelFormat.release(); pixelFormat = null; break; + default: } } }; diff -r a2d82e6fd054 -r 580596d83ac4 dwt/opengl/GLData.d --- a/dwt/opengl/GLData.d Wed Dec 31 15:32:40 2008 +0100 +++ b/dwt/opengl/GLData.d Wed Dec 31 15:46:19 2008 +0100 @@ -7,6 +7,9 @@ * * Contributors: * IBM Corporation - initial API and implementation + * + * Port to the D programming language: + * Jacob Carlborg *******************************************************************************/ module dwt.opengl.GLData;