source: OGRE/trunk/ogrenew/OgreMain/include/OgreCompositionTargetPass.h @ 692

Revision 692, 4.8 KB checked in by mattausch, 19 years ago (diff)

adding ogre 1.2 and dependencies

Line 
1/*
2-----------------------------------------------------------------------------
3This source file is part of OGRE
4    (Object-oriented Graphics Rendering Engine)
5For the latest info, see http://www.ogre3d.org/
6
7Copyright (c) 2000-2005 The OGRE Team
8Also see acknowledgements in Readme.html
9
10This program is free software; you can redistribute it and/or modify it under
11the terms of the GNU Lesser General Public License as published by the Free Software
12Foundation; either version 2 of the License, or (at your option) any later
13version.
14
15This program is distributed in the hope that it will be useful, but WITHOUT
16ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
18
19You should have received a copy of the GNU Lesser General Public License along with
20this program; if not, write to the Free Software Foundation, Inc., 59 Temple
21Place - Suite 330, Boston, MA 02111-1307, USA, or go to
22http://www.gnu.org/copyleft/lesser.txt.
23-----------------------------------------------------------------------------
24*/
25#ifndef __CompositionTargetPass_H__
26#define __CompositionTargetPass_H__
27
28#include "OgrePrerequisites.h"
29#include "OgreIteratorWrappers.h"
30
31namespace Ogre {
32        /** Object representing one render to a RenderTarget or Viewport in the Ogre Composition
33                framework.
34         */
35    class _OgreExport CompositionTargetPass
36    {
37    public:
38        CompositionTargetPass(CompositionTechnique *parent);
39        ~CompositionTargetPass();
40       
41        /** Input mode of a TargetPass
42        */
43        enum InputMode
44        {
45            IM_NONE,        // No input
46            IM_PREVIOUS     // Output of previous Composition in chain
47        };
48        typedef std::vector<CompositionPass *> Passes;
49        typedef VectorIterator<Passes> PassIterator;
50       
51        /** Set input mode of this TargetPass
52        */
53        void setInputMode(InputMode mode);
54        /** Get input mode */
55        InputMode getInputMode() const;
56       
57        /** Set output local texture name */
58        void setOutputName(const String &out);
59        /** Get output local texture name */
60        const String &getOutputName() const;
61       
62        /** Set "only initial" flag. This makes that this target pass is only executed initially
63            after the effect has been enabled.
64        */
65        void setOnlyInitial(bool value);
66        /** Get "only initial" flag.
67        */
68        bool getOnlyInitial();
69       
70        /** Set the scene visiblity mask used by this pass
71        */
72        void setVisibilityMask(uint32 mask);
73        /** Get the scene visiblity mask used by this pass
74        */
75        uint32 getVisibilityMask();
76
77                /** Set the material scheme used by this target pass.
78                @remarks
79                        Only applicable to targets that render the scene as
80                        one of their passes.
81                        @see Technique::setScheme.
82                */
83                void setMaterialScheme(const String& schemeName);
84                /** Get the material scheme used by this target pass.
85                @remarks
86                        Only applicable to targets that render the scene as
87                        one of their passes.
88                        @see Technique::setScheme.
89                */
90                const String& getMaterialScheme(void) const;
91       
92        /** Set the scene LOD bias used by this pass. The default is 1.0,
93            everything below that means lower quality, higher means higher quality.
94        */
95        void setLodBias(float bias);
96        /** Get the scene LOD bias used by this pass
97        */
98        float getLodBias();
99       
100        /** Create a new pass, and return a pointer to it.
101        */
102        CompositionPass *createPass();
103        /** Remove a pass. It will also be destroyed.
104        */
105        void removePass(size_t idx);
106        /** Get a pass.
107        */
108        CompositionPass *getPass(size_t idx);
109        /** Get the number of passes.
110        */
111        size_t getNumPasses();
112       
113        /** Remove all passes
114        */
115        void removeAllPasses();
116   
117        /** Get an iterator over the Passes in this TargetPass. */
118        PassIterator getPassIterator(void);
119       
120        /** Get parent object */
121        CompositionTechnique *getParent();
122    private:
123        /// Parent technique
124        CompositionTechnique *mParent;
125        /// Input name
126        InputMode mInputMode;
127        /// (local) output texture
128        String mOutputName;
129        /// Passes
130        Passes mPasses;
131        /// This target pass is only executed initially after the effect
132        /// has been enabled.
133        bool mOnlyInitial;
134        /// Visibility mask for this render
135        uint32 mVisibilityMask;
136        /// LOD bias of this render
137        float mLodBias;
138                /// Material scheme name
139                String mMaterialScheme;
140    };
141
142}
143
144#endif
Note: See TracBrowser for help on using the repository browser.