Changed Scene to World
This commit is contained in:
parent
f246d0e227
commit
9e6ee7b2e2
@ -8,7 +8,7 @@
|
||||
|
||||
#ifdef DEER_RENDER
|
||||
#include "DeerRender/Render/FrameBuffer.h"
|
||||
#include "DeerRender/Scene.h"
|
||||
#include "DeerRender/World.h"
|
||||
#endif
|
||||
|
||||
#include <algorithm>
|
||||
@ -63,7 +63,7 @@ namespace Deer {
|
||||
// Obtains the entity that is on the root of the environment
|
||||
inline Entity& getRoot() { return getEntity(0); }
|
||||
#ifdef DEER_RENDER
|
||||
void render(const SceneCamera& camera);
|
||||
void render(const WorldCamera& camera);
|
||||
#endif
|
||||
Scope<entt::registry> m_registry;
|
||||
|
||||
@ -3,13 +3,11 @@
|
||||
|
||||
namespace Deer {
|
||||
class EntityEnvironment;
|
||||
class SceneCamera;
|
||||
class WorldCamera;
|
||||
class GizmoRenderer;
|
||||
|
||||
// A scene is a 3d simulation with its environment and voxel world in case
|
||||
// of initialized, here things can be simulated
|
||||
namespace Scene {
|
||||
// Clears all the assets and memory the Scene had conained
|
||||
namespace World {
|
||||
// Clears all the assets and memory the World had conained
|
||||
void clear();
|
||||
|
||||
// This is the cycle to execution of scripts and physics
|
||||
@ -23,10 +21,10 @@ namespace Deer {
|
||||
#ifdef DEER_RENDER
|
||||
// This function renders with the default camera in the environment
|
||||
void render();
|
||||
void render(const SceneCamera&);
|
||||
void render(const WorldCamera&);
|
||||
|
||||
extern GizmoRenderer gizmoRenderer;
|
||||
#endif
|
||||
extern EntityEnvironment environment;
|
||||
} // namespace Scene
|
||||
} // namespace World
|
||||
} // namespace Deer
|
||||
2
Deer/Include/DeerRender/EntityEnviroment.h
Normal file
2
Deer/Include/DeerRender/EntityEnviroment.h
Normal file
@ -0,0 +1,2 @@
|
||||
#pragma once
|
||||
#include "DeerCore/EntityEnviroment.h"
|
||||
@ -1,2 +0,0 @@
|
||||
#pragma once
|
||||
#include "DeerCore/Enviroment.h"
|
||||
@ -1,5 +1,5 @@
|
||||
#pragma once
|
||||
#include "DeerRender/Enviroment.h"
|
||||
#include "DeerRender/EntityEnviroment.h"
|
||||
#include "DeerRender/Render/FrameBuffer.h"
|
||||
#include "DeerRender/Tools/Memory.h"
|
||||
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
#pragma once
|
||||
#include "DeerCore/Scene.h"
|
||||
#include "DeerCore/World.h"
|
||||
#include "DeerRender/Components.h"
|
||||
|
||||
namespace Deer {
|
||||
struct SceneCamera {
|
||||
struct WorldCamera {
|
||||
TransformComponent transform;
|
||||
CameraComponent camera;
|
||||
|
||||
SceneCamera() {}
|
||||
SceneCamera(TransformComponent _transform, CameraComponent _camera) : transform(_transform), camera(_camera) {}
|
||||
WorldCamera() {}
|
||||
WorldCamera(TransformComponent _transform, CameraComponent _camera) : transform(_transform), camera(_camera) {}
|
||||
};
|
||||
} // namespace Deer
|
||||
@ -1,27 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "cereal/cereal.hpp"
|
||||
#include "cereal/types/string.hpp"
|
||||
#include "cereal/types/vector.hpp"
|
||||
|
||||
// Serialization Vars
|
||||
#include "DeerCore/Scene/Serialization/SerializationGlobalVars.h"
|
||||
|
||||
// GENERICS
|
||||
#include "DeerCore/Scene/Serialization/QuatSerialization.h"
|
||||
#include "DeerCore/Scene/Serialization/Vec3Serialization.h"
|
||||
|
||||
// SCENE SPECIFIC
|
||||
#include "DeerCore/Scene/Serialization/EntityEnvironmentSerialization.h"
|
||||
#include "DeerCore/Scene/Serialization/EntitySerialization.h"
|
||||
|
||||
// COMPONENTS SPECIFIC
|
||||
#include "DeerCore/Scene/Serialization/Components/RelationshipComponentSerialization.h"
|
||||
#include "DeerCore/Scene/Serialization/Components/TransformComponentSerialization.h"
|
||||
|
||||
// RENDER SPECIFIC
|
||||
#ifdef DEER_RENDER
|
||||
#include "DeerRender/Scene/Serialization/Components/CameraSerializationComponent.h"
|
||||
#include "DeerRender/Scene/Serialization/Components/MeshRenderComponentSerialization.h"
|
||||
#include "DeerRender/Scene/Serialization/Components/TextureBindingSerializationComponent.h"
|
||||
#endif
|
||||
@ -1,5 +1,5 @@
|
||||
#include "DeerCore/Components.h"
|
||||
#include "DeerCore/Enviroment.h"
|
||||
#include "DeerCore/EntityEnviroment.h"
|
||||
#include "DeerCore/Log.h"
|
||||
|
||||
namespace Deer {
|
||||
@ -1,4 +1,4 @@
|
||||
#include "DeerCore/Enviroment.h"
|
||||
#include "DeerCore/EntityEnviroment.h"
|
||||
|
||||
#include "DeerCore/Application.h"
|
||||
#include "DeerCore/Components.h"
|
||||
@ -1,4 +1,4 @@
|
||||
#include "DeerCore/Enviroment.h"
|
||||
#include "DeerCore/EntityEnviroment.h"
|
||||
|
||||
namespace Deer {
|
||||
Scope<EntityEnvironment> ResourceBuilder<EntityEnvironment>::buildResource(const BaseDataType& baseData) {
|
||||
@ -1,8 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include "DeerCore/Components.h"
|
||||
#include "DeerCore/Enviroment.h"
|
||||
#include "DeerCore/Scene/Serialization/SerializationGlobalVars.h"
|
||||
#include "DeerCore/EntityEnviroment.h"
|
||||
#include "DeerCore/World/Serialization/SerializationGlobalVars.h"
|
||||
#include "EntitySerializationStruct.h"
|
||||
|
||||
namespace Deer {
|
||||
@ -2,7 +2,7 @@
|
||||
#include <cstdint>
|
||||
#include <vector>
|
||||
|
||||
#include "DeerCore/Enviroment.h"
|
||||
#include "DeerCore/EntityEnviroment.h"
|
||||
#include "EntitySerializationStruct.h"
|
||||
|
||||
namespace Deer {
|
||||
27
Deer/src/DeerCore/World/Serialization/Serialization.h
Executable file
27
Deer/src/DeerCore/World/Serialization/Serialization.h
Executable file
@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include "cereal/cereal.hpp"
|
||||
#include "cereal/types/string.hpp"
|
||||
#include "cereal/types/vector.hpp"
|
||||
|
||||
// Serialization Vars
|
||||
#include "DeerCore/World/Serialization/SerializationGlobalVars.h"
|
||||
|
||||
// GENERICS
|
||||
#include "DeerCore/World/Serialization/QuatSerialization.h"
|
||||
#include "DeerCore/World/Serialization/Vec3Serialization.h"
|
||||
|
||||
// SCENE SPECIFIC
|
||||
#include "DeerCore/World/Serialization/EntityEnvironmentSerialization.h"
|
||||
#include "DeerCore/World/Serialization/EntitySerialization.h"
|
||||
|
||||
// COMPONENTS SPECIFIC
|
||||
#include "DeerCore/World/Serialization/Components/RelationshipComponentSerialization.h"
|
||||
#include "DeerCore/World/Serialization/Components/TransformComponentSerialization.h"
|
||||
|
||||
// RENDER SPECIFIC
|
||||
#ifdef DEER_RENDER
|
||||
#include "DeerRender/World/Serialization/Components/CameraSerializationComponent.h"
|
||||
#include "DeerRender/World/Serialization/Components/MeshRenderComponentSerialization.h"
|
||||
#include "DeerRender/World/Serialization/Components/TextureBindingSerializationComponent.h"
|
||||
#endif
|
||||
@ -1,10 +1,10 @@
|
||||
#include "DeerCore/Scene.h"
|
||||
#include "DeerCore/World.h"
|
||||
|
||||
#include "DeerCore/Components.h"
|
||||
#include "DeerCore/Enviroment.h"
|
||||
#include "DeerCore/EntityEnviroment.h"
|
||||
#include "DeerCore/Log.h"
|
||||
#include "DeerCore/Scene/SceneData.h"
|
||||
#include "DeerCore/Tools/Memory.h"
|
||||
#include "DeerCore/World/WorldData.h"
|
||||
|
||||
#ifdef DEER_RENDER
|
||||
#include "DeerRender/FrameBuffer.h"
|
||||
@ -13,7 +13,7 @@
|
||||
#endif
|
||||
|
||||
namespace Deer {
|
||||
void Scene::clear() {
|
||||
void World::clear() {
|
||||
environment.clear();
|
||||
|
||||
#ifdef DEER_RENDER
|
||||
@ -24,19 +24,19 @@ namespace Deer {
|
||||
#endif
|
||||
}
|
||||
|
||||
bool Scene::getExecutingState() {
|
||||
bool World::getExecutingState() {
|
||||
return isExecuting;
|
||||
}
|
||||
|
||||
void Scene::initExecution() {
|
||||
void World::initExecution() {
|
||||
DEER_CORE_ASSERT(!isExecuting, "Deer scene is already executing");
|
||||
isExecuting = true;
|
||||
}
|
||||
|
||||
void Scene::tickExecution() {
|
||||
void World::tickExecution() {
|
||||
}
|
||||
|
||||
void Scene::endExecution() {
|
||||
void World::endExecution() {
|
||||
DEER_CORE_ASSERT(isExecuting, "Deer scene is not executing");
|
||||
isExecuting = false;
|
||||
}
|
||||
@ -1,10 +1,10 @@
|
||||
#include "DeerCore/Enviroment.h"
|
||||
#include "DeerCore/EntityEnviroment.h"
|
||||
#include "DeerCore/Tools/Memory.h"
|
||||
|
||||
namespace Deer {
|
||||
namespace Scene {
|
||||
namespace World {
|
||||
EntityEnvironment environment;
|
||||
bool isExecuting = false;
|
||||
} // namespace Scene
|
||||
} // namespace World
|
||||
|
||||
} // namespace Deer
|
||||
@ -4,9 +4,9 @@
|
||||
namespace Deer {
|
||||
class EntityEnvironment;
|
||||
|
||||
namespace Scene {
|
||||
namespace World {
|
||||
extern EntityEnvironment environment;
|
||||
extern bool isExecuting;
|
||||
} // namespace Scene
|
||||
} // namespace World
|
||||
|
||||
} // namespace Deer
|
||||
@ -1,4 +1,4 @@
|
||||
#include "DeerRender/Enviroment.h"
|
||||
#include "DeerRender/EntityEnviroment.h"
|
||||
|
||||
#include "DeerRender/Application.h"
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
#include "DeerRender/Log.h"
|
||||
|
||||
namespace Deer {
|
||||
void EntityEnvironment::render(const SceneCamera& camera) {
|
||||
void EntityEnvironment::render(const WorldCamera& camera) {
|
||||
glm::mat4 camMatrix = glm::inverse(camera.transform.getMatrix());
|
||||
glm::mat4 projectionMatrix = camera.camera.getMatrix();
|
||||
glm::mat4 invertZ = glm::scale(glm::mat4(1.0f), glm::vec3(1, 1, -1));
|
||||
@ -1,25 +1,25 @@
|
||||
#include "DeerRender/Scene.h"
|
||||
#include "DeerRender/World.h"
|
||||
|
||||
#include "DeerRender/Components.h"
|
||||
#include "DeerRender/Enviroment.h"
|
||||
#include "DeerRender/EntityEnviroment.h"
|
||||
#include "DeerRender/Render/RenderCommand.h"
|
||||
#include "DeerRender/Scene.h"
|
||||
#include "DeerRender/World.h"
|
||||
|
||||
namespace Deer {
|
||||
void Scene::render() {
|
||||
void World::render() {
|
||||
uint32_t mainCamera = environment.tryGetMainCamera();
|
||||
if (mainCamera == 0)
|
||||
return;
|
||||
|
||||
Entity& m_cameraEntity = environment.getEntity(mainCamera);
|
||||
SceneCamera sceneCamera;
|
||||
WorldCamera sceneCamera;
|
||||
sceneCamera.camera = m_cameraEntity.getComponent<CameraComponent>();
|
||||
sceneCamera.transform = m_cameraEntity.getComponent<TransformComponent>();
|
||||
|
||||
Scene::render(sceneCamera);
|
||||
World::render(sceneCamera);
|
||||
}
|
||||
|
||||
void Scene::render(const SceneCamera& sceneCamera) {
|
||||
void World::render(const WorldCamera& sceneCamera) {
|
||||
RenderCommand::setDepthBuffer(true);
|
||||
environment.render(sceneCamera);
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
#pragma once
|
||||
#include "GenericRefStructs.h"
|
||||
#include <string>
|
||||
// #include "DeerRender/Scene.h"
|
||||
// #include "DeerRender/World.h"
|
||||
|
||||
namespace Deer {
|
||||
class SceneCamera;
|
||||
class WorldCamera;
|
||||
|
||||
namespace StudioAPI {
|
||||
struct EntityEnvironmentStruct : EntityEnvironmentHandleStruct {
|
||||
void render(FrameBufferHandleStruct, SceneCamera&);
|
||||
void render(FrameBufferHandleStruct, WorldCamera&);
|
||||
|
||||
EntityHandleStruct getRootEntity();
|
||||
EntityHandleStruct getEntity(int);
|
||||
@ -3,7 +3,7 @@
|
||||
#include "glm/gtc/quaternion.hpp"
|
||||
|
||||
#include "DeerRender/Components.h"
|
||||
#include "DeerRender/Scene.h"
|
||||
#include "DeerRender/World.h"
|
||||
|
||||
namespace Deer {
|
||||
namespace StudioAPI {
|
||||
@ -26,7 +26,7 @@ namespace Deer {
|
||||
|
||||
void transform_construct(TransformComponent*);
|
||||
void camera_construct(CameraComponent*);
|
||||
void sceneCamera_Construct(SceneCamera*);
|
||||
void sceneCamera_Construct(WorldCamera*);
|
||||
|
||||
glm::vec3 transform_relative(glm::vec3, TransformComponent*);
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ namespace Deer {
|
||||
REGISTER_GLOBAL_FUNC("EntityEnvironment createLoadEntityEnvironment(const string&in envId)", StudioAPI::createLoadEntityEnvironment);
|
||||
scriptEngine->SetDefaultNamespace("");
|
||||
|
||||
REGISTER_OBJECT_METHOD("EntityEnvironment", "void render(FrameBuffer, SceneCamera&in)", StudioAPI::EntityEnvironmentStruct, render);
|
||||
REGISTER_OBJECT_METHOD("EntityEnvironment", "void render(FrameBuffer, WorldCamera&in)", StudioAPI::EntityEnvironmentStruct, render);
|
||||
REGISTER_OBJECT_METHOD("EntityEnvironment", "Entity getRootEntity()", StudioAPI::EntityEnvironmentStruct, getRootEntity);
|
||||
REGISTER_OBJECT_METHOD("EntityEnvironment", "Entity getEntity(int)", StudioAPI::EntityEnvironmentStruct, getEntity);
|
||||
}
|
||||
|
||||
@ -27,9 +27,9 @@ namespace Deer {
|
||||
AS_CHECK(scriptEngine->RegisterObjectProperty("Camera", "float nearZ", asOFFSET(CameraComponent, nearZ)));
|
||||
AS_CHECK(scriptEngine->RegisterObjectProperty("Camera", "float farZ", asOFFSET(CameraComponent, farZ)));
|
||||
|
||||
AS_CHECK(scriptEngine->RegisterObjectType("SceneCamera", sizeof(SceneCamera), asOBJ_VALUE | asOBJ_POD | asGetTypeTraits<SceneCamera>()));
|
||||
AS_CHECK(scriptEngine->RegisterObjectProperty("SceneCamera", "Camera camera", asOFFSET(SceneCamera, camera)));
|
||||
AS_CHECK(scriptEngine->RegisterObjectProperty("SceneCamera", "Transform transform", asOFFSET(SceneCamera, transform)));
|
||||
AS_CHECK(scriptEngine->RegisterObjectType("WorldCamera", sizeof(WorldCamera), asOBJ_VALUE | asOBJ_POD | asGetTypeTraits<WorldCamera>()));
|
||||
AS_CHECK(scriptEngine->RegisterObjectProperty("WorldCamera", "Camera camera", asOFFSET(WorldCamera, camera)));
|
||||
AS_CHECK(scriptEngine->RegisterObjectProperty("WorldCamera", "Transform transform", asOFFSET(WorldCamera, transform)));
|
||||
}
|
||||
|
||||
void AngelScriptEngine::registerMathFunctions() {
|
||||
@ -49,7 +49,7 @@ namespace Deer {
|
||||
|
||||
REGISTER_EXT_OBJECT_CONSTRUCTOR("Transform", "void f()", StudioAPI::transform_construct);
|
||||
REGISTER_EXT_OBJECT_CONSTRUCTOR("Camera", "void f()", StudioAPI::camera_construct);
|
||||
REGISTER_EXT_OBJECT_CONSTRUCTOR("SceneCamera", "void f()", StudioAPI::sceneCamera_Construct);
|
||||
REGISTER_EXT_OBJECT_CONSTRUCTOR("WorldCamera", "void f()", StudioAPI::sceneCamera_Construct);
|
||||
|
||||
REGISTER_EXT_OBJECT_METHOD("Transform", "vec3 relative(vec3)", StudioAPI::transform_relative);
|
||||
}
|
||||
|
||||
@ -2,8 +2,8 @@
|
||||
#include "DeerStudio/AngelScriptEngine.h"
|
||||
|
||||
#include "DeerRender/DataStore.h"
|
||||
#include "DeerRender/Scene.h"
|
||||
#include "DeerRender/Tools/Path.h"
|
||||
#include "DeerRender/World.h"
|
||||
|
||||
#include "DeerRender/Application.h"
|
||||
|
||||
@ -44,7 +44,7 @@ namespace Deer {
|
||||
AngelScriptEngine::deinitialize();
|
||||
RenderUtils::deinitializeRenderUtils();
|
||||
|
||||
Scene::clear();
|
||||
World::clear();
|
||||
|
||||
Application::shutdownWindow();
|
||||
Log::shutdown();
|
||||
|
||||
@ -2,14 +2,14 @@
|
||||
#include "DeerStudio/AngelScriptEngine.h"
|
||||
|
||||
#include "DeerRender/Components.h"
|
||||
#include "DeerRender/Enviroment.h"
|
||||
#include "DeerRender/Scene.h"
|
||||
#include "DeerRender/EntityEnviroment.h"
|
||||
#include "DeerRender/World.h"
|
||||
|
||||
#include "DeerRender/Resource.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
#define GET_ENV(env) ((env < 0) ? Scene::environment : Deer::Resource<EntityEnvironment>::unsafeFromId(environmentId).getData())
|
||||
#define GET_ENV(env) ((env < 0) ? World::environment : Deer::Resource<EntityEnvironment>::unsafeFromId(environmentId).getData())
|
||||
|
||||
#define GET_ENTITY(env, id) GET_ENV(env).getEntity(id)
|
||||
#define GET_MESH_COMPONENT(env, id) \
|
||||
@ -48,7 +48,7 @@ namespace Deer {
|
||||
|
||||
EntityEnvironment* EntityHandleStruct::getEntityEntityEnvironment() {
|
||||
if (environmentId < 0)
|
||||
return &Scene::environment;
|
||||
return &World::environment;
|
||||
return &Resource<EntityEnvironment>::unsafeFromId(environmentId).getData();
|
||||
}
|
||||
|
||||
@ -93,7 +93,7 @@ namespace Deer {
|
||||
bool EntityStruct::exists() {
|
||||
ASSERT_ENTITY("exists()", return false);
|
||||
|
||||
return Scene::environment.entityExists(entityId);
|
||||
return World::environment.entityExists(entityId);
|
||||
}
|
||||
|
||||
void EntityStruct::setParent(EntityHandleStruct parent_struct) {
|
||||
@ -198,7 +198,7 @@ namespace Deer {
|
||||
|
||||
EntityEnvironment* env;
|
||||
if (environmentId < 0)
|
||||
env = &Scene::environment;
|
||||
env = &World::environment;
|
||||
else
|
||||
env = &Resource<EntityEnvironment>::unsafeFromId(environmentId).getData();
|
||||
|
||||
|
||||
@ -1,27 +1,27 @@
|
||||
#include "DeerRender/Enviroment.h"
|
||||
#include "DeerRender/EntityEnviroment.h"
|
||||
#include "DeerRender/Resource.h"
|
||||
#include "DeerRender/Scene.h"
|
||||
#include "DeerRender/Tools/Memory.h"
|
||||
#include "DeerRender/World.h"
|
||||
|
||||
#include "DeerStudio/StudioAPI/EntityEnvironment.h"
|
||||
|
||||
#include "DeerRender/FrameBuffer.h"
|
||||
#include "DeerRender/Scene.h"
|
||||
#include "DeerRender/World.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace Deer {
|
||||
namespace StudioAPI {
|
||||
// The first element has to allways point to the main scene env
|
||||
std::vector<EntityEnvironment*> environments{&Scene::environment};
|
||||
std::vector<EntityEnvironment*> environments{&World::environment};
|
||||
|
||||
void EntityEnvironmentStruct::render(FrameBufferHandleStruct frameBuffer_handle, SceneCamera& sc) {
|
||||
void EntityEnvironmentStruct::render(FrameBufferHandleStruct frameBuffer_handle, WorldCamera& sc) {
|
||||
Resource<FrameBuffer> frameBufferResource = Resource<FrameBuffer>::unsafeFromId(frameBuffer_handle.frameBufferId);
|
||||
FrameBuffer& frameBuffer = frameBufferResource.getData();
|
||||
|
||||
EntityEnvironment* envPtr = nullptr;
|
||||
if (environmentId < 0) {
|
||||
envPtr = &Scene::environment;
|
||||
envPtr = &World::environment;
|
||||
} else {
|
||||
Resource<EntityEnvironment> environmentResource = Resource<EntityEnvironment>::unsafeFromId(environmentId);
|
||||
envPtr = &environmentResource.getData();
|
||||
@ -49,8 +49,8 @@ namespace Deer {
|
||||
void camera_construct(CameraComponent* mem) {
|
||||
new (mem) CameraComponent();
|
||||
}
|
||||
void sceneCamera_Construct(SceneCamera* mem) {
|
||||
new (mem) SceneCamera();
|
||||
void sceneCamera_Construct(WorldCamera* mem) {
|
||||
new (mem) WorldCamera();
|
||||
}
|
||||
|
||||
} // namespace StudioAPI
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
class RenderService : Service {
|
||||
EntityEnvir nment env;
|
||||
SceneCamera sceneCamera;
|
||||
WorldCamera sceneCamera;
|
||||
MeshComponent meshC;
|
||||
Entity child;
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
class ViewportPanel : Panel {
|
||||
FrameBuffer frameBuffer;
|
||||
SceneCamera sceneCamera;
|
||||
WorldCamera sceneCamera;
|
||||
EntityEnvir nment mainEnv;
|
||||
|
||||
float pitch = 0;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user