Difference between revisions of "Ident TODO"
From CEGUI Wiki - Crazy Eddie's GUI System (Open Source)
Line 73: | Line 73: | ||
[18:53:09] BoomerBile it will dump them into the api docs | [18:53:09] BoomerBile it will dump them into the api docs | ||
</source> | </source> | ||
+ | |||
+ | == Adapt CEGUI System for multi-window support == | ||
+ | See: | ||
+ | https://bitbucket.org/cegui/cegui/pull-request/141/improved-ogre-renderer/diff#comment-5004142 |
Revision as of 18:01, 7 February 2015
Contents
- 1 CEGUI General
- 2 Opengl Renderers
- 3 Renderers
- 4 SVG
- 5 SampleBrowser
- 6 CEGUI docu
- 7 SVG Tessellator tests
- 8 Add tooltips to some demo
- 9 Add properties for the classes and maybe the entire output from the properties (such as done in the WidgetDemo) into the doxygen docs
- 10 Adapt CEGUI System for multi-window support
CEGUI General
- Texture filtering should use trilinear filtering, instead of bilinear for magnification in some (!) cases. Need to figure out which cases need which and implement a switch, etc
-
Replacing ColourRect with Colour would allow us to strip all per-vertex attributes for colours and allows us to use a highly performant uniform instead. People who want fancy fonts etc should just use Bitmap Fonts and Widgets can simply be changed to using different Images instead of applying Gradients with ColourRect there as well.http://cegui.org.uk/forum/viewtopic.php?f=6&t=6863 - setAlpha apparently triggers recreation of GeometryBuffer should be replaced by a uniform instead of applying it to the per-vertex attributes (Done by Henri - Todo:Check if this is really 100% bullet-proof)
- Check for the necessity and performance loss of unproject calls : d_owner->getRenderTarget().unprojectPoint(*d_geometry, in, p_out);
- There are some Colour features that are currently unused and entirely undocumented in the CEGUI Colour class. I suggest replacing them with my own Colour classes, which were added along with the ColourPicker, and keeping onyl reworked and documented existing stuff. ( I think there was HSB or something?)
Opengl Renderers
- Improve OpenGL Renderer(s) extra states functions (and also rename it):
- Add and also do the restore for: glUseProgram(0); glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,0);
see https://github.com/kortemik/RBDOOM-3-BFG/blob/cegui/neo/sys/sdl/sdl_glimp.cpp#L553 - http://cegui.org.uk/forum/viewtopic.php?f=10&t=6752&sid=6bb9fb4a04417b28278538ed3f89af57&p=31632#p31632
- What about blending and scissor test?
- Add and also do the restore for: glUseProgram(0); glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,0);
Renderers
- If applying the ColourRect changes is successful and performance-wise alright
, then it should be possible to use instancing for the vbo's, which basically allows to use a single VBO to render all windows. This whole procedure is supported by OpenGL 3.1+ Core (see: https://www.opengl.org/wiki/GLAPI/glDrawArraysInstanced ) and can therefore definitely be supported by the OGL3 Renderer. Probably D3D11 supports it as well (will have to look into it).After checking the instancing methods, I encountered that they are not really giving any advantage for low-complexity meshes. Still, there should be ways to reduce the amount of batches.
SVG
- Need to implement MSAA in all Renderers as alternative for the alpha blending AA
- Need to fix D3D11 Rendering of SVG demo
SampleBrowser
- Separate duties (input, Renderer-related stuff, etc) in different managers. Reduce the inheritation levels to a maximum of one. Simplify the classes. Make initialisation and deinitialisation more overlookable. Remove namespace "CEGUI" from all Sample-related stuff.
CEGUI docu
- Improve cegui docu:
[17:07:59] Ident we really need to fix the docu for how to set up an application for CEGUI [17:08:33] Ident and by "we" i mean someone except me [17:12:50] timotei Ident: Well, there is already one, isn't it? :P [17:13:07] Ident it lacks crucial info [17:13:12] timotei Like? [17:13:19] Ident how to deinitialise cegui [17:13:25] Ident how to update cegui exactly (code samples) [17:13:37] Ident for example the notifydisplaysizechanged [17:13:49] Ident or how to render in detail [17:14:11] Ident there were some posts in the forum in that regard too [17:14:20] Ident when i have time i look through all of them and update the api docu [17:14:21] timotei CEGUI_SamplesBrowser provides some examples as far as I know [17:14:24] Ident nah [17:14:31] Ident thats not a good place to look for this [17:14:32] timotei Or you mean, simple CEGUI-ed application? [17:14:35] Ident the rendering is super-specific [17:14:43] Ident and also some of it is hidden [17:14:55] Ident it doesnt make sense to look into SamplesBrowser [17:15:13] Ident thats not what the browser is there for [17:17:35] Ident how to make an application using cegui should be well documented with examples in the api docu [17:17:43] Ident this should be the only resource for this [17:17:57] timotei I see :) [17:17:59] Ident then- how to initialise resources, load layouts and use cegui - this is where the samples come into play [17:18:00] Ident because [17:18:12] Ident there is many different ways to set up a cegui application [17:18:21] Ident we cant cover all [17:18:39] Ident of course we can and should provide code snippetsd http://cegui.org.uk/forum/viewtopic.php?f=10&t=6772&p=31775#p31775
SVG Tessellator tests
Create em', it is easy according to mpreisler
[15:05:35] mpreisler just copy a .cpp file and fill it with your tests
Add tooltips to some demo
It is currently not covered anywhere. Or is it( need to check!)?
Add properties for the classes and maybe the entire output from the properties (such as done in the WidgetDemo) into the doxygen docs
[18:52:13] BoomerBile if you /*** this is the comment for class X [18:52:44] BoomerBile *** m_SomeVariable description [18:53:01] BoomerBile *** @property description [18:53:09] BoomerBile it will dump them into the api docs
Adapt CEGUI System for multi-window support
See: https://bitbucket.org/cegui/cegui/pull-request/141/improved-ogre-renderer/diff#comment-5004142