EggRenderMode
-
class EggRenderMode
This class stores miscellaneous rendering properties that is associated with geometry, and which may be set on the geometry primitive level, on the group above it, or indirectly via a texture. It’s intended to be a base class for egg objects that can have these properties set.
This class cannot inherit from
EggObject
, because it causes problems at theEggPolygon
level with multiple appearances of theEggObject
base class. And makingEggObject
a virtual base class is just no fun.Inheritance diagram
-
enum AlphaMode
Specifies implementation of transparency.
-
enumerator AM_unspecified = 0
-
enumerator AM_off = 1
No transparency.
-
enumerator AM_on = 2
Use whatever the default model is.
-
enumerator AM_blend = 3
Normal alpha blending, e.g. TransparencyAttrib::M_alpha.
-
enumerator AM_blend_no_occlude = 4
Alpha blending w/o depth write.
-
enumerator AM_ms = 5
TransparencyAttrib::M_multisample
-
enumerator AM_ms_mask = 6
TransparencyAttrib::M_multisample_mask
-
enumerator AM_binary = 7
TransparencyAttrib::M_binary
-
enumerator AM_dual = 8
TransparencyAttrib::M_dual
-
enumerator AM_premultiplied = 9
TransparencyAttrib::M_premultiplied_alpha
-
enumerator AM_unspecified = 0
-
EggRenderMode(void)
-
EggRenderMode(EggRenderMode const ©)
-
void clear_depth_offset(void)
Removes the depth-offset flag from this particular object. See
set_depth_offset()
.
-
void clear_draw_order(void)
Removes the draw-order flag from this particular object. See
set_draw_order()
.
-
AlphaMode get_alpha_mode(void) const
Returns the alpha mode that was set, or AM_unspecified if nothing was set. See
set_alpha_mode()
.
-
std::string get_bin(void) const
Returns the bin name that has been set for this particular object, if any. See
set_bin()
.
-
static TypeHandle get_class_type(void)
-
int get_depth_offset(void) const
Returns the “depth-offset” flag as set for this particular object. See
set_depth_offset()
.
-
DepthTestMode get_depth_test_mode(void) const
Returns the depth_test mode that was set, or DTM_unspecified if nothing was set. See
set_depth_test_mode()
.
-
DepthWriteMode get_depth_write_mode(void) const
Returns the depth_write mode that was set, or DWM_unspecified if nothing was set. See
set_depth_write_mode()
.
-
int get_draw_order(void) const
Returns the “draw-order” flag as set for this particular object. See
set_draw_order()
.
-
VisibilityMode get_visibility_mode(void) const
Returns the visibility mode that was set, or VM_unspecified if nothing was set. See
set_visibility_mode()
.
-
bool has_bin(void) const
Returns true if a bin name has been set for this particular object. See
set_bin()
.
-
bool has_depth_offset(void) const
Returns true if the depth-offset flag has been set for this particular object. See
set_depth_offset()
.
-
bool has_draw_order(void) const
Returns true if the draw-order flag has been set for this particular object. See
set_draw_order()
.
-
void set_alpha_mode(EggRenderMode::AlphaMode mode)
Specifies precisely how the transparency for this geometry should be achieved, or if it should be used. The default, AM_unspecified, is to use transparency if the geometry has a color whose alpha value is non-1, or if it has a four-channel texture applied; otherwise, AM_on forces transparency on, and AM_off forces it off. The other flavors of transparency are specific ways to turn on transparency, which may or may not be supported by a particular rendering backend.
-
void set_bin(std::string const &bin)
Sets the “bin” string for this particular object. This names a particular bin in which the object should be rendered. The exact meaning of a bin is implementation defined, but generally a GeomBin matching each bin name must also be specifically added to the rendering engine (e.g. the
CullTraverser
) in use for this to work. See alsoset_draw_order()
.
-
void set_depth_offset(int bias)
Sets the “depth-offset” flag associated with this object. This adds or subtracts an offset bias into the depth buffer. See also
DepthOffsetAttrib
andNodePath::set_depth_offset()
.
-
void set_depth_test_mode(EggRenderMode::DepthTestMode mode)
Specifies whether this geometry should be tested against the depth buffer when it is drawn (assuming the rendering backend provides a depth buffer). Note that this is different, and independent from, the depth_write mode.
-
void set_depth_write_mode(EggRenderMode::DepthWriteMode mode)
Specifies whether writes should be made to the depth buffer (assuming the rendering backend provides a depth buffer) when rendering this geometry.
-
void set_draw_order(int order)
Sets the “draw-order” flag associated with this object. This specifies a particular order in which objects of this type should be drawn, within the specified bin. If a bin is not explicitly specified, “fixed” is used. See also
set_bin()
.
-
void set_visibility_mode(EggRenderMode::VisibilityMode mode)
Specifies whether this geometry is to be considered normally visible, or hidden. If it is hidden, it is either not loaded into the scene graph at all, or loaded as a “stashed” node, according to the setting of egg- suppress-hidden.
-
static AlphaMode string_alpha_mode(std::string const &string)
Returns the
AlphaMode
value associated with the given string representation, or AM_unspecified if the string does not match any knownAlphaMode
value.
-
static DepthTestMode string_depth_test_mode(std::string const &string)
Returns the
DepthTestMode
value associated with the given string representation, or DTM_unspecified if the string does not match any knownDepthTestMode
value.
-
static DepthWriteMode string_depth_write_mode(std::string const &string)
Returns the
DepthWriteMode
value associated with the given string representation, or DWM_unspecified if the string does not match any knownDepthWriteMode
value.
-
static VisibilityMode string_visibility_mode(std::string const &string)
Returns the HiddenMode value associated with the given string representation, or VM_unspecified if the string does not match any known HiddenMode value.
-
void write(std::ostream &out, int indent_level) const
Writes the attributes to the indicated output stream in Egg format.
-
enum AlphaMode