mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 18:31:55 -04:00
fix palettization issues with qpgeom
This commit is contained in:
parent
f9798faa46
commit
e037e595cb
@ -1778,7 +1778,7 @@ make_node(EggGroup *egg_group, PandaNode *parent) {
|
|||||||
bool all_polysets = false;
|
bool all_polysets = false;
|
||||||
bool any_hidden = false;
|
bool any_hidden = false;
|
||||||
if (use_qpgeom) {
|
if (use_qpgeom) {
|
||||||
// check_for_polysets(egg_group, all_polysets, any_hidden);
|
check_for_polysets(egg_group, all_polysets, any_hidden);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (all_polysets && !any_hidden) {
|
if (all_polysets && !any_hidden) {
|
||||||
|
@ -42,27 +42,3 @@ INLINE void EggRenderState::
|
|||||||
add_attrib(const RenderAttrib *attrib) {
|
add_attrib(const RenderAttrib *attrib) {
|
||||||
_state = _state->add_attrib(attrib);
|
_state = _state->add_attrib(attrib);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
|
||||||
// Function: EggRenderState::int compare_to
|
|
||||||
// Access: Public
|
|
||||||
// Description: Provides a unique ordering for different
|
|
||||||
// EggRenderState objects, so that primitives of similar
|
|
||||||
// state can be grouped together by the EggBinner.
|
|
||||||
////////////////////////////////////////////////////////////////////
|
|
||||||
INLINE int EggRenderState::
|
|
||||||
compare_to(const EggRenderState &other) const {
|
|
||||||
if (_state != other._state) {
|
|
||||||
return _state < other._state ? -1 : 1;
|
|
||||||
}
|
|
||||||
if (_hidden != other._hidden) {
|
|
||||||
return (int)_hidden - (int)other._hidden;
|
|
||||||
}
|
|
||||||
if (_flat_shaded != other._flat_shaded) {
|
|
||||||
return (int)_flat_shaded - (int)other._flat_shaded;
|
|
||||||
}
|
|
||||||
if (_primitive_type != other._primitive_type) {
|
|
||||||
return (int)_primitive_type - (int)other._primitive_type;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
@ -386,6 +386,51 @@ fill_state(EggPrimitive *egg_prim) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: EggRenderState::int compare_to
|
||||||
|
// Access: Public
|
||||||
|
// Description: Provides a unique ordering for different
|
||||||
|
// EggRenderState objects, so that primitives of similar
|
||||||
|
// state can be grouped together by the EggBinner.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
int EggRenderState::
|
||||||
|
compare_to(const EggRenderState &other) const {
|
||||||
|
if (_state != other._state) {
|
||||||
|
return _state < other._state ? -1 : 1;
|
||||||
|
}
|
||||||
|
if (_hidden != other._hidden) {
|
||||||
|
return (int)_hidden - (int)other._hidden;
|
||||||
|
}
|
||||||
|
if (_flat_shaded != other._flat_shaded) {
|
||||||
|
return (int)_flat_shaded - (int)other._flat_shaded;
|
||||||
|
}
|
||||||
|
if (_primitive_type != other._primitive_type) {
|
||||||
|
return (int)_primitive_type - (int)other._primitive_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_bake_in_uvs.size() != other._bake_in_uvs.size()) {
|
||||||
|
return (int)_bake_in_uvs.size() - (int)other._bake_in_uvs.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
BakeInUVs::const_iterator ai, bi;
|
||||||
|
ai = _bake_in_uvs.begin();
|
||||||
|
bi = other._bake_in_uvs.begin();
|
||||||
|
while (ai != _bake_in_uvs.end()) {
|
||||||
|
nassertr(bi != other._bake_in_uvs.end(), false);
|
||||||
|
if ((*ai).first != (*bi).first) {
|
||||||
|
return (*ai).first < (*bi).first ? -1 : 1;
|
||||||
|
}
|
||||||
|
if ((*ai).second != (*bi).second) {
|
||||||
|
return (*ai).second < (*bi).second ? -1 : 1;
|
||||||
|
}
|
||||||
|
++ai;
|
||||||
|
++bi;
|
||||||
|
}
|
||||||
|
nassertr(bi == other._bake_in_uvs.end(), false);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: EggRenderState::get_material_attrib
|
// Function: EggRenderState::get_material_attrib
|
||||||
// Access: Private
|
// Access: Private
|
||||||
|
@ -50,7 +50,7 @@ public:
|
|||||||
|
|
||||||
void fill_state(EggPrimitive *egg_prim);
|
void fill_state(EggPrimitive *egg_prim);
|
||||||
|
|
||||||
INLINE int compare_to(const EggRenderState &other) const;
|
int compare_to(const EggRenderState &other) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CPT(RenderAttrib) get_material_attrib(const EggMaterial *egg_mat,
|
CPT(RenderAttrib) get_material_attrib(const EggMaterial *egg_mat,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user