diff --git a/enginecustom/Systemclass.cpp b/enginecustom/Systemclass.cpp index 3ecf75c..e47a23b 100644 --- a/enginecustom/Systemclass.cpp +++ b/enginecustom/Systemclass.cpp @@ -159,27 +159,8 @@ bool SystemClass::Frame() return false; } - // Start the Dear ImGui frame - m_imguiManager->NewFrame(); - - //ImGui Widget - ImGui::Begin("Khaotic Engine", NULL); - - float speed = m_Application->GetSpeed(); - m_imguiManager->WidgetSpeedSlider(&speed); - m_Application->SetSpeed(speed); - m_imguiManager->WidgetButton(); - m_imguiManager->WidgetFPS(); - m_imguiManager->WidgetAddObject(m_Application); - m_imguiManager->WidgetObjectWindow(m_Application); - m_imguiManager->WidgetTerrainWindow(m_Application); - - ImGui::End(); - - //render imgui - m_imguiManager->Render(); - - this->m_Application->GetDirect3D()->m_swapChain->Present(0, NULL); + // Render ImGui + m_imguiManager->ImGuiWidgetRenderer(m_Application); return true; } diff --git a/enginecustom/applicationclass.cpp b/enginecustom/applicationclass.cpp index 7faf1aa..36760fe 100644 --- a/enginecustom/applicationclass.cpp +++ b/enginecustom/applicationclass.cpp @@ -69,8 +69,6 @@ bool ApplicationClass::Initialize(int screenWidth, int screenHeight, HWND hwnd) return false; } - GenerateTerrain(); - // Create the camera object. m_Camera = new CameraClass; if (!m_Camera) @@ -245,7 +243,7 @@ bool ApplicationClass::Initialize(int screenWidth, int screenHeight, HWND hwnd) } // Set the file name of the model. - strcpy_s(modelFilename, "plane.txt"); + strcpy_s(modelFilename, "cube.txt"); // Set the file name of the textures. strcpy_s(textureFilename1, "stone01.tga"); @@ -389,7 +387,6 @@ bool ApplicationClass::Initialize(int screenWidth, int screenHeight, HWND hwnd) return false; } - return true; } @@ -722,13 +719,6 @@ bool ApplicationClass::Frame(InputClass* Input) return false; } - // Render the graphics scene. - result = Render(rotation, x, y, z); - if (!result) - { - return false; - } - // Check if the mouse has been pressed. mouseDown = Input->IsMousePressed(); diff --git a/enginecustom/applicationclass.h b/enginecustom/applicationclass.h index 6ff1ee2..d5d41cc 100644 --- a/enginecustom/applicationclass.h +++ b/enginecustom/applicationclass.h @@ -84,45 +84,76 @@ private: bool UpdateRenderCountString(int); bool RenderSceneToTexture(float); -private: +private : + + // ------------------------------------- // + // ------------- DIRECT3D -------------- // + // ------------------------------------- // + D3DClass* m_Direct3D; - CameraClass* m_Camera; IDXGISwapChain* m_swapChain; - float speed = 0.1f; - Object* m_SelectedObject; - std::vector m_cubes; - std::vector m_terrainChunk; - LightShaderClass* m_LightShader; - LightClass* m_Light; - LightMapShaderClass* m_LightMapShader; - MultiTextureShaderClass* m_MultiTextureShader; - AlphaMapShaderClass* m_AlphaMapShader; ModelClass* m_Model; - TextureShaderClass* m_TextureShader; - BitmapClass* m_Bitmap; - SpriteClass* m_Sprite; - TimerClass* m_Timer; - TextClass* m_MouseStrings; - LightClass* m_Lights; - int m_numLights; - FontShaderClass* m_FontShader; - TextClass* m_RenderCountString; - FontClass* m_Font; - TextClass *m_TextString1, *m_TextString2, *m_TextString3; - FpsClass* m_Fps; - TextClass* m_FpsString; - int m_previousFps; - std::vector m_object; - NormalMapShaderClass* m_NormalMapShader; - SpecMapShaderClass* m_SpecMapShader; ModelListClass* m_ModelList; - PositionClass* m_Position; - FrustumClass* m_Frustum; + + // ------------------------------------- // + // ------------- RENDERING ------------- // + // ------------------------------------- // + XMMATRIX m_baseViewMatrix; RenderTextureClass* m_RenderTexture; DisplayPlaneClass* m_DisplayPlane; float m_screenWidth, m_screenHeight; + CameraClass* m_Camera; + PositionClass* m_Position; + FrustumClass* m_Frustum; + + // ------------------------------------ // + // ------------- OBJECTS -------------- // + // ------------------------------------ // + + Object* m_SelectedObject; + std::vector m_cubes; + std::vector m_terrainChunk; + float speed = 0.1f; // speed for the demo spinning object + std::vector m_object; + + // ----------------------------------- // + // ------------- LIGHTS -------------- // + // ----------------------------------- // + + LightClass* m_Light; + LightClass* m_Lights; + int m_numLights; + + // ----------------------------------- // + // ------------- SHADERS ------------- // + // ----------------------------------- // + + LightShaderClass* m_LightShader; + LightMapShaderClass* m_LightMapShader; + MultiTextureShaderClass* m_MultiTextureShader; + AlphaMapShaderClass* m_AlphaMapShader; + TextureShaderClass* m_TextureShader; + FontShaderClass* m_FontShader; + NormalMapShaderClass* m_NormalMapShader; + SpecMapShaderClass* m_SpecMapShader; TranslateShaderClass* m_TranslateShader; + + BitmapClass* m_Bitmap; + SpriteClass* m_Sprite; + + // ------------------------------------------------- // + // ------------- FPS AND INFO ON SCREEN ------------ // + // ------------------------------------------------- // + + TimerClass* m_Timer; + TextClass* m_MouseStrings; + TextClass* m_RenderCountString; + FontClass* m_Font; + TextClass* m_TextString1, * m_TextString2, * m_TextString3; + FpsClass* m_Fps; + TextClass* m_FpsString; + int m_previousFps; }; #endif \ No newline at end of file diff --git a/enginecustom/imgui.ini b/enginecustom/imgui.ini index 5ec7f80..21e4b2c 100644 --- a/enginecustom/imgui.ini +++ b/enginecustom/imgui.ini @@ -4,13 +4,13 @@ Size=400,400 [Window][Khaotic Engine] Pos=819,137 -Size=694,183 +Size=694,210 [Window][Objects] -Pos=10,29 +Pos=222,19 Size=492,353 [Window][Terrain] -Pos=892,20 +Pos=892,19 Size=418,94 diff --git a/enginecustom/imguiManager.cpp b/enginecustom/imguiManager.cpp index a4975ff..5c8e6eb 100644 --- a/enginecustom/imguiManager.cpp +++ b/enginecustom/imguiManager.cpp @@ -154,4 +154,29 @@ void imguiManager::WidgetTerrainWindow(ApplicationClass* app) } ImGui::End(); +} + +void imguiManager::ImGuiWidgetRenderer(ApplicationClass* app) +{ + // Start the Dear ImGui frame + NewFrame(); + + //ImGui Widget + ImGui::Begin("Khaotic Engine", NULL); + + float speed = app->GetSpeed(); + WidgetSpeedSlider(&speed); + app->SetSpeed(speed); + WidgetButton(); + WidgetFPS(); + WidgetAddObject(app); + WidgetObjectWindow(app); + WidgetTerrainWindow(app); + + ImGui::End(); + + //render imgui + Render(); + + app->GetDirect3D()->m_swapChain->Present(0, NULL); } \ No newline at end of file diff --git a/enginecustom/imguiManager.h b/enginecustom/imguiManager.h index 007d3cc..1147f54 100644 --- a/enginecustom/imguiManager.h +++ b/enginecustom/imguiManager.h @@ -29,6 +29,8 @@ public: void WidgetObjectWindow(ApplicationClass* app); void WidgetTerrainWindow(ApplicationClass* app); + void ImGuiWidgetRenderer(ApplicationClass* app); + private: ImGuiIO* io; };