[RFE] LWJGL 3.0

Started by spasi, November 08, 2012, 13:23:54

Previous topic - Next topic

bobbo

Thank you spasi for the Javadocs! This makes it much easier for those of us who aren't greatly familiar with GL. Is it from https://anonymous:anonymous@cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/docs/man4/xhtml/? I was looking into a conversion process for this but it is above my abilities.

Also, I would like to suggest/request/beg that Applet support not be dropped. Browser support, even with an older technology (Isn't it a new implementation with JavaFX?) is very important, Java has almost as much market share as Flash and the technology is superior IMO. I feel this is one of the stronger points of LWJGL.

That JavaFX application is awesome, by the way!

spasi

Most of it is from the official OpenGL spec. I'm using a few bits and pieces from the khronos man pages where it makes sense, but it tends to be too verbose for javadoc and it also covers the Core profile functions only. In a newer build I'm auto-generating a link to the xml files for the core functions, you can click on it from inside the IDE to open a browser and read the full documentation. For deprecated functions I'm also generating a warning: This function is deprecated and unavailable in the Core profile. For extensions, I've added a url to the extension spec on the class javadoc.

jakj

Don't forget that some of us don't use IDEs. :P All I mean is, while it's fine for the information/notation to be optimized for IDE use, it should still be parseable by a human being at need.

spasi

Well it's just javadoc, so it's as human readable as javadoc can get. Here's a preview of GL11 in 3.0.

jakj

Quote from: spasi on December 30, 2012, 13:52:52
Here's a preview of GL11 in 3.0.

That looks great. I'm excited for 3.0.

quew8

I second that. I would settle for the javadocs alone, they will make this immensely more enjoyable, but with everything else rolling out in 3.0: wow. Thankyou so much for this.

mattdesl

I have two features I'd like to suggest. Not sure how difficult or feasible they would be to implement in the new display API.

1. No flickering on resize. This would make LWJGL games and especially apps (like Spine) a little more polished.

2. Basic drag and drop support. Especially files. Dragging and dropping files is IMHO a hundred times easier than dealing with file choosers -- especially if you have to use a file chooser like JFileChooser (eugh...) or TWL's. As LWJGL becomes a more popular choice for software apps (like Spine, 3D model viewers, etc), drag and drop seems appropriate.

arnaud_couturier

3.0 does look promising indeed.

I'm especially looking forward to the integration with JavaFX (or any other windowing system with the help of offscreen rendering)
I started a thread about it on JGO with gouessej (JOGL)
http://www.java-gaming.org/topics/jogl-in-javafx/26881/view.html



datSilencer

Hello.

I ask, no, I beg you guys to do something to enable multisampling/antialiasing capable device contexts for SWT. Hell, SWT´s GLCanvas is just a horrible mess (sobs...).

https://bugs.eclipse.org/bugs/show_bug.cgi?id=136514

Could there be a clean way to use LWJGL with SWT? For good or bad, I think SWT is one of the fastest GUI frameworks Java has to offer. I admit though I have yet to explore JavaFX in depth, but as far as implementing generic User Interface controls in applications, SWT gets the job done.

Actually, I think the JOGL folks went ahead and implemented their own GLCanvas!

https://jogamp.org/bugzilla/show_bug.cgi?id=484

Second thing, NVIDIA Optimus support. I believe it was mentioned that this was a planned feature for LWJGL 3 so I'm a happy groundhog.

Lastly, in the long run, if the intention is to truly modularize LWJGL, I would highly recommend adopting Gradle as a build system.

http://gradle.org

Of course it's not a trivial task by any means, but I've used it in very large code bases at my job and it truly works. Other large Java projects use it too (Spring, Hibernate and Tapestry). For example:

https://community.jboss.org/wiki/GradleWhy?_sscc=t

I thank you for this very cool library, and if I can do anything to improve it, let me know.

Cheers!

spasi

Progress update:

- LWJGL 3.0 now supports AL and CL in addition to GL. The first two are basically done, but we still need to add the OpenGL extensions we support in 2.x. There will be some filtering (obsolete extensions, etc), but it still is loads of work, especially documenting everything. Contributions on this would be very welcome! At the very least we'll need all ARB extensions and the latest EXT, AMD and NV ones. We can add more as needed after 3.0 is released.

- Support for the first windowing back-end is in, which is GLFW. It has most of the features we require, but it's also a work-in-progress (GLFW 3.0 is a rewrite, like LWJGL 3.0). Please consider anything related to the windowing system experimental. We might end-up dropping it if we find a better alternative.

The screenshot below shows one of the demos in the LWJGL 3.0 repo. It highlights one of the most important features in 3.0: multiple, resizable windows. Each window has its own OpenGL context. Both fractals are being rendered with OpenCL, the first on the GPU and the second on the CPU.


Krux

Great information here. I am really looking forward to javaFx, (and already postet there, before I knew that you are from the LWJGL team). Also do I like the idea of a GLCore class.

Edit:
Finally I did try to download and compile LWJGL 3.0, but it did not compile. At first It took more than a minute to Generate and at some time I always ended in an out of memory exception. Can't explain why 4GB should be ok?

Then most interesting I think is that LWJGL uses Kotlin internally. So as a Scala developer I am interested weather Kotlin has great benefits compared to Scala. From what I've seen so far Kotlin is very close to Scala, but not so functional as Scala. But all my experience come from examples from the internet.

Cornix

This sounds great! I am looking forward to this soo much. Thank you guys for your awesome work.

spasi

LWJGL 3 now has a dedicated Wiki.

It is not complete, but it has important information that I felt should readily be available to potential users and contributors. Please let me know if you'd like anything fixed, if something requires better explanation or if I've missed an important aspect of the project that deserves to be documented.

Recent changes:


  • OS X is now supported.
  • Updated GLFW to v3.0.3.
  • Added JavaDoc generation.
  • Added libffi bindings.
  • The required minimum JDK version is now 7.
  • Many fixes and improvements to code generation & documentation.



The wiki now has a long to-do list, so there's plenty more work to be done. The current plan is to wait for GLFW 3.0.4 (contains many important fixes) and then we'll release an alpha build for all platforms. If you'd like to try it out sooner, feel free to clone the project and build manually, I've tried to make it as easy as possible. If you encounter any issues, please do let me know.

Evil-Devil

Just curious, will the wiki be transcribed to the actual wiki? Or do you intend to stick with the Github Wiki?

spasi

Any information related to the development, especially important details useful to contributors, will likely stay on Github. Everything else could be copied/moved to the official wiki.