Torque3D Documentation / _generateds / renderPassStateToken.cpp

renderPassStateToken.cpp

Engine/source/renderInstance/renderPassStateToken.cpp

More...

Public Functions

const char *
_get_enable(void * obj, const char * data)
bool
_set_enable(void * object, const char * index, const char * data)
ConsoleDocClass(RenderPassStateBin , "@brief A non-rendering <a href="/coding/file/editortool_8cpp/#editortool_8cpp_1a4cb041169a32ea3d4cacadbb955e06b4">render</a> bin used <a href="/coding/file/cmdgram_8cpp/#cmdgram_8cpp_1a5bafda9519252aa2d0fd038153f77dca">to</a> enable/disable <a href="/coding/file/pointer_8h/#pointer_8h_1aeeddce917cf130d62c370b8f216026dd">a</a> <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">RenderPassStateToken.\n\n</a>" "This is <a href="/coding/file/pointer_8h/#pointer_8h_1aeeddce917cf130d62c370b8f216026dd">a</a> utility <a href="/coding/class/classrenderbinmanager/">RenderBinManager</a> which does not <a href="/coding/file/editortool_8cpp/#editortool_8cpp_1a4cb041169a32ea3d4cacadbb955e06b4">render</a> any <a href="/coding/file/editortool_8cpp/#editortool_8cpp_1a4cb041169a32ea3d4cacadbb955e06b4">render</a> instances. Its only " "used <a href="/coding/file/cmdgram_8cpp/#cmdgram_8cpp_1a5bafda9519252aa2d0fd038153f77dca">to</a> define <a href="/coding/file/pointer_8h/#pointer_8h_1aeeddce917cf130d62c370b8f216026dd">a</a> point in the <a href="/coding/file/editortool_8cpp/#editortool_8cpp_1a4cb041169a32ea3d4cacadbb955e06b4">render</a> bin order at which <a href="/coding/file/pointer_8h/#pointer_8h_1aeeddce917cf130d62c370b8f216026dd">a</a> <a href="/coding/class/classrenderpassstatetoken/">RenderPassStateToken</a> is <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">triggered.\n\n</a>" "@see <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">RenderPassStateToken\n</a>" "@ingroup <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">RenderBin\n</a>" )
ConsoleDocClass(RenderPassStateToken , "@brief Abstract base class <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1a2732ab74fa0237854c2ba0f75f88a624">for</a> RenderFormatToken, used <a href="/coding/file/cmdgram_8cpp/#cmdgram_8cpp_1a5bafda9519252aa2d0fd038153f77dca">to</a> manipulate what goes on in the <a href="/coding/file/editortool_8cpp/#editortool_8cpp_1a4cb041169a32ea3d4cacadbb955e06b4">render</a> <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">manager\n\n</a>" "You cannot actually instantiate RenderPassToken, only its child:RenderFormatToken. " "<a href="/coding/class/classrenderformattoken/">RenderFormatToken</a> is an implementation which changes the format of the " "back buffer and/or the depth <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">buffer.\n\n</a>" "The <a href="/coding/class/classrenderpassstatebin/">RenderPassStateBin</a> manager changes the rendering state associated with " "<a href="/coding/file/pointer_8h/#pointer_8h_1aeeddce917cf130d62c370b8f216026dd">a</a> token it is declared with. In stock Torque 3D, <a href="/coding/file/pointer_8h/#pointer_8h_1aeeddce917cf130d62c370b8f216026dd">a</a> single example exists in the " "way of AL_FormatToken(found in renderManager." TORQUE_SCRIPT_EXTENSION "). In that script file, all the " "<a href="/coding/file/editortool_8cpp/#editortool_8cpp_1a4cb041169a32ea3d4cacadbb955e06b4">render</a> managers are intialized, and <a href="/coding/file/pointer_8h/#pointer_8h_1aeeddce917cf130d62c370b8f216026dd">a</a> single <a href="/coding/class/classrenderformattoken/">RenderFormatToken</a> is used. This " "implementation basically exists <a href="/coding/file/cmdgram_8cpp/#cmdgram_8cpp_1a5bafda9519252aa2d0fd038153f77dca">to</a> ensure Advanced Lighting works with <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">MSAA.\n\n</a>" " @see <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">RenderFormatToken\n</a>" " @see <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">RenderPassStateBin\n</a>" " @see game/core/scripts/client/renderManager." TORQUE_SCRIPT_EXTENSION "\n" " @ingroup <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">RenderBin\n</a>" )
DefineEngineMethod(RenderPassStateToken , disable , void , () , "@brief Disables the token." )
DefineEngineMethod(RenderPassStateToken , enable , void , () , "@brief Enables the token." )
DefineEngineMethod(RenderPassStateToken , toggle , void , () , "@brief Toggles the token from enabled <a href="/coding/file/cmdgram_8cpp/#cmdgram_8cpp_1a5bafda9519252aa2d0fd038153f77dca">to</a> disabled or vice versa." )

Detailed Description

Public Functions

_get_enable(void * obj, const char * data)

_set_enable(void * object, const char * index, const char * data)

ConsoleDocClass(RenderPassStateBin , "@brief A non-rendering <a href="/coding/file/editortool_8cpp/#editortool_8cpp_1a4cb041169a32ea3d4cacadbb955e06b4">render</a> bin used <a href="/coding/file/cmdgram_8cpp/#cmdgram_8cpp_1a5bafda9519252aa2d0fd038153f77dca">to</a> enable/disable <a href="/coding/file/pointer_8h/#pointer_8h_1aeeddce917cf130d62c370b8f216026dd">a</a> <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">RenderPassStateToken.\n\n</a>" "This is <a href="/coding/file/pointer_8h/#pointer_8h_1aeeddce917cf130d62c370b8f216026dd">a</a> utility <a href="/coding/class/classrenderbinmanager/">RenderBinManager</a> which does not <a href="/coding/file/editortool_8cpp/#editortool_8cpp_1a4cb041169a32ea3d4cacadbb955e06b4">render</a> any <a href="/coding/file/editortool_8cpp/#editortool_8cpp_1a4cb041169a32ea3d4cacadbb955e06b4">render</a> instances. Its only " "used <a href="/coding/file/cmdgram_8cpp/#cmdgram_8cpp_1a5bafda9519252aa2d0fd038153f77dca">to</a> define <a href="/coding/file/pointer_8h/#pointer_8h_1aeeddce917cf130d62c370b8f216026dd">a</a> point in the <a href="/coding/file/editortool_8cpp/#editortool_8cpp_1a4cb041169a32ea3d4cacadbb955e06b4">render</a> bin order at which <a href="/coding/file/pointer_8h/#pointer_8h_1aeeddce917cf130d62c370b8f216026dd">a</a> <a href="/coding/class/classrenderpassstatetoken/">RenderPassStateToken</a> is <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">triggered.\n\n</a>" "@see <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">RenderPassStateToken\n</a>" "@ingroup <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">RenderBin\n</a>" )

ConsoleDocClass(RenderPassStateToken , "@brief Abstract base class <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1a2732ab74fa0237854c2ba0f75f88a624">for</a> RenderFormatToken, used <a href="/coding/file/cmdgram_8cpp/#cmdgram_8cpp_1a5bafda9519252aa2d0fd038153f77dca">to</a> manipulate what goes on in the <a href="/coding/file/editortool_8cpp/#editortool_8cpp_1a4cb041169a32ea3d4cacadbb955e06b4">render</a> <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">manager\n\n</a>" "You cannot actually instantiate RenderPassToken, only its child:RenderFormatToken. " "<a href="/coding/class/classrenderformattoken/">RenderFormatToken</a> is an implementation which changes the format of the " "back buffer and/or the depth <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">buffer.\n\n</a>" "The <a href="/coding/class/classrenderpassstatebin/">RenderPassStateBin</a> manager changes the rendering state associated with " "<a href="/coding/file/pointer_8h/#pointer_8h_1aeeddce917cf130d62c370b8f216026dd">a</a> token it is declared with. In stock Torque 3D, <a href="/coding/file/pointer_8h/#pointer_8h_1aeeddce917cf130d62c370b8f216026dd">a</a> single example exists in the " "way of AL_FormatToken(found in renderManager." TORQUE_SCRIPT_EXTENSION "). In that script file, all the " "<a href="/coding/file/editortool_8cpp/#editortool_8cpp_1a4cb041169a32ea3d4cacadbb955e06b4">render</a> managers are intialized, and <a href="/coding/file/pointer_8h/#pointer_8h_1aeeddce917cf130d62c370b8f216026dd">a</a> single <a href="/coding/class/classrenderformattoken/">RenderFormatToken</a> is used. This " "implementation basically exists <a href="/coding/file/cmdgram_8cpp/#cmdgram_8cpp_1a5bafda9519252aa2d0fd038153f77dca">to</a> ensure Advanced Lighting works with <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">MSAA.\n\n</a>" " @see <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">RenderFormatToken\n</a>" " @see <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">RenderPassStateBin\n</a>" " @see game/core/scripts/client/renderManager." TORQUE_SCRIPT_EXTENSION "\n" " @ingroup <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">RenderBin\n</a>" )

DefineEngineMethod(RenderPassStateToken , disable , void , () , "@brief Disables the token." )

DefineEngineMethod(RenderPassStateToken , enable , void , () , "@brief Enables the token." )

DefineEngineMethod(RenderPassStateToken , toggle , void , () , "@brief Toggles the token from enabled <a href="/coding/file/cmdgram_8cpp/#cmdgram_8cpp_1a5bafda9519252aa2d0fd038153f77dca">to</a> disabled or vice versa." )

IMPLEMENT_CONOBJECT(RenderPassStateBin )

IMPLEMENT_CONOBJECT(RenderPassStateToken )

  1
  2//-----------------------------------------------------------------------------
  3// Copyright (c) 2012 GarageGames, LLC
  4//
  5// Permission is hereby granted, free of charge, to any person obtaining a copy
  6// of this software and associated documentation files (the "Software"), to
  7// deal in the Software without restriction, including without limitation the
  8// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
  9// sell copies of the Software, and to permit persons to whom the Software is
 10// furnished to do so, subject to the following conditions:
 11//
 12// The above copyright notice and this permission notice shall be included in
 13// all copies or substantial portions of the Software.
 14//
 15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 18// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 21// IN THE SOFTWARE.
 22//-----------------------------------------------------------------------------
 23
 24#include "renderInstance/renderPassStateToken.h"
 25#include "console/consoleTypes.h"
 26
 27#include "console/engineAPI.h"
 28
 29
 30IMPLEMENT_CONOBJECT(RenderPassStateToken);
 31
 32ConsoleDocClass( RenderPassStateToken,
 33   "@brief Abstract base class for RenderFormatToken, used to manipulate what goes on in the render manager\n\n"
 34
 35   "You cannot actually instantiate RenderPassToken, only its child: RenderFormatToken. "
 36   "RenderFormatToken is an implementation which changes the format of the "
 37   "back buffer and/or the depth buffer.\n\n"
 38   
 39   "The RenderPassStateBin manager changes the rendering state associated with "
 40   "a token it is declared with. In stock Torque 3D, a single example exists in the "
 41   "way of AL_FormatToken (found in renderManager." TORQUE_SCRIPT_EXTENSION "). In that script file, all the "
 42   "render managers are intialized, and a single RenderFormatToken is used. This "
 43   "implementation basically exists to ensure Advanced Lighting works with MSAA.\n\n"
 44
 45   "@see RenderFormatToken\n"
 46   "@see RenderPassStateBin\n"
 47   "@see game/core/scripts/client/renderManager." TORQUE_SCRIPT_EXTENSION "\n"
 48
 49   "@ingroup RenderBin\n"
 50);
 51
 52void RenderPassStateToken::process(SceneRenderState *state, RenderPassStateBin *callingBin)
 53{
 54   TORQUE_UNUSED(state);
 55   TORQUE_UNUSED(callingBin);
 56   AssertWarn(false, "RenderPassStateToken is an abstract class, you must re-implement process()");
 57}
 58
 59void RenderPassStateToken::reset()
 60{
 61   AssertWarn(false, "RenderPassStateToken is an abstract class, you must re-implement reset()");
 62}
 63
 64void RenderPassStateToken::enable( bool enabled /*= true*/ )
 65{
 66   TORQUE_UNUSED(enabled);
 67   AssertWarn(false, "RenderPassStateToken is an abstract class, you must re-implement enable()");
 68}
 69
 70bool RenderPassStateToken::isEnabled() const
 71{
 72   AssertWarn(false, "RenderPassStateToken is an abstract class, you must re-implement isEnabled()");
 73   return false;
 74}
 75
 76static bool _set_enable( void *object, const char *index, const char *data )
 77{
 78   reinterpret_cast<RenderPassStateToken *>(object)->enable(dAtob(data));
 79   return false;
 80}
 81
 82static const char *_get_enable(void* obj, const char* data)
 83{
 84   TORQUE_UNUSED(data);
 85   return reinterpret_cast<RenderPassStateToken *>(obj)->isEnabled() ? "true" : "false";
 86}
 87
 88void RenderPassStateToken::initPersistFields()
 89{
 90   addProtectedField("enabled", TypeBool, NULL, &_set_enable, &_get_enable, "Enables or disables this token.");
 91   Parent::initPersistFields();
 92}
 93
 94//------------------------------------------------------------------------------
 95//------------------------------------------------------------------------------
 96
 97IMPLEMENT_CONOBJECT(RenderPassStateBin);
 98
 99
100ConsoleDocClass( RenderPassStateBin,
101   "@brief A non-rendering render bin used to enable/disable a RenderPassStateToken.\n\n"
102
103   "This is a utility RenderBinManager which does not render any render instances.  Its only "
104   "used to define a point in the render bin order at which a RenderPassStateToken is triggered.\n\n"   
105
106   "@see RenderPassStateToken\n"
107
108   "@ingroup RenderBin\n"
109);
110
111RenderPassStateBin::RenderPassStateBin() 
112   : Parent()
113{
114}
115
116RenderPassStateBin::~RenderPassStateBin()
117{
118
119}
120
121void RenderPassStateBin::render(SceneRenderState *state)
122{
123   if(mStateToken.isValid())
124      mStateToken->process(state, this);
125}
126
127void RenderPassStateBin::clear()
128{
129   if(mStateToken.isValid())
130      mStateToken->reset();
131}
132
133void RenderPassStateBin::sort()
134{
135
136}
137
138void RenderPassStateBin::initPersistFields()
139{
140   addProtectedField( "stateToken", TYPEID< RenderPassStateToken >(), Offset( mStateToken, RenderPassStateBin ),
141      _setStateToken, _getStateToken, "");
142   
143   Parent::initPersistFields();
144}
145
146//------------------------------------------------------------------------------
147
148DefineEngineMethod(RenderPassStateToken, enable, void, (),,
149   "@brief Enables the token." )
150{
151   object->enable(true);
152}
153
154DefineEngineMethod(RenderPassStateToken, disable, void, (),,
155   "@brief Disables the token.")
156{
157   object->enable(false);
158}
159
160DefineEngineMethod(RenderPassStateToken, toggle, void, (),,
161   "@brief Toggles the token from enabled to disabled or vice versa." )
162{
163   object->enable(!object->isEnabled());
164}
165