Horde3D http://www.horde3d.org/forums/ |
|
Horde3DGUI - Help needed. http://www.horde3d.org/forums/viewtopic.php?f=6&t=1065 |
Page 1 of 2 |
Author: | phoenix64 [ 01.01.2010, 21:44 ] |
Post subject: | Horde3DGUI - Help needed. |
There is one thing that is missing in Horde3D - and that's a proper GUI system, integrated into the engine, easy to use, as powerful as possible and configurable like Horde3D is. I actually tried to write a GUI system that is good enough for me, and would aks others who think the same to help me with this quite large task. ![]() ![]() (Now I only have to find a way to get rid of that KSnapshot icon in the images -.-) Features: - Implemented as a scene node, allows for 3D GUIs and 2D ones without any difference. - Using as little batches as possible (although rebuilding them can still be optimized). - GUI elements implemented so far: Button, Label, Frame. - Completely skinnable. - Using a mix out of relative and absolute (pixel) coordinates allowing for pixel-accurate layouts at any window size. - High-quality font rendering with any ttf font at any size using FreeType and dynamic glyph caching. To be implemented: - More GUI elements. MUCH more. - The font system needs some love, especially kerning. - Plugin system for own gui elements. Source Code: http://github.com/mgottschlag/Horde3DGUI I really need help with this, and I think this is something important for Horde3D. I know it is still in a very early phase, but nevertheless I posted it to get hints with the overall design. There isn't much documentation on the extension yety, sorry, I'll start with that right now. |
Author: | Volker [ 01.01.2010, 22:21 ] |
Post subject: | Re: Horde3DGUI - Help needed. |
Great work so far. Apart from kerning or other graphical issues,... how do you do the interaction? I think having something like flick lists etc. would be nice, but requires kinematic scrolling and some kind of "gesture" recognition to differenciate between klicks and slides. |
Author: | phoenix64 [ 01.01.2010, 22:53 ] |
Post subject: | Re: Horde3DGUI - Help needed. |
Added some doxygen comments to the C++ bindings. Quote: how do you do the interaction? I think having something like flick lists etc. would be nice, but requires kinematic scrolling and some kind of "gesture" recognition to differenciate between klicks and slides. Well, I'm not quite there yet, nearly no input handling yet ![]() That would be most probably implemented on the GUI element level though, the rest is just passing through mouse movement and keyboard hits. The only special part in the interaction currently is computing the local coordinates from the camera direction really ![]() |
Author: | marciano [ 01.01.2010, 23:22 ] |
Post subject: | Re: Horde3DGUI - Help needed. |
Thanks phoenix, this looks really promising! BTW, do you happen to know Sean Barret's public domain truetype rasterizer? It is just one file and could avoid the FreeType dependency. |
Author: | phoenix64 [ 02.01.2010, 00:32 ] |
Post subject: | Re: Horde3DGUI - Help needed. |
hm, although that rasterizer at least looks as if it produced uglier glyphs (no hints used, no real subpixel rendering). |
Author: | swiftcoder [ 03.01.2010, 03:29 ] |
Post subject: | Re: Horde3DGUI - Help needed. |
marciano wrote: BTW, do you happen to know Sean Barret's public domain truetype rasterizer? It is just one file and could avoid the FreeType dependency. He has a goldmine of tiny software - I hadn't even seen that one before.phoenix64 wrote: hm, although that rasterizer at least looks as if it produced uglier glyphs (no hints used, no real subpixel rendering). Probably, but then again, freetype is a fairly heavy dependency on platforms where it isn't installed by default: i.e. Windows and Mac (Mac has freetype, but there have been many issues with the version installed by default).
|
Author: | Volker [ 03.01.2010, 13:58 ] |
Post subject: | Re: Horde3DGUI - Help needed. |
I think for an extension it would be ok to have freetype2 as a dependency. Since it doesn't have other dependencies it is even more lightweight than e.g. the sound extension with OpenAL. And with it's ability to run on ARM Cpus it would be also able to use it with mobile devices. |
Author: | phoenix64 [ 03.01.2010, 21:07 ] |
Post subject: | Re: Horde3DGUI - Help needed. |
Well, I definately plan to integrate that text library. Just not as the only solution, but rather as a compile-time option. Oh, and kerning is implemented in the current git. EDIT: I have now implemented font rendering using the alternative library, and the text actually looks better in 3D - because it is washed out much more, which means that larger bitmaps are created, while freetype currently there suffers because of aliasing effects as I render much smaller polygons with sharp edges. For 2D GUIs, FreeType probably is much better though as long as its output is rendered 1:1. EDIT2: Can anyone now maybe test it on windows for me? |
Author: | Volker [ 04.01.2010, 11:57 ] | ||
Post subject: | Re: Horde3DGUI - Help needed. | ||
I only did a quick test with VS2005 and apart from some very small changes it did run quite well. Didn't checked the CMake configuration but instead created some VS project files.
|
Author: | marciano [ 05.01.2010, 01:13 ] |
Post subject: | Re: Horde3DGUI - Help needed. |
I just tried out the demo and must say it is pretty cool. Great job you are doing there phoenix! Also, having both font rendering options is a good thing. As already stated, stb_truetype still seems to be inferior in quality and performance compared to freetype (see Sean's comment here) but being able to avoid that huge dependency can still be a win. Everyone can decide now what he prefers. BTW, there are a lot of type conversion warnings but they should be easy to clean up later. |
Author: | phoenix64 [ 05.01.2010, 19:18 ] |
Post subject: | Re: Horde3DGUI - Help needed. |
Quote: BTW, there are a lot of type conversion warnings but they should be easy to clean up later. I don't see those with GCC - someone with msvc please provide a patch if you can. Also I fixed the quality problems with freetype by adding more padding and added check box elements. More to come later. ![]() Oh, and I already have some points which imho could be improved in Horde3D, e.g.: - Creating unique names for dynamically created resources (also added to the outside API for manually creating resources on the user side) like "internal_resource_124521". - Extensions currently are not what they should be - they usually have to be compiled into the engine as horde3ds internals are usually hidden to the outer world. This is a good thing, but it greatly limits external plugins. I currently don't see any real workaround, to me exporting the internals and adding a version check to be used by plugins is the only thing that could work. - Texture mipmaps - can they somehow automatically produced? I didn't see any solution when I created the font texture, while I would expect it to automatically generate smaller mipmaps (that OpenGL variable is set somewhere for mipmap textures), I had to manually create all mipmaps for mipmapping to work properly. Probably my mistake, please someone help me there. - Several other points I have currently forgotten. Next on my TODO list are now finally edit boxes, modal widgets, list boxes, GUI layout resources (like scene graph resources). Edit: Oh, and many thanks to Volker for the patch. Sry, I won't be able to keep the project files up to date. |
Author: | marciano [ 05.01.2010, 23:12 ] |
Post subject: | Re: Horde3DGUI - Help needed. |
Sorry, it is too many to fix them quickly now, so here is the list. Float to int conversions are quite slow. If you can't avoid them and are fine with rounding instead of truncation, you can use ftoi_r from utMath.h for better performance. Code: Warning 1 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 120 Warning 2 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 121 Warning 3 warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 85 Warning 4 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 145 Warning 5 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 154 Warning 6 warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\checkbox.cpp 135 Warning 7 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 120 Warning 8 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 121 Warning 9 warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 85 Warning 10 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 145 Warning 11 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 154 Warning 12 warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\extension.cpp 334 Warning 13 warning C4267: 'initializing' : conversion from 'size_t' to 'stbtt_int32', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\stb_truetype.h 1769 Warning 14 warning C4244: '=' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\fontfileresource.cpp 162 Warning 15 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 120 Warning 16 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 121 Warning 17 warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 85 Warning 18 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 145 Warning 19 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 154 Warning 20 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 120 Warning 21 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 121 Warning 22 warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 85 Warning 23 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 145 Warning 24 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 154 Warning 25 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 120 Warning 26 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 121 Warning 27 warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 85 Warning 28 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 145 Warning 29 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 154 Warning 30 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 84 Warning 31 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 109 Warning 32 warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 150 Warning 33 warning C4267: 'argument' : conversion from 'size_t' to 'Horde3DGUI::ElementHandle', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 308 Warning 34 warning C4267: 'return' : conversion from 'size_t' to 'Horde3DGUI::ElementHandle', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 309 Warning 35 warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 383 Warning 36 warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 383 Warning 37 warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 385 Warning 38 warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 385 Warning 39 warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 390 Warning 40 warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 390 Warning 41 warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 391 Warning 42 warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 391 Warning 43 warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 406 Warning 44 warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 406 Warning 45 warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 408 Warning 46 warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 408 Warning 47 warning C4018: '>' : signed/unsigned mismatch c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 454 Warning 48 warning C4267: 'argument' : conversion from 'size_t' to 'uint32', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 488 Warning 49 warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 509 Warning 50 warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 509 Warning 51 warning C4244: '=' : conversion from 'double' to 'float', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 534 Warning 52 warning C4244: '=' : conversion from 'double' to 'float', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 535 Warning 53 warning C4244: '=' : conversion from 'double' to 'float', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 539 Warning 54 warning C4244: '=' : conversion from 'double' to 'float', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 540 Warning 55 warning C4244: '=' : conversion from 'double' to 'float', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 544 Warning 56 warning C4244: '=' : conversion from 'double' to 'float', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 545 Warning 57 warning C4244: '=' : conversion from 'double' to 'float', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 549 Warning 58 warning C4244: '=' : conversion from 'double' to 'float', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\gui.cpp 550 Warning 59 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 120 Warning 60 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 121 Warning 61 warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 85 Warning 62 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 145 Warning 63 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 154 Warning 64 warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guielement.cpp 166 Warning 65 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 120 Warning 66 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 121 Warning 67 warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 85 Warning 68 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 145 Warning 69 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 154 Warning 70 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 120 Warning 71 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 121 Warning 72 warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 85 Warning 73 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 145 Warning 74 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 154 Warning 75 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 120 Warning 76 warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\screenposition.h 121 Warning 77 warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 85 Warning 78 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 145 Warning 79 warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\users\nicolas\desktop\mgottschlag-horde3dgui-4a4e495\extensions\gui\source\guiskinresource.h 154 Warning 80 warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data c:\Users\Nicolas\Desktop\mgottschlag-Horde3DGUI-4a4e495\Extensions\GUI\Sample\app.cpp 355 Warning 81 warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data c:\Users\Nicolas\Desktop\mgottschlag-Horde3DGUI-4a4e495\Extensions\GUI\Sample\app.cpp 355 Thanks for your feedback, that's always welcome. phoenix64 wrote: - Creating unique names for dynamically created resources (also added to the outside API for manually creating resources on the user side) like "internal_resource_124521". We have something like that for resource cloning: if you specify an empty name string, a unique name is generated. Something similar could make sense for addResource. phoenix64 wrote: - Texture mipmaps - can they somehow automatically produced? I didn't see any solution when I created the font texture, while I would expect it to automatically generate smaller mipmaps (that OpenGL variable is set somewhere for mipmap textures), I had to manually create all mipmaps for mipmapping to work properly. Probably my mistake, please someone help me there. At the moment we are either loading them directly from dds or have GL generate them (GL_GENERATE_MIPMAP). But it makes definitely sense to have our own mip generation function in the future. phoenix64 wrote: - Extensions currently are not what they should be - they usually have to be compiled into the engine as horde3ds internals are usually hidden to the outer world. This is a good thing, but it greatly limits external plugins. I currently don't see any real workaround, to me exporting the internals and adding a version check to be used by plugins is the only thing that could work. We had this discussion before and my standpoint is that extensions are not meant as plugins (more like OGL or phpbb extensions, not like Photoshop plugins) and for a development library I don't see any advantage from dynamically linking add-ins. Extensions as DLLs would be slower (less global optimizations and function inlining), have memory allocation issues (freeing memory allocated in another DLL does not work) and would be unsafer (users can exchange extensions for cheating). They would only be marginally easier to use but cause major headaches under Windows with how to expose all classes (you can't pass most STL containers across DLLs). And they would compromise the encapsulation and abstraction that we have now (the strict separation between internal and external interface). Did I miss anything? ![]() phoenix64 wrote: Next on my TODO list are now finally edit boxes, modal widgets, list boxes, GUI layout resources (like scene graph resources). Looking forward to that. Keep up the great work! |
Author: | Volker [ 05.01.2010, 23:39 ] | ||
Post subject: | Re: Horde3DGUI - Help needed. | ||
I hate git, I didn't figure it out how to get the newest version, create a patch etc. using TortoiseGit... nevertheless, I have another patch, that contains some of the changes that seem to be not integrated yet, although some of them were in the last patch already..
|
Author: | phoenix64 [ 06.01.2010, 14:20 ] |
Post subject: | Re: Horde3DGUI - Help needed. |
Yeah, git sucks under windows. I'll probably change to mercurial in the near future. IAnd most of that changes already are incorporated in http://github.com/mgottschlag/Horde3DGU ... e11995ba89 . If you don't want plugins, then the current repository situtation sucks because extensions have to be integrated into the main repository. This imho would be totally ok if one had some kind of decentral development system (e.g. mercurial or git repos). What one wants is as many extensions as possible, especially extensions from third party developers like me - and the last thing someone wants is to merge 5 or 6 subversion repositories. And imho the community repo is no real solution either because development of horde3d is done somewhere else and usually the plugins are outdated and break with every merge into the community repository. The easier way would be to download the main repository and then just fetch from a extension repository which would be regularly rebased onto the main repository - and the extension repository then would be maintained by someone to who people can send pull requests from their own extension repositories. Quote: At the moment we are either loading them directly from dds or have GL generate them (GL_GENERATE_MIPMAP). How is GL_GENERATE_MIPMAP supposed to work? Seems like it does not at all when later manipulating the texture. Or did I miss something there? EDIT: See http://tortoisehg.bitbucket.org/. Great windows client. I'm just creating a repo the way I said now to test whether this really would help. EDIT2: http://bitbucket.org/mgottschlag/horde3d/ - Horde3D repo without extensions. I'll keep this updated, but would like to see something like this repo to be used officially. http://bitbucket.org/mgottschlag/horde3dext/ - A fork of the former repo, but with extensions. Includes the GUI extension, but nothing from the community repo. The good thing about such a layout is that merging between the repos is much easier than it is with svn and people who want to contribute just create their fork and send pull requests back for new extensions/patches. |
Author: | Orm [ 07.01.2010, 07:05 ] |
Post subject: | Re: Horde3DGUI - Help needed. |
Something you may want to consider is allowing the use of shaders on the GUI elements, if that is not already implemented. Other than suggesting that, I am too much of an OpenGL noob to be of much use here. ![]() Great work so far though! I am certain that I will find use of an extension like this in my student project. |
Page 1 of 2 | All times are UTC + 1 hour |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |