Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Marvin Fröhlich

Pages: [1] 2 3 ... 12
Bugs / MOVED: UpdatingThread.TimingMode
« on: 15. December 2009, 08:38:41 PM »

News / New CommandLineParser (JAGaToo)
« on: 22. May 2009, 11:55:42 PM »
I have written a complete command line parser for the JAGaToo project. It can be used to parse the arguments from the command line. It is used in all of the xith-tk testcases now. So you can actually control the resolution, OpenGLLayer, etc. when running the tests though the command line (and not through the Xith3DTestLauncher).

You can query the accepted arguments by running it with the -h or --help argument.


News / HUD reimplementation
« on: 22. May 2009, 11:52:57 PM »
Good things come to those who wait... I proudly present: The new HUD implementation.

It is faster, cleaner, more pixel perfect and way easier and more comfortable to use in some cases.

The HUD3DTest ran at 2000 FPS with the old code. Now it runs at 5000 FPS.
The NumberLabelTest ran at 1000 FPS in best case with the old code. Now it runs at 5500 FPS.

The main new thing is about lightweight and heavyweight widgets. All widgets are drawn on a texture. Heavyweight widgets have their own texture (context) and lightweight widgets draw on the texture of the next heavyweight (grant-)parent container. This saves a lot of texture state changes in OpenGL, which is the main source of the new rendering speed. Almost all Widget types are lightweight by default. And almost all Widgets take an optional boolean parameter as first parameter to the constructor to define, if it is to be born as lightweight or heavyweight widget.

The HUD's ContentPane is a heavyweight widget by default. This means, it is backed by a texture of canvas resolution size. This can be a bit of memory. If you know, that you will only use a certain area of the screen for the HUD, you can reduce this memory consumption by either passing a false to the HUD contructor to make it create a lightweight ContentPane or you can create a smaller ContentPane and pass it to the HUD constructor or override the createDefaultContentPane() method of the HUD class and create it in there.

If you're using a lightweight ContentPane, all widgets added to it must be heavyweight. So you could use a lightweight ContentPane and add a heavyweight Panel of a smaller size somewhere to it and add your widgets to it.

If you want to drag a Widget by setting it draggable and moving it with the mouse, you should make it heavyweight. Otherwise it will be slow.

The List widget and Combobox widget have taken the largest amount of API changes. The List widget is using a ListModel as a data container for arbitrary data and doesn't use one Widget for each item to render the data to the HUD. This saves a lot of memory, is much easier to handle and should even be faster. The Combobox uses a List and hence uses a ListModel, too.

ListModel is an abstract class. And there are a few default implementations in the xith codebase. The most important one will be the TextListModel. You need an instance of ListModel to create a List widget. But for simplicity you can use the static method List.newTextList() to create a List with a TextListModel. This replaces the old TextList class. There are similar methods for the Combobox widget (newTextCombo()).

All widgets can have a dropshadow now. You can simply activate it through the setHasDropShadow() method. Windows have a drop shadow by default. If you want to change the drop shadow rendering code, you can implement your own version of the DropShadowFactory and attach it to the HUD.

Labels can have an optional icon, which is drawn left of the text.

I have repainted some of the widget textures for the default theme. So many of them will look a little nicer.

No HUD element takes jawa.awt.Font instances anymore. Everything is wrapped in HUDFont. You can get HUDFont instances through the HUDFont.getFont() method. This is used to let the font scale with the HUD resolution. This way texts will take the same percentual space on the HUD on different canvas resolutions, if a custom HUD resolution is defined. This scaling can be disabled (switch to the old behavior) by setting the HUDFont.setUseFontScaling() to false.

All widget background textures (BackgroundSettableWidgets) and the textures of Image widgets can be either stretched (default for images) or tiled (TILE_BOTH is default for background images). You should be careful with streched images and especially backgrounds, since they need to be drawn using AWT Graphics2D, which is awfully slow on DirectBufferedImages atm. Use tiling instead whereever you can.

IIRC these were the most important points of the new code.

Enjoy and please report any bugs.


Support / Problem with a BufferedImage backed by a ByteBuffer
« on: 16. May 2009, 11:47:39 PM »
This time I need support. Maybe someone can help me.

Please read this topic over at JGO (just my last posting as of today 01:42:58 (GMT+1)):,20445.msg166215.html#msg166215

