Skip to content

Commit

Permalink
Fixing linux build (2) #5
Browse files Browse the repository at this point in the history
  • Loading branch information
dtrajko committed Apr 9, 2021
1 parent a06f5cd commit d9cf407
Show file tree
Hide file tree
Showing 10 changed files with 44 additions and 49 deletions.
2 changes: 1 addition & 1 deletion MoravaEngine/src/EnvMap/EnvMapEditorLayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2030,7 +2030,7 @@ bool EnvMapEditorLayer::OnMouseButtonPressed(MouseButtonPressedEvent& e)
else {
Ref<Hazel::Entity> meshEntity = GetMeshEntity();
if (meshEntity) {
m_CurrentlySelectedTransform = &meshEntity->Transform();
m_CurrentlySelectedTransform = &meshEntity->Transform().GetTransform();
}
}
}
Expand Down
10 changes: 8 additions & 2 deletions MoravaEngine/src/Hazel/Core/Assert.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,19 @@
#include <signal.h>


#ifdef HZ_PLATFORM_WINDOWS
#define HZ_DEBUGBREAK __debugbreak()
#elif HZ_PLATFORM_LINUX
#define HZ_DEBUGBREAK raise(SIGTRAP)
#endif

#ifdef HZ_DEBUG
#define HZ_ENABLE_ASSERTS
#endif

#ifdef HZ_ENABLE_ASSERTS
#define HZ_ASSERT_NO_MESSAGE(condition) { if(!(condition)) { HZ_ERROR("Assertion Failed"); raise(SIGTRAP); } } // __debugbreak() not supported by GCC
#define HZ_ASSERT_MESSAGE(condition, ...) { if(!(condition)) { HZ_ERROR("Assertion Failed: {0}", __VA_ARGS__); raise(SIGTRAP); } } // __debugbreak() not supported by GCC
#define HZ_ASSERT_NO_MESSAGE(condition) { if(!(condition)) { HZ_ERROR("Assertion Failed"); HZ_DEBUGBREAK; } } // __debugbreak() not supported by GCC
#define HZ_ASSERT_MESSAGE(condition, ...) { if(!(condition)) { HZ_ERROR("Assertion Failed: {0}", __VA_ARGS__); HZ_DEBUGBREAK; } } // __debugbreak() not supported by GCC

#define HZ_ASSERT_RESOLVE(arg1, arg2, macro, ...) macro
#define HZ_GET_ASSERT_MACRO(...) HZ_EXPAND_VARGS(HZ_ASSERT_RESOLVE(__VA_ARGS__, HZ_ASSERT_MESSAGE, HZ_ASSERT_NO_MESSAGE))
Expand Down
3 changes: 2 additions & 1 deletion MoravaEngine/src/Hazel/Editor/SceneHierarchyPanel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ namespace Hazel
UUID selectedEntityID = EntitySelection::s_SelectionContext[0].Entity.GetUUID();

if (entityMap.find(selectedEntityID) != entityMap.end()) {
EnvMapEditorLayer::AddSubmeshToSelectionContext(SelectedSubmesh({ entityMap.at(selectedEntityID), new Hazel::Submesh(), 0 }));
entt::entity entityID = entityMap.at(selectedEntityID);
EnvMapEditorLayer::AddSubmeshToSelectionContext(SelectedSubmesh({ Entity(entityID, scene.Raw()) , new Hazel::Submesh(), 0 }));
}
}
}
Expand Down
11 changes: 6 additions & 5 deletions MoravaEngine/src/Hazel/Renderer/SceneRenderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,12 +115,12 @@ namespace Hazel {
FlushDrawList();
}

void SceneRenderer::SubmitMesh(Hazel::MeshComponent meshComponent, Hazel::TransformComponent transformComponent)
void SceneRenderer::SubmitMesh(MeshComponent meshComponent, TransformComponent transformComponent)
{
SubmitMesh(meshComponent.Mesh, transformComponent.GetTransform(), nullptr);
}

