Files
Seele/src/Engine/Window/WindowManager.cpp
T
2021-11-11 20:12:50 +01:00

48 lines
1.2 KiB
C++

#include "WindowManager.h"
#include "Graphics/Vulkan/VulkanGraphics.h"
using namespace Seele;
Gfx::PGraphics WindowManager::graphics;
WindowManager::WindowManager()
{
graphics = new Vulkan::Graphics();
GraphicsInitializer initializer;
graphics->init(initializer);
TextureCreateInfo info;
info.width = 4096;
info.height = 4096;
Gfx::PTexture2D testTexture = graphics->createTexture2D(info);
UniformBufferCreateInfo uniformInitializer;
uniformInitializer.resourceData.size = 4096;
uniformInitializer.resourceData.data = new uint8[4096];
for (int i = 0; i < 4096; ++i)
{
uniformInitializer.resourceData.data[i] = (uint8)i;
}
Gfx::PUniformBuffer testUniform = graphics->createUniformBuffer(uniformInitializer);
}
WindowManager::~WindowManager()
{
}
PWindow WindowManager::addWindow(const WindowCreateInfo &createInfo)
{
Gfx::PWindow handle = graphics->createWindow(createInfo);
PWindow window = new Window(this, handle);
windows.add(window);
return window;
}
void WindowManager::notifyWindowClosed(PWindow window)
{
windows.remove(windows.find(window));
if(windows.empty())
{
std::unique_lock lock(windowsLock);
windowsCV.notify_all();
}
}