From d8fe8dda6ab9a287f3fde89557b805d88eb2daad Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 1 Jul 2009 10:13:51 +0000 Subject: [PATCH] Build for OpenGL ES (2) --- panda/src/gles2gsg/gles2gsg.h | 38 ++++----- panda/src/glesgsg/glesgsg.h | 78 +++++++++---------- .../glstuff/glGraphicsStateGuardian_src.cxx | 42 +++++++++- .../src/glstuff/glGraphicsStateGuardian_src.h | 6 ++ panda/src/glstuff/glShaderContext_src.I | 4 + panda/src/glstuff/glShaderContext_src.cxx | 7 ++ panda/src/glstuff/glShaderContext_src.h | 4 + panda/src/glstuff/glmisc_src.cxx | 2 + 8 files changed, 120 insertions(+), 61 deletions(-) diff --git a/panda/src/gles2gsg/gles2gsg.h b/panda/src/gles2gsg/gles2gsg.h index c72bac20b2..a87dc7b90e 100644 --- a/panda/src/gles2gsg/gles2gsg.h +++ b/panda/src/gles2gsg/gles2gsg.h @@ -45,25 +45,25 @@ #include // This helps to keep the source clean of hundreds of #ifdefs. -#ifdef OPENGLES_2 - #define GL_RENDERBUFFER_EXT GL_RENDERBUFFER - #define GL_FRAMEBUFFER_EXT GL_FRAMEBUFFER - #define GL_DRAW_FRAMEBUFFER_EXT GL_FRAMEBUFFER - #define GL_READ_FRAMEBUFFER_EXT GL_FRAMEBUFFER - #define GL_FRAMEBUFFER_COMPLETE_EXT GL_FRAMEBUFFER_COMPLETE - #define GL_FRAMEBUFFER_UNSUPPORTED_EXT GL_FRAMEBUFFER_UNSUPPORTED - #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT - #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT - #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS - #define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT GL_FRAMEBUFFER_INCOMPLETE_FORMATS - #define GL_DEPTH_ATTACHMENT_EXT GL_DEPTH_ATTACHMENT - #define GL_COLOR_ATTACHMENT0_EXT GL_COLOR_ATTACHMENT0 - #define GL_STENCIL_ATTACHMENT_EXT GL_STENCIL_ATTACHMENT - #define GL_DEPTH_COMPONENT24 GL_DEPTH_COMPONENT24_OES - #define GL_DEPTH_COMPONENT32 GL_DEPTH_COMPONENT32_OES - #define GL_TEXTURE_3D GL_TEXTURE_3D_OES - #define GL_MAX_3D_TEXTURE_SIZE GL_MAX_3D_TEXTURE_SIZE_OES -#endif +typedef char GLchar; +#define GL_RENDERBUFFER_EXT GL_RENDERBUFFER +#define GL_FRAMEBUFFER_EXT GL_FRAMEBUFFER +#define GL_DRAW_FRAMEBUFFER_EXT GL_FRAMEBUFFER +#define GL_READ_FRAMEBUFFER_EXT GL_FRAMEBUFFER +#define GL_FRAMEBUFFER_COMPLETE_EXT GL_FRAMEBUFFER_COMPLETE +#define GL_FRAMEBUFFER_UNSUPPORTED_EXT GL_FRAMEBUFFER_UNSUPPORTED +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT GL_FRAMEBUFFER_INCOMPLETE_FORMATS +#define GL_DEPTH_ATTACHMENT_EXT GL_DEPTH_ATTACHMENT +#define GL_COLOR_ATTACHMENT0_EXT GL_COLOR_ATTACHMENT0 +#define GL_STENCIL_ATTACHMENT_EXT GL_STENCIL_ATTACHMENT +#define GL_DEPTH_COMPONENT24 GL_DEPTH_COMPONENT24_OES +#define GL_DEPTH_COMPONENT32 GL_DEPTH_COMPONENT32_OES +#define GL_TEXTURE_3D GL_TEXTURE_3D_OES +#define GL_MAX_3D_TEXTURE_SIZE GL_MAX_3D_TEXTURE_SIZE_OES +#define GL_SAMPLER_3D GL_SAMPLER_3D_OES #undef SUPPORT_IMMEDIATE_MODE #define APIENTRY diff --git a/panda/src/glesgsg/glesgsg.h b/panda/src/glesgsg/glesgsg.h index 42d58841a1..8d1cb784b7 100644 --- a/panda/src/glesgsg/glesgsg.h +++ b/panda/src/glesgsg/glesgsg.h @@ -50,46 +50,44 @@ #endif // This helps to keep the source clean of hundreds of #ifdefs. -#ifdef OPENGLES_1 - #define GL_NONE GL_NONE_OES - #define GL_RENDERBUFFER_EXT GL_RENDERBUFFER_OES - #define GL_FRAMEBUFFER_EXT GL_FRAMEBUFFER_OES - #define GL_DRAW_FRAMEBUFFER_EXT GL_FRAMEBUFFER_OES - #define GL_READ_FRAMEBUFFER_EXT GL_FRAMEBUFFER_OES - #define GL_COLOR_ATTACHMENT0_EXT GL_COLOR_ATTACHMENT0_OES - #define GL_DEPTH_ATTACHMENT_EXT GL_DEPTH_ATTACHMENT_OES - #define GL_STENCIL_ATTACHMENT_EXT GL_STENCIL_ATTACHMENT_OES - #define GL_FRAMEBUFFER_COMPLETE_EXT GL_FRAMEBUFFER_COMPLETE_OES - #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES - #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES - #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES - #define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES - #define GL_FRAMEBUFFER_UNSUPPORTED_EXT GL_FRAMEBUFFER_UNSUPPORTED_OES - #define GL_DEPTH_COMPONENT GL_DEPTH_COMPONENT24_OES - #define GL_DEPTH_STENCIL GL_DEPTH_STENCIL_OES - #define GL_DEPTH_STENCIL_EXT GL_DEPTH_STENCIL_OES - #define GL_UNSIGNED_INT_24_8_EXT GL_UNSIGNED_INT_24_8_OES - #define GL_DEPTH24_STENCIL8_EXT GL_DEPTH24_STENCIL8_OES - #define GL_DEPTH_COMPONENT16 GL_DEPTH_COMPONENT16_OES - #define GL_DEPTH_COMPONENT24 GL_DEPTH_COMPONENT24_OES - #define GL_DEPTH_COMPONENT32 GL_DEPTH_COMPONENT32_OES - #define GL_TEXTURE_CUBE_MAP GL_TEXTURE_CUBE_MAP_OES - #define GL_TEXTURE_CUBE_MAP_POSITIVE_X GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES - #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES - #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES - #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES - #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES - #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES - #define GL_MAX_CUBE_MAP_TEXTURE_SIZE GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES - #define GL_MIRRORED_REPEAT GL_MIRRORED_REPEAT_OES - #define GL_RGB5_A1 GL_RGB5_A1_OES - #define GL_RGBA4 GL_RGBA4_OES - #define GL_RGB8 GL_RGB8_OES - #define GL_RGBA8 GL_RGBA8_OES - #define GL_FUNC_ADD GL_FUNC_ADD_OES - #define GL_FUNC_SUBTRACT GL_FUNC_SUBTRACT_OES - #define GL_FUNC_REVERSE_SUBTRACT GL_FUNC_REVERSE_SUBTRACT_OES -#endif +#define GL_NONE GL_NONE_OES +#define GL_RENDERBUFFER_EXT GL_RENDERBUFFER_OES +#define GL_FRAMEBUFFER_EXT GL_FRAMEBUFFER_OES +#define GL_DRAW_FRAMEBUFFER_EXT GL_FRAMEBUFFER_OES +#define GL_READ_FRAMEBUFFER_EXT GL_FRAMEBUFFER_OES +#define GL_COLOR_ATTACHMENT0_EXT GL_COLOR_ATTACHMENT0_OES +#define GL_DEPTH_ATTACHMENT_EXT GL_DEPTH_ATTACHMENT_OES +#define GL_STENCIL_ATTACHMENT_EXT GL_STENCIL_ATTACHMENT_OES +#define GL_FRAMEBUFFER_COMPLETE_EXT GL_FRAMEBUFFER_COMPLETE_OES +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES +#define GL_FRAMEBUFFER_UNSUPPORTED_EXT GL_FRAMEBUFFER_UNSUPPORTED_OES +#define GL_DEPTH_COMPONENT GL_DEPTH_COMPONENT24_OES +#define GL_DEPTH_STENCIL GL_DEPTH_STENCIL_OES +#define GL_DEPTH_STENCIL_EXT GL_DEPTH_STENCIL_OES +#define GL_UNSIGNED_INT_24_8_EXT GL_UNSIGNED_INT_24_8_OES +#define GL_DEPTH24_STENCIL8_EXT GL_DEPTH24_STENCIL8_OES +#define GL_DEPTH_COMPONENT16 GL_DEPTH_COMPONENT16_OES +#define GL_DEPTH_COMPONENT24 GL_DEPTH_COMPONENT24_OES +#define GL_DEPTH_COMPONENT32 GL_DEPTH_COMPONENT32_OES +#define GL_TEXTURE_CUBE_MAP GL_TEXTURE_CUBE_MAP_OES +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES +#define GL_MIRRORED_REPEAT GL_MIRRORED_REPEAT_OES +#define GL_RGB5_A1 GL_RGB5_A1_OES +#define GL_RGBA4 GL_RGBA4_OES +#define GL_RGB8 GL_RGB8_OES +#define GL_RGBA8 GL_RGBA8_OES +#define GL_FUNC_ADD GL_FUNC_ADD_OES +#define GL_FUNC_SUBTRACT GL_FUNC_SUBTRACT_OES +#define GL_FUNC_REVERSE_SUBTRACT GL_FUNC_REVERSE_SUBTRACT_OES #undef SUPPORT_IMMEDIATE_MODE #define APIENTRY diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx index f02b203e3b..12246efa1e 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx @@ -849,10 +849,15 @@ reset() { #ifdef OPENGLES_2 _supports_glsl = true; #else - _supports_glsl = is_at_least_gl_version(2, 0); + #ifdef OPENGLES_1 + _supports_glsl = false; + #else + _supports_glsl = is_at_least_gl_version(2, 0); + #endif #endif _shader_caps._supports_glsl = _supports_glsl; +#ifndef OPENGLES_1 if (_supports_glsl) { _glAttachShader = (PFNGLATTACHSHADERPROC) get_extension_func(GLPREFIX_QUOTED, "AttachShader"); @@ -903,6 +908,7 @@ reset() { _glValidateProgram = (PFNGLVALIDATEPROGRAMPROC) get_extension_func(GLPREFIX_QUOTED, "ValidateProgram"); } +#endif #ifdef OPENGLES_2 // In OpenGL ES 2.x, FBO's are supported in the core. @@ -1394,12 +1400,14 @@ reset() { #endif // OPENGLES _dithering_enabled = false; +#ifndef OPENGLES_1 _current_shader = (Shader *)NULL; _current_shader_context = (CLP(ShaderContext) *)NULL; _vertex_array_shader = (Shader *)NULL; _vertex_array_shader_context = (CLP(ShaderContext) *)NULL; _texture_binding_shader = (Shader *)NULL; _texture_binding_shader_context = (CLP(ShaderContext) *)NULL; +#endif #ifdef OPENGLES_2 _max_lights = 0; @@ -1905,6 +1913,7 @@ void CLP(GraphicsStateGuardian):: end_scene() { GraphicsStateGuardian::end_scene(); +#ifndef OPENGLES_1 if (_vertex_array_shader_context != 0) { _vertex_array_shader_context->disable_shader_vertex_arrays(this); _vertex_array_shader = (Shader *)NULL; @@ -1920,6 +1929,7 @@ end_scene() { _current_shader = (Shader *)NULL; _current_shader_context = (CLP(ShaderContext) *)NULL; } +#endif _dlights.clear(); report_my_gl_errors(); @@ -2238,6 +2248,11 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader, } #endif +#ifdef OPENGLES_1 + if (!update_standard_vertex_arrays(force)) { + return false; + } +#else if (_current_shader_context == 0 || !_current_shader_context->uses_custom_vertex_arrays()) { // No shader, or a non-Cg shader. if (_vertex_array_shader_context != 0) { @@ -2263,6 +2278,7 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader, _vertex_array_shader = _current_shader; _vertex_array_shader_context = _current_shader_context; +#endif // OPENGLES_1 report_my_gl_errors(); return true; @@ -3132,9 +3148,11 @@ release_geom(GeomContext *gc) { //////////////////////////////////////////////////////////////////// ShaderContext *CLP(GraphicsStateGuardian):: prepare_shader(Shader *se) { +#ifndef OPENGLES_1 CLP(ShaderContext) *result = new CLP(ShaderContext)(se, this); if (result->valid()) return result; delete result; +#endif return NULL; } @@ -3145,8 +3163,10 @@ prepare_shader(Shader *se) { //////////////////////////////////////////////////////////////////// void CLP(GraphicsStateGuardian):: release_shader(ShaderContext *sc) { +#ifndef OPENGLES_1 CLP(ShaderContext) *gsc = DCAST(CLP(ShaderContext), sc); delete gsc; +#endif } //////////////////////////////////////////////////////////////////// @@ -3988,9 +4008,11 @@ do_issue_transform() { do_auto_rescale_normal(); } +#ifndef OPENGLES_1 if (_current_shader_context) { _current_shader_context->issue_parameters(this, Shader::SSD_transform); } +#endif report_my_gl_errors(); } @@ -4025,6 +4047,7 @@ do_issue_shade_model() { //////////////////////////////////////////////////////////////////// void CLP(GraphicsStateGuardian):: do_issue_shader() { +#ifndef OPENGLES_1 CLP(ShaderContext) *context = 0; Shader *shader = (Shader *)(_target_shader->get_shader()); if (shader) { @@ -4054,6 +4077,7 @@ do_issue_shader() { } report_my_gl_errors(); +#endif } //////////////////////////////////////////////////////////////////// @@ -6705,10 +6729,12 @@ set_state_and_transform(const RenderState *target, do_issue_color_scale(); _state_mask.set_bit(color_slot); _state_mask.set_bit(color_scale_slot); +#ifndef OPENGLES_1 if (_current_shader_context) { _current_shader_context->issue_parameters(this, Shader::SSD_color); _current_shader_context->issue_parameters(this, Shader::SSD_colorscale); } +#endif } int cull_face_slot = CullFaceAttrib::get_class_slot(); @@ -6785,12 +6811,14 @@ set_state_and_transform(const RenderState *target, _state_mask.set_bit(color_blend_slot); } +#ifndef OPENGLES_1 if (_target_shader != _state_shader) { //PStatTimer timer(_draw_set_state_shader_pcollector); do_issue_shader(); _state_shader = _target_shader; _state_mask.clear_bit(TextureAttrib::get_class_slot()); } +#endif int texture_slot = TextureAttrib::get_class_slot(); if (_target_rs->get_attrib(texture_slot) != _state_rs->get_attrib(texture_slot) || @@ -6848,9 +6876,11 @@ set_state_and_transform(const RenderState *target, //PStatTimer timer(_draw_set_state_material_pcollector); do_issue_material(); _state_mask.set_bit(material_slot); +#ifndef OPENGLES_1 if (_current_shader_context) { _current_shader_context->issue_parameters(this, Shader::SSD_material); } +#endif } int light_slot = LightAttrib::get_class_slot(); @@ -6868,8 +6898,10 @@ set_state_and_transform(const RenderState *target, do_issue_stencil(); _state_mask.set_bit(stencil_slot); } - + +#ifndef OPENGLES_1 if (_current_shader_context == 0) { +#endif int fog_slot = FogAttrib::get_class_slot(); if (_target_rs->get_attrib(fog_slot) != _state_rs->get_attrib(fog_slot) || !_state_mask.get_bit(fog_slot)) { @@ -6877,7 +6909,9 @@ set_state_and_transform(const RenderState *target, do_issue_fog(); _state_mask.set_bit(fog_slot); } +#ifndef OPENGLES_1 } +#endif int scissor_slot = ScissorAttrib::get_class_slot(); if (_target_rs->get_attrib(scissor_slot) != _state_rs->get_attrib(scissor_slot) || @@ -6967,6 +7001,9 @@ void CLP(GraphicsStateGuardian):: do_issue_texture() { DO_PSTATS_STUFF(_texture_state_pcollector.add_level(1)); +#ifdef OPENGLES_1 + update_standard_texture_bindings(); +#else if (_current_shader_context == 0 || !_current_shader_context->uses_custom_texture_bindings()) { // No shader, or a non-Cg shader. if (_texture_binding_shader_context != 0) { @@ -6985,6 +7022,7 @@ do_issue_texture() { _texture_binding_shader = _current_shader; _texture_binding_shader_context = _current_shader_context; +#endif } //////////////////////////////////////////////////////////////////// diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.h b/panda/src/glstuff/glGraphicsStateGuardian_src.h index 1d0c1161d3..fc73de35f0 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.h +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.h @@ -113,6 +113,7 @@ typedef void (APIENTRYP PFNGLLOADPALETTEFROMMODELVIEWMATRIXOESPROC) (void); typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); typedef void (APIENTRYP PFNGLWEIGHTPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#ifndef OPENGLES_1 // GLSL shader functions typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); @@ -138,6 +139,7 @@ typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, con typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); +#endif #endif // __EDG__ //////////////////////////////////////////////////////////////////// @@ -431,12 +433,14 @@ protected: bool _point_perspective; bool _vertex_blending_enabled; +#ifndef OPENGLES_1 PT(Shader) _current_shader; CLP(ShaderContext) *_current_shader_context; PT(Shader) _vertex_array_shader; CLP(ShaderContext) *_vertex_array_shader_context; PT(Shader) _texture_binding_shader; CLP(ShaderContext) *_texture_binding_shader_context; +#endif #ifdef SUPPORT_IMMEDIATE_MODE CLP(ImmediateModeSender) _sender; @@ -574,6 +578,7 @@ public: PFNGLACTIVESTENCILFACEEXTPROC _glActiveStencilFaceEXT; +#ifndef OPENGLES_1 // GLSL functions PFNGLATTACHSHADERPROC _glAttachShader; PFNGLCOMPILESHADERPROC _glCompileShader; @@ -599,6 +604,7 @@ public: PFNGLUNIFORM4FVPROC _glUniform4fv; PFNGLUNIFORMMATRIX4FVPROC _glUniformMatrix4fv; PFNGLVALIDATEPROGRAMPROC _glValidateProgram; +#endif GLenum _edge_clamp; GLenum _border_clamp; diff --git a/panda/src/glstuff/glShaderContext_src.I b/panda/src/glstuff/glShaderContext_src.I index 3e57a6d7b5..cb3780623a 100755 --- a/panda/src/glstuff/glShaderContext_src.I +++ b/panda/src/glstuff/glShaderContext_src.I @@ -12,6 +12,8 @@ // //////////////////////////////////////////////////////////////////// +#ifndef OPENGLES_1 + //////////////////////////////////////////////////////////////////// // Function: GLShaderContext::valid // Access: Public @@ -58,3 +60,5 @@ uses_custom_texture_bindings() { return true; } +#endif // OPENGLES_1 + diff --git a/panda/src/glstuff/glShaderContext_src.cxx b/panda/src/glstuff/glShaderContext_src.cxx index cdfd6af2ba..ee021308d8 100755 --- a/panda/src/glstuff/glShaderContext_src.cxx +++ b/panda/src/glstuff/glShaderContext_src.cxx @@ -12,6 +12,8 @@ // //////////////////////////////////////////////////////////////////// +#ifndef OPENGLES_1 + #ifdef HAVE_CG #include "Cg/cgGL.h" #endif @@ -132,6 +134,7 @@ CLP(ShaderContext)(Shader *s, GSG *gsg) : ShaderContext(s) { continue; } switch (param_type) { +#ifndef OPENGLES case GL_SAMPLER_1D_SHADOW: case GL_SAMPLER_1D: { Shader::ShaderTexSpec bind; @@ -142,6 +145,7 @@ CLP(ShaderContext)(Shader *s, GSG *gsg) : ShaderContext(s) { s->_tex_spec.push_back(bind); continue; } case GL_SAMPLER_2D_SHADOW: +#endif case GL_SAMPLER_2D: { Shader::ShaderTexSpec bind; bind._id = arg_id; @@ -168,12 +172,14 @@ CLP(ShaderContext)(Shader *s, GSG *gsg) : ShaderContext(s) { continue; } case GL_FLOAT_MAT2: case GL_FLOAT_MAT3: +#ifndef OPENGLES case GL_FLOAT_MAT2x3: case GL_FLOAT_MAT2x4: case GL_FLOAT_MAT3x2: case GL_FLOAT_MAT3x4: case GL_FLOAT_MAT4x2: case GL_FLOAT_MAT4x3: +#endif GLCAT.warning() << "GLSL shader requested an unrecognized matrix type\n"; continue; case GL_FLOAT_MAT4: { @@ -846,4 +852,5 @@ glsl_compile_shader(GSG *gsg) { return true; } +#endif // OPENGLES_1 diff --git a/panda/src/glstuff/glShaderContext_src.h b/panda/src/glstuff/glShaderContext_src.h index 0749685c2a..d9a2c5fe8d 100755 --- a/panda/src/glstuff/glShaderContext_src.h +++ b/panda/src/glstuff/glShaderContext_src.h @@ -12,6 +12,8 @@ // //////////////////////////////////////////////////////////////////// +#ifndef OPENGLES_1 + #include "pandabase.h" #include "string_utils.h" #include "internalName.h" @@ -99,3 +101,5 @@ private: #include "glShaderContext_src.I" +#endif // OPENGLES_1 + diff --git a/panda/src/glstuff/glmisc_src.cxx b/panda/src/glstuff/glmisc_src.cxx index e73da5a350..2a5e61a3ae 100644 --- a/panda/src/glstuff/glmisc_src.cxx +++ b/panda/src/glstuff/glmisc_src.cxx @@ -163,7 +163,9 @@ void CLP(init_classes)() { CLP(GeomMunger)::init_type(); CLP(GraphicsStateGuardian)::init_type(); CLP(IndexBufferContext)::init_type(); +#ifndef OPENGLES_1 CLP(ShaderContext)::init_type(); +#endif CLP(TextureContext)::init_type(); CLP(VertexBufferContext)::init_type(); CLP(GraphicsBuffer)::init_type();