From e75c8695dd750b7c44c0012e8764a017aa764ed8 Mon Sep 17 00:00:00 2001 From: David Rose Date: Mon, 17 Dec 2007 21:23:38 +0000 Subject: [PATCH] resolve dependency issue --- panda/src/pgraph/renderState.I | 19 ------------------- panda/src/pgraph/renderState.cxx | 22 ++++++++++++++++++++++ panda/src/pgraph/renderState.h | 2 +- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/panda/src/pgraph/renderState.I b/panda/src/pgraph/renderState.I index c109f16099..af4e190e5d 100644 --- a/panda/src/pgraph/renderState.I +++ b/panda/src/pgraph/renderState.I @@ -651,22 +651,3 @@ CompositionCycleDescEntry(const RenderState *obj, _inverted(inverted) { } - -//////////////////////////////////////////////////////////////////// -// Function: RenderState::get_generated_shader -// Access: Public -// Description: Generate a ShaderAttrib for this RenderState. This -// generated ShaderAttrib can be thought of as a -// replacement for the regular ShaderAttrib that is a -// standard part of the RenderState. -//////////////////////////////////////////////////////////////////// -INLINE const ShaderAttrib *RenderState:: -get_generated_shader() const { - if (_generated_shader != (RenderAttrib*)NULL) { - return DCAST(ShaderAttrib, _generated_shader); - } - ((RenderState*)this)->_generated_shader = - ShaderGenerator::synthesize_shader(this); - return DCAST(ShaderAttrib, _generated_shader); -} - diff --git a/panda/src/pgraph/renderState.cxx b/panda/src/pgraph/renderState.cxx index 878225830c..503c32f195 100644 --- a/panda/src/pgraph/renderState.cxx +++ b/panda/src/pgraph/renderState.cxx @@ -1126,6 +1126,28 @@ get_geom_rendering(int geom_rendering) const { return geom_rendering; } +//////////////////////////////////////////////////////////////////// +// Function: RenderState::get_generated_shader +// Access: Public +// Description: Generate a ShaderAttrib for this RenderState. This +// generated ShaderAttrib can be thought of as a +// replacement for the regular ShaderAttrib that is a +// standard part of the RenderState. +//////////////////////////////////////////////////////////////////// +const ShaderAttrib *RenderState:: +get_generated_shader() const { + // This method cannot be declared inline, because of the circular + // dependency on shaderAttrib.h. + + if (_generated_shader != (RenderAttrib*)NULL) { + return DCAST(ShaderAttrib, _generated_shader); + } + ((RenderState*)this)->_generated_shader = + ShaderGenerator::synthesize_shader(this); + return DCAST(ShaderAttrib, _generated_shader); +} + + //////////////////////////////////////////////////////////////////// // Function: RenderState::store_into_slots // Access: Public diff --git a/panda/src/pgraph/renderState.h b/panda/src/pgraph/renderState.h index 3c981b3209..d87e6f86e4 100644 --- a/panda/src/pgraph/renderState.h +++ b/panda/src/pgraph/renderState.h @@ -155,7 +155,7 @@ PUBLISHED: int get_geom_rendering(int geom_rendering) const; - INLINE const ShaderAttrib *get_generated_shader() const; + const ShaderAttrib *get_generated_shader() const; public: void store_into_slots(AttribSlots *slots) const;