mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 02:42:49 -04:00
fix for wrong-color objects in directx
This commit is contained in:
parent
db667ad5ca
commit
e5cf8b1517
@ -80,7 +80,7 @@ make_off() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
CPT(RenderAttrib) ColorAttrib::
|
CPT(RenderAttrib) ColorAttrib::
|
||||||
make_default() {
|
make_default() {
|
||||||
return return_new(new ColorAttrib);
|
return make_flat(Colorf(1.0f, 1.0f, 1.0f, 1.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "textureAttrib.h"
|
#include "textureAttrib.h"
|
||||||
#include "renderState.h"
|
#include "renderState.h"
|
||||||
#include "shadeModelAttrib.h"
|
#include "shadeModelAttrib.h"
|
||||||
|
#include "colorAttrib.h"
|
||||||
#include "geom.h"
|
#include "geom.h"
|
||||||
#include "geomTristrips.h"
|
#include "geomTristrips.h"
|
||||||
#include "geomVertexWriter.h"
|
#include "geomVertexWriter.h"
|
||||||
@ -221,25 +222,19 @@ generate_flat_geom(const LVecBase4f &frame) {
|
|||||||
|
|
||||||
CPT(GeomVertexFormat) format;
|
CPT(GeomVertexFormat) format;
|
||||||
if (has_texture()) {
|
if (has_texture()) {
|
||||||
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
|
||||||
("PGFrame", format, Geom::UH_static);
|
("PGFrame", 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(left, 0.0f, top);
|
vertex.add_data3f(left, 0.0f, top);
|
||||||
vertex.add_data3f(left, 0.0f, bottom);
|
vertex.add_data3f(left, 0.0f, bottom);
|
||||||
vertex.add_data3f(right, 0.0f, top);
|
vertex.add_data3f(right, 0.0f, top);
|
||||||
vertex.add_data3f(right, 0.0f, bottom);
|
vertex.add_data3f(right, 0.0f, bottom);
|
||||||
|
|
||||||
color.add_data4f(_color);
|
|
||||||
color.add_data4f(_color);
|
|
||||||
color.add_data4f(_color);
|
|
||||||
color.add_data4f(_color);
|
|
||||||
|
|
||||||
if (has_texture()) {
|
if (has_texture()) {
|
||||||
// Generate UV's.
|
// Generate UV's.
|
||||||
@ -259,9 +254,10 @@ generate_flat_geom(const LVecBase4f &frame) {
|
|||||||
strip->add_next_vertices(4);
|
strip->add_next_vertices(4);
|
||||||
strip->close_primitive();
|
strip->close_primitive();
|
||||||
|
|
||||||
|
CPT(RenderState) state = RenderState::make(ColorAttrib::make_flat(_color));
|
||||||
PT(Geom) geom = new Geom(vdata);
|
PT(Geom) geom = new Geom(vdata);
|
||||||
geom->add_primitive(strip);
|
geom->add_primitive(strip);
|
||||||
gnode->add_geom(geom);
|
gnode->add_geom(geom, state);
|
||||||
|
|
||||||
if (has_texture()) {
|
if (has_texture()) {
|
||||||
CPT(RenderState) state =
|
CPT(RenderState) state =
|
||||||
@ -432,8 +428,9 @@ generate_bevel_geom(const LVecBase4f &frame, bool in) {
|
|||||||
PT(Geom) geom = new Geom(vdata);
|
PT(Geom) geom = new Geom(vdata);
|
||||||
geom->add_primitive(strip);
|
geom->add_primitive(strip);
|
||||||
|
|
||||||
CPT(RenderState) flat_state = RenderState::make(ShadeModelAttrib::make(ShadeModelAttrib::M_flat));
|
CPT(RenderState) state = RenderState::make(ShadeModelAttrib::make(ShadeModelAttrib::M_flat),
|
||||||
gnode->add_geom(geom, flat_state);
|
ColorAttrib::make_vertex());
|
||||||
|
gnode->add_geom(geom, state);
|
||||||
|
|
||||||
// For now, beveled and grooved geoms don't support textures. Easy
|
// For now, beveled and grooved geoms don't support textures. Easy
|
||||||
// to add if anyone really wants this.
|
// to add if anyone really wants this.
|
||||||
@ -673,8 +670,9 @@ generate_groove_geom(const LVecBase4f &frame, bool in) {
|
|||||||
PT(Geom) geom = new Geom(vdata);
|
PT(Geom) geom = new Geom(vdata);
|
||||||
geom->add_primitive(strip);
|
geom->add_primitive(strip);
|
||||||
|
|
||||||
CPT(RenderState) flat_state = RenderState::make(ShadeModelAttrib::make(ShadeModelAttrib::M_flat));
|
CPT(RenderState) state = RenderState::make(ShadeModelAttrib::make(ShadeModelAttrib::M_flat),
|
||||||
gnode->add_geom(geom, flat_state);
|
ColorAttrib::make_vertex());
|
||||||
|
gnode->add_geom(geom, state);
|
||||||
|
|
||||||
// For now, beveled and grooved geoms don't support textures. Easy
|
// For now, beveled and grooved geoms don't support textures. Easy
|
||||||
// to add if anyone really wants this.
|
// to add if anyone really wants this.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user