# OgreRenderQueueInvocation.h

Go to the documentation of this file.

    00001 /*
    00002 -----------------------------------------------------------------------------
    00003 This source file is part of OGRE
    00004     (Object-oriented Graphics Rendering Engine)
    00005 For the latest info, see http://www.ogre3d.org/
    00006
    00007 Copyright © 2000-2005 The OGRE Team
    00008 Also see acknowledgements in Readme.html
    00009
    00010 This program is free software; you can redistribute it and/or modify it under
    00011 the terms of the GNU Lesser General Public License as published by the Free Software
    00012 Foundation; either version 2 of the License, or (at your option) any later
    00013 version.
    00014
    00015 This program is distributed in the hope that it will be useful, but WITHOUT
    00016 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
    00017 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
    00018
    00019 You should have received a copy of the GNU Lesser General Public License along with
    00020 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
    00021 Place - Suite 330, Boston, MA 02111-1307, USA, or go to
    00022 http://www.gnu.org/copyleft/lesser.txt.
    00023 -----------------------------------------------------------------------------
    00024 */
    00025 #ifndef __RenderQueueInvocation_H__
    00026 #define __RenderQueueInvocation_H__
    00027
    00028 #include "OgrePrerequisites.h"
    00029 #include "OgreRenderQueueSortingGrouping.h"
    00030 #include "OgreIteratorWrappers.h"
    00031
    00032 namespace Ogre {
    00033
    00057     class _OgreExport RenderQueueInvocation
    00058     {
    00059     protected:
    00061         uint8 mRenderQueueGroupID;
    00063         String mInvocationName;
    00065         QueuedRenderableCollection::OrganisationMode mSolidsOrganisation;
    00067         bool mSuppressShadows;
    00069         bool mSuppressRenderStateChanges;
    00070     public:
    00076         RenderQueueInvocation(uint8 renderQueueGroupID,
    00077             const String& invocationName = StringUtil::BLANK);
    00078         virtual ~RenderQueueInvocation();
    00079
    00081         virtual uint8 getRenderQueueGroupID(void) const { return mRenderQueueGroupID; }
    00082
    00084         virtual const String& getInvocationName(void) const { return mInvocationName; }
    00085
    00089         virtual void setSolidsOrganisation(
    00090             QueuedRenderableCollection::OrganisationMode org)
    00091         { mSolidsOrganisation = org; }
    00092
    00096         virtual QueuedRenderableCollection::OrganisationMode
    00097             getSolidsOrganisation(void) const { return mSolidsOrganisation; }
    00098
    00104         virtual void setSuppressShadows(bool suppress)
    00105         { mSuppressShadows =  suppress; }
    00106
    00109         virtual bool getSuppressShadows(void) const { return mSuppressShadows; }
    00110
    00131         virtual void setSuppressRenderStateChanges(bool suppress)
    00132         { mSuppressRenderStateChanges =  suppress; }
    00133
    00136         virtual bool getSuppressRenderStateChanges(void) const { return mSuppressRenderStateChanges; }
    00137
    00143         virtual void invoke(RenderQueueGroup* group, SceneManager* targetSceneManager);
    00144
    00146         static String RENDER_QUEUE_INVOCATION_SHADOWS;
    00147     };
    00148
    00149
    00151     typedef std::vector<RenderQueueInvocation*> RenderQueueInvocationList;
    00152     typedef VectorIterator<RenderQueueInvocationList> RenderQueueInvocationIterator;
    00153
    00164     class _OgreExport RenderQueueInvocationSequence
    00165     {
    00166     protected:
    00167         String mName;
    00168         RenderQueueInvocationList mInvocations;
    00169     public:
    00170         RenderQueueInvocationSequence(const String& name);
    00171         virtual ~RenderQueueInvocationSequence();
    00172
    00174         const String& getName(void) const { return mName; }
    00175
    00182         RenderQueueInvocation* add(uint8 renderQueueGroupID,
    00183             const String& invocationName);
    00184
    00191         void add(RenderQueueInvocation* i);
    00192
    00194         size_t size(void) const { return mInvocations.size(); }
    00195
    00197         void clear(void);
    00198
    00200         RenderQueueInvocation* get(size_t index);
    00201
    00203         void remove(size_t index);
    00204
    00206         RenderQueueInvocationIterator iterator(void);
    00207
    00208
    00209     };
    00210
    00211 }
    00212
    00213 #endif
    00214

Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Sep 17 15:39:11 2006