My biggest technical concern is coordinating the Cocoa event thread
against the Swing Event Dispatch Thread. I think it's going to be
relatively easy to get the various Cocoa peer code running, but
getting events flowing smoothly between them may take some doing.
Technical challenges:
1. Event dispatching
2. Graphics optimization (making it not flicker; making it fast)
3. Look & Feel code (Quaqua will go a long way to helping here)
Whether we use straight JNI, or JNA or JNIWrapper doesn't really
matter much. I prefer either JNA or JNIWrapper since straight JNI is
too easy to mess up. Writing the new toolkit for creating the native
Cocoa peers looks pretty straightforward too.
Like anything else, we should be able to get 90% of this done pretty
quickly. How quickly we get the last 10% depends a lot on how well
we architected our solution. To that end, I do think we should
orient our solution around Cocoa rather than Carbon.
Agreed on Cocoa; Carbon is a non-starter on 64-bit systems -- the SWT
guys are now working on a Cocoa port.
I've committed a skeleton AWT Toolkit for Mac OS X, which is included
in the default build:
j2se/src/solaris/classes/sun/awt/mac/CGToolkit.java
j2se/src/solaris/native/sun/awt/mac awt_CGToolkit.m
(Yes, solaris seems like an odd directory for this, but all Linux/BSD/
Solaris code is placed inside the j2se/src/solaris directory).
The AWT Toolkit can be used by setting awt.toolkit to
sun.awt.mac.CGToolkit (ie, -Dawt.toolkit=sun.awt.mac.CGToolkit)
This will output a working JVM in j2se/build/bsd-i586. For the initial
build, you make need to run make from top-level j2se/make directory.
Within the JDK sources you can find several toolkit implementation
examples:
Windows:
j2se/src/windows/classes/sun/awt/windows/
j2se/src/windows/native/sun/windows/
In the context of your listed technical challenges -- event
dispatching, graphics performance -- here's what I'd like find
answers to next;
- What is the right solution for getting a window on the screen,
drawing something?
- Is it possible to leverage the existing OpenGL pipeline?
-landonf
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Java-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/java-dev/email@hidden