Point lights
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
#ifndef HYDRADELETECOMPONENTSTASK
|
||||
#define HYDRADELETECOMPONENTSTASK
|
||||
|
||||
|
||||
#include "../HydraTask.h"
|
||||
#include "../../engine/HydraEngine.h"
|
||||
#include "../../ecs/HydraECS.h"
|
||||
#include <memory>
|
||||
|
||||
|
||||
class HydraDeleteComponentsTask : public HydraTask
|
||||
{
|
||||
private:
|
||||
|
||||
protected:
|
||||
public:
|
||||
virtual void Process() override
|
||||
{
|
||||
|
||||
// GetEngine()->ECS()->DeleteComponents();
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif /* HYDRADELETECOMPONENTSTASK */
|
||||
@@ -14,6 +14,7 @@ class HydraInitialiseComponentsTask : public HydraTask
|
||||
public:
|
||||
virtual void Process() override
|
||||
{
|
||||
|
||||
GetEngine()->ECS()->InitialiseComponents();
|
||||
}
|
||||
|
||||
|
||||
@@ -57,9 +57,10 @@ public:
|
||||
b3Pos pos = {};
|
||||
|
||||
shapeDef.density = 1.0f;
|
||||
shapeDef.baseMaterial.restitution = 0.4f;
|
||||
shapeDef.baseMaterial.restitution = 0.6f;
|
||||
|
||||
b3CreateHullShape(*m_body_id, &shapeDef, &box.base );
|
||||
DebugLog("B3LOG " + std::to_string(m_entity_id) + " BODY " + std::to_string(m_body_id->index1) + "\n");
|
||||
}
|
||||
|
||||
void Initialise(b3WorldId world_id, HydraPhysicsComponent physics_comp, b3BodyId* body_id, HydraID entity_id)
|
||||
|
||||
@@ -20,6 +20,7 @@ public:
|
||||
void Process() override
|
||||
{
|
||||
b3DestroyBody(m_body_id);
|
||||
DebugLog("B3 DELETE " + std::to_string(m_body_id.index1) + "\n");
|
||||
}
|
||||
|
||||
void Initialise(b3BodyId body_id)
|
||||
|
||||
@@ -20,9 +20,9 @@ public:
|
||||
void Process() override
|
||||
{
|
||||
b3WorldDef world_def = b3DefaultWorldDef();
|
||||
world_def.workerCount = 1;
|
||||
world_def.workerCount = 4;
|
||||
world_def.enableSleep = true;
|
||||
|
||||
world_def.enableContinuous = true;
|
||||
|
||||
*m_world_id = b3CreateWorld( &world_def );
|
||||
|
||||
|
||||
@@ -24,22 +24,23 @@ public:
|
||||
b3BodyEvents events = b3World_GetBodyEvents(m_world_id);
|
||||
|
||||
HydraTaskScheduler* task_scheduler = GetEngine()->TaskScheduler();
|
||||
HydraID barrier_id = task_scheduler->CreateBarrier();
|
||||
// HydraID barrier_id = task_scheduler->CreateBarrier();
|
||||
|
||||
for(uint32_t i = 0; i < events.moveCount; i ++)
|
||||
{
|
||||
HydraID task_id = task_scheduler->CreateTask<HydraSetWorldTransformTask>(HydraThreadAffinity::General, barrier_id);
|
||||
HydraID task_id = task_scheduler->CreateTask<HydraSetWorldTransformTask>(HydraThreadAffinity::General);//, barrier_id);
|
||||
HydraSetWorldTransformTask *set_task = static_cast<HydraSetWorldTransformTask *>(task_scheduler->GetTask(task_id));
|
||||
|
||||
glm::dvec3 position = {events.moveEvents[i].transform.p.x, events.moveEvents[i].transform.p.y, events.moveEvents[i].transform.p.z};
|
||||
glm::quat temp = glm::quat(events.moveEvents[i].transform.q.s, glm::vec3(events.moveEvents[i].transform.q.v.x, events.moveEvents[i].transform.q.v.y, events.moveEvents[i].transform.q.v.z));
|
||||
glm::vec3 rotation = glm::eulerAngles(temp);
|
||||
HydraID* entity_id = reinterpret_cast<HydraID*>(events.moveEvents[i].userData);
|
||||
|
||||
|
||||
set_task->Initialise(*entity_id, position, rotation);
|
||||
task_scheduler->StartTask(task_id);
|
||||
//task_scheduler->StartTask(task_id);
|
||||
task_scheduler->WaitForTask(task_id);
|
||||
}
|
||||
task_scheduler->WaitForBarrier(barrier_id);
|
||||
//task_scheduler->WaitForBarrier(barrier_id);
|
||||
}
|
||||
void Initialise(b3WorldId world_id, float delta_t_seconds)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user