1 #ifndef OPENMW_COMPONENTS_RESOURCE_SCENEMANAGER_H
2 #define OPENMW_COMPONENTS_RESOURCE_SCENEMANAGER_H
10 #include <osg/Texture>
18 class SharedStateManager;
23 class IncrementalCompileOperation;
28 class SharedStateManager;
40 class MultiObjectCache;
89 osg::ref_ptr<const osg::Node>
getTemplate(
const std::string& name);
95 osg::ref_ptr<osg::Node>
cacheInstance(
const std::string& name);
104 osg::ref_ptr<osg::Node>
getInstance(
const std::string& name);
109 osg::ref_ptr<osg::Node>
getInstance(
const std::string& name, osg::Group* parentNode);
116 void attachTo(osg::Node* instance, osg::Group* parentNode)
const;
133 void setFilterSettings(
const std::string &magfilter,
const std::string &minfilter,
134 const std::string &mipmap,
int maxAnisotropy);
149 void reportStats(
unsigned int frameNumber, osg::Stats* stats)
const override;
void reportStats(unsigned int frameNumber, osg::Stats *stats) const override
Definition: scenemanager.cpp:729
Shader::ShaderManager & getShaderManager()
Definition: scenemanager.cpp:303
std::string mNormalMapPattern
Definition: scenemanager.hpp:160
void setIncrementalCompileOperation(osgUtil::IncrementalCompileOperation *ico)
Set up an IncrementalCompileOperation for background compiling of loaded scenes.
Definition: scenemanager.cpp:633
Resource::ImageManager * mImageManager
Definition: scenemanager.hpp:170
bool mAutoUseNormalMaps
Definition: scenemanager.hpp:159
void setClampLighting(bool clamp)
Definition: scenemanager.cpp:253
Handles loading and caching of scenes, e.g. .nif files or .osg files.
Definition: scenemanager.hpp:44
void operator=(const SceneManager &)
void setAutoUseNormalMaps(bool use)
Definition: scenemanager.cpp:273
void setSpecularMapPattern(const std::string &pattern)
Definition: scenemanager.cpp:293
void setFilterSettings(const std::string &magfilter, const std::string &minfilter, const std::string &mipmap, int maxAnisotropy)
Definition: scenemanager.cpp:653
osg::ref_ptr< MultiObjectCache > mInstanceCache
Definition: scenemanager.hpp:165
~SceneManager()
Definition: scenemanager.cpp:298
void setAutoUseSpecularMaps(bool use)
Definition: scenemanager.cpp:288
void setShaderPath(const std::string &path)
Definition: scenemanager.cpp:308
void applyFilterSettings(osg::Texture *tex)
Definition: scenemanager.cpp:697
void setNormalMapPattern(const std::string &pattern)
Definition: scenemanager.cpp:278
Adjusts the given subgraph to render using shaders.
Definition: shadervisitor.hpp:17
bool getForceShaders() const
Definition: scenemanager.cpp:241
void setParticleSystemMask(unsigned int mask)
Definition: scenemanager.cpp:648
std::string mNormalHeightMapPattern
Definition: scenemanager.hpp:161
osg::ref_ptr< const osg::Node > getTemplate(const std::string &name)
Definition: scenemanager.cpp:479
Handles loading/caching of Images.
Definition: imagemanager.hpp:23
osg::ref_ptr< osg::Node > getInstance(const std::string &name)
Definition: scenemanager.cpp:597
SceneManager(const VFS::Manager *vfs, Resource::ImageManager *imageManager, Resource::NifFileManager *nifFileManager)
Definition: scenemanager.cpp:216
osg::ref_ptr< osgUtil::IncrementalCompileOperation > mIncrementalCompileOperation
Definition: scenemanager.hpp:178
osgUtil::IncrementalCompileOperation * getIncrementalCompileOperation()
Definition: scenemanager.cpp:638
bool getClampLighting() const
Definition: scenemanager.cpp:258
bool mForceShaders
Definition: scenemanager.hpp:156
osg::ref_ptr< osg::Node > cacheInstance(const std::string &name)
Definition: scenemanager.cpp:550
bool mForcePerPixelLighting
Definition: scenemanager.hpp:158
unsigned int mParticleSystemMask
Definition: scenemanager.hpp:180
osg::ref_ptr< Resource::SharedStateManager > mSharedStateManager
Definition: scenemanager.hpp:167
std::unique_ptr< Shader::ShaderManager > mShaderManager
Definition: scenemanager.hpp:155
bool checkLoaded(const std::string &name, double referenceTime)
Check if a given scene is loaded and if so, update its usage timestamp to prevent it from being unloa...
Definition: scenemanager.cpp:313
Reads shader template files and turns them into a concrete shader, based on a list of define's...
Definition: shadermanager.hpp:18
bool mUnRefImageDataAfterApply
Definition: scenemanager.hpp:176
Resource::ImageManager * getImageManager()
Definition: scenemanager.cpp:643
bool mClampLighting
Definition: scenemanager.hpp:157
void setUnRefImageDataAfterApply(bool unref)
Definition: scenemanager.cpp:704
bool getForcePerPixelLighting() const
Definition: scenemanager.cpp:268
std::string mSpecularMapPattern
Definition: scenemanager.hpp:163
Handles caching of NIFFiles.
Definition: niffilemanager.hpp:15
osg::Texture::FilterMode mMinFilter
Definition: scenemanager.hpp:173
State
Definition: state.hpp:6
osg::ref_ptr< osg::Node > createInstance(const std::string &name)
Definition: scenemanager.cpp:574
void recreateShaders(osg::ref_ptr< osg::Node > node)
Re-create shaders for this node, need to call this if texture stages or vertex color mode have change...
Definition: scenemanager.cpp:246
void updateCache(double referenceTime) override
Definition: scenemanager.cpp:709
The main class responsible for loading files from a virtual file system.
Definition: manager.hpp:20
osg::Texture::FilterMode mMagFilter
Definition: scenemanager.hpp:174
void setNormalHeightMapPattern(const std::string &pattern)
Definition: scenemanager.cpp:283
OpenThreads::Mutex mSharedStateMutex
Definition: scenemanager.hpp:168
Base class for managers that require a virtual file system and object cache.
Definition: resourcemanager.hpp:23
Shader::ShaderVisitor * createShaderVisitor()
Definition: scenemanager.cpp:746
Resource::NifFileManager * mNifFileManager
Definition: scenemanager.hpp:171
void attachTo(osg::Node *instance, osg::Group *parentNode) const
Definition: scenemanager.cpp:617
void setForcePerPixelLighting(bool force)
Definition: scenemanager.cpp:263
void clearCache() override
Clear all cache entries.
Definition: scenemanager.cpp:720
void setForceShaders(bool force)
Definition: scenemanager.cpp:236
void releaseGLObjects(osg::State *state) override
Definition: scenemanager.cpp:622
int mMaxAnisotropy
Definition: scenemanager.hpp:175
bool mAutoUseSpecularMaps
Definition: scenemanager.hpp:162
const char * name
Definition: crashcatcher.cpp:67