Ver Fonte

CardMaker now requires a ColorAttrib to apply color

David Rose há 17 anos atrás
pai
commit
c4b12b18cb
1 ficheiros alterados com 10 adições e 15 exclusões
  1. 10 15
      panda/src/grutil/cardMaker.cxx

+ 10 - 15
panda/src/grutil/cardMaker.cxx

@@ -78,15 +78,13 @@ generate() {
 						    GeomEnums::NT_float32, GeomEnums::C_point,
 						    GeomEnums::NT_float32, GeomEnums::C_point,
 						    InternalName::get_normal(), 3,
 						    InternalName::get_normal(), 3,
 						    GeomEnums::NT_float32, GeomEnums::C_vector,
 						    GeomEnums::NT_float32, GeomEnums::C_vector,
-						    InternalName::get_color(), 1,
-						    GeomEnums::NT_packed_dabc, GeomEnums::C_color,
 						    InternalName::get_texcoord(), 3,
 						    InternalName::get_texcoord(), 3,
 						    GeomEnums::NT_float32, GeomEnums::C_texcoord));
 						    GeomEnums::NT_float32, GeomEnums::C_texcoord));
       } else {
       } else {
-	format = GeomVertexFormat::get_v3n3cpt2();
+	format = GeomVertexFormat::get_v3n3t2();
       }
       }
     } else {
     } else {
-      format = GeomVertexFormat::get_v3n3cp();
+      format = GeomVertexFormat::get_v3n3();
     }
     }
   } else {
   } else {
     if (_has_uvs) {
     if (_has_uvs) {
@@ -94,33 +92,25 @@ generate() {
 	format = GeomVertexFormat::register_format(new GeomVertexArrayFormat
 	format = GeomVertexFormat::register_format(new GeomVertexArrayFormat
 						   (InternalName::get_vertex(), 3,
 						   (InternalName::get_vertex(), 3,
 						    GeomEnums::NT_float32, GeomEnums::C_point,
 						    GeomEnums::NT_float32, GeomEnums::C_point,
-						    InternalName::get_color(), 1,
-						    GeomEnums::NT_packed_dabc, GeomEnums::C_color,
 						    InternalName::get_texcoord(), 3,
 						    InternalName::get_texcoord(), 3,
 						    GeomEnums::NT_float32, GeomEnums::C_texcoord));
 						    GeomEnums::NT_float32, GeomEnums::C_texcoord));
       } else {
       } else {
-	format = GeomVertexFormat::get_v3cpt2();
+	format = GeomVertexFormat::get_v3t2();
       }
       }
     } else {
     } else {
-      format = GeomVertexFormat::get_v3cp();
+      format = GeomVertexFormat::get_v3();
     }
     }
   }
   }
   
   
   PT(GeomVertexData) vdata = new GeomVertexData
   PT(GeomVertexData) vdata = new GeomVertexData
     ("card", format, Geom::UH_static);
     ("card", format, Geom::UH_static);
   GeomVertexWriter vertex(vdata, InternalName::get_vertex());
   GeomVertexWriter vertex(vdata, InternalName::get_vertex());
-  GeomVertexWriter color(vdata, InternalName::get_color());
   
   
   vertex.add_data3f(_ul_pos);
   vertex.add_data3f(_ul_pos);
   vertex.add_data3f(_ll_pos);
   vertex.add_data3f(_ll_pos);
   vertex.add_data3f(_ur_pos);
   vertex.add_data3f(_ur_pos);
   vertex.add_data3f(_lr_pos);
   vertex.add_data3f(_lr_pos);
   
   
-  color.add_data4f(_color);
-  color.add_data4f(_color);
-  color.add_data4f(_color);
-  color.add_data4f(_color);
-  
   if (_has_uvs) {
   if (_has_uvs) {
     GeomVertexWriter texcoord(vdata, InternalName::get_texcoord());
     GeomVertexWriter texcoord(vdata, InternalName::get_texcoord());
     texcoord.add_data3f(_ul_tex);
     texcoord.add_data3f(_ul_tex);
@@ -153,8 +143,13 @@ generate() {
   
   
   PT(Geom) geom = new Geom(vdata);
   PT(Geom) geom = new Geom(vdata);
   geom->add_primitive(strip);
   geom->add_primitive(strip);
+
+  CPT(RenderState) state = RenderState::make_empty();
+  if (_has_color) {
+    state = RenderState::make(ColorAttrib::make_flat(_color));
+  }
   
   
-  gnode->add_geom(geom);
+  gnode->add_geom(geom, state);
   
   
   return gnode.p();
   return gnode.p();
 }
 }