Compare commits
No commits in common. "00fc2aff1c7ead860f9a641bacbb1c6ab835567e" and "fc169a2c91f93c81470a392dbc15d7e68759005b" have entirely different histories.
00fc2aff1c
...
fc169a2c91
@ -46,7 +46,7 @@ namespace Deer {
|
|||||||
m_running = true;
|
m_running = true;
|
||||||
|
|
||||||
const double targetUpdateTime = 1.0 / 60.0; // Fixed 60 FPS update
|
const double targetUpdateTime = 1.0 / 60.0; // Fixed 60 FPS update
|
||||||
double targetRenderTime = 1.0 / 160.0; // User-defined render FPS
|
double targetRenderTime = 1.0 / 120.0; // User-defined render FPS
|
||||||
|
|
||||||
auto previousTime = std::chrono::high_resolution_clock::now();
|
auto previousTime = std::chrono::high_resolution_clock::now();
|
||||||
double accumulatedUpdateTime = 0.0;
|
double accumulatedUpdateTime = 0.0;
|
||||||
|
@ -45,7 +45,7 @@ namespace Deer {
|
|||||||
void Scene::tickExecution() {
|
void Scene::tickExecution() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Scene::endExecution() {
|
void Scene::endExecution() {
|
||||||
DEER_CORE_ASSERT(isExecuting, "Deer scene is not executing");
|
DEER_CORE_ASSERT(isExecuting, "Deer scene is not executing");
|
||||||
isExecuting = false;
|
isExecuting = false;
|
||||||
|
@ -77,9 +77,9 @@ namespace Deer {
|
|||||||
void DeerStudioApplication::onUpdate(Timestep delta) {
|
void DeerStudioApplication::onUpdate(Timestep delta) {
|
||||||
if (Scene::getExecutingState())
|
if (Scene::getExecutingState())
|
||||||
Scene::tickExecution();
|
Scene::tickExecution();
|
||||||
|
|
||||||
if (VoxelWorld::isInitialized())
|
if (VoxelWorld::isInitialized())
|
||||||
VoxelWorld::bakeNextChunk();
|
VoxelWorld::bakeNextChunk();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeerStudioApplication::onEvent(Event& e) {
|
void DeerStudioApplication::onEvent(Event& e) {
|
||||||
@ -132,7 +132,7 @@ namespace Deer {
|
|||||||
// ---- PanelS -----
|
// ---- PanelS -----
|
||||||
TerrainEditor::onImGui();
|
TerrainEditor::onImGui();
|
||||||
viewport_onImGui();
|
viewport_onImGui();
|
||||||
EditorEngine::render();
|
EditorEngine::execute();
|
||||||
// ---- PanelS -----
|
// ---- PanelS -----
|
||||||
Scene::gizmoRenderer.refresh();
|
Scene::gizmoRenderer.refresh();
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
|
@ -14,7 +14,7 @@ namespace Deer {
|
|||||||
void initialize();
|
void initialize();
|
||||||
void deinitialize();
|
void deinitialize();
|
||||||
|
|
||||||
void render();
|
void execute();
|
||||||
|
|
||||||
extern asIScriptEngine* scriptEngine;
|
extern asIScriptEngine* scriptEngine;
|
||||||
extern asIScriptModule* scriptModule;
|
extern asIScriptModule* scriptModule;
|
||||||
|
@ -29,8 +29,6 @@ namespace Deer {
|
|||||||
void camera_construct(CameraComponent*);
|
void camera_construct(CameraComponent*);
|
||||||
void sceneCamera_Construct(SceneCamera*);
|
void sceneCamera_Construct(SceneCamera*);
|
||||||
|
|
||||||
glm::vec3 transform_relative(glm::vec3, TransformComponent*);
|
|
||||||
|
|
||||||
void emptyDestructor();
|
void emptyDestructor();
|
||||||
|
|
||||||
void registerMathStructs();
|
void registerMathStructs();
|
||||||
|
@ -23,7 +23,7 @@ namespace Deer {
|
|||||||
bool buttonCenter(std::string&);
|
bool buttonCenter(std::string&);
|
||||||
// Renders a button at the end
|
// Renders a button at the end
|
||||||
bool buttonEnd(std::string&);
|
bool buttonEnd(std::string&);
|
||||||
|
|
||||||
// Renders a text
|
// Renders a text
|
||||||
void text(std::string&);
|
void text(std::string&);
|
||||||
// Renders a text
|
// Renders a text
|
||||||
@ -58,20 +58,6 @@ namespace Deer {
|
|||||||
// Returns if the specified mouse button is double clicked
|
// Returns if the specified mouse button is double clicked
|
||||||
bool isMouseDoubleClicked(int mouse);
|
bool isMouseDoubleClicked(int mouse);
|
||||||
|
|
||||||
bool isKeyDown(int);
|
|
||||||
bool isKeyPressed(int);
|
|
||||||
|
|
||||||
bool isMouseDraggin(int);
|
|
||||||
float getMouseDragDeltaX();
|
|
||||||
float getMouseDragDeltaY();
|
|
||||||
float getMouseDeltaX();
|
|
||||||
float getMouseDeltaY();
|
|
||||||
|
|
||||||
void disablePannelPadding(bool);
|
|
||||||
|
|
||||||
int getAvailableSizeX();
|
|
||||||
int getAvailableSizeY();
|
|
||||||
|
|
||||||
// Draws a button for a popup menu
|
// Draws a button for a popup menu
|
||||||
bool menuItem(std::string&);
|
bool menuItem(std::string&);
|
||||||
// Draws a button disabled
|
// Draws a button disabled
|
||||||
@ -94,10 +80,7 @@ namespace Deer {
|
|||||||
float magicSlider(std::string&, float, float);
|
float magicSlider(std::string&, float, float);
|
||||||
// Draws a complex slider that with double click you can set a specific value in vec3
|
// Draws a complex slider that with double click you can set a specific value in vec3
|
||||||
glm::vec3 magicSlider3(std::string&, glm::vec3, float);
|
glm::vec3 magicSlider3(std::string&, glm::vec3, float);
|
||||||
// Returns if the current executing pannel is active
|
|
||||||
bool isPannelActive();
|
|
||||||
|
|
||||||
void registerUIFunctions();
|
void registerUIFunctions();
|
||||||
void registerUIStructs();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -44,10 +44,6 @@ namespace Deer {
|
|||||||
return *mem * *data;
|
return *mem * *data;
|
||||||
}
|
}
|
||||||
|
|
||||||
glm::vec3 transform_relative(glm::vec3 pos, TransformComponent* transform) {
|
|
||||||
return transform->getMatrix() * glm::vec4(pos, 1.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
void transform_construct(TransformComponent* mem) {
|
void transform_construct(TransformComponent* mem) {
|
||||||
new (mem) TransformComponent();
|
new (mem) TransformComponent();
|
||||||
}
|
}
|
||||||
|
@ -99,10 +99,6 @@ namespace Deer {
|
|||||||
ImGui::Text("%s", msg.c_str());
|
ImGui::Text("%s", msg.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isPannelActive() {
|
|
||||||
return ImGui::IsWindowFocused(ImGuiFocusedFlags_RootAndChildWindows);
|
|
||||||
}
|
|
||||||
|
|
||||||
void textEnd(std::string& msg) {
|
void textEnd(std::string& msg) {
|
||||||
float sizeX;
|
float sizeX;
|
||||||
if (ImGui::GetColumnsCount() > 1)
|
if (ImGui::GetColumnsCount() > 1)
|
||||||
@ -431,56 +427,5 @@ namespace Deer {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isKeyDown(int key) {
|
|
||||||
return ImGui::IsKeyDown((ImGuiKey)key);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool isKeyPressed(int key) {
|
|
||||||
return ImGui::IsKeyPressed((ImGuiKey)key, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool isMouseDraggin(int key) {
|
|
||||||
if (key == ImGuiKey_MouseRight)
|
|
||||||
return ImGui::IsMouseDragging(ImGuiMouseButton_Right);
|
|
||||||
else if (key == ImGuiKey_MouseLeft)
|
|
||||||
return ImGui::IsMouseDragging(ImGuiMouseButton_Left);
|
|
||||||
else if (key == ImGuiKey_MouseMiddle)
|
|
||||||
return ImGui::IsMouseDragging(ImGuiMouseButton_Middle);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
float getMouseDeltaX() {
|
|
||||||
ImGuiIO& io = ImGui::GetIO();
|
|
||||||
return io.MouseDelta.x;
|
|
||||||
}
|
|
||||||
|
|
||||||
float getMouseDeltaY() {
|
|
||||||
ImGuiIO& io = ImGui::GetIO();
|
|
||||||
return io.MouseDelta.y;
|
|
||||||
}
|
|
||||||
|
|
||||||
float getMouseDragDeltaX() {
|
|
||||||
return ImGui::GetMouseDragDelta().x;
|
|
||||||
}
|
|
||||||
|
|
||||||
float getMouseDragDeltaY() {
|
|
||||||
return ImGui::GetMouseDragDelta().y;
|
|
||||||
}
|
|
||||||
|
|
||||||
int getAvailableSizeX() {
|
|
||||||
return ImGui::GetContentRegionAvail().x;
|
|
||||||
}
|
|
||||||
|
|
||||||
int getAvailableSizeY() {
|
|
||||||
return ImGui::GetContentRegionAvail().y;
|
|
||||||
}
|
|
||||||
|
|
||||||
void disablePannelPadding(bool value) {
|
|
||||||
if (currentDockPanelExecution) {
|
|
||||||
if (value != (currentDockPanelExecution->flags & DockPannelFlag_PannelPadding)){
|
|
||||||
currentDockPanelExecution->flags ^= DockPannelFlag_PannelPadding;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -64,11 +64,10 @@ namespace Deer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void registerMathFunctions() {
|
void registerMathFunctions() {
|
||||||
REGISTER_EXT_OBJECT_METHOD("vec3", "vec3 opAdd(const vec3 &in)", vec3_add);
|
REGISTER_EXT_OBJECT_METHOD("vec3", "vec3 opAdds(const vec3 &in)", vec3_add);
|
||||||
REGISTER_EXT_OBJECT_METHOD("vec3", "vec3 opSub(const vec3 &in) const", vec3_sub);
|
REGISTER_EXT_OBJECT_METHOD("vec3", "vec3 opSub(const vec3 &in) const", vec3_sub);
|
||||||
REGISTER_EXT_OBJECT_METHOD("vec3", "vec3 opNeg() const", vec3_neg);
|
REGISTER_EXT_OBJECT_METHOD("vec3", "vec3 opNeg() const", vec3_neg);
|
||||||
REGISTER_EXT_OBJECT_METHOD("vec3", "vec3 opMul(float) const", vec3_mult);
|
REGISTER_EXT_OBJECT_METHOD("vec3", "vec3 opMul(float) const", vec3_mult);
|
||||||
REGISTER_EXT_OBJECT_METHOD("vec3", "vec3 opMul_r(float) const", vec3_mult);
|
|
||||||
|
|
||||||
REGISTER_EXT_OBJECT_CONSTRUCTOR("quat", "void f()", quat_construct);
|
REGISTER_EXT_OBJECT_CONSTRUCTOR("quat", "void f()", quat_construct);
|
||||||
REGISTER_EXT_OBJECT_CONSTRUCTOR("quat", "void f(float, float, float, float)", quat_constructFromValue);
|
REGISTER_EXT_OBJECT_CONSTRUCTOR("quat", "void f(float, float, float, float)", quat_constructFromValue);
|
||||||
@ -76,13 +75,11 @@ namespace Deer {
|
|||||||
|
|
||||||
REGISTER_EXT_OBJECT_METHOD("quat", "quat opMul(const quat &in) const", quat_multiply);
|
REGISTER_EXT_OBJECT_METHOD("quat", "quat opMul(const quat &in) const", quat_multiply);
|
||||||
REGISTER_EXT_OBJECT_METHOD("quat", "vec3 getEuler() const", quat_getEuler);
|
REGISTER_EXT_OBJECT_METHOD("quat", "vec3 getEuler() const", quat_getEuler);
|
||||||
REGISTER_EXT_OBJECT_METHOD("quat", "void setEuler(vec3)", quat_setEuler);
|
REGISTER_EXT_OBJECT_METHOD("quat", "void setEuler(vec3)", quat_multiply);
|
||||||
|
|
||||||
REGISTER_EXT_OBJECT_CONSTRUCTOR("Transform", "void f()", transform_construct);
|
REGISTER_EXT_OBJECT_CONSTRUCTOR("Transform", "void f()", transform_construct);
|
||||||
REGISTER_EXT_OBJECT_CONSTRUCTOR("Camera", "void f()", camera_construct);
|
REGISTER_EXT_OBJECT_CONSTRUCTOR("Camera", "void f()", camera_construct);
|
||||||
REGISTER_EXT_OBJECT_CONSTRUCTOR("SceneCamera", "void f()", sceneCamera_Construct);
|
REGISTER_EXT_OBJECT_CONSTRUCTOR("SceneCamera", "void f()", sceneCamera_Construct);
|
||||||
|
|
||||||
REGISTER_EXT_OBJECT_METHOD("Transform", "vec3 relative(vec3)", transform_relative);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -21,7 +21,6 @@ namespace Deer {
|
|||||||
AS_CHECK(scriptEngine->RegisterFuncdef("void ReciverFunc(any@)"));
|
AS_CHECK(scriptEngine->RegisterFuncdef("void ReciverFunc(any@)"));
|
||||||
AS_CHECK(scriptEngine->RegisterFuncdef("void TransferFunc(any@, any@)"));
|
AS_CHECK(scriptEngine->RegisterFuncdef("void TransferFunc(any@, any@)"));
|
||||||
|
|
||||||
registerUIStructs();
|
|
||||||
registerResourceTypeEnum();
|
registerResourceTypeEnum();
|
||||||
registerEntityStructs();
|
registerEntityStructs();
|
||||||
registerMathStructs();
|
registerMathStructs();
|
||||||
|
@ -6,7 +6,6 @@
|
|||||||
#include "scripthandle.h"
|
#include "scripthandle.h"
|
||||||
#include "scriptany.h"
|
#include "scriptany.h"
|
||||||
#include "angelscript.h"
|
#include "angelscript.h"
|
||||||
#include "imgui.h"
|
|
||||||
|
|
||||||
namespace Deer {
|
namespace Deer {
|
||||||
void EditorEngine::registerUIFunctions() {
|
void EditorEngine::registerUIFunctions() {
|
||||||
@ -41,214 +40,6 @@ namespace Deer {
|
|||||||
REGISTER_GLOBAL_FUNC("void titleCenter(const string&in)", titleCenter);
|
REGISTER_GLOBAL_FUNC("void titleCenter(const string&in)", titleCenter);
|
||||||
REGISTER_GLOBAL_FUNC("void titleCenterY(const string&in, int)", titleCenterY);
|
REGISTER_GLOBAL_FUNC("void titleCenterY(const string&in, int)", titleCenterY);
|
||||||
REGISTER_GLOBAL_FUNC("void titleEnd(const string&in)", titleEnd);
|
REGISTER_GLOBAL_FUNC("void titleEnd(const string&in)", titleEnd);
|
||||||
REGISTER_GLOBAL_FUNC("bool isKeyDown(key)", isKeyDown);
|
|
||||||
REGISTER_GLOBAL_FUNC("bool isKeyPressed(key)", isKeyPressed);
|
|
||||||
REGISTER_GLOBAL_FUNC("bool isMouseDraggin(key)", isMouseDraggin);
|
|
||||||
REGISTER_GLOBAL_FUNC("bool isPannelActive()", isPannelActive);
|
|
||||||
REGISTER_GLOBAL_FUNC("float getMouseDragDeltaX()", getMouseDragDeltaX);
|
|
||||||
REGISTER_GLOBAL_FUNC("float getMouseDragDeltaY()", getMouseDragDeltaY);
|
|
||||||
REGISTER_GLOBAL_FUNC("float getMouseDeltaX()", getMouseDeltaX);
|
|
||||||
REGISTER_GLOBAL_FUNC("float getMouseDeltaY()", getMouseDeltaY);
|
|
||||||
REGISTER_GLOBAL_FUNC("int getAvailableSizeX()", getAvailableSizeX);
|
|
||||||
REGISTER_GLOBAL_FUNC("int getAvailableSizeY()", getAvailableSizeY);
|
|
||||||
REGISTER_GLOBAL_FUNC("void disablePannelPadding(bool)", disablePannelPadding);
|
|
||||||
scriptEngine->SetDefaultNamespace("");
|
scriptEngine->SetDefaultNamespace("");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
void EditorEngine::registerUIStructs() {
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnum("key"));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "A", ImGuiKey_A));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "B", ImGuiKey_B));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "C", ImGuiKey_C));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "D", ImGuiKey_D));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "E", ImGuiKey_E));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "F", ImGuiKey_F));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "G", ImGuiKey_G));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "H", ImGuiKey_H));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "I", ImGuiKey_I));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "J", ImGuiKey_J));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "K", ImGuiKey_K));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "L", ImGuiKey_L));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "M", ImGuiKey_M));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "N", ImGuiKey_N));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "O", ImGuiKey_O));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "P", ImGuiKey_P));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Q", ImGuiKey_Q));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "R", ImGuiKey_R));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "S", ImGuiKey_S));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "T", ImGuiKey_T));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "U", ImGuiKey_U));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "V", ImGuiKey_V));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "W", ImGuiKey_W));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "X", ImGuiKey_X));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Y", ImGuiKey_Y));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Z", ImGuiKey_Z));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "K0", ImGuiKey_0));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "K1", ImGuiKey_1));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "K2", ImGuiKey_2));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "K3", ImGuiKey_3));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "K4", ImGuiKey_4));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "K5", ImGuiKey_5));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "K6", ImGuiKey_6));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "K7", ImGuiKey_7));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "K8", ImGuiKey_8));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "K9", ImGuiKey_9));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Tab", ImGuiKey_Tab));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Enter", ImGuiKey_Enter));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Escape", ImGuiKey_Escape));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Backspace", ImGuiKey_Backspace));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Space", ImGuiKey_Space));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Delete", ImGuiKey_Delete));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Insert", ImGuiKey_Insert));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Home", ImGuiKey_Home));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "End", ImGuiKey_End));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "PageUp", ImGuiKey_PageUp));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "PageDown", ImGuiKey_PageDown));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Right", ImGuiKey_RightArrow));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Up", ImGuiKey_UpArrow));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Down", ImGuiKey_DownArrow));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "Left", ImGuiKey_LeftArrow));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "RightCtrl", ImGuiKey_RightCtrl));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "LeftShift", ImGuiKey_LeftShift));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "RightShift", ImGuiKey_RightShift));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "LeftAlt", ImGuiKey_LeftAlt));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "RightAlt", ImGuiKey_RightAlt));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "LeftSuper", ImGuiKey_LeftSuper));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "RightSuper", ImGuiKey_RightSuper));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "LeftCtrl", ImGuiKey_LeftCtrl));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "MouseLeft", ImGuiKey_MouseLeft));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "MouseRight", ImGuiKey_MouseRight));
|
|
||||||
AS_CHECK(scriptEngine->RegisterEnumValue("key", "MouseMiddle", ImGuiKey_MouseMiddle));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
enum ImGuiKey : int
|
|
||||||
{
|
|
||||||
// Keyboard
|
|
||||||
ImGuiKey_None = 0,
|
|
||||||
ImGuiKey_Tab = 512, // == ImGuiKey_NamedKey_BEGIN
|
|
||||||
ImGuiKey_LeftArrow,
|
|
||||||
ImGuiKey_RightArrow,
|
|
||||||
ImGuiKey_UpArrow,
|
|
||||||
ImGuiKey_DownArrow,
|
|
||||||
ImGuiKey_PageUp,
|
|
||||||
ImGuiKey_PageDown,
|
|
||||||
ImGuiKey_Home,
|
|
||||||
ImGuiKey_End,
|
|
||||||
ImGuiKey_Insert,
|
|
||||||
ImGuiKey_Delete,
|
|
||||||
ImGuiKey_Backspace,
|
|
||||||
ImGuiKey_Space,
|
|
||||||
ImGuiKey_Enter,
|
|
||||||
ImGuiKey_Escape,
|
|
||||||
ImGuiKey_LeftCtrl, ImGuiKey_LeftShift, ImGuiKey_LeftAlt, ImGuiKey_LeftSuper,
|
|
||||||
ImGuiKey_RightCtrl, ImGuiKey_RightShift, ImGuiKey_RightAlt, ImGuiKey_RightSuper,
|
|
||||||
ImGuiKey_Menu,
|
|
||||||
ImGuiKey_0, ImGuiKey_1, ImGuiKey_2, ImGuiKey_3, ImGuiKey_4, ImGuiKey_5, ImGuiKey_6, ImGuiKey_7, ImGuiKey_8, ImGuiKey_9,
|
|
||||||
ImGuiKey_A, ImGuiKey_B, ImGuiKey_C, ImGuiKey_D, ImGuiKey_E, ImGuiKey_F, ImGuiKey_G, ImGuiKey_H, ImGuiKey_I, ImGuiKey_J,
|
|
||||||
ImGuiKey_K, ImGuiKey_L, ImGuiKey_M, ImGuiKey_N, ImGuiKey_O, ImGuiKey_P, ImGuiKey_Q, ImGuiKey_R, ImGuiKey_S, ImGuiKey_T,
|
|
||||||
ImGuiKey_U, ImGuiKey_V, ImGuiKey_W, ImGuiKey_X, ImGuiKey_Y, ImGuiKey_Z,
|
|
||||||
ImGuiKey_F1, ImGuiKey_F2, ImGuiKey_F3, ImGuiKey_F4, ImGuiKey_F5, ImGuiKey_F6,
|
|
||||||
ImGuiKey_F7, ImGuiKey_F8, ImGuiKey_F9, ImGuiKey_F10, ImGuiKey_F11, ImGuiKey_F12,
|
|
||||||
ImGuiKey_Apostrophe, // '
|
|
||||||
ImGuiKey_Comma, // ,
|
|
||||||
ImGuiKey_Minus, // -
|
|
||||||
ImGuiKey_Period, // .
|
|
||||||
ImGuiKey_Slash, // /
|
|
||||||
ImGuiKey_Semicolon, // ;
|
|
||||||
ImGuiKey_Equal, // =
|
|
||||||
ImGuiKey_LeftBracket, // [
|
|
||||||
ImGuiKey_Backslash, // \ (this text inhibit multiline comment caused by backslash)
|
|
||||||
ImGuiKey_RightBracket, // ]
|
|
||||||
ImGuiKey_GraveAccent, // `
|
|
||||||
ImGuiKey_CapsLock,
|
|
||||||
ImGuiKey_ScrollLock,
|
|
||||||
ImGuiKey_NumLock,
|
|
||||||
ImGuiKey_PrintScreen,
|
|
||||||
ImGuiKey_Pause,
|
|
||||||
ImGuiKey_Keypad0, ImGuiKey_Keypad1, ImGuiKey_Keypad2, ImGuiKey_Keypad3, ImGuiKey_Keypad4,
|
|
||||||
ImGuiKey_Keypad5, ImGuiKey_Keypad6, ImGuiKey_Keypad7, ImGuiKey_Keypad8, ImGuiKey_Keypad9,
|
|
||||||
ImGuiKey_KeypadDecimal,
|
|
||||||
ImGuiKey_KeypadDivide,
|
|
||||||
ImGuiKey_KeypadMultiply,
|
|
||||||
ImGuiKey_KeypadSubtract,
|
|
||||||
ImGuiKey_KeypadAdd,
|
|
||||||
ImGuiKey_KeypadEnter,
|
|
||||||
ImGuiKey_KeypadEqual,
|
|
||||||
|
|
||||||
// Gamepad (some of those are analog values, 0.0f to 1.0f) // NAVIGATION ACTION
|
|
||||||
// (download controller mapping PNG/PSD at http://dearimgui.org/controls_sheets)
|
|
||||||
ImGuiKey_GamepadStart, // Menu (Xbox) + (Switch) Start/Options (PS)
|
|
||||||
ImGuiKey_GamepadBack, // View (Xbox) - (Switch) Share (PS)
|
|
||||||
ImGuiKey_GamepadFaceLeft, // X (Xbox) Y (Switch) Square (PS) // Tap: Toggle Menu. Hold: Windowing mode (Focus/Move/Resize windows)
|
|
||||||
ImGuiKey_GamepadFaceRight, // B (Xbox) A (Switch) Circle (PS) // Cancel / Close / Exit
|
|
||||||
ImGuiKey_GamepadFaceUp, // Y (Xbox) X (Switch) Triangle (PS) // Text Input / On-screen Keyboard
|
|
||||||
ImGuiKey_GamepadFaceDown, // A (Xbox) B (Switch) Cross (PS) // Activate / Open / Toggle / Tweak
|
|
||||||
ImGuiKey_GamepadDpadLeft, // D-pad Left // Move / Tweak / Resize Window (in Windowing mode)
|
|
||||||
ImGuiKey_GamepadDpadRight, // D-pad Right // Move / Tweak / Resize Window (in Windowing mode)
|
|
||||||
ImGuiKey_GamepadDpadUp, // D-pad Up // Move / Tweak / Resize Window (in Windowing mode)
|
|
||||||
ImGuiKey_GamepadDpadDown, // D-pad Down // Move / Tweak / Resize Window (in Windowing mode)
|
|
||||||
ImGuiKey_GamepadL1, // L Bumper (Xbox) L (Switch) L1 (PS) // Tweak Slower / Focus Previous (in Windowing mode)
|
|
||||||
ImGuiKey_GamepadR1, // R Bumper (Xbox) R (Switch) R1 (PS) // Tweak Faster / Focus Next (in Windowing mode)
|
|
||||||
ImGuiKey_GamepadL2, // L Trig. (Xbox) ZL (Switch) L2 (PS) [Analog]
|
|
||||||
ImGuiKey_GamepadR2, // R Trig. (Xbox) ZR (Switch) R2 (PS) [Analog]
|
|
||||||
ImGuiKey_GamepadL3, // L Stick (Xbox) L3 (Switch) L3 (PS)
|
|
||||||
ImGuiKey_GamepadR3, // R Stick (Xbox) R3 (Switch) R3 (PS)
|
|
||||||
ImGuiKey_GamepadLStickLeft, // [Analog] // Move Window (in Windowing mode)
|
|
||||||
ImGuiKey_GamepadLStickRight, // [Analog] // Move Window (in Windowing mode)
|
|
||||||
ImGuiKey_GamepadLStickUp, // [Analog] // Move Window (in Windowing mode)
|
|
||||||
ImGuiKey_GamepadLStickDown, // [Analog] // Move Window (in Windowing mode)
|
|
||||||
ImGuiKey_GamepadRStickLeft, // [Analog]
|
|
||||||
ImGuiKey_GamepadRStickRight, // [Analog]
|
|
||||||
ImGuiKey_GamepadRStickUp, // [Analog]
|
|
||||||
ImGuiKey_GamepadRStickDown, // [Analog]
|
|
||||||
|
|
||||||
// Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls)
|
|
||||||
// - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
|
|
||||||
ImGuiKey_MouseLeft, ImGuiKey_MouseRight, ImGuiKey_MouseMiddle, ImGuiKey_MouseX1, ImGuiKey_MouseX2, ImGuiKey_MouseWheelX, ImGuiKey_MouseWheelY,
|
|
||||||
|
|
||||||
// [Internal] Reserved for mod storage
|
|
||||||
ImGuiKey_ReservedForModCtrl, ImGuiKey_ReservedForModShift, ImGuiKey_ReservedForModAlt, ImGuiKey_ReservedForModSuper,
|
|
||||||
ImGuiKey_COUNT,
|
|
||||||
|
|
||||||
// Keyboard Modifiers (explicitly submitted by backend via AddKeyEvent() calls)
|
|
||||||
// - This is mirroring the data also written to io.KeyCtrl, io.KeyShift, io.KeyAlt, io.KeySuper, in a format allowing
|
|
||||||
// them to be accessed via standard key API, allowing calls such as IsKeyPressed(), IsKeyReleased(), querying duration etc.
|
|
||||||
// - Code polling every key (e.g. an interface to detect a key press for input mapping) might want to ignore those
|
|
||||||
// and prefer using the real keys (e.g. ImGuiKey_LeftCtrl, ImGuiKey_RightCtrl instead of ImGuiMod_Ctrl).
|
|
||||||
// - In theory the value of keyboard modifiers should be roughly equivalent to a logical or of the equivalent left/right keys.
|
|
||||||
// In practice: it's complicated; mods are often provided from different sources. Keyboard layout, IME, sticky keys and
|
|
||||||
// backends tend to interfere and break that equivalence. The safer decision is to relay that ambiguity down to the end-user...
|
|
||||||
ImGuiMod_None = 0,
|
|
||||||
ImGuiMod_Ctrl = 1 << 12, // Ctrl
|
|
||||||
ImGuiMod_Shift = 1 << 13, // Shift
|
|
||||||
ImGuiMod_Alt = 1 << 14, // Option/Menu
|
|
||||||
ImGuiMod_Super = 1 << 15, // Cmd/Super/Windows
|
|
||||||
ImGuiMod_Shortcut = 1 << 11, // Alias for Ctrl (non-macOS) _or_ Super (macOS).
|
|
||||||
ImGuiMod_Mask_ = 0xF800, // 5-bits
|
|
||||||
|
|
||||||
// [Internal] Prior to 1.87 we required user to fill io.KeysDown[512] using their own native index + the io.KeyMap[] array.
|
|
||||||
// We are ditching this method but keeping a legacy path for user code doing e.g. IsKeyPressed(MY_NATIVE_KEY_CODE)
|
|
||||||
ImGuiKey_NamedKey_BEGIN = 512,
|
|
||||||
ImGuiKey_NamedKey_END = ImGuiKey_COUNT,
|
|
||||||
ImGuiKey_NamedKey_COUNT = ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN,
|
|
||||||
#ifdef IMGUI_DISABLE_OBSOLETE_KEYIO
|
|
||||||
ImGuiKey_KeysData_SIZE = ImGuiKey_NamedKey_COUNT, // Size of KeysData[]: only hold named keys
|
|
||||||
ImGuiKey_KeysData_OFFSET = ImGuiKey_NamedKey_BEGIN, // First key stored in io.KeysData[0]. Accesses to io.KeysData[] must use (key - ImGuiKey_KeysData_OFFSET).
|
|
||||||
#else
|
|
||||||
ImGuiKey_KeysData_SIZE = ImGuiKey_COUNT, // Size of KeysData[]: hold legacy 0..512 keycodes + named keys
|
|
||||||
ImGuiKey_KeysData_OFFSET = 0, // First key stored in io.KeysData[0]. Accesses to io.KeysData[] must use (key - ImGuiKey_KeysData_OFFSET).
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
|
|
||||||
ImGuiKey_ModCtrl = ImGuiMod_Ctrl, ImGuiKey_ModShift = ImGuiMod_Shift, ImGuiKey_ModAlt = ImGuiMod_Alt, ImGuiKey_ModSuper = ImGuiMod_Super, // Renamed in 1.89
|
|
||||||
ImGuiKey_KeyPadEnter = ImGuiKey_KeypadEnter, // Renamed in 1.87
|
|
||||||
#endif
|
|
||||||
}*/
|
|
@ -83,11 +83,6 @@ namespace Deer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EditorEngine::DockPanelObject::executeRender() {
|
void EditorEngine::DockPanelObject::executeRender() {
|
||||||
// We cache the result because the user can remove the flag while executing
|
|
||||||
bool hasPadding = flags & DockPannelFlag_PannelPadding;
|
|
||||||
if (hasPadding)
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
|
|
||||||
|
|
||||||
if (menuBarFunction) {
|
if (menuBarFunction) {
|
||||||
ImGui::Begin(type->GetName(), (bool*)0, ImGuiWindowFlags_MenuBar);
|
ImGui::Begin(type->GetName(), (bool*)0, ImGuiWindowFlags_MenuBar);
|
||||||
|
|
||||||
@ -113,11 +108,6 @@ namespace Deer {
|
|||||||
ImGui::Begin(type->GetName());
|
ImGui::Begin(type->GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is to make sure that right click activates the window
|
|
||||||
if (ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem) &&
|
|
||||||
(ImGui::IsMouseClicked(ImGuiMouseButton_Right) || ImGui::IsMouseClicked(ImGuiMouseButton_Middle))) {
|
|
||||||
ImGui::SetWindowFocus();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isValid) {
|
if (!isValid) {
|
||||||
ImGui::TextColored(ImVec4(1, 0.3f, 0.3f, 1), "There was a runtime error");
|
ImGui::TextColored(ImVec4(1, 0.3f, 0.3f, 1), "There was a runtime error");
|
||||||
@ -143,9 +133,6 @@ namespace Deer {
|
|||||||
);
|
);
|
||||||
|
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
|
|
||||||
if (hasPadding)
|
|
||||||
ImGui::PopStyleVar();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EditorEngine::DockPanelObject::DockPanelObject(DockPanelObject&& other) noexcept
|
EditorEngine::DockPanelObject::DockPanelObject(DockPanelObject&& other) noexcept
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
class asITypeInfo;
|
class asITypeInfo;
|
||||||
class asIScriptObject;
|
class asIScriptObject;
|
||||||
class asIScriptFunction;
|
class asIScriptFunction;
|
||||||
@ -25,16 +23,10 @@ namespace Deer {
|
|||||||
|
|
||||||
DockPanelObject(DockPanelObject&& other) noexcept;
|
DockPanelObject(DockPanelObject&& other) noexcept;
|
||||||
DockPanelObject& operator=(DockPanelObject&& other) noexcept;
|
DockPanelObject& operator=(DockPanelObject&& other) noexcept;
|
||||||
|
|
||||||
uint32_t flags = 0;
|
|
||||||
|
|
||||||
void executeRender();
|
void executeRender();
|
||||||
void invalidate();
|
void invalidate();
|
||||||
void init();
|
void init();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
enum DockPannelFlags {
|
|
||||||
DockPannelFlag_PannelPadding = 1 << 0
|
|
||||||
};
|
|
||||||
}
|
}
|
@ -54,10 +54,8 @@ namespace Deer {
|
|||||||
active = true;
|
active = true;
|
||||||
|
|
||||||
for (auto& pannel : dockPanels) {
|
for (auto& pannel : dockPanels) {
|
||||||
currentDockPanelExecution = &pannel;
|
|
||||||
pannel.init();
|
pannel.init();
|
||||||
}
|
}
|
||||||
currentDockPanelExecution = nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorEngine::deinitialize() {
|
void EditorEngine::deinitialize() {
|
||||||
@ -75,7 +73,7 @@ namespace Deer {
|
|||||||
active = false;
|
active = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorEngine::render() {
|
void EditorEngine::execute() {
|
||||||
if (!active)
|
if (!active)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -1,84 +0,0 @@
|
|||||||
class ViewportPannel : DockPanel {
|
|
||||||
FrameBuffer frameBuffer;
|
|
||||||
SceneCamera sceneCamera;
|
|
||||||
Environment mainEnv;
|
|
||||||
|
|
||||||
float pitch = 0;
|
|
||||||
float yaw = 0;
|
|
||||||
float vel = 0.02f;
|
|
||||||
|
|
||||||
void onRender() {
|
|
||||||
if (!frameBuffer.isValid())
|
|
||||||
return;
|
|
||||||
|
|
||||||
int x = UI::getAvailableSizeX();
|
|
||||||
int y = UI::getAvailableSizeY();
|
|
||||||
frameBuffer.resize(x, y);
|
|
||||||
frameBuffer.clearRGBA(0, 0, 0, 255);
|
|
||||||
|
|
||||||
sceneCamera.camera.aspect = float(x) / y;
|
|
||||||
mainEnv.render(frameBuffer, sceneCamera);
|
|
||||||
|
|
||||||
UI::drawFrameBufferCentered(frameBuffer, x, y);
|
|
||||||
|
|
||||||
if (!UI::isPannelActive())
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (UI::isMouseDraggin(key::MouseRight) && !UI::isKeyDown(key::MouseMiddle)) {
|
|
||||||
pitch += UI::getMouseDeltaY() * 0.1f;
|
|
||||||
yaw += UI::getMouseDeltaX() * 0.1f;
|
|
||||||
|
|
||||||
sceneCamera.transform.rotation.setEuler(vec3(pitch, yaw, 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (UI::isMouseDraggin(key::MouseMiddle) && !UI::isKeyDown(key::MouseRight)) {
|
|
||||||
vec3 panDir = vec3();
|
|
||||||
|
|
||||||
panDir.x -= UI::getMouseDeltaX();
|
|
||||||
panDir.y += UI::getMouseDeltaY();
|
|
||||||
|
|
||||||
panDir = panDir * vel * 0.4f;
|
|
||||||
sceneCamera.transform.position = sceneCamera.transform.relative(panDir);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
vec3 relDir = vec3();
|
|
||||||
|
|
||||||
if (UI::isKeyDown(key::W))
|
|
||||||
relDir.z++;
|
|
||||||
if (UI::isKeyDown(key::S))
|
|
||||||
relDir.z--;
|
|
||||||
|
|
||||||
if (UI::isKeyDown(key::D))
|
|
||||||
relDir.x++;
|
|
||||||
if (UI::isKeyDown(key::A))
|
|
||||||
relDir.x--;
|
|
||||||
|
|
||||||
relDir = relDir * vel;
|
|
||||||
sceneCamera.transform.position = sceneCamera.transform.relative(relDir);
|
|
||||||
|
|
||||||
float vertically = 0;
|
|
||||||
if (UI::isKeyDown(key::Space))
|
|
||||||
vertically++;
|
|
||||||
if (UI::isKeyDown(key::LeftCtrl))
|
|
||||||
vertically--;
|
|
||||||
|
|
||||||
sceneCamera.transform.position = sceneCamera.transform.position + vec3(0, vertically * vel, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void onInit() {
|
|
||||||
frameBuffer = Engine::createRGBA8FrameBuffer("MainFrameBuffer", 400, 400);
|
|
||||||
mainEnv = Engine::getMainEnvironment();
|
|
||||||
|
|
||||||
sceneCamera.transform.position = vec3(0, 1, -2);
|
|
||||||
UI::disablePannelPadding(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
void onMenuBar() {
|
|
||||||
if (UI::menuItem("Start")) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -3,20 +3,6 @@ funcdef void ReciverFunc(any@ value);
|
|||||||
funcdef void TransferFunc(any@ from, any@ data);
|
funcdef void TransferFunc(any@ from, any@ data);
|
||||||
|
|
||||||
|
|
||||||
enum key
|
|
||||||
{
|
|
||||||
None = 0,
|
|
||||||
A, B, C, D, E, F, G, H, I, J, K, L, M,
|
|
||||||
N, O, P, Q, R, S, T, U, V, W, X, Y, Z,
|
|
||||||
K0, K1, K2, K3, K4, K5, K6, K7, K8, K9,
|
|
||||||
Tab, Enter, Escape, Backspace, Space, Delete, Insert, Home, End, PageUp, PageDown,
|
|
||||||
Right, Up, Down, Left,
|
|
||||||
RightCtrl, LeftShift, RightShift,
|
|
||||||
LeftAlt, RightAlt, LeftSuper,
|
|
||||||
RightSuper, LeftCtrl,
|
|
||||||
MouseLeft,MouseRight,MouseMiddle
|
|
||||||
};
|
|
||||||
|
|
||||||
//This file was generated automatically
|
//This file was generated automatically
|
||||||
enum ResourceType {
|
enum ResourceType {
|
||||||
Mesh = 1,
|
Mesh = 1,
|
||||||
@ -165,7 +151,6 @@ class TransformComponent {
|
|||||||
// Gets/sets rotation vector (Euler angles)
|
// Gets/sets rotation vector (Euler angles)
|
||||||
vec3 get_rotation() const property;
|
vec3 get_rotation() const property;
|
||||||
void set_rotation(const vec3) property;
|
void set_rotation(const vec3) property;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class MeshComponent {
|
class MeshComponent {
|
||||||
@ -221,14 +206,13 @@ class vec3 {
|
|||||||
vec3(float, float = 0, float = 0);
|
vec3(float, float = 0, float = 0);
|
||||||
|
|
||||||
// Vector addition
|
// Vector addition
|
||||||
vec3 opAdd(const vec3&in);
|
vec3 opAdds(const vec3&in);
|
||||||
// Vector subtraction
|
// Vector subtraction
|
||||||
vec3 opSub(const vec3&in) const;
|
vec3 opSub(const vec3&in) const;
|
||||||
// Negation
|
// Negation
|
||||||
vec3 opNeg() const;
|
vec3 opNeg() const;
|
||||||
// Multiply by scalar
|
// Multiply by scalar
|
||||||
vec3 opMul(float) const;
|
vec3 opMul(float) const;
|
||||||
vec3 opMul_r(float) const;
|
|
||||||
|
|
||||||
float x;
|
float x;
|
||||||
float y;
|
float y;
|
||||||
@ -260,9 +244,6 @@ class Transform {
|
|||||||
vec3 position;
|
vec3 position;
|
||||||
vec3 scale;
|
vec3 scale;
|
||||||
quat rotation;
|
quat rotation;
|
||||||
|
|
||||||
// Returns a vec3 relative to the transform
|
|
||||||
vec3 relative(vec3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class Camera {
|
class Camera {
|
||||||
@ -307,8 +288,6 @@ class Environment {
|
|||||||
class DockPanel {
|
class DockPanel {
|
||||||
// Called to render the dock panel UI
|
// Called to render the dock panel UI
|
||||||
void onRender();
|
void onRender();
|
||||||
void onInit();
|
|
||||||
void onMenuBar();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -489,17 +468,4 @@ namespace UI {
|
|||||||
// Draw a title aligned to the end
|
// Draw a title aligned to the end
|
||||||
void titleEnd(const string& in txt);
|
void titleEnd(const string& in txt);
|
||||||
|
|
||||||
bool isPannelActive();
|
|
||||||
|
|
||||||
bool isKeyDown(key);
|
|
||||||
bool isKeyPressed(key);
|
|
||||||
|
|
||||||
bool isMouseDraggin(key);
|
|
||||||
float getMouseDragDeltaX();
|
|
||||||
float getMouseDragDeltaY();
|
|
||||||
float getMouseDeltaX();
|
|
||||||
float getMouseDeltaY();
|
|
||||||
int getAvailableSizeX();
|
|
||||||
int getAvailableSizeY();
|
|
||||||
void disablePannelPadding(bool)
|
|
||||||
}
|
}
|
||||||
|
28
roe/Editor/test.as
Normal file
28
roe/Editor/test.as
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
class Test : DockPanel {
|
||||||
|
FrameBuffer frameBuffer;
|
||||||
|
SceneCamera sceneCamera;
|
||||||
|
Environment mainEnv;
|
||||||
|
|
||||||
|
void onRender() {
|
||||||
|
if (!frameBuffer.isValid())
|
||||||
|
return;
|
||||||
|
|
||||||
|
UI::text("Works");
|
||||||
|
|
||||||
|
frameBuffer.clearRGBA(0, 0, 0, 255);
|
||||||
|
|
||||||
|
mainEnv.render(frameBuffer, sceneCamera);
|
||||||
|
UI::drawFrameBufferCentered(frameBuffer, 400, 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
void onInit() {
|
||||||
|
|
||||||
|
Engine::print("hi!!");
|
||||||
|
|
||||||
|
frameBuffer = Engine::createRGBA8FrameBuffer("MainFrameBuffer", 400, 400);
|
||||||
|
mainEnv = Engine::getMainEnvironment();
|
||||||
|
|
||||||
|
sceneCamera.transform.position = vec3(0, 1, -2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -15,8 +15,8 @@ Collapsed=0
|
|||||||
DockId=0x00000004,1
|
DockId=0x00000004,1
|
||||||
|
|
||||||
[Window][Game Window]
|
[Window][Game Window]
|
||||||
Pos=318,24
|
Pos=365,24
|
||||||
Size=600,472
|
Size=741,395
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000006,0
|
DockId=0x00000006,0
|
||||||
|
|
||||||
@ -27,14 +27,14 @@ Collapsed=0
|
|||||||
DockId=0x00000001,0
|
DockId=0x00000001,0
|
||||||
|
|
||||||
[Window][Terrain Editor]
|
[Window][Terrain Editor]
|
||||||
Pos=920,24
|
Pos=1108,24
|
||||||
Size=360,472
|
Size=172,395
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000004,0
|
DockId=0x00000004,0
|
||||||
|
|
||||||
[Window][Viewport]
|
[Window][Viewport]
|
||||||
Pos=318,24
|
Pos=365,24
|
||||||
Size=600,472
|
Size=741,395
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000006,1
|
DockId=0x00000006,1
|
||||||
|
|
||||||
@ -57,14 +57,14 @@ Collapsed=0
|
|||||||
DockId=0x00000008,1
|
DockId=0x00000008,1
|
||||||
|
|
||||||
[Window][MeshExplorer]
|
[Window][MeshExplorer]
|
||||||
Pos=0,498
|
Pos=0,421
|
||||||
Size=1280,222
|
Size=1280,299
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000008,0
|
DockId=0x00000008,0
|
||||||
|
|
||||||
[Window][TreePannel]
|
[Window][TreePannel]
|
||||||
Pos=0,24
|
Pos=0,24
|
||||||
Size=316,472
|
Size=363,395
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000005,0
|
DockId=0x00000005,0
|
||||||
|
|
||||||
@ -79,8 +79,8 @@ Size=351,75
|
|||||||
Collapsed=0
|
Collapsed=0
|
||||||
|
|
||||||
[Window][PropertiesPannel]
|
[Window][PropertiesPannel]
|
||||||
Pos=920,24
|
Pos=1108,24
|
||||||
Size=360,472
|
Size=172,395
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000004,1
|
DockId=0x00000004,1
|
||||||
|
|
||||||
@ -91,31 +91,25 @@ Collapsed=0
|
|||||||
DockId=0x00000004,1
|
DockId=0x00000004,1
|
||||||
|
|
||||||
[Window][ShaderExplorer]
|
[Window][ShaderExplorer]
|
||||||
Pos=0,498
|
Pos=0,421
|
||||||
Size=1280,222
|
Size=1280,299
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000008,1
|
DockId=0x00000008,1
|
||||||
|
|
||||||
[Window][Test]
|
[Window][Test]
|
||||||
Pos=398,24
|
Pos=365,24
|
||||||
Size=612,549
|
Size=741,395
|
||||||
Collapsed=0
|
|
||||||
DockId=0x00000006,2
|
|
||||||
|
|
||||||
[Window][ViewportPannel]
|
|
||||||
Pos=318,24
|
|
||||||
Size=600,472
|
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000006,2
|
DockId=0x00000006,2
|
||||||
|
|
||||||
[Docking][Data]
|
[Docking][Data]
|
||||||
DockSpace ID=0xA1672E74 Window=0x4647B76E Pos=0,24 Size=1280,696 Split=Y
|
DockSpace ID=0xA1672E74 Window=0x4647B76E Pos=0,24 Size=1280,696 Split=Y
|
||||||
DockNode ID=0x00000007 Parent=0xA1672E74 SizeRef=1280,472 Split=Y
|
DockNode ID=0x00000007 Parent=0xA1672E74 SizeRef=1280,395 Split=Y
|
||||||
DockNode ID=0x00000001 Parent=0x00000007 SizeRef=2560,363 Split=X Selected=0x13926F0B
|
DockNode ID=0x00000001 Parent=0x00000007 SizeRef=2560,363 Split=X Selected=0x13926F0B
|
||||||
DockNode ID=0x00000003 Parent=0x00000001 SizeRef=918,338 Split=X Selected=0x13926F0B
|
DockNode ID=0x00000003 Parent=0x00000001 SizeRef=1106,338 Split=X Selected=0x13926F0B
|
||||||
DockNode ID=0x00000005 Parent=0x00000003 SizeRef=316,446 Selected=0xE45B9F93
|
DockNode ID=0x00000005 Parent=0x00000003 SizeRef=363,446 Selected=0xE45B9F93
|
||||||
DockNode ID=0x00000006 Parent=0x00000003 SizeRef=600,446 CentralNode=1 Selected=0x34A4C10F
|
DockNode ID=0x00000006 Parent=0x00000003 SizeRef=741,446 CentralNode=1 Selected=0x44A6A033
|
||||||
DockNode ID=0x00000004 Parent=0x00000001 SizeRef=360,338 Selected=0xA35A27E3
|
DockNode ID=0x00000004 Parent=0x00000001 SizeRef=172,338 Selected=0xA35A27E3
|
||||||
DockNode ID=0x00000002 Parent=0x00000007 SizeRef=2560,331 Selected=0xCF339702
|
DockNode ID=0x00000002 Parent=0x00000007 SizeRef=2560,331 Selected=0xCF339702
|
||||||
DockNode ID=0x00000008 Parent=0xA1672E74 SizeRef=1280,222 Selected=0xD962995A
|
DockNode ID=0x00000008 Parent=0xA1672E74 SizeRef=1280,299 Selected=0xD962995A
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user