Jump to content
Excelsior Forums

jsiepkes

Members
  • Content count

    0
  • Joined

  • Last visited

    Never

Everything posted by jsiepkes

  1. Hi all, Sometime I ago I did a quick evaluation of Excelsior JET for a project I am working on. Now that the project is more concrete I'm doing a more in depth evaluation of Excelsior JET to determine if we can you use for our project. I really like the fact that everything is compiled AOT which simplifies deployment, protects code and speeds up start up time. However I'm encountering a bit of a show stopper; I need a Window with a transparent background (Per-pixel transparency / Alpha channel transparency). With the standard Sun JVM I achieved this with JNA (https://jna.dev.java.net/). After fixing the JNA Field issue (which is described here: http://www.excelsior-usa.com/forum/index.php?topic=1687.0 ) I got some nasty null pointer exceptions from the transparency code. I decided to try out the JNA balloon example to test the JNA and Excelsior JET combination in a simpler environment. This is with the Sun JVM: This is with the Jet JVM: Even stranger is that when I run it on another PC with JET on it, the balloon looks even different (it has a piece on the right corner cut out of it), so something is definitely going wrong. I also tried the clock example; It also had issues with Excelsior JET. It was displaying graphical artefacts. Besides setting the REQUIRES_FIELD_ORDER field to false I didn't modify anything in JNA or in the balloon example. So I basically I have a couple of questions; How well does JNA currently work with Excelsior JET and is there an alternative way of getting a transparent Window with Excelsior JET ? Because the 'official' way ( http://java.sun.com/developer/technicalArticles/GUI/translucent_shaped_windows/ ) relies on com.sun stuff so thats not going to work with Excelsior JET. I haven't tried it yet, but would doing the same thing with JNI instead of JNA make any difference ? Regards, Jasper Edit: whoops, noticed that I incorreclty linked to the images.
  2. Excelsior JET + JNA to get a transparent window

    Sorry again for the late response, all kinds of work just keep messing up my schedule (yes I actually have a schedule ) I still encountered the problem with JNA 3.2.1, but like I said it doesnt pose a problem for me any more because I can achieve the same functionality trough a com.sun API which works in Excelsior JET. So anybody who wants a JFrame with pixel alpha transparency can just use the instructions at http://java.sun.com/developer/technicalArticles/GUI/translucent_shaped_windows/ with Excelsior JET.
  3. Excelsior JET + JNA to get a transparent window

    Hi zztop, Sorry for the delay, the last couple of days were kind of hectic here. I'll give it a shot tonight with JNA 3.2.1!
  4. Excelsior JET + JNA to get a transparent window

    I was running a compositing window manager at the time of the tests. As outlined in my first post my whole problem was that it worked with the official JDK, but not with JET.
  5. Excelsior JET + JNA to get a transparent window

    I tried the demo app which is attached to the article ( http://java.sun.com/developer/technicalArticles/GUI/translucent_shaped_windows/TranslucentShapes.zip ) on a F9 and F10 installation. But like I said I think my F9 and F10 X11 environments are borked.
  6. Excelsior JET + JNA to get a transparent window

    Why do you think so? Did you try it with JET? Now that you mention it; I tried it under the same Linux installations which also failed to do the JET + JNA 'trick'. Back then they also failed the 'official' transparency + JET method. At the time I assumed this was because of the use of restricted API (com.sun.* stuff). I tried the 'official' transparency method under Windows with JET and that works! I guess the JNA NullPointerException is probably due to some part of the JNA still not conforming to the Java Language spec ? The Xorg libs in my F9 and F10 environment are probably somehow messed up in such a way they do not work correclty with JET. The only thing I can think of what these installations have in common is that they both have NX installed, which replaces some X libs. This fixes my problem and makes it possible for us to use JET for the project, thanks for the help!
  7. Excelsior JET + JNA to get a transparent window

    Hi Kit, Your right, the Balloon Example works fine under windows, but it displays odd behaviour under Linux, weird. Well that's not really a problem for me since I'm only interested in Windows (for JET). I just develop under Linux. For completeness sake here are the Linux platforms I tested the balloon example on which have errors: -Fedora 9 (2.6.27.25-78.2.56.fc9.i686) with JNA 3.1.0 -Fedora 10 with JNA 3.1.0 Both are fully updated and use Sun JVM 1.6.0_14 I used the balloon example because I thought it would make an easy test case, guess not . My real problem is the Window with alpha transparency. If you look at the AlphaMaskDemo included with JNA that doesn't work for me on Windows or Linux (primary interested in Windows). First it complains about the field order the JVM uses; I fixed that with a hard hack by setting "REQUIRES_FIELD_ORDER = false" in JNA's Structure.java. This allows the program to start but as soon as you drag an image with Alpha Channel on it it gives a NullPointerException and it doesn't work. These are the JNA jars I used: http://members.casema.nl/siepkes/jna.jar http://members.casema.nl/siepkes/win32-x86.jar So the jna.jar's Structure.java only has the field order hard hack. Other then that its just plain JNA 3.1.0. The ShapedWindowDemo does work correctly, however the transparency used in that example just sets the alpha level of the entire application on a OS level, which is no good for me; I need per-pixel transparency (The BalloonExample also uses the alpha level set by the OS technique for the shadow, not per pixel transparency).
×