15 #include <osg/Uniform>
29 class DtTileSpaceLightGrid;
31 class DtGLTextureBufferObject;
33 class TextureApplyAttribute;
34 class TextureBufferObjectApplyAttribute;
50 void update(
const VectorLights& lights,
const osg::State& state);
53 void setMaxLights(
int maxNumLights);
55 static int getTextureStartOffset(
void);
63 osg::Uniform* getEnableLightingUniform()
const;
66 void setAmbientFactor(
float ambientFactor);
69 void setUseGlobalAmbient(
bool useGlobalAmbient);
72 void setDiffuseFactor(
float diffuseFactor);
75 void setUseGlobalDiffuse(
bool useGlobalDiffuse);
78 void setUseHDR(
bool useHDR);
81 void setDirty(
bool isDirty) { myDirty = isDirty; }
84 void setEmissionFactor(
float emissionFactor);
87 bool dirty()
const {
return myDirty; }
89 void releaseGLObjects(
void);
94 virtual bool install(osg::StateSet* stateset);
97 virtual bool uninstall(osg::StateSet* stateset);
139 osg::Uniform* createUniform(
const std::string& name, osg::Uniform::Type type,
int count=1);
141 void PackLights(
const VectorLights& lights
142 ,
const osg::State& state);
143 void UpdateTextureLightDataGrid(
void);
144 void UpdateTiledShadingData(
const VectorLights& lights
145 ,
const osg::State& state);
147 void UpdateTileLightIndexListTexture();
148 void UpdateTileLightGridCountOffsetsTexture();