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 (c) 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 __CompositionPass_H__ 00026 #define __CompositionPass_H__ 00027 00028 #include "OgrePrerequisites.h" 00029 #include "OgreMaterial.h" 00030 #include "OgreRenderSystem.h" 00031 #include "OgreRenderQueue.h" 00032 00033 namespace Ogre { 00037 class _OgreExport CompositionPass 00038 { 00039 public: 00040 CompositionPass(CompositionTargetPass *parent); 00041 ~CompositionPass(); 00042 00045 enum PassType 00046 { 00047 PT_CLEAR, // Clear target to one colour 00048 PT_STENCIL, // Set stencil operation 00049 PT_RENDERSCENE, // Render the scene or part of it 00050 PT_RENDERQUAD // Render a full screen quad 00051 }; 00052 00054 void setType(PassType type); 00056 PassType getType() const; 00057 00061 void setIdentifier(uint32 id); 00063 uint32 getIdentifier() const; 00064 00068 void setMaterial(MaterialPtr mat); 00072 void setMaterialName(const String &name); 00076 MaterialPtr getMaterial() const; 00080 void setFirstRenderQueue(uint8 id); 00084 uint8 getFirstRenderQueue(); 00088 void setLastRenderQueue(uint8 id); 00092 uint8 getLastRenderQueue(); 00093 00104 void setClearBuffers(uint32 val); 00108 uint32 getClearBuffers(); 00112 void setClearColour(ColourValue val); 00116 const ColourValue &getClearColour(); 00120 void setClearDepth(Real depth); 00124 Real getClearDepth(); 00128 void setClearStencil(uint32 value); 00132 uint32 getClearStencil(); 00133 00137 void setStencilCheck(bool value); 00141 bool getStencilCheck(); 00145 void setStencilFunc(CompareFunction value); 00149 CompareFunction getStencilFunc(); 00153 void setStencilRefValue(uint32 value); 00157 uint32 getStencilRefValue(); 00161 void setStencilMask(uint32 value); 00165 uint32 getStencilMask(); 00169 void setStencilFailOp(StencilOperation value); 00173 StencilOperation getStencilFailOp(); 00177 void setStencilDepthFailOp(StencilOperation value); 00181 StencilOperation getStencilDepthFailOp(); 00185 void setStencilPassOp(StencilOperation value); 00189 StencilOperation getStencilPassOp(); 00193 void setStencilTwoSidedOperation(bool value); 00197 bool getStencilTwoSidedOperation(); 00198 00204 void setInput(size_t id, const String &input=""); 00205 00210 const String &getInput(size_t id); 00211 00215 size_t getNumInputs(); 00216 00220 void clearAllInputs(); 00221 00225 CompositionTargetPass *getParent(); 00226 private: 00228 CompositionTargetPass *mParent; 00230 PassType mType; 00232 uint32 mIdentifier; 00234 MaterialPtr mMaterial; 00236 uint8 mFirstRenderQueue; 00237 uint8 mLastRenderQueue; 00239 uint32 mClearBuffers; 00241 ColourValue mClearColour; 00243 Real mClearDepth; 00245 uint32 mClearStencil; 00248 String mInputs[OGRE_MAX_TEXTURE_LAYERS]; 00250 bool mStencilCheck; 00251 CompareFunction mStencilFunc; 00252 uint32 mStencilRefValue; 00253 uint32 mStencilMask; 00254 StencilOperation mStencilFailOp; 00255 StencilOperation mStencilDepthFailOp; 00256 StencilOperation mStencilPassOp; 00257 bool mStencilTwoSidedOperation; 00258 }; 00259 00260 } 00261 00262 #endif
Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Mar 12 14:37:38 2006