I am at 98% with the HUD reimplementation. When this problem is solved, it is a big step towards completion.


News / Fight the spammers
« on: 01. May 2009, 11:20:30 PM »
I have restarted the fight against spammers here at I have upgraded to SMF 1.1.8 and was hoping, that I am now able to install the registration captcha again. But it didn't work. I hope, I can get it to work now.

I have deleted about 450 spammer accounts. I hope, I didn't delete a regular user account. But I don't think so. If I deleted your account, please re-register and take my apologize.


News / GLSL Shadow mapping
« on: 17. March 2009, 02:53:55 AM »
GLSL shadow mapping is now also working on ATI cards. The problem was, that the ATI driver doesn't like dynamic array indices for texture units in a shader program (very stupid!). Credits for finding this bug go to Mathias.


News / VBOs on Intel cards
« on: 19. November 2008, 12:47:18 AM »
I have generally disabled VBOs for Intel graphics cards, since they don't seem to support them. Please test, if there are any crashes on Intel cards when VBOs are or should be used.


General Discussion / MOVED: Drag and Drop using the HUD
« on: 10. September 2008, 10:44:45 PM »
This topic has been moved to Bugs.

I have moved this Thread into the new Bugs forum. This forum is only for collecting threads moved from other forums, that turned out to be bugs. Regular members are not allowed to post new topics there (but of course to reply to existing ones). I will use this forum to keep track of open bugs, since SMF doesn't provide a possibility to collect bookmarks.


News / ModelLoader changes
« on: 26. August 2008, 02:25:13 AM »
I have committed all of my latest changes to the ModelLoader API. All of the loaders (except for Cal3D and COLLADA, which will follow in the next days) have been ported to the new architecture, where more code resides in JAGaToo and factory interfaces are used to push the loaded data to Xith3D.

Now you don't need to use a specific loader for each model format. It is done the exact same way for all formats.

This is, how you load a model now:
Code: [Select]
Model model = ModelLoader.getInstance().loadModel( modelResource );

Simple, heh? :)

I have also fixed CelShading (if anyone cares).


News / Animated Model rendering performance boost
« on: 22. August 2008, 12:37:58 AM »
I have applied a patch, that will boost rendering performance of animated models by far. This will only affect models, that are already animated through the new architecture, that I am converting all models to atm. These are currently 3DS, MD2, MD3 and MD5. The other formats are either not animated or are not yet ported to the new architecture. In the end all model formats will be converted.

Check it out and enjoy the new speed :).


News / New MD3 loader implementation
« on: 09. August 2008, 10:43:17 PM »
I have written an MD3 loader from scratch and added it to JAGaToo/Xith3D.

Enjoy :)


News / 3DS loader reworked
« on: 08. August 2008, 04:48:00 PM »
I have completely reworked the 3ds (TDS) loader and ported it to JAGaToo. It fully supports 3ds animations and shared-copies now. I was able to load all of my test-models.


Support / Animated 3ds
« on: 27. July 2008, 01:52:22 AM »
I am currently trying to fix 3DS loader's animations. Can anyone provide me an animated testing model? I can't find one in the internet. Wel, I found a goblin model, which seem to have animations, but they seem to be broken, since not even blender is able to animate it. This would help me a lot.


Developer discussion / Texture filter
« on: 15. July 2008, 06:46:39 PM »
I am current working on the Appearance attributes. I have especially cleaned up the texture filters. Instead of strange names like NEAREST, LINEAR, LINEAR_MIPMAP_LINER, etc., which is very odd and which cannot be used uniformly for base-level- and multi-level-textures, I ended up with the following settings:



These terms are very well known from common game settings and everyone will know, what to choose from these values. The rendering code chooses the correct OpenGL-values from these enum elements (in a much cheaper way than before).

Now I wonder, if there is any good reason to keep different settings for mag- and min filter (in the API).

Here is my question:
Does anybody use (e.g.) POINT filter for mag and LINEAR filter for min (at the same time)? I guess, nobody will do this and we can have a much simpler API, where we only have the settings of the above min-filter, which applies the best available for both.

This means, that if TRILINEAR is selected, mag-filter would use BILINEAR and min-filter would use TRILINEAR. If POINT is selected, both would use POINT, etc.

What do you think?


Pages: [1] 2 3 ... 12