Allow tracks and library objects to use custom shader
This commit is contained in:
parent
0ed74ac3e9
commit
39f4f8e966
@ -40,11 +40,13 @@
|
|||||||
#include "graphics/particle_kind.hpp"
|
#include "graphics/particle_kind.hpp"
|
||||||
#include "graphics/particle_kind_manager.hpp"
|
#include "graphics/particle_kind_manager.hpp"
|
||||||
#include "graphics/render_target.hpp"
|
#include "graphics/render_target.hpp"
|
||||||
|
#include "graphics/shader_files_manager.hpp"
|
||||||
#include "graphics/stk_tex_manager.hpp"
|
#include "graphics/stk_tex_manager.hpp"
|
||||||
#include "graphics/sp/sp_base.hpp"
|
#include "graphics/sp/sp_base.hpp"
|
||||||
#include "graphics/sp/sp_mesh.hpp"
|
#include "graphics/sp/sp_mesh.hpp"
|
||||||
#include "graphics/sp/sp_mesh_buffer.hpp"
|
#include "graphics/sp/sp_mesh_buffer.hpp"
|
||||||
#include "graphics/sp/sp_mesh_node.hpp"
|
#include "graphics/sp/sp_mesh_node.hpp"
|
||||||
|
#include "graphics/sp/sp_shader_manager.hpp"
|
||||||
#include "graphics/sp/sp_texture_manager.hpp"
|
#include "graphics/sp/sp_texture_manager.hpp"
|
||||||
#include "io/file_manager.hpp"
|
#include "io/file_manager.hpp"
|
||||||
#include "io/xml_node.hpp"
|
#include "io/xml_node.hpp"
|
||||||
@ -424,6 +426,8 @@ void Track::cleanup()
|
|||||||
|
|
||||||
if (CVS->isGLSL())
|
if (CVS->isGLSL())
|
||||||
{
|
{
|
||||||
|
SP::SPShaderManager::get()->removeUnusedShaders();
|
||||||
|
ShaderFilesManager::getInstance()->removeUnusedShaderFiles();
|
||||||
SP::SPTextureManager::get()->removeUnusedTextures();
|
SP::SPTextureManager::get()->removeUnusedTextures();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -1739,6 +1743,12 @@ void Track::loadTrackModel(bool reverse_track, unsigned int mode_id)
|
|||||||
// Add the track directory to the texture search path
|
// Add the track directory to the texture search path
|
||||||
file_manager->pushTextureSearchPath(m_root, unique_id);
|
file_manager->pushTextureSearchPath(m_root, unique_id);
|
||||||
file_manager->pushModelSearchPath(m_root);
|
file_manager->pushModelSearchPath(m_root);
|
||||||
|
#ifndef SERVER_ONLY
|
||||||
|
if (CVS->isGLSL())
|
||||||
|
{
|
||||||
|
SP::SPShaderManager::get()->loadSPShaders(m_root);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// First read the temporary materials.xml file if it exists
|
// First read the temporary materials.xml file if it exists
|
||||||
try
|
try
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#include "graphics/particle_emitter.hpp"
|
#include "graphics/particle_emitter.hpp"
|
||||||
#include "graphics/particle_kind_manager.hpp"
|
#include "graphics/particle_kind_manager.hpp"
|
||||||
#include "graphics/stk_particle.hpp"
|
#include "graphics/stk_particle.hpp"
|
||||||
|
#include "graphics/sp/sp_shader_manager.hpp"
|
||||||
#include "io/file_manager.hpp"
|
#include "io/file_manager.hpp"
|
||||||
#include "io/xml_node.hpp"
|
#include "io/xml_node.hpp"
|
||||||
#include "input/device_manager.hpp"
|
#include "input/device_manager.hpp"
|
||||||
@ -242,6 +243,12 @@ TrackObjectPresentationLibraryNode::TrackObjectPresentationLibraryNode(
|
|||||||
file_manager->pushTextureSearchPath(lib_path + "/", unique_id);
|
file_manager->pushTextureSearchPath(lib_path + "/", unique_id);
|
||||||
file_manager->pushModelSearchPath(lib_path);
|
file_manager->pushModelSearchPath(lib_path);
|
||||||
material_manager->pushTempMaterial(lib_path + "/materials.xml");
|
material_manager->pushTempMaterial(lib_path + "/materials.xml");
|
||||||
|
#ifndef SERVER_ONLY
|
||||||
|
if (CVS->isGLSL())
|
||||||
|
{
|
||||||
|
SP::SPShaderManager::get()->loadSPShaders(lib_path);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
model_def_loader.addToLibrary(name, libroot);
|
model_def_loader.addToLibrary(name, libroot);
|
||||||
|
|
||||||
// Load LOD groups
|
// Load LOD groups
|
||||||
|
Loading…
Reference in New Issue
Block a user