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 setUseMaterialAmbient(
bool useMaterialAmbient);
72 void setDiffuseFactor(
float diffuseFactor);
75 void setUseMaterialDiffuse(
bool useMaterialDiffuse);
78 void setUseHDR(
bool useHDR);
81 void setDirty(
bool isDirty) { myDirty = isDirty; }
84 bool dirty()
const {
return myDirty; }
86 void releaseGLObjects(
void);
91 virtual bool install(osg::StateSet* stateset);
94 virtual bool uninstall(osg::StateSet* stateset);
135 osg::Uniform* createUniform(
const std::string& name, osg::Uniform::Type type,
int count=1);
137 void PackLights(
const VectorLights& lights
138 ,
const osg::State& state);
139 void UpdateTextureLightDataGrid(
void);
140 void UpdateTiledShadingData(
const VectorLights& lights
141 ,
const osg::State& state);
143 void UpdateTileLightIndexListTexture();
144 void UpdateTileLightGridCountOffsetsTexture();