Browse Source

Fix bug #1457688: libRocket elements show solid white in tinydisplay

rdb 10 years ago
parent
commit
7fa0d3c60a

+ 25 - 0
panda/src/pgraph/renderState.cxx

@@ -352,6 +352,31 @@ make(const RenderAttrib *attrib1,
   return return_new(state);
 }
 
+////////////////////////////////////////////////////////////////////
+//     Function: RenderState::make
+//       Access: Published, Static
+//  Description: Returns a RenderState with five attributes set.
+////////////////////////////////////////////////////////////////////
+CPT(RenderState) RenderState::
+make(const RenderAttrib *attrib1,
+     const RenderAttrib *attrib2,
+     const RenderAttrib *attrib3,
+     const RenderAttrib *attrib4,
+     const RenderAttrib *attrib5, int override) {
+  RenderState *state = new RenderState;
+  state->_attributes[attrib1->get_slot()].set(attrib1, override);
+  state->_attributes[attrib2->get_slot()].set(attrib2, override);
+  state->_attributes[attrib3->get_slot()].set(attrib3, override);
+  state->_attributes[attrib4->get_slot()].set(attrib4, override);
+  state->_attributes[attrib5->get_slot()].set(attrib5, override);
+  state->_filled_slots.set_bit(attrib1->get_slot());
+  state->_filled_slots.set_bit(attrib2->get_slot());
+  state->_filled_slots.set_bit(attrib3->get_slot());
+  state->_filled_slots.set_bit(attrib4->get_slot());
+  state->_filled_slots.set_bit(attrib5->get_slot());
+  return return_new(state);
+}
+
 ////////////////////////////////////////////////////////////////////
 //     Function: RenderState::make
 //       Access: Published, Static

+ 5 - 0
panda/src/pgraph/renderState.h

@@ -87,6 +87,11 @@ PUBLISHED:
                                const RenderAttrib *attrib2,
                                const RenderAttrib *attrib3,
                                const RenderAttrib *attrib4, int override = 0);
+  static CPT(RenderState) make(const RenderAttrib *attrib1,
+                               const RenderAttrib *attrib2,
+                               const RenderAttrib *attrib3,
+                               const RenderAttrib *attrib4,
+                               const RenderAttrib *attrib5, int override = 0);
   static CPT(RenderState) make(const RenderAttrib * const *attrib,
                                int num_attribs, int override = 0);
 

+ 3 - 1
panda/src/rocket/rocketRenderInterface.cxx

@@ -20,6 +20,7 @@
 #include "internalName.h"
 #include "geomVertexWriter.h"
 #include "geomTriangles.h"
+#include "colorAttrib.h"
 #include "colorBlendAttrib.h"
 #include "cullBinAttrib.h"
 #include "depthTestAttrib.h"
@@ -49,7 +50,8 @@ render(Rocket::Core::Context* context, CullTraverser *trav) {
     ColorBlendAttrib::make(ColorBlendAttrib::M_add,
       ColorBlendAttrib::O_incoming_alpha,
       ColorBlendAttrib::O_one_minus_incoming_alpha
-    )
+    ),
+    ColorAttrib::make_vertex()
   );
   _dimensions = context->GetDimensions();