00001 /* 00002 * OpenGL|ES 2 render system header 00003 * 00004 * This file is part of the "SoftPixel Engine" (Copyright (c) 2008 by Lukas Hermanns) 00005 * See "SoftPixelEngine.hpp" for license information. 00006 */ 00007 00008 #ifndef __SP_RENDERER_OPENGLES2_H__ 00009 #define __SP_RENDERER_OPENGLES2_H__ 00010 00011 00012 #include "Base/spStandard.hpp" 00013 00014 #if defined(SP_COMPILE_WITH_OPENGLES2) 00015 00016 00017 #include "RenderSystem/OpenGL/spOpenGLPipelineProgrammable.hpp" 00018 #include "RenderSystem/OpenGLES/spOpenGLES2Texture.hpp" 00019 00020 00021 namespace sp 00022 { 00023 namespace video 00024 { 00025 00026 00028 class SP_EXPORT OpenGLES2RenderSystem : public GLProgrammableFunctionPipeline 00029 { 00030 00031 public: 00032 00033 OpenGLES2RenderSystem(); 00034 ~OpenGLES2RenderSystem(); 00035 00036 /* === Render system information === */ 00037 00038 io::stringc getVersion() const; 00039 00040 s32 getMultitexCount() const; 00041 s32 getMaxLightCount() const; 00042 00043 bool queryVideoSupport(const EVideoFeatureQueries Query) const; 00044 00045 /* === Context functions === */ 00046 00047 void setupConfiguration(); 00048 00049 /* === Render states === */ 00050 00051 void setRenderState(const video::ERenderStates Type, s32 State); 00052 s32 getRenderState(const video::ERenderStates Type) const; 00053 00054 void disableTriangleListStates(); 00055 void disable3DRenderStates(); 00056 00057 /* === Rendering functions === */ 00058 00059 void setupMaterialStates(const MaterialStates* Material); 00060 00061 /* === Hardware mesh buffers === */ 00062 00063 void drawMeshBuffer(const MeshBuffer* MeshBuffer); 00064 00065 /* === Image drawing === */ 00066 00067 // todo 00068 00069 /* === Primitive drawing === */ 00070 00071 // todo 00072 00073 /* === Extra drawing functions === */ 00074 00075 // todo 00076 00077 /* === 3D drawing functions === */ 00078 00079 // todo 00080 00081 /* === Matrix controll === */ 00082 00083 void updateModelviewMatrix(); 00084 00085 }; 00086 00087 00088 } // /namespace video 00089 00090 } // /namespace sp 00091 00092 00093 #endif 00094 00095 #endif 00096 00097 00098 00099 // ================================================================================