Skip to content

Commit

Permalink
Created Layers
Browse files Browse the repository at this point in the history
  • Loading branch information
yugansharora01 committed Sep 13, 2021
1 parent 926db95 commit 937cb71
Show file tree
Hide file tree
Showing 25 changed files with 245 additions and 26 deletions.
18 changes: 11 additions & 7 deletions Aurora/Aurora.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>AU_PLATFORM_WINDOWS;AU_BUILD_DLL;AU_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>vendor\spdlog\include;src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>src;vendor\spdlog\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
Expand All @@ -101,7 +101,7 @@
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>AU_PLATFORM_WINDOWS;AU_BUILD_DLL;AU_RELEASE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>vendor\spdlog\include;src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>src;vendor\spdlog\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
Expand All @@ -126,7 +126,7 @@
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>AU_PLATFORM_WINDOWS;AU_BUILD_DLL;AU_DIST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>vendor\spdlog\include;src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>src;vendor\spdlog\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
Expand Down Expand Up @@ -154,28 +154,32 @@
<ClInclude Include="src\Aurora\Events\Events.h" />
<ClInclude Include="src\Aurora\Events\KeyboardEvents.h" />
<ClInclude Include="src\Aurora\Events\MouseEvents.h" />
<ClInclude Include="src\Aurora\Layer.h" />
<ClInclude Include="src\Aurora\LayerStack.h" />
<ClInclude Include="src\Aurora\Log.h" />
<ClInclude Include="src\Aurora\Window.h" />
<ClInclude Include="src\pch.h" />
<ClInclude Include="src\Platform\Windows\AuroraException.h" />
<ClInclude Include="src\Platform\Windows\AuroraWin.h" />
<ClInclude Include="src\Platform\Windows\Keyboard.h" />
<ClInclude Include="src\Platform\Windows\Mouse.h" />
<ClInclude Include="src\Platform\Windows\Win32_Window.h" />
<ClInclude Include="src\Platform\Windows\WindowsThrowMacros.h" />
<ClInclude Include="src\Platform\Windows\WindowsWindow.h" />
<ClInclude Include="src\pch.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\Aurora\Application.cpp" />
<ClCompile Include="src\Aurora\Layer.cpp" />
<ClCompile Include="src\Aurora\LayerStack.cpp" />
<ClCompile Include="src\Aurora\Log.cpp" />
<ClCompile Include="src\pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="src\Platform\Windows\AuroraException.cpp" />
<ClCompile Include="src\Platform\Windows\Keyboard.cpp" />
<ClCompile Include="src\Platform\Windows\Mouse.cpp" />
<ClCompile Include="src\Platform\Windows\Win32_Window.cpp" />
<ClCompile Include="src\Platform\Windows\WindowsWindow.cpp" />
<ClCompile Include="src\pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
Expand Down
70 changes: 57 additions & 13 deletions Aurora/Aurora.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@
<Filter Include="Aurora\Events">
<UniqueIdentifier>{13B80547-7F78-817D-48B3-CAFAB432C659}</UniqueIdentifier>
</Filter>
<Filter Include="Platform">
<UniqueIdentifier>{2AC788B4-1694-E3BF-3FAD-D1672BD9184E}</UniqueIdentifier>
</Filter>
<Filter Include="Platform\Windows">
<UniqueIdentifier>{64FBD71A-50F4-F66C-7926-DCF1657ED678}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\Aurora.h" />
Expand All @@ -31,31 +37,69 @@
<ClInclude Include="src\Aurora\Events\MouseEvents.h">
<Filter>Aurora\Events</Filter>
</ClInclude>
<ClInclude Include="src\Aurora\Layer.h">
<Filter>Aurora</Filter>
</ClInclude>
<ClInclude Include="src\Aurora\LayerStack.h">
<Filter>Aurora</Filter>
</ClInclude>
<ClInclude Include="src\Aurora\Log.h">
<Filter>Aurora</Filter>
</ClInclude>
<ClInclude Include="src\Aurora\Window.h">
<Filter>Aurora</Filter>
</ClInclude>
<ClInclude Include="src\Platform\Windows\AuroraException.h">
<Filter>Platform\Windows</Filter>
</ClInclude>
<ClInclude Include="src\Platform\Windows\AuroraWin.h">
<Filter>Platform\Windows</Filter>
</ClInclude>
<ClInclude Include="src\Platform\Windows\Keyboard.h">
<Filter>Platform\Windows</Filter>
</ClInclude>
<ClInclude Include="src\Platform\Windows\Mouse.h">
<Filter>Platform\Windows</Filter>
</ClInclude>
<ClInclude Include="src\Platform\Windows\Win32_Window.h">
<Filter>Platform\Windows</Filter>
</ClInclude>
<ClInclude Include="src\Platform\Windows\WindowsThrowMacros.h">
<Filter>Platform\Windows</Filter>
</ClInclude>
<ClInclude Include="src\Platform\Windows\WindowsWindow.h">
<Filter>Platform\Windows</Filter>
</ClInclude>
<ClInclude Include="src\pch.h" />
<ClInclude Include="src\Aurora\Window.h" />
<ClInclude Include="src\Platform\Windows\WindowsWindow.h" />
<ClInclude Include="src\Platform\Windows\Win32_Window.h" />
<ClInclude Include="src\Platform\Windows\AuroraException.h" />
<ClInclude Include="src\Platform\Windows\AuroraWin.h" />
<ClInclude Include="src\Platform\Windows\Keyboard.h" />
<ClInclude Include="src\Platform\Windows\Mouse.h" />
<ClInclude Include="src\Platform\Windows\WindowsThrowMacros.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\Aurora\Application.cpp">
<Filter>Aurora</Filter>
</ClCompile>
<ClCompile Include="src\Aurora\Layer.cpp">
<Filter>Aurora</Filter>
</ClCompile>
<ClCompile Include="src\Aurora\LayerStack.cpp">
<Filter>Aurora</Filter>
</ClCompile>
<ClCompile Include="src\Aurora\Log.cpp">
<Filter>Aurora</Filter>
</ClCompile>
<ClCompile Include="src\Platform\Windows\AuroraException.cpp">
<Filter>Platform\Windows</Filter>
</ClCompile>
<ClCompile Include="src\Platform\Windows\Keyboard.cpp">
<Filter>Platform\Windows</Filter>
</ClCompile>
<ClCompile Include="src\Platform\Windows\Mouse.cpp">
<Filter>Platform\Windows</Filter>
</ClCompile>
<ClCompile Include="src\Platform\Windows\Win32_Window.cpp">
<Filter>Platform\Windows</Filter>
</ClCompile>
<ClCompile Include="src\Platform\Windows\WindowsWindow.cpp">
<Filter>Platform\Windows</Filter>
</ClCompile>
<ClCompile Include="src\pch.cpp" />
<ClCompile Include="src\Platform\Windows\WindowsWindow.cpp" />
<ClCompile Include="src\Platform\Windows\Win32_Window.cpp" />
<ClCompile Include="src\Platform\Windows\AuroraException.cpp" />
<ClCompile Include="src\Platform\Windows\Keyboard.cpp" />
<ClCompile Include="src\Platform\Windows\Mouse.cpp" />
</ItemGroup>
</Project>
1 change: 1 addition & 0 deletions Aurora/src/Aurora.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

