Переглянути джерело

Don't even try to build Cg support when building for OpenGL ES, which is unsupported by the Cg Toolkit anyway.
The code tried to include cg/cgGL.h in the case that HAVE_CG was defined, but internally cgGL.h included GL/gl.h, so I got header file conflicts between OpenGL and OpenGL ES.

rdb 15 роки тому
батько
коміт
4b4ccee24a

+ 1 - 1
panda/src/glstuff/glShaderContext_src.I

@@ -27,7 +27,7 @@ INLINE bool CLP(ShaderContext)::
 valid() {
   if (_shader->get_error_flag()) return false;
   if (_shader->get_language() == Shader::SL_none) return false;
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
   if (_cg_context) return true;
 #endif
   if (_shader->get_language() == Shader::SL_GLSL && _glsl_program != 0) {

+ 19 - 19
panda/src/glstuff/glShaderContext_src.cxx

@@ -16,7 +16,7 @@
 
 #ifndef OPENGLES_1
 
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
 #include "Cg/cgGL.h"
 #endif
 #include "pStatTimer.h"
@@ -35,7 +35,7 @@ TypeHandle CLP(ShaderContext)::_type_handle;
 #define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
 #endif
 
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
 #ifndef NDEBUG
 #define cg_report_errors() { \
   CGerror err = cgGetError(); \
@@ -59,7 +59,7 @@ CLP(ShaderContext)(Shader *s, GSG *gsg) : ShaderContext(s) {
   _glsl_vshader = 0;
   _glsl_fshader = 0;
   _glsl_gshader = 0;
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
   _cg_context = 0;
   if (s->get_language() == Shader::SL_Cg) {
     
@@ -369,7 +369,7 @@ CLP(ShaderContext)::
 ////////////////////////////////////////////////////////////////////
 void CLP(ShaderContext)::
 release_resources(GSG *gsg) {
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
   if (_cg_context) {
     cgDestroyContext(_cg_context);
     _cg_context  = 0;
@@ -442,7 +442,7 @@ bind(GSG *gsg, bool reissue_parameters) {
     issue_parameters(gsg, Shader::SSD_general);
   }
 
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
   if (_cg_context != 0) {
     // Bind the shaders.
     if (_cg_vprogram != 0) {
@@ -474,7 +474,7 @@ void CLP(ShaderContext)::
 unbind(GSG *gsg) {
   _last_gsg = gsg;
 
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
   if (_cg_context != 0) {
     if (_cg_vprogram != 0) {
       cgGLDisableProfile(cgGetProgramProfile(_cg_vprogram));
@@ -529,7 +529,7 @@ issue_parameters(GSG *gsg, int altered) {
         release_resources(gsg);
         return;
       }
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
       else if (_shader->get_language() == Shader::SL_Cg) {
         const Shader::ShaderPtrSpec& _ptr = _shader->_ptr_spec[i];
         Shader::ShaderPtrData* _ptr_data = 
@@ -645,7 +645,7 @@ issue_parameters(GSG *gsg, int altered) {
           case Shader::SMP_row3x3: gsg->_glUniform3fv(p, 1, data+12); continue;
         }
       }
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
       else if (_shader->get_language() == Shader::SL_Cg) {
         CGparameter p = _cg_parameter_map[_shader->_mat_spec[i]._id._seqno];
         switch (_shader->_mat_spec[i]._piece) {
@@ -667,7 +667,7 @@ issue_parameters(GSG *gsg, int altered) {
 #endif
     }
   }
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
   cg_report_errors();
 #endif
 
@@ -691,7 +691,7 @@ disable_shader_vertex_arrays(GSG *gsg) {
       gsg->_glDisableVertexAttribArray(i);
     }
   }
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
   else if (_shader->get_language() == Shader::SL_Cg) {
     for (int i=0; i<(int)_shader->_var_spec.size(); i++) {
       CGparameter p = _cg_parameter_map[_shader->_var_spec[i]._id._seqno];
@@ -724,7 +724,7 @@ update_shader_vertex_arrays(CLP(ShaderContext) *prev, GSG *gsg,
   if (!valid()) {
     return true;
   }
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
   cg_report_errors();
 #endif
 
@@ -739,7 +739,7 @@ update_shader_vertex_arrays(CLP(ShaderContext) *prev, GSG *gsg,
     int start, stride, num_values;
     int nvarying = _shader->_var_spec.size();
     for (int i=0; i<nvarying; i++) {
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
       if (_shader->get_language() == Shader::SL_Cg) {
         if (_cg_parameter_map[_shader->_var_spec[i]._id._seqno] == 0) {
           continue;
@@ -775,7 +775,7 @@ update_shader_vertex_arrays(CLP(ShaderContext) *prev, GSG *gsg,
 #ifndef OPENGLES_2
           glDisableClientState(GL_VERTEX_ARRAY);
 #endif
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
         } else if (_shader->get_language() == Shader::SL_Cg) {
           CGparameter p = _cg_parameter_map[_shader->_var_spec[i]._id._seqno];
           cgGLSetParameterPointer(p,
@@ -785,7 +785,7 @@ update_shader_vertex_arrays(CLP(ShaderContext) *prev, GSG *gsg,
 #endif
         }
       }
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
       else if (_shader->get_language() == Shader::SL_Cg) {
         CGparameter p = _cg_parameter_map[_shader->_var_spec[i]._id._seqno];
         cgGLDisableClientState(p);
@@ -794,7 +794,7 @@ update_shader_vertex_arrays(CLP(ShaderContext) *prev, GSG *gsg,
     }
   }
 
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
   cg_report_errors();
 #endif
   gsg->report_my_gl_errors();
@@ -822,7 +822,7 @@ disable_shader_texture_bindings(GSG *gsg) {
       } else {
         gsg->_glActiveTexture(GL_TEXTURE0 + _shader->_tex_spec[i]._stage + _stage_offset);
       }
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
     } else if (_shader->get_language() == Shader::SL_Cg) {
       CGparameter p = _cg_parameter_map[_shader->_tex_spec[i]._id._seqno];
       if (p == 0) continue;
@@ -855,7 +855,7 @@ disable_shader_texture_bindings(GSG *gsg) {
 #endif  // OPENGLES_2
   _stage_offset = 0;
 
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
   cg_report_errors();
 #endif
 
@@ -900,7 +900,7 @@ update_shader_texture_bindings(CLP(ShaderContext) *prev, GSG *gsg) {
         texunit += _stage_offset;
       }
     }
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
     if (_shader->get_language() == Shader::SL_Cg) {
       CGparameter p = _cg_parameter_map[_shader->_tex_spec[i]._id._seqno];
       if (p == 0) {
@@ -955,7 +955,7 @@ update_shader_texture_bindings(CLP(ShaderContext) *prev, GSG *gsg) {
     }
   }
 
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
   cg_report_errors();
 #endif
 

+ 1 - 1
panda/src/glstuff/glShaderContext_src.h

@@ -51,7 +51,7 @@ public:
 
 private:
 
-#ifdef HAVE_CG
+#if defined(HAVE_CG) && !defined(OPENGLES)
   CGcontext _cg_context;
   CGprogram _cg_vprogram;
   CGprogram _cg_fprogram;