Cogs.Core
SubContext.h
1#pragma once
2
3#include <list>
4#include <vector>
5
6#include "Utilities/Expressions.h"
7
8#include "Foundation/ComponentModel/Component.h"
9
10namespace Cogs::Core
11{
12 class Context;
13 struct RenderTaskContext;
14
16 {
18 SubContext(const SubContext&) = delete;
19 SubContext& operator=(const SubContext&) = delete;
20
21 void useVariables(Context* context, const std::vector<ParsedValue>& vars);
22
23 void setVariables(Context* context, const std::vector<ParsedValue>& vars);
24
25 void useComponentFields(RenderTaskContext* context, const std::vector<ParsedValue>& vars);
26
27 void pullVariables(Context* context);
28
29 ExpressionContext expressionContext;
30
31 std::list<std::tuple<Cogs::ComponentModel::ComponentHandle, size_t, ParsedDataType, double*>> compFieldsToPull;
32 std::list<std::pair<std::string, double*>> toPull;
33 std::list<Expression*> toUpdate;
34 };
35
36
37}
A Context instance contains all the services, systems and runtime components needed to use Cogs.
Definition: Context.h:83
Contains the Engine, Renderer, resource managers and other systems needed to run Cogs....
Provides a context for evaluation of expressions.
Definition: Expressions.h:54