#include "Aurora/Application.h"
#include "Aurora/Log.h"
#include "Aurora/Layer.h"

// ------Entry Point--------------
#include "Aurora/EntryPoint.h"
Expand Down
22 changes: 22 additions & 0 deletions Aurora/src/Aurora/Application.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,30 @@ namespace Aurora {
//}
while (m_Running)
{
for (Layer* layer : m_LayerStack)
layer->OnUpdate();
m_Window->OnUpdate(m_Running);
}
}

void Application::OnEvent(Event& e)
{
for (auto it = m_LayerStack.end(); it != m_LayerStack.begin(); it++)
{
(*--it)->OnEvent(e);
if (e.m_handled)
break;
}
}

void Application::PushLayer(Layer* layer)
{
m_LayerStack.PushLayer(layer);
}

void Application::PushOverlay(Layer* layer)
{
m_LayerStack.PushOverlay(layer);
}

}
12 changes: 12 additions & 0 deletions Aurora/src/Aurora/Application.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

#include "Core.h"
#include "Window.h"
#include "Aurora/LayerStack.h"
#include "Events/Events.h"


namespace Aurora {

Expand All @@ -12,9 +15,18 @@ namespace Aurora {
virtual ~Application();

void Run();

void OnEvent(Event& e);

void PushLayer(Layer* layer);
void PushOverlay(Layer* layer);

private:
std::unique_ptr<Window> m_Window;
bool m_Running = true;

LayerStack m_LayerStack;

};

//To be defined in client
Expand Down
4 changes: 2 additions & 2 deletions Aurora/src/Aurora/Events/Events.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ namespace Aurora {
{
friend class EventDispatcher;
public:
bool m_handled = false;

virtual EventType GetEventType() const = 0;
virtual const char* GetName() const = 0;
virtual int GetCategoryFlags() const = 0;
Expand All @@ -47,8 +49,6 @@ namespace Aurora {
{
return GetCategoryFlags() & category;
}
protected:
bool m_handled = false;
};

class EventDispatcher
Expand Down
11 changes: 11 additions & 0 deletions Aurora/src/Aurora/Layer.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#include "pch.h"
#include "Layer.h"

Aurora::Layer::Layer(const std::string& name)
:m_DebugName(name)
{
}

Aurora::Layer::~Layer()
{
}
25 changes: 25 additions & 0 deletions Aurora/src/Aurora/Layer.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#pragma once

#include "Aurora/Core.h"
#include "Aurora/Events/Events.h"

namespace Aurora {
class AURORA_API Layer
{
public:
Layer(const std::string& name = "Layer");
virtual ~Layer();

virtual void OnAttach() {}
virtual void OnDetach() {}
virtual void OnUpdate() {}
virtual void OnEvent(Event& event) {}

inline const std::string& GetName() const { return m_DebugName; }

private:
std::string m_DebugName;
};


}
48 changes: 48 additions & 0 deletions Aurora/src/Aurora/LayerStack.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#include "pch.h"
#include "LayerStack.h"

Aurora::LayerStack::LayerStack()
{
}

Aurora::LayerStack::~LayerStack()
{
for (Layer* layer : m_Layers)
{
layer->OnDetach();
delete layer;
}
}

void Aurora::LayerStack::PushLayer(Layer* layer)
{
m_Layers.emplace(m_Layers.begin() + m_LayerInsertor, layer);
m_LayerInsertor++;
}

void Aurora::LayerStack::PushOverlay(Layer* overlay)
{
m_Layers.emplace_back(overlay);
}

void Aurora::LayerStack::PopLayer(Layer* layer)
{
auto it = std::find(m_Layers.begin(), m_Layers.end(), layer);
if (it != m_Layers.end())
{
layer->OnDetach();
m_Layers.erase(it);
m_LayerInsertor--;
}
}

void Aurora::LayerStack::PopOverlay(Layer* overlay)
{
auto it = std::find(m_Layers.begin(), m_Layers.end(), overlay);
if (it != m_Layers.end())
{
overlay->OnDetach();
m_Layers.erase(it);
m_LayerInsertor--;
}
}
27 changes: 27 additions & 0 deletions Aurora/src/Aurora/LayerStack.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#pragma once

#include "Aurora/Core.h"
#include "Layer.h"

namespace Aurora {
class AURORA_API LayerStack
{
public:
LayerStack();
~LayerStack();

void PushLayer(Layer* layer);
void PushOverlay(Layer* overlay);
void PopLayer(Layer* layer);
void PopOverlay(Layer* overlay);

std::vector<Layer*>::iterator begin() { return m_Layers.begin(); }
std::vector<Layer*>::iterator end() { return m_Layers.end(); }

private:
std::vector<Layer*> m_Layers;
unsigned int m_LayerInsertor = 0;
};


}
9 changes: 6 additions & 3 deletions Premake5.lua
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,15 @@ workspace "Aurora"

outputdir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"

IncludeDir = []
IncludeDir[spdlog] = "Aurora/vendor/spdlog/include"
IncludeDir={}

IncludeDir["spdlog"] = "Aurora/vendor/spdlog/include"

project "Aurora"
location "Aurora"
kind "SharedLib"
language "C++"
staticruntime "off"

targetdir ("bin/"..outputdir.."/%{prj.name}")
objdir ("bin-int/"..outputdir.."/%{prj.name}")
Expand All @@ -33,7 +35,7 @@ project "Aurora"
includedirs
{
"%{prj.name}/src",
"%IncludeDir.spdlog"
"%{IncludeDir.spdlog}"
}

filter "system:windows"
Expand Down Expand Up @@ -70,6 +72,7 @@ project "Sandbox"
location "Sandbox"
kind "ConsoleApp"
language "C++"
staticruntime "off"

targetdir ("bin/"..outputdir.."/%{prj.name}")
objdir ("bin-int/"..outputdir.."/%{prj.name}")
Expand Down
Loading

0 comments on commit 937cb71

Please sign in to comment.