changeset 116:580596d83ac4

Ported dwt.opengl.GLCanvas
author Jacob Carlborg <doob@me.com>
date Wed, 31 Dec 2008 15:46:19 +0100
parents a2d82e6fd054
children bb00974d5ded
files dwt/internal/cocoa/NSOpenGLPixelFormat.d dwt/internal/cocoa/OS.d dwt/internal/objc/cocoa/Cocoa.d dwt/opengl/GLCanvas.d dwt/opengl/GLData.d
diffstat 5 files changed, 65 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- 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 {
--- 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;
--- 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 
 {
--- 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 <doob@me.com>
  *******************************************************************************/
 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:
             }
         }
     };
--- 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 <doob@me.com>
  *******************************************************************************/
 module dwt.opengl.GLData;