Difference between revisions of "Texture Manager and OpenGLGraphic description"

From LinuxMCE
Jump to: navigation, search
Line 31: Line 31:
 
- Geometry cache, it keeps all geometry with uniques IDs. It can be used for store local objects.
 
- Geometry cache, it keeps all geometry with uniques IDs. It can be used for store local objects.
 
std::map<std::string, MeshFrame*> Graphics;
 
std::map<std::string, MeshFrame*> Graphics;
 +
[[Category: Programmer's Guide]]

Revision as of 02:09, 6 September 2007

TextureManager class

Texturing mechanism in OpenGL is next:

- read the data in a buffer where you know the format (for instance RGB or RGBA)

- convert it from pixel surface to a texture

- get an index that may be used to "paint the geometry" using glEnable(GL_TEXTURE_2D) call using different parameters, as current color, transparency, etc.


Restrictions of OpenGL implementation: - OpenGL should be implemented in it's own thread, else the convert textures will not appear to the drawing.

- the textures should be sized as power of two, etc. and the scaling may take time to complete

The conclusion is simple,

The flow is next: - OpenGLEngine creates an TextureManager - at every frame at start we should

Manages multiple graphics and geometry lists:

- textures for pending for convert std::list <OpenGLGraphic*> WaitForConvert;

- texture indexes which needs to be removed std::list <OpenGLTexture> WaitForRelease;

- Geometry cache, it keeps all geometry with uniques IDs. It can be used for store local objects. std::map<std::string, MeshFrame*> Graphics;