X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Fplat%2FDarwin.java;h=c5c7e9ceb9669f827b6e098a5d113c67d0123722;hp=34cad445797e8689f90a6458375749cc0b37b104;hb=297fdbde87e6db4732448a0950d1141c7265c169;hpb=3591b88b94a6bb378af3d4abe6eb5233ce583104 diff --git a/src/org/ibex/plat/Darwin.java b/src/org/ibex/plat/Darwin.java index 34cad44..c5c7e9c 100644 --- a/src/org/ibex/plat/Darwin.java +++ b/src/org/ibex/plat/Darwin.java @@ -6,9 +6,12 @@ package org.ibex.plat; import gnu.gcj.RawData; import org.ibex.util.*; import org.ibex.js.*; -import org.ibex.*; +import org.ibex.graphics.*; +import org.ibex.core.*; +import org.ibex.net.*; public class Darwin extends POSIX { + public static void main(String[] s) throws Exception { org.ibex.core.Main.main(s); } private static final Class openGLClass = OpenGL.class; static Darwin singleton; private CarbonOpenGL openGL; @@ -93,7 +96,7 @@ public class Darwin extends POSIX { protected Scheduler _getScheduler() { return new DarwinScheduler(); } protected native void runApplicationEventLoop(); - private class DarwinScheduler extends org.ibex.Scheduler { + private class DarwinScheduler extends org.ibex.core.Scheduler { public void run() { new Thread() { public void run() { defaultRun(); } }.start(); runApplicationEventLoop(); @@ -130,7 +133,7 @@ public class Darwin extends POSIX { protected native void activateSharedContext(); } - static abstract class CarbonSurface extends Surface.DoubleBufferedSurface { + static abstract class CarbonSurface extends Surface { RawData rawWindowRef; int modifiers; int winWidth; @@ -207,7 +210,6 @@ public class Darwin extends POSIX { private native void natInit(); private static native void natCleanup(RawData rawWindowRef, RawData rawCTX); - private static final int fixupDimension(CarbonOpenGL gl, int n) { if(!gl.rectangularTextures) n = OpenGL.roundToPowerOf2(n); return Math.min(n,gl.maxAglSurfaceTexSize); @@ -235,11 +237,24 @@ public class Darwin extends POSIX { private final native void natInit(); private final native void flush(); private final native void clear(); + + private PixelBuffer pb; + public PixelBuffer getPixelBuffer() { return pb; } + + static class GLCarbonSurfacePixelBuffer extends GLCarbonPixelBuffer { + RawData rawCTX; + public native void activateContext(); + public GLCarbonSurfacePixelBuffer(RawData rawCTX, CarbonOpenGL gl) { + super(500, 500, gl); + this.rawCTX = rawCTX; + } + } public GLCarbonSurface(Box root, boolean framed, CarbonOpenGL gl) { super(root,framed); this.gl = gl; natInit(); + pb = new GLCarbonSurfacePixelBuffer(rawCTX, gl); } public void setLimits(int mnw,int mnh, int mxw, int mxh) { @@ -271,7 +286,7 @@ public class Darwin extends POSIX { reshape(winWidth,winHeight); clear(); - Dirty(0,0,winWidth,winHeight); + dirty(0,0,winWidth,winHeight); } super.render(); flush(); @@ -330,7 +345,7 @@ public class Darwin extends POSIX { else return /*new QZCarbonPicture(data,w,h);*/ null; } - protected org.ibex.Font.Glyph _createGlyph(org.ibex.Font f, char c) { + protected org.ibex.graphics.Font.Glyph _createGlyph(org.ibex.graphics.Font f, char c) { if(openGL != null) return openGL._createGlyph(f, c); else