-// Copyright 2003 Adam Megacz, see the COPYING file for licensing [LGPL]
+// Copyright 2004 Adam Megacz, see the COPYING file for licensing [LGPL]
// Authors: Brian Alliet and Evan Jones
package org.xwt.plat;
import gnu.gcj.RawData;
import org.xwt.util.*;
+import org.xwt.js.*;
import org.xwt.*;
import java.util.*;
public class Darwin extends POSIX {
+ private static final Class openGLClass = OpenGL.class;
static Darwin singleton;
private CarbonOpenGL openGL;
boolean jaguar; // true if we are on OS X >= 10.2
natInit();
}
+ protected Scheduler _getScheduler() { return new DarwinScheduler(); }
protected native void runApplicationEventLoop();
private class DarwinScheduler extends org.xwt.Scheduler {
public void run() {
private final class CarbonOpenGL extends OpenGL {
public RawData rawPixelFormat;
- public RawData rawSharedInterpreter;
+ public RawData rawSharedContext;
public int maxAglSurfaceTexSize;
public int maxSurfaceWidth;
public int maxSurfaceHeight;
private native boolean initPixelFormat();
- private native void initSharedInterpreter();
+ private native void initSharedContext();
public CarbonOpenGL() throws NotSupportedException {
if(!jaguar)
throw new NotSupportedException("OpenGL requires Mac OS X 10.2 or greater");
if(!initPixelFormat())
throw new NotSupportedException("Couldn't get an acceptable pixel format");
- initSharedInterpreter();
+ initSharedContext();
}
public void init() throws NotSupportedException {
}
maxSurfaceWidth = maxSurfaceHeight = maxAglSurfaceTexSize;
}
- protected native void activateSharedInterpreter();
+ protected native void activateSharedContext();
}
static abstract class CarbonSurface extends Surface.DoubleBufferedSurface {
CarbonMessage.add(new CarbonMessage() { public void perform() { GLCarbonPixelBuffer.this.natInit(); sem.release(); } });
sem.block();
}
- public native void activateInterpreter();
+ public native void activateContext();
protected void finalize() {
CarbonMessage.add(new CarbonMessage() { public void perform() { natCleanup(rawWindowRef,rawCTX); } });
gl.deleteTexture(textureName);
// The blit_lock ensures the window size does not change through the entire blit operation.
public void render() {
+ /*
blitLock();
while(pendingResize) blitWait();
+ */
if(needsReshape) {
needsReshape = false;
reshape(winWidth,winHeight);
clear();
Dirty(0,0,winWidth,winHeight);
- //Dirty(0,0,getWidth(),getHeight());
}
super.render();
flush();
+ /*
blitUnlock();
+ */
}
private native void reshape(int w, int h);
else
return /*new QZCarbonSufrace(b,framed)*/ null;
}
- protected Picture _createPicture() {
+ protected Picture _createPicture(JS r) {
if(openGL != null)
- return openGL._createPicture(true);
+ return openGL._createPicture(r, true);
else
return /*new QZCarbonPicture(data,w,h);*/ null;
}