void SceneRenderer::SubmitSelectedMesh(Hazel::MeshComponent meshComponent, Hazel::TransformComponent transformComponent)
void SceneRenderer::SubmitSelectedMesh(MeshComponent meshComponent, TransformComponent transformComponent)
{
SubmitSelectedMesh(meshComponent.Mesh, transformComponent.GetTransform());
}
Expand Down Expand Up @@ -158,9 +158,9 @@ namespace Hazel {
glGenerateTextureMipmap(envUnfiltered->GetID());
});


if (!envFilteringShader)
if (!envFilteringShader) {
envFilteringShader = HazelShader::Create("assets/shaders/EnvironmentMipFilter.glsl");
}

Ref<HazelTextureCube> envFiltered = HazelTextureCube::Create(HazelImageFormat::RGBA16F, cubemapSize, cubemapSize);

Expand All @@ -185,8 +185,9 @@ namespace Hazel {
}
});

if (!envIrradianceShader)
if (!envIrradianceShader) {
envIrradianceShader = HazelShader::Create("assets/shaders/EnvironmentIrradiance.glsl");
}

Ref<HazelTextureCube> irradianceMap = HazelTextureCube::Create(HazelImageFormat::RGBA16F, irradianceMapSize, irradianceMapSize);
envIrradianceShader->Bind();
Expand Down
7 changes: 4 additions & 3 deletions MoravaEngine/src/Hazel/Renderer/SceneRenderer.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include "../Scene/HazelScene.h"
#include "Hazel/Scene/HazelScene.h"
#include "Hazel/Scene/Components.h"
#include "HazelMesh.h"
#include "RenderPass.h"

Expand Down Expand Up @@ -32,8 +33,8 @@ namespace Hazel {
static void EndScene();

// old?
static void SubmitMesh(Hazel::MeshComponent meshComponent, Hazel::TransformComponent transformComponent);
static void SubmitSelectedMesh(Hazel::MeshComponent meshComponent, Hazel::TransformComponent transformComponent);
static void SubmitMesh(MeshComponent meshComponent, TransformComponent transformComponent);
static void SubmitSelectedMesh(MeshComponent meshComponent, TransformComponent transformComponent);

// new?
static void SubmitMesh(Ref<Mesh> mesh, const glm::mat4& transform = glm::mat4(1.0f), Ref<Material> overrideMaterial = nullptr);
Expand Down
17 changes: 1 addition & 16 deletions MoravaEngine/src/Hazel/Scene/Entity.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,9 @@ namespace Hazel {
m_Scene = nullptr;
}

Entity::Entity(entt::entity handle, Ref<HazelScene> scene)
Entity::Entity(entt::entity handle, HazelScene* scene)
: m_EntityHandle(handle), m_Scene(scene)
{
}

glm::mat4& Entity::Transform()
{
return m_Scene->m_Registry.get<TransformComponent>(m_EntityHandle).GetTransform();
}

const glm::mat4& Entity::Transform() const
{
return m_Scene->m_Registry.get<TransformComponent>(m_EntityHandle).GetTransform();
}

UUID Entity::GetSceneUUID()
{
return m_Scene->GetUUID();
}

}
6 changes: 3 additions & 3 deletions MoravaEngine/src/Hazel/Scene/Entity.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ namespace Hazel {
m_Scene->m_Registry.remove<T>(m_EntityHandle);
}

glm::mat4& Transform();
const glm::mat4& Transform() const;
TransformComponent& Transform() { return m_Scene->m_Registry.get<TransformComponent>(m_EntityHandle); }
const glm::mat4& Transform() const { return m_Scene->m_Registry.get<TransformComponent>(m_EntityHandle).GetTransform(); }

