Cogs.Core
RenderTaskFactory.h
1#pragma once
2
3#include "RenderTask.h"
4
5#include <vector>
6#include <functional>
7
8#include "Serialization/RenderPipelineReader.h"
9
10#include "Utilities/Expressions.h"
11#include "Renderer/RenderPipelineManager.h"
12
13namespace Cogs
14{
15 namespace Core
16 {
17 COGSCORE_DLL_API RenderTask * createRenderTask(RenderTaskContext * taskContext,
18 const RenderTaskDefinition & taskDefinition,
19 std::list<std::unique_ptr<Cogs::Core::SubContext>>& subContexts,
20 ExpressionContext * expressionContext,
21 const PipelineOptions & options = PipelineOptions());
22
23 void destroyRenderTask(RenderTaskContext* renderContext, RenderTask * task);
24
25 typedef std::function<RenderTask *(RenderTaskContext *, const RenderTaskDefinition &, const PipelineOptions &)> TaskCreator;
26 typedef std::function<void(RenderTask **, RenderTaskContext *)> TaskDestroyer;
27
28 void COGSCORE_DLL_API addTaskType(const StringView & key, TaskCreator creator, TaskDestroyer destroyer);
29
30 void freeTasks(std::vector<RenderTask *> & tasks, RenderTaskContext * renderContext);
31 }
32}
Contains all Cogs related functionality.
Definition: FieldSetter.h:23