diff options
Diffstat (limited to 'src/itemdef.cpp')
-rw-r--r-- | src/itemdef.cpp | 60 |
1 files changed, 15 insertions, 45 deletions
diff --git a/src/itemdef.cpp b/src/itemdef.cpp index b582aef78..238ff58c0 100644 --- a/src/itemdef.cpp +++ b/src/itemdef.cpp @@ -229,7 +229,6 @@ public: #ifndef SERVER m_main_thread = get_current_thread_id(); - m_driver = NULL; #endif clear(); } @@ -246,13 +245,6 @@ public: delete cc; } - if (m_driver != NULL) { - for (unsigned int i = 0; i < m_extruded_textures.size(); i++) { - m_driver->removeTexture(m_extruded_textures[i]); - } - m_extruded_textures.clear(); - } - m_driver = NULL; #endif for (std::map<std::string, ItemDefinition*>::iterator iter = m_item_definitions.begin(); iter != m_item_definitions.end(); @@ -307,9 +299,6 @@ public: return m_item_definitions.find(name) != m_item_definitions.end(); } #ifndef SERVER -private: - static video::IVideoDriver * m_driver; - static std::vector<video::ITexture*> m_extruded_textures; public: ClientCached* createClientCachedDirect(const std::string &name, IGameDef *gamedef) const @@ -416,31 +405,25 @@ public: */ if(cc->inventory_texture == NULL) { - core::dimension2d<u32> dim(64,64); - std::string rtt_texture_name = "INVENTORY_" + TextureFromMeshParams params; + params.mesh = node_mesh; + params.dim.set(64, 64); + params.rtt_texture_name = "INVENTORY_" + def->name + "_RTT"; - v3f camera_position(0, 1.0, -1.5); - camera_position.rotateXZBy(45); - v3f camera_lookat(0, 0, 0); - core::CMatrix4<f32> camera_projection_matrix; + params.delete_texture_on_shutdown = true; + params.camera_position.set(0, 1.0, -1.5); + params.camera_position.rotateXZBy(45); + params.camera_lookat.set(0, 0, 0); // Set orthogonal projection - camera_projection_matrix.buildProjectionMatrixOrthoLH( + params.camera_projection_matrix.buildProjectionMatrixOrthoLH( 1.65, 1.65, 0, 100); + params.ambient_light.set(1.0, 0.2, 0.2, 0.2); + params.light_position.set(10, 100, -50); + params.light_color.set(1.0, 0.5, 0.5, 0.5); + params.light_radius = 1000; - video::SColorf ambient_light(0.2,0.2,0.2); - v3f light_position(10, 100, -50); - video::SColorf light_color(0.5,0.5,0.5); - f32 light_radius = 1000; - - cc->inventory_texture = generateTextureFromMesh( - node_mesh, device, dim, rtt_texture_name, - camera_position, - camera_lookat, - camera_projection_matrix, - ambient_light, - light_position, - light_color, - light_radius); + cc->inventory_texture = + tsrc->generateTextureFromMesh(params); // render-to-target didn't work if(cc->inventory_texture == NULL) @@ -449,13 +432,6 @@ public: tsrc->getTexture(f.tiledef[0].name); } } - else - { - if (m_driver == 0) - m_driver = driver; - - m_extruded_textures.push_back(cc->inventory_texture); - } /* Use the node mesh as the wield mesh @@ -681,9 +657,3 @@ IWritableItemDefManager* createItemDefManager() { return new CItemDefManager(); } - -#ifndef SERVER -//TODO very very very dirty hack! -video::IVideoDriver * CItemDefManager::m_driver = 0; -std::vector<video::ITexture*> CItemDefManager::m_extruded_textures; -#endif |