source: GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreIllumVolumeRenderTechnique.h @ 1425

Revision 1425, 2.0 KB checked in by szirmay, 18 years ago (diff)
Line 
1#pragma once
2
3//disable inheritance warning caused by multiple inheritance
4#if _WIN32
5#if _MSC_VER
6#pragma warning(disable: 4250)
7#endif
8#endif
9
10#include "OgreRenderTechnique.h"
11#include "IllumVolumeRenderTechnique.h"
12
13/**
14        @brief CausticCasterRenderTechnique used in an OGRE environment.
15*/
16class OgreIllumVolumeRenderTechnique : public OgreRenderTechnique,
17                                                                                        public IllumVolumeRenderTechnique
18{
19public:
20
21        OgreIllumVolumeRenderTechnique(unsigned long startFrame,
22                                                        unsigned long illumVolumeUpdateInterval,
23                                                        unsigned int illumTextureResolution,
24                                                        unsigned int textureDepth,
25                                                        unsigned char illumTexID,
26                                                        bool useDistCalc,
27                                                        String materialName,
28                                                        String lightMatrixGPUParamName,
29                                                        bool useHierarchicalImpostor,
30                                                        unsigned char impostorTexID,
31                                                        Pass* pass,
32                                                        OgreRenderable* parentRenderable,
33                                                        OgreTechniqueGroup* parentTechniqueGroup
34                                                        );
35        /**
36                @brief Destructor.
37        */
38        ~OgreIllumVolumeRenderTechnique();
39       
40protected:
41       
42        String materialName;
43        unsigned char illumTexID;
44        String lightMatrixGPUParamName;
45        unsigned char impostorTexID;
46       
47        //inherited
48        RenderingRun* createLightVolumeRenderingRun();
49        void lightVolumeChanged(RenderingRun* run);
50        void lightVolumeUpdated(RenderingRun* run);
51        void hierarchicalImpostorUpdated(RenderingRun* run);
52};
53
54class OgreIllumVolumeRenderTechniqueFactory : public RenderTechniqueFactory
55{
56public:
57       
58        OgreIllumVolumeRenderTechniqueFactory();
59
60        OgreRenderTechnique* createInstance(IllumTechniqueParams* params,
61                                                                                Pass* pass,
62                                                                                OgreRenderable* parentRenderable,
63                                                                                OgreTechniqueGroup* parentTechniqueGroup);
64
65
66        String materialName;
67        unsigned char illumTexID;
68        unsigned long startFrame;       
69        unsigned long illumVolumeUpdateInterval;
70        unsigned int illumTextureResolution;
71        unsigned int textureDepth;     
72        bool useDistCalc;
73        String lightMatrixGPUParamName;
74        unsigned char impostorTexID;
75        bool useHierarchicalImpostor;   
76};
Note: See TracBrowser for help on using the repository browser.