mirror of
https://github.com/HowestDAE/dae16-VerhulstBram.git
synced 2026-02-04 08:09:19 +01:00
Add Imgui, Add TextureManager
From 1.1k texture loads to 5
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
#include <imgui.h>
|
||||
#include "pch.h"
|
||||
#include "Game.h"
|
||||
|
||||
@@ -51,9 +52,7 @@ void Game::Update(float elapsedSec) {
|
||||
|
||||
void Game::Draw() const {
|
||||
utils::ClearBackground(Color4f(0.0f, 0.0f, 0.3f, 1.0f));
|
||||
//m_Camera.BeginRendering();
|
||||
m_WorldLevel.Draw();
|
||||
//m_Camera.EndRendering();
|
||||
}
|
||||
|
||||
void Game::ProcessKeyDownEvent(const SDL_KeyboardEvent& e) {
|
||||
@@ -61,20 +60,7 @@ void Game::ProcessKeyDownEvent(const SDL_KeyboardEvent& e) {
|
||||
}
|
||||
|
||||
void Game::ProcessKeyUpEvent(const SDL_KeyboardEvent& e) {
|
||||
//std::cout << "KEYUP event: " << e.keysym.sym << std::endl;
|
||||
//switch ( e.keysym.sym )
|
||||
//{
|
||||
//case SDLK_LEFT:
|
||||
// //std::cout << "Left arrow key released\n";
|
||||
// break;
|
||||
//case SDLK_RIGHT:
|
||||
// //std::cout << "`Right arrow key released\n";
|
||||
// break;
|
||||
//case SDLK_1:
|
||||
//case SDLK_KP_1:
|
||||
// //std::cout << "Key 1 released\n";
|
||||
// break;
|
||||
//}
|
||||
|
||||
}
|
||||
|
||||
void Game::ProcessMouseMotionEvent(const SDL_MouseMotionEvent& e) {
|
||||
@@ -119,3 +105,10 @@ void Game::ProcessMouseUpEvent(const SDL_MouseButtonEvent& e) {
|
||||
// break;
|
||||
//}
|
||||
}
|
||||
void Game::ProcessImGui() {
|
||||
ImGui::Begin("Hello world", nullptr, ImGuiWindowFlags_AlwaysAutoResize);
|
||||
ImGui::Text("Texture loading Count:");
|
||||
ImGui::SameLine();
|
||||
ImGui::TextColored(ImVec4(1.0f, 0.0f, 1.0f, 1.0f), std::to_string(Texture::m_TextureCounter).c_str());
|
||||
ImGui::End();
|
||||
}
|
||||
|
||||
@@ -27,6 +27,8 @@ public:
|
||||
void ProcessMouseDownEvent(const SDL_MouseButtonEvent& e) override;
|
||||
void ProcessMouseUpEvent(const SDL_MouseButtonEvent& e) override;
|
||||
|
||||
void ProcessImGui() override;
|
||||
|
||||
private:
|
||||
// FUNCTIONS
|
||||
void Initialize();
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<IncludePath>$(SolutionDir)\Libraries\SDLTtf\SDL2_ttf-2.20.2\include;$(SolutionDir)\Libraries\SDLMixer\SDL2_mixer-2.6.3\include;$(SolutionDir)\Libraries\SDLImage\SDL2_image-2.6.3\include;$(SolutionDir)\Libraries\SDLMain\SDL2-2.26.3\include;$(SolutionDir)\Engine;$(IncludePath)</IncludePath>
|
||||
<IncludePath>C:\Users\Bram\Desktop\Programming 2\Exam\dae16-VerhulstBram\Engine\imgui;$(SolutionDir)\Libraries\SDLTtf\SDL2_ttf-2.20.2\include;$(SolutionDir)\Libraries\SDLMixer\SDL2_mixer-2.6.3\include;$(SolutionDir)\Libraries\SDLImage\SDL2_image-2.6.3\include;$(SolutionDir)\Libraries\SDLMain\SDL2-2.26.3\include;$(SolutionDir)\Engine;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>$(SolutionDir)\x64\Debug;$(SolutionDir)\Libraries\SDLTtf\SDL2_ttf-2.20.2\lib\x64;$(SolutionDir)\Libraries\SDLMixer\SDL2_mixer-2.6.3\lib\x64;$(SolutionDir)\Libraries\SDLImage\SDL2_image-2.6.3\lib\x64;$(SolutionDir)\Libraries\SDLMain\SDL2-2.26.3\lib\x64;$(LibraryPath)</LibraryPath>
|
||||
<CustomBuildAfterTargets>BuildCompile</CustomBuildAfterTargets>
|
||||
</PropertyGroup>
|
||||
@@ -322,4 +322,7 @@ xcopy "$(SolutionDir)Resources\*.*" "$(TargetDir)" /y /d /s</Command>
|
||||
<PropertyGroup>
|
||||
<LocalDebuggerWorkingDirectory>$(TargetDir)</LocalDebuggerWorkingDirectory>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<IncludePath>C:\Users\Bram\Desktop\Programming 2\Exam\dae16-VerhulstBram\Engine\imgui;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -36,79 +36,10 @@
|
||||
<ClCompile Include="WorldTile.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_allegro5.cpp">
|
||||
<ClCompile Include="Player.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_android.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_dx9.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_dx10.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_dx11.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_dx12.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_glfw.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_glut.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_opengl2.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_opengl3.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_sdl2.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_sdl3.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_sdlrenderer2.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_sdlrenderer3.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_vulkan.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_wgpu.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\backends\imgui_impl_win32.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\misc\cpp\imgui_stdlib.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\misc\fonts\binary_to_compressed_c.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\misc\freetype\imgui_freetype.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\imgui.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\imgui_demo.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\imgui_draw.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\imgui_tables.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DearImGui\imgui_widgets.cpp">
|
||||
<ClCompile Include="TextureManager.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
@@ -131,91 +62,10 @@
|
||||
<ClInclude Include="WorldTile.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_allegro5.h">
|
||||
<ClInclude Include="Player.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_android.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_dx9.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_dx10.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_dx11.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_dx12.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_glfw.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_glut.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_metal.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_opengl2.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_opengl3.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_opengl3_loader.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_osx.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_sdl2.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_sdl3.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_sdlrenderer2.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_sdlrenderer3.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_vulkan.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_wgpu.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\backends\imgui_impl_win32.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\misc\cpp\imgui_stdlib.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\misc\freetype\imgui_freetype.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\misc\single_file\imgui_single_file.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\imconfig.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\imgui.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\imgui_internal.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\imstb_rectpack.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\imstb_textedit.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DearImGui\imstb_truetype.h">
|
||||
<ClInclude Include="TextureManager.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
|
||||
@@ -1,2 +1,20 @@
|
||||
#include "pch.h"
|
||||
#include "TextureManager.h"
|
||||
TextureManager* TextureManager::m_pInstance = NULL;
|
||||
|
||||
TextureManager* TextureManager::GetInstance() {
|
||||
if (m_pInstance == nullptr) {
|
||||
m_pInstance = new TextureManager();
|
||||
}
|
||||
return m_pInstance;
|
||||
}
|
||||
Texture* TextureManager::GetTexture(const std::string& name) {
|
||||
if (m_Textures.find(name) != m_Textures.end()) {
|
||||
return m_Textures[name];
|
||||
}
|
||||
Texture* pTexture = new Texture(name);
|
||||
m_Textures[name] = pTexture;
|
||||
return pTexture;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,20 @@
|
||||
#pragma once
|
||||
#include <map>
|
||||
|
||||
#include "Texture.h"
|
||||
|
||||
class TextureManager
|
||||
{
|
||||
public:
|
||||
TextureManager() = default;
|
||||
|
||||
static TextureManager* GetInstance();
|
||||
|
||||
Texture* GetTexture(const std::string& name);
|
||||
|
||||
static TextureManager* m_pInstance;
|
||||
private:
|
||||
std::map<std::string, Texture*> m_Textures{};
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ WorldLevel::WorldLevel(Camera* camera) : Level(camera), m_mousePos{ 0, 0 }, m_pl
|
||||
for (size_t x { 0 }; x < WORLD_WIDTH; ++x) {
|
||||
for (size_t y { 0 }; y < WORLD_HEIGHT; ++y) {
|
||||
int actualX = x - WORLD_WIDTH / 2;
|
||||
m_worldTiles[x][y] = new WorldTile{ Point2f{ float(actualX * TILE_WIDTH), -float(y * TILE_HEIGHT) - TILE_HEIGHT}, GroundTileTypes::Dirt};
|
||||
m_worldTiles[x][y] = new WorldTile{ Point2f{ float(actualX * TILE_WIDTH), -float(y * TILE_HEIGHT) - TILE_HEIGHT}, GroundTileTypes::Dirt, TextureManager::GetInstance()};
|
||||
}
|
||||
}
|
||||
m_Rects.push_back(Collision::CollisionRect{ Point2f{0.0f, 10.0f}, Point2f{40.0f, 40.0f} });
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
#include "pch.h"
|
||||
#include "WorldTile.h"
|
||||
|
||||
#include "TextureManager.h"
|
||||
#include "utils.h"
|
||||
|
||||
WorldTile::WorldTile() {
|
||||
|
||||
}
|
||||
WorldTile::WorldTile(const Point2f& position, GroundTileTypes groundTileType) : m_Position { position }, m_GroundTileType { groundTileType } {
|
||||
WorldTile::WorldTile(const Point2f& position, GroundTileTypes groundTileType, TextureManager* pTextureManager) : m_Position { position }, m_GroundTileType { groundTileType } {
|
||||
const std::string dirtPath = + "tiles/dirt/dirt" + std::to_string(utils::randRange(1, 5)) + ".png";
|
||||
m_pTexture = new Texture(dirtPath);
|
||||
// m_pTexture = new Texture(dirtPath);
|
||||
m_pTexture = pTextureManager->GetTexture(dirtPath);
|
||||
}
|
||||
WorldTile::~WorldTile() {
|
||||
delete m_pTexture;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
#include "Collision.h"
|
||||
#include "Texture.h"
|
||||
#include "TextureManager.h"
|
||||
|
||||
enum class GroundTileTypes
|
||||
{
|
||||
@@ -11,7 +12,7 @@ enum class GroundTileTypes
|
||||
class WorldTile {
|
||||
public:
|
||||
WorldTile();
|
||||
WorldTile(const Point2f& position, GroundTileTypes groundTileType);
|
||||
WorldTile(const Point2f& position, GroundTileTypes groundTileType, TextureManager* pTextureManager);
|
||||
~WorldTile();
|
||||
|
||||
void Draw() const;
|
||||
|
||||
Reference in New Issue
Block a user