]> git.tdb.fi Git - libs/game.git/commitdiff
Don't autogenerate mesh if the shape has no technique name
authorMikko Rasa <tdb@tdb.fi>
Fri, 18 Apr 2025 22:27:30 +0000 (01:27 +0300)
committerMikko Rasa <tdb@tdb.fi>
Fri, 18 Apr 2025 22:30:38 +0000 (01:30 +0300)
source/gameview/renderer.cpp

index cd4a34695d2a20e6e3500f7df1b5ef78852668e6..322effe2fc765f6bc03edce9876334fb68a32913 100644 (file)
@@ -121,15 +121,16 @@ void Renderer::create_sequence()
 void Renderer::component_created(const Game::Events::ComponentCreated &event)
 {
        if(auto shape = dynamic_handle_cast<Game::Shape>(event.component))
-       {
-               RenderedEntity &re = get_rendered_entity(event.component->get_entity());
-               if(!re.generated_mesh)
+               if(!shape->get_technique_name().empty())
                {
-                       const GL::Technique &tech = stage.get_resources().get<GL::Technique>(shape->get_technique_name());
-                       re.generated_mesh = Game::Owned<DynamicMeshSource>(re.entity, (GL::VERTEX3, GL::NORMAL3, GL::TEXCOORD2,GL::UNSIGNED_SHORT), tech);
-                       GL::ShapeBuilder(shape->get_shape(), shape->get_render_detail()).build(re.generated_mesh->get_mesh());
+                       RenderedEntity &re = get_rendered_entity(event.component->get_entity());
+                       if(!re.generated_mesh)
+                       {
+                               const GL::Technique &tech = stage.get_resources().get<GL::Technique>(shape->get_technique_name());
+                               re.generated_mesh = Game::Owned<DynamicMeshSource>(re.entity, (GL::VERTEX3, GL::NORMAL3, GL::TEXCOORD2,GL::UNSIGNED_SHORT), tech);
+                               GL::ShapeBuilder(shape->get_shape(), shape->get_render_detail()).build(re.generated_mesh->get_mesh());
+                       }
                }
-       }
 
        auto mesh_source = dynamic_handle_cast<Game::MeshSource>(event.component);
        auto dyn_mesh_src = dynamic_handle_cast<DynamicMeshSource>(event.component);