void SetMaterial(Material* material) { m_Material = material; }
Material* GetMaterial() { return m_Material; }
Expand All @@ -67,7 +67,7 @@ namespace Hazel {

UUID GetUUID() { return GetComponent<IDComponent>().ID; }

UUID GetSceneUUID();
UUID GetSceneUUID() { return m_Scene->GetUUID(); }

inline uint32_t GetHandle() { return (uint32_t)m_EntityHandle; }

Expand Down
14 changes: 7 additions & 7 deletions MoravaEngine/src/Hazel/Scene/HazelScene.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -182,15 +182,15 @@ namespace Hazel {
for (auto entity : view)
{
Entity e = { entity, this };
auto& transform = e.Transform();
auto& tc = e.Transform();
auto& rb2d = e.GetComponent<RigidBody2DComponent>();
b2Body* body = static_cast<b2Body*>(rb2d.RuntimeBody);

auto& position = body->GetPosition();
auto [translation, rotationQuat, scale] = Math::GetTransformDecomposition(transform);
auto [translation, rotationQuat, scale] = Math::GetTransformDecomposition(tc.GetTransform());
glm::vec3 rotation = glm::eulerAngles(rotationQuat);

transform = glm::translate(glm::mat4(1.0f), { position.x, position.y, transform[3].z }) *
tc.GetTransform() = glm::translate(glm::mat4(1.0f), { position.x, position.y, tc.GetTransform()[3].z }) *
glm::toMat4(glm::quat({ rotation.x, rotation.y, body->GetAngle() })) *
glm::scale(glm::mat4(1.0f), scale);
}
Expand Down Expand Up @@ -348,7 +348,7 @@ namespace Hazel {
Entity HazelScene::CreateEntity(const std::string& name, Ref<HazelScene> scene)
{
Entity entity = CreateEntity(name);
entity.m_Scene = scene;
entity.m_Scene = scene.Raw();

return entity;
}
Expand Down Expand Up @@ -625,7 +625,7 @@ namespace Hazel {
{
Entity e = { entity, this };
UUID entityID = e.GetComponent<IDComponent>().ID;
auto& transform = e.Transform();
auto& tc = e.Transform();
auto& rigidBody2D = m_Registry.get<RigidBody2DComponent>(entity);

b2BodyDef bodyDef;
Expand All @@ -638,9 +638,9 @@ namespace Hazel {
else if (rigidBody2D.BodyType == RigidBody2DComponent::Type::Kinematic) {
bodyDef.type = b2_kinematicBody;
}
bodyDef.position.Set(transform[3].x, transform[3].y);
bodyDef.position.Set(tc.GetTransform()[3].x, tc.GetTransform()[3].y);

auto [translation, rotationQuat, scale] = Math::GetTransformDecomposition(transform);
auto [translation, rotationQuat, scale] = Math::GetTransformDecomposition(tc.GetTransform());
glm::vec3 rotation = glm::eulerAngles(rotationQuat);
bodyDef.angle = rotation.z;

Expand Down
9 changes: 5 additions & 4 deletions MoravaEngine/src/Hazel/Script/ScriptEngine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,7 @@ namespace Hazel
{
const auto& entityMap = scene->GetEntityMap();
HZ_CORE_ASSERT(entityMap.find(entityID) != entityMap.end(), "Invalid entity ID or entity doesn't exist in scene!");
InitScriptEntity(entityMap.at(entityID));
InitScriptEntity({ entityMap.at(entityID), scene.Raw() });
}
}
}
Expand Down Expand Up @@ -466,7 +466,7 @@ namespace Hazel

void ScriptEngine::InitScriptEntity(Entity entity)
{
HazelScene* scene = entity.m_Scene.Raw();
HazelScene* scene = entity.m_Scene;
UUID id = entity.GetComponent<IDComponent>().ID;
auto& moduleName = entity.GetComponent<ScriptComponent>().ModuleName;
if (moduleName.empty())
Expand Down Expand Up @@ -549,7 +549,7 @@ namespace Hazel

void ScriptEngine::InstantiateEntityClass(Entity entity)
{
HazelScene* scene = entity.m_Scene.Raw();
HazelScene* scene = entity.m_Scene;
UUID id = entity.GetComponent<IDComponent>().ID;
auto& moduleName = entity.GetComponent<ScriptComponent>().ModuleName;

Expand Down Expand Up @@ -691,7 +691,8 @@ namespace Hazel
Ref<HazelScene> scene = HazelScene::GetScene(sceneID);
for (auto& [entityID, entityInstanceData] : entityMap)
{
Entity entity = scene->GetScene(sceneID)->GetEntityMap().at(entityID);
auto entityHandle = scene->GetScene(sceneID)->GetEntityMap().at(entityID);
Entity entity = { entityHandle, scene.Raw() };
std::string entityName = "Unnamed Entity";
if (entity.HasComponent<TagComponent>())
entityName = entity.GetComponent<TagComponent>().Tag;
Expand Down
14 changes: 7 additions & 7 deletions MoravaEngine/src/Hazel/Script/ScriptWrappers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ namespace Hazel { namespace Script {
const auto& entityMap = scene->GetEntityMap();
HZ_CORE_ASSERT(entityMap.find(entityID) != entityMap.end(), "Invalid entity ID or entity doesn't exist in scene!");

Entity entity = entityMap.at(entityID);
Entity entity = { entityMap.at(entityID), scene.Raw() };
auto& transformComponent = entity.GetComponent<TransformComponent>();
memcpy((void*)glm::value_ptr(transformComponent.GetTransform()), inTransform, sizeof(glm::mat4));
}
Expand All @@ -92,7 +92,7 @@ namespace Hazel { namespace Script {
const auto& entityMap = scene->GetEntityMap();
HZ_CORE_ASSERT(entityMap.find(entityID) != entityMap.end(), "Invalid entity ID or entity doesn't exist in scene!");

Entity entity = entityMap.at(entityID);
Entity entity = { entityMap.at(entityID), scene.Raw() };
MonoType* monoType = mono_reflection_type_get_type((MonoReflectionType*)type);
s_CreateComponentFuncs[monoType](entity);
}
Expand All @@ -104,7 +104,7 @@ namespace Hazel { namespace Script {
const auto& entityMap = scene->GetEntityMap();
HZ_CORE_ASSERT(entityMap.find(entityID) != entityMap.end(), "Invalid entity ID or entity doesn't exist in scene!");

Entity entity = entityMap.at(entityID);
Entity entity = { entityMap.at(entityID), scene.Raw() };
MonoType* monoType = mono_reflection_type_get_type((MonoReflectionType*)type);
bool result = s_HasComponentFuncs[monoType](entity);
return result;
Expand All @@ -130,7 +130,7 @@ namespace Hazel { namespace Script {
const auto& entityMap = scene->GetEntityMap();
HZ_CORE_ASSERT(entityMap.find(entityID) != entityMap.end(), "Invalid entity ID or entity doesn't exist in scene!");

Entity entity = entityMap.at(entityID);
Entity entity = { entityMap.at(entityID), scene.Raw() };
auto& meshComponent = entity.GetComponent<MeshComponent>();
return new Ref<Mesh>(meshComponent.Mesh);

Expand All @@ -156,7 +156,7 @@ namespace Hazel { namespace Script {
const auto& entityMap = scene->GetEntityMap();
HZ_CORE_ASSERT(entityMap.find(entityID) != entityMap.end(), "Invalid entity ID or entity doesn't exist in scene!");

Entity entity = entityMap.at(entityID);
Entity entity = { entityMap.at(entityID), scene.Raw() };
HZ_CORE_ASSERT(entity.HasComponent<RigidBody2DComponent>());
auto& component = entity.GetComponent<RigidBody2DComponent>();
b2Body* body = (b2Body*)component.RuntimeBody;
Expand All @@ -170,7 +170,7 @@ namespace Hazel { namespace Script {
const auto& entityMap = scene->GetEntityMap();
HZ_CORE_ASSERT(entityMap.find(entityID) != entityMap.end(), "Invalid entity ID or entity doesn't exist in scene!");

Entity entity = entityMap.at(entityID);
Entity entity = { entityMap.at(entityID), scene.Raw() };
HZ_CORE_ASSERT(entity.HasComponent<RigidBody2DComponent>());
auto& component = entity.GetComponent<RigidBody2DComponent>();
b2Body* body = (b2Body*)component.RuntimeBody;
Expand All @@ -186,7 +186,7 @@ namespace Hazel { namespace Script {
const auto& entityMap = scene->GetEntityMap();
HZ_CORE_ASSERT(entityMap.find(entityID) != entityMap.end(), "Invalid entity ID or entity doesn't exist in scene!");

Entity entity = entityMap.at(entityID);
Entity entity = { entityMap.at(entityID), scene.Raw() };
HZ_CORE_ASSERT(entity.HasComponent<RigidBody2DComponent>());
auto& component = entity.GetComponent<RigidBody2DComponent>();
b2Body* body = (b2Body*)component.RuntimeBody;
Expand Down

0 comments on commit d9cf407

Please sign in to comment.