-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathclassdiagram.drawio
144 lines (144 loc) · 15.7 KB
/
classdiagram.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<mxfile host="65bd71144e">
<diagram id="UBITVOTv7EuB15pHwEIP" name="Page-1">
<mxGraphModel dx="609" dy="1007" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="3300" pageHeight="4681" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="52" value="" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=#FFFFFF;fillColor=default;gradientColor=none;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="140" y="250" width="500" height="1320" as="geometry"/>
</mxCell>
<mxCell id="24" value="# currentState" style="edgeStyle=none;html=1;" parent="1" source="2" target="6" edge="1">
<mxGeometry x="0.1163" y="-32" relative="1" as="geometry">
<Array as="points">
<mxPoint x="490" y="700"/>
</Array>
<mxPoint as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="2" value="Game" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="180" y="770" width="430" height="580" as="geometry"/>
</mxCell>
<mxCell id="3" value="# window: SDL_Window*" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="26" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="18" value="# render: SDL_Renderer*" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="52" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="19" value="# isRunning: bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="78" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="20" value="# frame: uint32_t" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="104" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="21" value="# currentStateIdx: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="130" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="22" value="# nextStateIdx: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="156" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="23" value="# render: SDL_Renderer*" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="182" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="30" value="# allStates: vector<GameState*>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="208" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="43" value="# lastPerfInfoFrame: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="234" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="44" value="# lastPerfInfoTime: Clock::time_point" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="260" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="45" value="# accumulatedNeeded: Clock::duration" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="286" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="4" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="312" width="430" height="8" as="geometry"/>
</mxCell>
<mxCell id="5" value="+ isRunning(): bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="320" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="36" value="+ Game(windowTitle: const char*, windowSize: SDL_Point, vsync: bool)" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="346" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="32" value="+ HandleEvent(event: SDL_Event): bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="372" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="33" value="+ Run(): int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="398" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="34" value="+ SetNextState(index: int): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="424" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="42" value="+ setPerfDrawMode(mode: PerformaceDrawMode): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="450" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="35" value="# ActivateNextState(): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="476" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="46" value="# AverageMSecPerFrame(): float" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="502" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="50" value="# ResetPerformanceInfo(current Clock::time_point): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="528" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="47" value="# OutputPerformanceInfo(current: Clock::time_point, needed: Clock::duration" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="554" width="430" height="26" as="geometry"/>
</mxCell>
<mxCell id="11" style="edgeStyle=none;html=1;" parent="1" source="6" target="2" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="12" value="# game" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="11" vertex="1" connectable="0">
<mxGeometry x="-0.1266" y="3" relative="1" as="geometry">
<mxPoint x="28" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="6" value="GameState" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="180" y="400" width="410" height="216" as="geometry"/>
</mxCell>
<mxCell id="10" value="# render: SDL_Renderer&" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6" vertex="1">
<mxGeometry y="26" width="410" height="26" as="geometry"/>
</mxCell>
<mxCell id="8" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="6" vertex="1">
<mxGeometry y="52" width="410" height="8" as="geometry"/>
</mxCell>
<mxCell id="9" value="+ GameState(game: Game&, render: SDL_Renderer*)" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6" vertex="1">
<mxGeometry y="60" width="410" height="26" as="geometry"/>
</mxCell>
<mxCell id="13" value="+ ~ GameState()" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6" vertex="1">
<mxGeometry y="86" width="410" height="26" as="geometry"/>
</mxCell>
<mxCell id="14" value="+ isFPSLimited(): bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6" vertex="1">
<mxGeometry y="112" width="410" height="26" as="geometry"/>
</mxCell>
<mxCell id="15" value="+ HandleEvent(frame: uint32_t, totalMSec: uint32_t, deltaT: float): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6" vertex="1">
<mxGeometry y="138" width="410" height="26" as="geometry"/>
</mxCell>
<mxCell id="16" value="+ Update(frame: uint32_t, totalMSec: uint32_t, deltaT: float): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6" vertex="1">
<mxGeometry y="164" width="410" height="26" as="geometry"/>
</mxCell>
<mxCell id="17" value="+ Render(frame: uint32_t, totalMSec: uint32_t, deltaT: float): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6" vertex="1">
<mxGeometry y="190" width="410" height="26" as="geometry"/>
</mxCell>
<mxCell id="37" value="<<enumeration>> PerformanceDrawMode" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;labelBackgroundColor=none;labelBorderColor=none;" parent="1" vertex="1">
<mxGeometry x="260" y="1450" width="260" height="88" as="geometry">
<mxRectangle x="680" y="840" width="270" height="50" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="38" value="None Title OStream" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="37" vertex="1">
<mxGeometry y="26" width="260" height="54" as="geometry"/>
</mxCell>
<mxCell id="39" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="37" vertex="1">
<mxGeometry y="80" width="260" height="8" as="geometry"/>
</mxCell>
<mxCell id="41" value="# perfDrawMode" style="edgeStyle=none;html=1;" parent="1" source="2" target="37" edge="1">
<mxGeometry x="0.049" y="19" relative="1" as="geometry">
<mxPoint as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="49" value="vector = std::vector<br>Clock = std::chrono::high_resolution_clock" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;labelBorderColor=none;align=left;" parent="1" vertex="1">
<mxGeometry x="180" y="280" width="260" height="60" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>