Difference between revisions of "Texture Manager and OpenGLGraphic description"
Jerry finn (Talk | contribs) |
|||
Line 1: | Line 1: | ||
− | + | TextureManager class | |
Texturing mechanism in OpenGL is next: | Texturing mechanism in OpenGL is next: | ||
Line 13: | Line 13: | ||
- OpenGL should be implemented in it's own thread, else the convert textures will not appear to the drawing. | - 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 | + | - the textures should be sized as power of two, etc. and the scaling may take time to complete |
The conclusion is simple, | The conclusion is simple, |
Revision as of 14:42, 16 March 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;