|
|
@@ -7,70 +7,8 @@
|
|
|
#include <shortcutApi/shortcutApi.h>
|
|
|
#include <pikaSizes.h>
|
|
|
#include <imgui_spinner.h>
|
|
|
+#include <engineLibraresSupport/engineGL3DSupport.h>
|
|
|
|
|
|
-/*
|
|
|
-void inline errorCallbackCustom(std::string err, void *userData)
|
|
|
-{
|
|
|
- RequestedContainerInfo *data = (RequestedContainerInfo *)userData;
|
|
|
-
|
|
|
- data->consoleWrite((err + "\n").c_str());
|
|
|
-}
|
|
|
-
|
|
|
-std::string inline readEntireFileCustom(const char *fileName, bool &couldNotOpen, void *userData)
|
|
|
-{
|
|
|
- RequestedContainerInfo *data = (RequestedContainerInfo *)userData;
|
|
|
- couldNotOpen = false;
|
|
|
-
|
|
|
- size_t size = 0;
|
|
|
- if (!data->getFileSize(fileName, size))
|
|
|
- {
|
|
|
- couldNotOpen = true;
|
|
|
- return "";
|
|
|
- }
|
|
|
-
|
|
|
- std::string buffer;
|
|
|
- buffer.resize(size + 1);
|
|
|
-
|
|
|
- if (!data->readEntireFile(fileName, &buffer.at(0), size))
|
|
|
- {
|
|
|
- couldNotOpen = true;
|
|
|
- return "";
|
|
|
- }
|
|
|
-
|
|
|
- return buffer;
|
|
|
-}
|
|
|
-
|
|
|
-std::vector<char> inline readEntireFileBinaryCustom(const char *fileName, bool &couldNotOpen, void *userData)
|
|
|
-{
|
|
|
- RequestedContainerInfo *data = (RequestedContainerInfo *)userData;
|
|
|
- couldNotOpen = false;
|
|
|
-
|
|
|
- size_t size = 0;
|
|
|
- if (!data->getFileSizeBinary(fileName, size))
|
|
|
- {
|
|
|
- couldNotOpen = true;
|
|
|
- return {};
|
|
|
- }
|
|
|
-
|
|
|
- std::vector<char> buffer;
|
|
|
- buffer.resize(size + 1, 0);
|
|
|
-
|
|
|
- if (!data->readEntireFileBinary(fileName, &buffer.at(0), size))
|
|
|
- {
|
|
|
- couldNotOpen = true;
|
|
|
- return {};
|
|
|
- }
|
|
|
-
|
|
|
- return buffer;
|
|
|
-}
|
|
|
-
|
|
|
-bool inline defaultFileExistsCustom(const char *fileName, void *userData)
|
|
|
-{
|
|
|
- RequestedContainerInfo *data = (RequestedContainerInfo *)userData;
|
|
|
- size_t s = 0;
|
|
|
- return data->getFileSizeBinary(fileName, s);
|
|
|
-}
|
|
|
-*/
|
|
|
|
|
|
struct ThreeDEditor: public Container
|
|
|
{
|
|
|
@@ -81,7 +19,7 @@ struct ThreeDEditor: public Container
|
|
|
static ContainerStaticInfo containerInfo()
|
|
|
{
|
|
|
ContainerStaticInfo info = {};
|
|
|
- info.defaultHeapMemorySize = pika::MB(20);
|
|
|
+ info.defaultHeapMemorySize = pika::MB(1000); //todo option to use global allocator
|
|
|
|
|
|
info.requestImguiFbo = true;
|
|
|
info.requestImguiIds = 1;
|
|
|
@@ -97,37 +35,37 @@ struct ThreeDEditor: public Container
|
|
|
{
|
|
|
|
|
|
|
|
|
- //renderer.setErrorCallback(&errorCallbackCustom, &requestedInfo);
|
|
|
- //renderer.fileOpener.userData = &requestedInfo;
|
|
|
- //renderer.fileOpener.readEntireFileBinaryCallback = readEntireFileBinaryCustom;
|
|
|
- //renderer.fileOpener.readEntireFileCallback = readEntireFileCustom;
|
|
|
- //renderer.fileOpener.fileExistsCallback = defaultFileExistsCustom;
|
|
|
- //
|
|
|
- //renderer.init(1, 1, PIKA_RESOURCES_PATH "BRDFintegrationMap.png", requestedInfo.requestedFBO.fbo);
|
|
|
- //
|
|
|
- ////renderer.skyBox = renderer.atmosfericScattering({0.2,1,0.3}, {0.9,0.1,0.1}, {0.4, 0.4, 0.8}, 0.8f); //todo a documentation
|
|
|
- ////todo api for skybox stuff
|
|
|
- ////renderer.skyBox.color = {0.2,0.3,0.9};
|
|
|
- //
|
|
|
- //const char *names[6] =
|
|
|
- //{PIKA_RESOURCES_PATH "/skyBoxes/ocean/right.jpg",
|
|
|
- // PIKA_RESOURCES_PATH "/skyBoxes/ocean/left.jpg",
|
|
|
- // PIKA_RESOURCES_PATH "/skyBoxes/ocean/top.jpg",
|
|
|
- // PIKA_RESOURCES_PATH "/skyBoxes/ocean/bottom.jpg",
|
|
|
- // PIKA_RESOURCES_PATH "/skyBoxes/ocean/front.jpg",
|
|
|
- // PIKA_RESOURCES_PATH "/skyBoxes/ocean/back.jpg"};
|
|
|
- //
|
|
|
- //renderer.skyBox = renderer.loadSkyBox(names);
|
|
|
- ////renderer.skyBox.color = {0.2,0.3,0.8};
|
|
|
- //
|
|
|
+ renderer.setErrorCallback(&errorCallbackCustom, &requestedInfo);
|
|
|
+ renderer.fileOpener.userData = &requestedInfo;
|
|
|
+ renderer.fileOpener.readEntireFileBinaryCallback = readEntireFileBinaryCustom;
|
|
|
+ renderer.fileOpener.readEntireFileCallback = readEntireFileCustom;
|
|
|
+ renderer.fileOpener.fileExistsCallback = defaultFileExistsCustom;
|
|
|
+
|
|
|
+ renderer.init(1, 1, PIKA_RESOURCES_PATH "BRDFintegrationMap.png", requestedInfo.requestedFBO.fbo);
|
|
|
+
|
|
|
+ //renderer.skyBox = renderer.atmosfericScattering({0.2,1,0.3}, {0.9,0.1,0.1}, {0.4, 0.4, 0.8}, 0.8f); //todo a documentation
|
|
|
+ //todo api for skybox stuff
|
|
|
+ //renderer.skyBox.color = {0.2,0.3,0.9};
|
|
|
+
|
|
|
+ const char *names[6] =
|
|
|
+ {PIKA_RESOURCES_PATH "/skyBoxes/ocean/right.jpg",
|
|
|
+ PIKA_RESOURCES_PATH "/skyBoxes/ocean/left.jpg",
|
|
|
+ PIKA_RESOURCES_PATH "/skyBoxes/ocean/top.jpg",
|
|
|
+ PIKA_RESOURCES_PATH "/skyBoxes/ocean/bottom.jpg",
|
|
|
+ PIKA_RESOURCES_PATH "/skyBoxes/ocean/front.jpg",
|
|
|
+ PIKA_RESOURCES_PATH "/skyBoxes/ocean/back.jpg"};
|
|
|
+
|
|
|
+ renderer.skyBox = renderer.loadSkyBox(names);
|
|
|
+ //renderer.skyBox.color = {0.2,0.3,0.8};
|
|
|
+
|
|
|
//helmetModel = renderer.loadModel(PIKA_RESOURCES_PATH "helmet/helmet.obj");
|
|
|
- ////helmetModel = renderer.loadModel(PIKA_RESOURCES_PATH "/knight/uploads_files_1950170_Solus_the_knight.gltf", 1.f);
|
|
|
- //
|
|
|
- //gl3d::Transform t;
|
|
|
- //t.position = {0, 0, -3};
|
|
|
+ helmetModel = renderer.loadModel(PIKA_RESOURCES_PATH "/knight/uploads_files_1950170_Solus_the_knight.gltf");
|
|
|
+
|
|
|
+ gl3d::Transform t;
|
|
|
+ t.position = {0, 0, -4};
|
|
|
//t.rotation = {1.5, 0 , 0};
|
|
|
- //
|
|
|
- //helmetEntity = renderer.createEntity(helmetModel, t);
|
|
|
+
|
|
|
+ helmetEntity = renderer.createEntity(helmetModel, t);
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -137,56 +75,44 @@ struct ThreeDEditor: public Container
|
|
|
{
|
|
|
|
|
|
|
|
|
- //renderer.setErrorCallback(&errorCallbackCustom, &requestedInfo);
|
|
|
- //renderer.fileOpener.userData = &requestedInfo;
|
|
|
- //renderer.fileOpener.readEntireFileBinaryCallback = readEntireFileBinaryCustom;
|
|
|
- //renderer.fileOpener.readEntireFileCallback = readEntireFileCustom;
|
|
|
- //renderer.fileOpener.fileExistsCallback = defaultFileExistsCustom;
|
|
|
- //
|
|
|
- //
|
|
|
- //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
|
|
- //glEnable(GL_DEPTH_TEST);
|
|
|
- //
|
|
|
- //renderer.updateWindowMetrics(windowState.w, windowState.h);
|
|
|
- //renderer.camera.aspectRatio = (float)windowState.w / windowState.h; //todo do this in update
|
|
|
- //
|
|
|
- //{
|
|
|
- // static glm::dvec2 lastMousePos = {};
|
|
|
- // if (input.rMouse.held())
|
|
|
- // {
|
|
|
- // glm::dvec2 currentMousePos = {input.mouseX, input.mouseY};
|
|
|
- //
|
|
|
- // float speed = 0.8f;
|
|
|
- //
|
|
|
- // glm::vec2 delta = lastMousePos - currentMousePos;
|
|
|
- // delta *= speed * input.deltaTime;
|
|
|
- //
|
|
|
- // renderer.camera.rotateCamera(delta);
|
|
|
- //
|
|
|
- // lastMousePos = currentMousePos;
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // lastMousePos = {input.mouseX, input.mouseY};
|
|
|
- // }
|
|
|
- //}
|
|
|
- //
|
|
|
- //
|
|
|
- //renderer.render(input.deltaTime);
|
|
|
- //glDisable(GL_DEPTH_TEST);
|
|
|
-
|
|
|
-
|
|
|
- if (!ImGui::Begin("Test window"))
|
|
|
+ renderer.setErrorCallback(&errorCallbackCustom, &requestedInfo);
|
|
|
+ renderer.fileOpener.userData = &requestedInfo;
|
|
|
+ renderer.fileOpener.readEntireFileBinaryCallback = readEntireFileBinaryCustom;
|
|
|
+ renderer.fileOpener.readEntireFileCallback = readEntireFileCustom;
|
|
|
+ renderer.fileOpener.fileExistsCallback = defaultFileExistsCustom;
|
|
|
+
|
|
|
+
|
|
|
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
|
|
+ glEnable(GL_DEPTH_TEST);
|
|
|
+
|
|
|
+ renderer.updateWindowMetrics(windowState.w, windowState.h);
|
|
|
+ renderer.camera.aspectRatio = (float)windowState.w / windowState.h; //todo do this in update
|
|
|
+
|
|
|
{
|
|
|
- ImGui::End();
|
|
|
- return;
|
|
|
+ static glm::dvec2 lastMousePos = {};
|
|
|
+ if (input.rMouse.held())
|
|
|
+ {
|
|
|
+ glm::dvec2 currentMousePos = {input.mouseX, input.mouseY};
|
|
|
+
|
|
|
+ float speed = 0.8f;
|
|
|
+
|
|
|
+ glm::vec2 delta = lastMousePos - currentMousePos;
|
|
|
+ delta *= speed * input.deltaTime;
|
|
|
+
|
|
|
+ renderer.camera.rotateCamera(delta);
|
|
|
+
|
|
|
+ lastMousePos = currentMousePos;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ lastMousePos = {input.mouseX, input.mouseY};
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
|
- ImGui::Text("test");
|
|
|
- ImGui::Button("close");
|
|
|
+ renderer.render(input.deltaTime);
|
|
|
+ glDisable(GL_DEPTH_TEST);
|
|
|
|
|
|
- ImGui::End();
|
|
|
|
|
|
}
|
|
|
|