Allocator Aware Array and List

This commit is contained in:
Dynamitos
2021-10-23 00:22:35 +02:00
parent 451572f254
commit 9c48c48f8c
16 changed files with 1390 additions and 1230 deletions
+12 -4
View File
@@ -16,7 +16,7 @@ void Window::addView(PView view)
{
WindowView* windowView = new WindowView();
windowView->view = view;
windowView->worker = std::thread(&Window::viewWorker, this, windowView);
//windowView->worker = std::thread(&Window::viewWorker, this, windowView);
views.add(windowView);
}
@@ -24,11 +24,19 @@ void Window::render()
{
gfxHandle->beginFrame();
for(auto& windowView : views)
{
{
windowView->view->beginUpdate();
windowView->view->update();
windowView->view->commitUpdate();
windowView->view->prepareRender();
{
std::unique_lock lock(windowView->workerMutex);
windowView->view->commitUpdate();
}
windowView->updateFinished.raise();
{
std::unique_lock lock(windowView->workerMutex);
windowView->view->prepareRender();
}
windowView->updateFinished.reset();
windowView->view->render();
}
gfxHandle->endFrame();
+2
View File
@@ -1,12 +1,14 @@
#pragma once
#include "Graphics/GraphicsResources.h"
#include "View.h"
#include "ThreadPool.h"
namespace Seele
{
struct WindowView
{
PView view;
Event updateFinished;
std::thread worker;
std::mutex workerMutex;
};
-9
View File
@@ -35,12 +35,3 @@ PWindow WindowManager::addWindow(const WindowCreateInfo &createInfo)
windows.add(window);
return window;
}
void WindowManager::render()
{
for(auto window : windows)
{
window->render();
}
}
-1
View File
@@ -12,7 +12,6 @@ public:
WindowManager();
~WindowManager();
PWindow addWindow(const WindowCreateInfo &createInfo);
void render();
static Gfx::PGraphics getGraphics()
{
return graphics;