mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 01:44:06 -04:00
tinydisplay respect color scale
This commit is contained in:
parent
990e0883de
commit
718ab74065
@ -339,6 +339,7 @@ reset() {
|
||||
_color_write_mask = ColorWriteAttrib::C_all;
|
||||
|
||||
_has_scene_graph_color = false;
|
||||
_scene_graph_color.set(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
_transform_stale = true;
|
||||
_color_blend_involves_color_scale = false;
|
||||
_texture_involves_color_scale = false;
|
||||
@ -1560,6 +1561,7 @@ do_issue_color() {
|
||||
case ColorAttrib::T_off:
|
||||
// Color attribute off: it specifies that no scene graph color is
|
||||
// in effect, and vertex color is not important either.
|
||||
_scene_graph_color.set(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
_has_scene_graph_color = false;
|
||||
_vertex_colors_enabled = false;
|
||||
break;
|
||||
@ -1567,6 +1569,7 @@ do_issue_color() {
|
||||
case ColorAttrib::T_vertex:
|
||||
// Color attribute vertex: it specifies that vertex color should
|
||||
// be revealed.
|
||||
_scene_graph_color.set(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
_has_scene_graph_color = false;
|
||||
_vertex_colors_enabled = true;
|
||||
break;
|
||||
|
@ -961,19 +961,12 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader,
|
||||
}
|
||||
|
||||
if (!needs_color) {
|
||||
if (_has_scene_graph_color) {
|
||||
const Colorf &d = _scene_graph_color;
|
||||
_c->current_color.X = d[0];
|
||||
_c->current_color.Y = d[1];
|
||||
_c->current_color.Z = d[2];
|
||||
_c->current_color.W = d[3];
|
||||
|
||||
} else {
|
||||
_c->current_color.X = 1.0f;
|
||||
_c->current_color.Y = 1.0f;
|
||||
_c->current_color.Z = 1.0f;
|
||||
_c->current_color.W = 1.0f;
|
||||
}
|
||||
const Colorf &d = _scene_graph_color;
|
||||
const Colorf &s = _current_color_scale;
|
||||
_c->current_color.X = d[0] * s[0];
|
||||
_c->current_color.Y = d[1] * s[1];
|
||||
_c->current_color.Z = d[2] * s[2];
|
||||
_c->current_color.W = d[3] * s[3];
|
||||
}
|
||||
|
||||
bool needs_normal = false;
|
||||
@ -1021,10 +1014,11 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader,
|
||||
|
||||
if (needs_color) {
|
||||
const Colorf &d = rcolor.get_data4f();
|
||||
_c->current_color.X = d[0];
|
||||
_c->current_color.Y = d[1];
|
||||
_c->current_color.Z = d[2];
|
||||
_c->current_color.W = d[3];
|
||||
const Colorf &s = _current_color_scale;
|
||||
_c->current_color.X = d[0] * s[0];
|
||||
_c->current_color.Y = d[1] * s[1];
|
||||
_c->current_color.Z = d[2] * s[2];
|
||||
_c->current_color.W = d[3] * s[3];
|
||||
|
||||
if (_color_material_flags) {
|
||||
if (_color_material_flags & CMF_ambient) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user