Skip to main content

You Can Make It If You Try

Posted by editor on May 31, 2006 at 7:27 AM PDT

OpenGL + Swing == pretty!

While we're waiting for the Aerith project to work through the legalese and get their source online, there's the question of how they got such nice effects to play with Swing and be performant. Usually, that seems like one of those multivariant equations where you can maximize two variables -- pretty, Swing-based, and performant -- at the expense of the third.

But there's an interesting hint in today's Forums, that speaks to the specifics of the "latest features of Mustang" that Romain talked about at JavaOne while demoing Aerith. Considering he also talked about OpenGL/JOGL and how the overlays were just JPanels, it seems like there must be some secret sauce that pulls together OpenGL and Swing and makes them cohabitate in a nice high-performance way.

And I think that secret sauce is called GLJPanel, if I'm reading the tip from Chris Campbell in Re: [JAVA2D] Repaint flicker when mixing swing & heavyweight correctly:

You mention that your app "necessarily" contains a heavyweight; have you looked into using GLJPanel instead? GLJPanel allows for 100% correct mixing of JOGL and Swing in the same app without worrying about flickering issues, and in JDK 6 and beyond, it is fully accelerated when the OGL-based Java 2D pipeline is enabled.

Mixing OpenGL and Swing in the hardware-accelerated rendering pipeline? Sounds tasty.

Well, we've got Mustang on the Mac now, and there's a nightly build of JOGL for PPC Macs (and a milestone release that's a Univeral Binary for Intel Macs), so that might be fun little research project... if I can remember any of that JOGL stuff that I did two years ago (avert your eyes, children!)

Also in today's Forums,
kellyohair weighs in on the prospects of changing the JDK build process on Windows in
Re: Getting the JDK to use gcc.
"Speaking as someone that has bloody fingers from building on Windows, I cannot disagree with you. There are concerns here, but we won't know until we try. Solaris builds using Solaris compilers is probably not going to change, but then again building Solaris with gcc is just a small mountain to climb. Getting the Windows builds to use gcc would be a big mountain to climb. But perhaps this mountain needs to be conquered, or at least scoped out."

Back on the topic of all things GUI and animated, in today's Projects and
the Timing Framework project, originally introduced in the articles Timing is Everything and Time Again, has released a pack of updates. The new version migrates demos to their own subproject, adds a triggers package, moves interpolation classes to their own package, fixes bugs, and adds support for doubles in KeyValues because Romain insisted.

The Order Management API project hosts the proposed spec for JSR 264, which is in public review through June 11. The API "specifies minimum requirements for an Order Management System interface, supporting end-to-end creation and management of Products, Services and Resources, including Work Orders."

In Also in
Java Today
Offering another introduction to one of Java EE 5's marquee features, the SDN article The Java Persistence API - A Simpler Programming Model for Entity Persistenceby Rahul Biswas and Ed Ort offers an in-depth tutorial. "The Java Persistence API deals with the way relational data is mapped to Java objects ("persistent entities"), the way that these objects are stored in a relational database so that they can be accessed at a later time, and the continued existence of an entity's state even after the application that uses it ends. In addition to simplifying the entity persistence model, the Java Persistence API standardizes object-relational mapping."

Instead of writing general show impressions for a JavaOne wrapup feature, this year Daniel Steinberg focuses on this question of open sourcing Java, and Sun's two JavaOne announcements on the topic: a new license intended to make it easier to distribute the non-free JDK with certain Linux distributions, and a promise that the open sourcing of Java is, according to Executive VP of Software Rich Green, "not a question of whether, but a question of how." In Telling Stories at JavaOne, Daniel takes a thorough look at the content and context of Sun's JavaOne announcements, and surveys how they have been received by their intended audience in the open source community.

Kohsuke Kawaguchi deals with a Gripe about web services in today's Weblogs: "Arun brought a comment to his session to my attention, in which an user made some interesting comments about web services. Since I work on the JAXB RI, so I know a thing or two about the issue he's talking about."

Swing and Roundabouts 1: Event DTs, Evan Summers writes:
"JSR 296 aims to help Swing developers avoid common bad practices, eg. Swing apps that are "a tangle of actionPerformed methods that block the EDT." My last project was a tangle SwingWorkers upon SwingWorkers. This blog presents how I eventually untangled that application."

David Walend takes a listen to the podcast of his Community Corner mini-talk in
No Giant or Windmill, Just a Deranged Muppet, in which he offers
"A quick note about my talk on generics at JavaOne."

In today's
News Headlines

Registered users can submit news items for the href=""> News Page using our
news submission
. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the href=""> News RSS

Current and upcoming Java

Registered users can submit event listings for the href=""> Events Page using our href="">events submission form.
All submissions go through an editorial review before being posted to the

Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of it will be
archived along with other past issues in the href=""> Archive.

OpenGL + Swing == pretty!