Minor Update - ImGui Render Tweak
[FEAT] : ~ Modification de la chaine de rendu dans la method Frame() ~ Modification de l'interface de lights
This commit is contained in:
parent
25f05fe217
commit
7ef81b9c91
@ -189,6 +189,8 @@ void SystemClass::Run()
|
|||||||
|
|
||||||
bool SystemClass::Frame()
|
bool SystemClass::Frame()
|
||||||
{
|
{
|
||||||
|
// Clear the buffers to begin the scene.
|
||||||
|
m_Application->GetDirect3D()->BeginScene(0.0f, 0.0f, 0.0f, 1.0f);
|
||||||
|
|
||||||
std::lock_guard<std::mutex> guard(renderMutex);
|
std::lock_guard<std::mutex> guard(renderMutex);
|
||||||
bool result;
|
bool result;
|
||||||
@ -201,6 +203,14 @@ bool SystemClass::Frame()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do the frame processing for the application class object.
|
||||||
|
result = m_Application->Frame(m_Input);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
Logger::Get().Log("Failed to process application frame", __FILE__, __LINE__, Logger::LogLevel::Error);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Render ImGui
|
// Render ImGui
|
||||||
result = m_imguiManager->ImGuiWidgetRenderer(m_Application);
|
result = m_imguiManager->ImGuiWidgetRenderer(m_Application);
|
||||||
if (!result)
|
if (!result)
|
||||||
@ -209,13 +219,7 @@ bool SystemClass::Frame()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do the frame processing for the application class object.
|
m_Application->GetDirect3D()->EndScene();
|
||||||
result = m_Application->Frame(m_Input);
|
|
||||||
if (!result)
|
|
||||||
{
|
|
||||||
Logger::Get().Log("Failed to process application frame", __FILE__, __LINE__, Logger::LogLevel::Error);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -691,9 +691,6 @@ bool ApplicationClass::Render(float rotation, float x, float y, float z, float t
|
|||||||
// Set the blending amount to 10%.
|
// Set the blending amount to 10%.
|
||||||
blendAmount = 0.1f;
|
blendAmount = 0.1f;
|
||||||
|
|
||||||
// Clear the buffers to begin the scene.
|
|
||||||
m_Direct3D->BeginScene(0.0f, 0.0f, 0.0f, 1.0f);
|
|
||||||
|
|
||||||
// Generate the view matrix based on the camera's position.
|
// Generate the view matrix based on the camera's position.
|
||||||
m_Camera->Render();
|
m_Camera->Render();
|
||||||
|
|
||||||
@ -1141,9 +1138,6 @@ bool ApplicationClass::Render(float rotation, float x, float y, float z, float t
|
|||||||
m_Direct3D->TurnZBufferOn();
|
m_Direct3D->TurnZBufferOn();
|
||||||
m_Direct3D->DisableAlphaBlending();
|
m_Direct3D->DisableAlphaBlending();
|
||||||
|
|
||||||
// Present the rendered scene to the screen.
|
|
||||||
m_Direct3D->EndScene();
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1497,4 +1491,43 @@ void ApplicationClass::DeleteLight(int index)
|
|||||||
|
|
||||||
// Remove the light from the vector
|
// Remove the light from the vector
|
||||||
m_Lights.erase(m_Lights.begin() + index);
|
m_Lights.erase(m_Lights.begin() + index);
|
||||||
|
|
||||||
|
// Decrement the number of lights
|
||||||
|
m_numLights--;
|
||||||
|
|
||||||
|
// Update the light position and color
|
||||||
|
for (int i = 0; i < m_numLights; i++)
|
||||||
|
{
|
||||||
|
m_Lights[i]->SetPosition(i * 10.0f, 10.0f, -10.0f);
|
||||||
|
m_Lights[i]->SetDiffuseColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ApplicationClass::AddLight()
|
||||||
|
{
|
||||||
|
Logger::Get().Log("Adding light", __FILE__, __LINE__);
|
||||||
|
|
||||||
|
// Create a new light object
|
||||||
|
LightClass* newLight = new LightClass();
|
||||||
|
|
||||||
|
// Set the light position
|
||||||
|
newLight->SetPosition(m_numLights * 10.0f, 10.0f, -10.0f);
|
||||||
|
|
||||||
|
// Set the light color
|
||||||
|
newLight->SetDiffuseColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||||
|
|
||||||
|
// Set the light direction
|
||||||
|
newLight->SetDirection(0.0f, 0.0f, 1.0f);
|
||||||
|
|
||||||
|
// Set the light specular color
|
||||||
|
newLight->SetSpecularColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||||
|
|
||||||
|
// Set the light specular power
|
||||||
|
newLight->SetSpecularPower(16.0f);
|
||||||
|
|
||||||
|
// Add the light to the vector
|
||||||
|
m_Lights.push_back(newLight);
|
||||||
|
|
||||||
|
// Increment the number of lights
|
||||||
|
m_numLights++;
|
||||||
}
|
}
|
||||||
|
@ -79,6 +79,7 @@ public:
|
|||||||
void SetLightPosition(int index, XMVECTOR color);
|
void SetLightPosition(int index, XMVECTOR color);
|
||||||
void SetLightColor(int index, XMVECTOR color);
|
void SetLightColor(int index, XMVECTOR color);
|
||||||
void DeleteLight(int index);
|
void DeleteLight(int index);
|
||||||
|
void AddLight();
|
||||||
std::vector<LightClass*> GetLights() const { return m_Lights; };
|
std::vector<LightClass*> GetLights() const { return m_Lights; };
|
||||||
|
|
||||||
bool GetShouldQuit() const { return m_ShouldQuit; };
|
bool GetShouldQuit() const { return m_ShouldQuit; };
|
||||||
|
@ -3,7 +3,7 @@ Pos=60,60
|
|||||||
Size=400,400
|
Size=400,400
|
||||||
|
|
||||||
[Window][Khaotic Engine]
|
[Window][Khaotic Engine]
|
||||||
Pos=429,57
|
Pos=30,173
|
||||||
Size=392,218
|
Size=392,218
|
||||||
|
|
||||||
[Window][Objects]
|
[Window][Objects]
|
||||||
@ -11,10 +11,10 @@ Pos=39,222
|
|||||||
Size=379,299
|
Size=379,299
|
||||||
|
|
||||||
[Window][Terrain]
|
[Window][Terrain]
|
||||||
Pos=60,60
|
Pos=397,130
|
||||||
Size=342,82
|
Size=342,82
|
||||||
|
|
||||||
[Window][Light]
|
[Window][Light]
|
||||||
Pos=62,180
|
Pos=34,172
|
||||||
Size=345,230
|
Size=345,230
|
||||||
|
|
||||||
|
@ -254,8 +254,6 @@ bool imguiManager::ImGuiWidgetRenderer(ApplicationClass* app)
|
|||||||
//render imgui
|
//render imgui
|
||||||
Render();
|
Render();
|
||||||
|
|
||||||
app->GetDirect3D()->m_swapChain->Present(0, NULL);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -263,6 +261,12 @@ void imguiManager::WidgetLightWindow(ApplicationClass* app)
|
|||||||
{
|
{
|
||||||
ImGui::Begin("Light", &showLightWindow);
|
ImGui::Begin("Light", &showLightWindow);
|
||||||
int index = 0;
|
int index = 0;
|
||||||
|
// add light button
|
||||||
|
if (ImGui::Button("Add Light"))
|
||||||
|
{
|
||||||
|
app->AddLight();
|
||||||
|
}
|
||||||
|
|
||||||
for(auto& light : app->GetLights())
|
for(auto& light : app->GetLights())
|
||||||
{
|
{
|
||||||
std::string headerName = "Light " + std::to_string(index);
|
std::string headerName = "Light " + std::to_string(index);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user