Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
0963f91
Refactor Editor Framework
May 16, 2022
86c4445
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 16, 2022
b340e38
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 16, 2022
dfd4dee
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 16, 2022
03fdd40
Fix naming typo, filed to field
May 16, 2022
a6e9f78
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 20, 2022
896e8d5
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 20, 2022
25b3a4d
editor input refactor
May 20, 2022
90dc3e8
fix editor mac build
May 20, 2022
d0f39bf
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 21, 2022
9bb2b5d
Refactor rendering architecture
kwbm May 21, 2022
d0c27a9
Fix Linux Compile Error and Warnings
hyv1001 May 22, 2022
9629029
Fix Linux Compile Error
hyv1001 May 22, 2022
6093dc1
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 22, 2022
01a2da7
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 22, 2022
41c30f1
Fix render system problem when reloading current level
kwbm May 24, 2022
49bc01c
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 24, 2022
07895f6
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 24, 2022
c01bea5
Move camera update info in camera component tick to swap data context…
kwbm May 26, 2022
c41cd80
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 29, 2022
8e4df34
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 29, 2022
4ad44bc
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 30, 2022
73641e5
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 30, 2022
ba87186
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev May 31, 2022
a6cae86
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev Jun 1, 2022
f5f7879
Jolt optimization
Jun 1, 2022
1d61cef
Merge branch 'BoomingTech:main' into upstream
BoomingTechDev Jun 1, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Refactor rendering architecture
  • Loading branch information
