Fixed: ProjectorActors not rendering
This commit is contained in:
@@ -839,6 +839,8 @@ int rc_createProjectorActor()
|
|||||||
|
|
||||||
rc_setActorCollisionShape(actor_id, RC_NODE_SHAPE_TYPE_BOX, 1);
|
rc_setActorCollisionShape(actor_id, RC_NODE_SHAPE_TYPE_BOX, 1);
|
||||||
|
|
||||||
|
rc_projector_actors.push_back(actor_id);
|
||||||
|
|
||||||
return actor_id;
|
return actor_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -851,6 +853,18 @@ void rc_deleteActor(int actor_id)
|
|||||||
if(!rc_actor[actor_id].mesh_node)
|
if(!rc_actor[actor_id].mesh_node)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if(rc_actor[actor_id].node_type == RC_NODE_TYPE_PROJECTOR)
|
||||||
|
{
|
||||||
|
for(int i = 0; i < rc_projector_actors.size(); i++)
|
||||||
|
{
|
||||||
|
if(rc_projector_actors[i] == actor_id)
|
||||||
|
{
|
||||||
|
rc_projector_actors.erase(i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(rc_actor[actor_id].physics.rigid_body)
|
if(rc_actor[actor_id].physics.rigid_body)
|
||||||
rc_physics3D.world->removeCollisionObject(rc_actor[actor_id].physics.rigid_body, false);
|
rc_physics3D.world->removeCollisionObject(rc_actor[actor_id].physics.rigid_body, false);
|
||||||
|
|
||||||
|
|||||||
@@ -1743,7 +1743,7 @@ struct CircleSettings
|
|||||||
f32 radius; // in pixels
|
f32 radius; // in pixels
|
||||||
f32 radius2;
|
f32 radius2;
|
||||||
video::SColor color;
|
video::SColor color;
|
||||||
u32 numVertices = 21; // including center
|
u32 numVertices = 121; // including center
|
||||||
};
|
};
|
||||||
|
|
||||||
void makeCircle(irr::core::array<irr::video::S3DVertex>& vertices, irr::core::array<irr::u16>& indices, const CircleSettings& settings)
|
void makeCircle(irr::core::array<irr::video::S3DVertex>& vertices, irr::core::array<irr::u16>& indices, const CircleSettings& settings)
|
||||||
|
|||||||
@@ -639,7 +639,7 @@ struct rc_scene_node
|
|||||||
};
|
};
|
||||||
|
|
||||||
irr::core::array<rc_scene_node> rc_actor;
|
irr::core::array<rc_scene_node> rc_actor;
|
||||||
|
irr::core::array<int> rc_projector_actors;
|
||||||
irr::core::array<int> rc_transition_actor;
|
irr::core::array<int> rc_transition_actor;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -155,6 +155,23 @@ void rc_pipeline_Render()
|
|||||||
|
|
||||||
SceneManager->drawAll();
|
SceneManager->drawAll();
|
||||||
|
|
||||||
|
for(int p_actor = 0; p_actor < rc_projector_actors.size(); p_actor++)
|
||||||
|
{
|
||||||
|
int actor_id = rc_projector_actors[p_actor];
|
||||||
|
|
||||||
|
if(actor_id < 0 || actor_id >= rc_actor.size())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if(!rc_actor[actor_id].mesh_node)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if(rc_actor[actor_id].mesh_node->isVisible())
|
||||||
|
{
|
||||||
|
CProjectiveTextures* pt_node = (CProjectiveTextures*)rc_actor[actor_id].mesh_node;
|
||||||
|
pt_node->render();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//render post effects
|
//render post effects
|
||||||
for(int effect_num = 0; effect_num < rc_canvas[rc_active_canvas].post_effect.size(); effect_num++)
|
for(int effect_num = 0; effect_num < rc_canvas[rc_active_canvas].post_effect.size(); effect_num++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -86,6 +86,8 @@ void rc_clearScene()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rc_projector_actors.clear();
|
||||||
|
|
||||||
for(int i = 0; i < rc_actor.size(); i++)
|
for(int i = 0; i < rc_actor.size(); i++)
|
||||||
{
|
{
|
||||||
if(rc_actor[i].mesh_node)
|
if(rc_actor[i].mesh_node)
|
||||||
|
|||||||
@@ -585,6 +585,23 @@ bool rc_update()
|
|||||||
|
|
||||||
SceneManager->drawAll();
|
SceneManager->drawAll();
|
||||||
|
|
||||||
|
for(int p_actor = 0; p_actor < rc_projector_actors.size(); p_actor++)
|
||||||
|
{
|
||||||
|
int actor_id = rc_projector_actors[p_actor];
|
||||||
|
|
||||||
|
if(actor_id < 0 || actor_id >= rc_actor.size())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if(!rc_actor[actor_id].mesh_node)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if(rc_actor[actor_id].mesh_node->isVisible())
|
||||||
|
{
|
||||||
|
CProjectiveTextures* pt_node = (CProjectiveTextures*)rc_actor[actor_id].mesh_node;
|
||||||
|
pt_node->render();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//render post effects
|
//render post effects
|
||||||
for(int effect_num = 0; effect_num < rc_canvas[rc_active_canvas].post_effect.size(); effect_num++)
|
for(int effect_num = 0; effect_num < rc_canvas[rc_active_canvas].post_effect.size(); effect_num++)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user