Browse Source

Bump mapping is working

Josh Yelon 20 years ago
parent
commit
7c30c27bd7
2 changed files with 25 additions and 5 deletions
  1. 18 3
      doc/makepanda/makepanda.py
  2. 7 2
      panda/src/glstuff/glShaderContext_src.cxx

+ 18 - 3
doc/makepanda/makepanda.py

@@ -37,7 +37,7 @@ VERBOSE=1
 COMPRESSOR="zlib"
 PACKAGES=["PYTHON","ZLIB","PNG","JPEG","TIFF","VRPN","FMOD","NVIDIACG","HELIX","NSPR",
           "OPENSSL","FREETYPE","FFTW","MILES","MAYA5","MAYA6","MAYA65","MAX5","MAX6","MAX7",
-          "BISON","FLEX","PANDATOOL","PANDAAPP"]
+          "BISON","FLEX","OPENCV","PANDATOOL","PANDAAPP"]
 OMIT=PACKAGES[:]
 WARNINGS=[]
 DIRECTXSDK = None
@@ -617,6 +617,17 @@ if (OMIT.count("HELIX")==0):
     WARNINGS.append("I have automatically added this command-line option: --no-helix")
     OMIT.append("HELIX")
 
+##########################################################################################
+#
+# Disable OpenCV under linux.
+#
+##########################################################################################
+
+if (OMIT.count("OPENCV")==0):
+    WARNINGS.append("OPENCV doesn't work yet")
+    WARNINGS.append("I have automatically added this command-line option: --no-opencv")
+    OMIT.append("OPENCV")
+
 ##########################################################################################
 #
 # See if there's a "MILES" subdirectory under 'thirdparty'
@@ -1370,6 +1381,9 @@ def CompileLinkMSVC7(wdll, wlib, wobj, opts, dll, ldef):
             cmd = cmd + ' "' + MAXSDK[max] +  '/lib/mesh.lib"'
             cmd = cmd + ' "' + MAXSDK[max] +  '/lib/maxutil.lib"'
             cmd = cmd + ' "' + MAXSDK[max] +  '/lib/paramblk2.lib"'
+    if (PkgSelected(opts,"OPENCV")):
+        cmd = cmd + " /LIBPATH:thirdparty/win-libs-vc7/opencv/lib"
+        cmd = cmd + " cv.lib cxcore.lib cvaux.lib trs.lib highgui.lib"
     oscmd(cmd)
 
 def CompileLinkLINUXA(wdll, obj, wobj, opts, dll, ldef):
@@ -1699,6 +1713,7 @@ DTOOLDEFAULTS=[
     ("HAVE_NET",                       'UNDEF',                  'UNDEF'),
     ("HAVE_CG",                        'UNDEF',                  'UNDEF'),
     ("HAVE_CGGL",                      'UNDEF',                  'UNDEF'),
+    ("HAVE_OPENCV",                    'UNDEF',                  'UNDEF'),
     ]
 
 def CalculateDtoolConfig():
@@ -2416,7 +2431,7 @@ EnqueueIgate(ipath=IPATH, opts=OPTS, outd='libtext.in', obj='libtext_igate.obj',
 #
 
 IPATH=['panda/src/grutil']
-OPTS=['BUILDING_PANDA', 'NSPR']
+OPTS=['BUILDING_PANDA', 'NSPR', 'OPENCV']
 CopyAllHeaders('panda/src/grutil')
 EnqueueCxx(ipath=IPATH, opts=OPTS, src='multitexReducer.cxx', obj='grutil_multitexReducer.obj')
 EnqueueCxx(ipath=IPATH, opts=OPTS, src='grutil_composite.cxx', obj='grutil_composite.obj')
@@ -2551,7 +2566,7 @@ CopyAllHeaders('panda/src/wgldisplay')
 CopyAllHeaders('panda/src/physics')
 CopyAllHeaders('panda/src/particlesystem')
 IPATH=['panda/metalibs/panda']
-OPTS=['BUILDING_PANDA', 'ZLIB', 'VRPN', 'JPEG', 'PNG', 'TIFF', 'NSPR', 'FREETYPE', 'HELIX', 'FFTW',
+OPTS=['BUILDING_PANDA', 'ZLIB', 'VRPN', 'JPEG', 'PNG', 'TIFF', 'NSPR', 'FREETYPE', 'HELIX', 'FFTW', 'OPENCV',
       'ADVAPI', 'WINSOCK2', 'WINUSER', 'WINMM']
 INFILES=['librecorder.in', 'libpgraph.in', 'libgrutil.in', 'libchan.in', 'libpstatclient.in',
          'libchar.in', 'libcollide.in', 'libdevice.in', 'libdgraph.in', 'libdisplay.in', 'libevent.in',

+ 7 - 2
panda/src/glstuff/glShaderContext_src.cxx

@@ -287,7 +287,12 @@ update_shader_vertex_arrays(CLP(ShaderContext) *prev, GSG *gsg)
             gsg->_state._texture->get_on_stages();
           if (texslot < (int)active_stages.size()) {
             TextureStage *stage = active_stages[texslot];
-            name = name->append(stage->get_texcoord_name()->get_name());
+            InternalName *texname = stage->get_texcoord_name();
+            if (name == InternalName::get_texcoord()) {
+              name = texname;
+            } else if (texname != InternalName::get_texcoord()) {
+              name = name->append(texname->get_basename());
+            }
           }
         }
         if (gsg->_vertex_data->get_array_info(name,
@@ -696,7 +701,7 @@ compile_cg_parameter(CGparameter p)
         return true;
       }
       if (pieces[1].substr(0,8)=="texcoord") {
-        bind.name = InternalName::get_root();
+        bind.name = InternalName::get_texcoord();
         bind.append_uv = atoi(pieces[1].c_str()+8);
         _cg_varying.push_back(bind);
         return true;