kwbm authored and TECH-韦洪宇 committed May 21, 2022
commit 9bb2b5d2d95cf5f3a60ef69498ab7043ddbe3b25
5 changes: 5 additions & 0 deletions engine/source/editor/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@ add_executable(${TARGET_NAME} ${EDITOR_HEADERS} ${EDITOR_SOURCES} ${EDITOR_RESOU

add_compile_definitions("PILOT_ROOT_DIR=${BINARY_ROOT_DIR}")

target_include_directories(
${TARGET_NAME}
PUBLIC $<BUILD_INTERFACE:${THIRD_PARTY_DIR}/stb>
)

set_target_properties(${TARGET_NAME} PROPERTIES CXX_STANDARD 17 OUTPUT_NAME "PilotEditor")
set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "Engine")

Expand Down
13 changes: 9 additions & 4 deletions engine/source/editor/include/axis.h
Original file line number Diff line number Diff line change
@@ -1,23 +1,28 @@
#pragma once
#include "runtime/function/render/include/render/framebuffer.h"

#include "runtime/function/render/render_entity.h"
#include "runtime/function/render/render_type.h"

namespace Pilot
{
class EditorTranslationAxis : public RenderMesh
class EditorTranslationAxis : public RenderEntity
{
public:
EditorTranslationAxis();
RenderMeshData m_mesh_data;
};

class EditorRotationAxis : public RenderMesh
class EditorRotationAxis : public RenderEntity
{
public:
EditorRotationAxis();
RenderMeshData m_mesh_data;
};

class EditorScaleAxis : public RenderMesh
class EditorScaleAxis : public RenderEntity
{
public:
EditorScaleAxis();
RenderMeshData m_mesh_data;
};
} // namespace Pilot
2 changes: 0 additions & 2 deletions engine/source/editor/include/editor.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@
namespace Pilot
{
class EditorUI;
class EditorSceneManager;
class PilotEngine;


class PilotEditor : public PublicSingleton<PilotEditor>
{
friend class EditorUI;
Expand Down
11 changes: 10 additions & 1 deletion engine/source/editor/include/editor_global_context.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,22 @@

namespace Pilot
{
struct EditorGlobalContextInitInfo
{
class WindowSystem* window_system;
class RenderSystem* render_system;
};

class EditorGlobalContext
{
public:
class EditorSceneManager* m_scene_manager{ nullptr };
class EditorInputManager* m_input_manager{ nullptr };
class RenderSystem* m_render_system{ nullptr };
class WindowSystem* m_window_system{ nullptr };

public:
void initialize();
void initialize(const EditorGlobalContextInitInfo& init_info);
void clear();
};

Expand Down
7 changes: 2 additions & 5 deletions engine/source/editor/include/editor_input_manager.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#pragma once
#include <vector>
#include <runtime/function/render/include/render/surface_io.h>
#include "render/render_camera.h"
//#include <runtime/function/render/include/render/surface_io.h>
#include "runtime/function/render/render_camera.h"

#include "runtime/core/math/vector2.h"

Expand Down Expand Up @@ -54,9 +54,6 @@ namespace Pilot
void setEngineWindowSize(Vector2 new_window_size) { m_engine_window_size = new_window_size; };
void resetEditorCommand() { m_editor_command = 0; }
private:
//PilotEditor* m_editor{ nullptr };
std::shared_ptr<SurfaceIO> m_io;

Vector2 m_engine_window_pos{ 0.0f, 0.0f };
Vector2 m_engine_window_size{ 1280.0f, 768.0f };
float m_mouse_x{ 0.0f };
Expand Down
28 changes: 17 additions & 11 deletions engine/source/editor/include/editor_scene_manager.h
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
#pragma once
#include "render/render_camera.h"

#include "editor/include/axis.h"
#include "runtime/function/render/include/render/vulkan_manager/vulkan_manager.h"

#include "runtime/function/framework/object/object.h"
#include "runtime/function/scene/scene_object.h"
#include "runtime/function/render/render_object.h"

#include <memory>

namespace Pilot
{
class PilotEditor;
class RenderCamera;
class RenderEntity;

enum class EditorAxisMode : int
{
Expand All @@ -30,8 +33,8 @@ namespace Pilot
Vector2 game_engine_window_size);
void drawSelectedEntityAxis();
std::weak_ptr<GObject> getSelectedGObject() const;
RenderMesh* getAxisMeshByType(EditorAxisMode axis_mode);
void onGObjectSelected(size_t selected_gobject_id);
RenderEntity* getAxisMeshByType(EditorAxisMode axis_mode);
void onGObjectSelected(GObjectID selected_gobject_id);
void onDeleteSelectedGObject();
void moveEntity(float new_mouse_pos_x,
float new_mouse_pos_y,
Expand All @@ -41,30 +44,33 @@ namespace Pilot
Vector2 engine_window_size,
size_t cursor_on_axis,
Matrix4x4 model_matrix);

void setEditorCamera(std::shared_ptr<RenderCamera> camera) { m_camera = camera; }
void uploadAxisResource();
size_t getGuidOfPickedMesh(const Vector2& picked_uv) const;

public:
std::shared_ptr<PCamera> getEditorCamera() { return m_camera; };
std::shared_ptr<RenderCamera> getEditorCamera() { return m_camera; };

size_t getSelectedObjectID() { return m_selected_gobject_id; };
GObjectID getSelectedObjectID() { return m_selected_gobject_id; };
Matrix4x4 getSelectedObjectMatrix() { return m_selected_object_matrix; }
EditorAxisMode getEditorAxisMode() { return m_axis_mode; }

void setSelectedObjectID(size_t selected_gobject_id) { m_selected_gobject_id = selected_gobject_id; };
void setSelectedObjectID(GObjectID selected_gobject_id) { m_selected_gobject_id = selected_gobject_id; };
void setSelectedObjectMatrix(Matrix4x4 new_object_matrix) { m_selected_object_matrix = new_object_matrix; }
void setEditorAxisMode(EditorAxisMode new_axis_mode) { m_axis_mode = new_axis_mode; }
private:
EditorTranslationAxis m_translation_axis;
EditorRotationAxis m_rotation_axis;
EditorScaleAxis m_scale_aixs;

size_t m_selected_gobject_id{ 0 };
GObjectID m_selected_gobject_id{ k_invalid_gobject_id };
Matrix4x4 m_selected_object_matrix{ Matrix4x4::IDENTITY };

EditorAxisMode m_axis_mode{ EditorAxisMode::TranslateMode };
std::shared_ptr<PCamera> m_camera;
std::shared_ptr<RenderCamera> m_camera;

size_t m_selected_axis;
size_t m_selected_axis{ 3 };

bool m_is_show_axis = true;
};
Expand Down
14 changes: 10 additions & 4 deletions engine/source/editor/include/editor_ui.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@
#include "runtime/core/math/vector2.h"

#include "runtime/function/framework/object/object.h"
#include "runtime/function/render/include/render/surface.h"
#include "runtime/function/scene/scene_object.h"
#include "runtime/function/ui/window_ui.h"

#include "editor/include/editor_file_service.h"

Expand All @@ -17,12 +16,13 @@
namespace Pilot
{
class PilotEditor;
class WindowSystem;
class RenderSystem;

class EditorUI : public SurfaceUI
class EditorUI : public WindowUI
{
public:
EditorUI();
void onTick(UIState* uistate) override;

private:
void onFileContentItemClicked(EditorFileNode* node);
Expand All @@ -39,6 +39,12 @@ namespace Pilot
void showEditorGameWindow(bool* p_open);
void showEditorDetailWindow(bool* p_open);

void setUIColorStyle();

public:
virtual void initialize(WindowUIInitInfo init_info) override final;
virtual void preRender() override final;

private:
std::unordered_map<std::string, std::function<void(std::string, void*)>> m_editor_ui_creator;
std::unordered_map<std::string, unsigned int> m_new_object_index_map;
Expand Down
Loading