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=3a4ec126dcc08721956d8ceb1393767afc3c3029;hb=297fdbde87e6db4732448a0950d1141c7265c169;hpb=ac0b1db223ee818fa2fe812d8d2e18089781ee6a diff --git a/src/org/ibex/plat/Darwin.java b/src/org/ibex/plat/Darwin.java index 3a4ec12..c5c7e9c 100644 --- a/src/org/ibex/plat/Darwin.java +++ b/src/org/ibex/plat/Darwin.java @@ -96,7 +96,7 @@ public class Darwin extends POSIX { protected Scheduler _getScheduler() { return new DarwinScheduler(); } protected native void runApplicationEventLoop(); - private class DarwinScheduler extends org.ibex.util.Scheduler { + private class DarwinScheduler extends org.ibex.core.Scheduler { public void run() { new Thread() { public void run() { defaultRun(); } }.start(); runApplicationEventLoop(); @@ -133,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; @@ -210,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); @@ -238,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) { @@ -274,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();