diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-03 16:15:43 +0100 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-03 16:15:43 +0100 |
commit | d830c3ad0e1d749ca72c95a2c293cb67847e783f (patch) | |
tree | be1dfed9d199cb919b3fa4ef16da2453e26a1fdf | |
parent | 1adb2f5df7ff1b623bce593d0527ff0cd3deaa08 (diff) | |
parent | 525f6fc8bfdcc898862aa45621a71d951df4f7ca (diff) |
Merge branch 'niels/drawio' of github.com:lonkaars/crepe-docs
-rw-r--r-- | design.tex | 9 | ||||
-rw-r--r-- | figs.drawio | 102 |
2 files changed, 54 insertions, 57 deletions
@@ -137,9 +137,8 @@ reliability. \subsection{Texture} -% FIXME: our -The textures in our game engine are represented by the \codeinline{Texture} class. It -is implemented a \gls{facade} around the \gls{sdl} library. +The textures in cr\^epe game engine are represented by the \codeinline{Texture} class. It +is implemented as an \gls{facade} around the \gls{sdl} library. \subsubsection{Architecture} @@ -218,9 +217,7 @@ following classes:\noparbreak \item[\codeinline{present_screen()}] Presents the final rendered image to the screen. \end{description} - \item The \codeinline{SdlContext} class, another singleton, manages the \gls{sdl} - and has a friendship relationship with \codeinline{ComponentManager} for tighter - integration with component management. + \item The \codeinline{SdlContext} class, another singleton, manages the \gls{sdl} library \item Components are organized as follows:\noparbreak \begin{itemize} \item The \codeinline{Component} base class allows for generic handling of diff --git a/figs.drawio b/figs.drawio index d62252c..7e8072d 100644 --- a/figs.drawio +++ b/figs.drawio @@ -3001,125 +3001,125 @@ </mxGraphModel> </diagram> <diagram id="PSe3G-EA4oLpEOqnfdku" name="Texture"> - <mxGraphModel dx="453" dy="1898" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> + <mxGraphModel dx="518" dy="1938" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> - <mxCell id="uLiKtnuvw4STLNpZsRI7-1" value="Texture" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-1" value="Texture" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="1" vertex="1"> <mxGeometry x="1190" y="-771.5" width="240" height="164" as="geometry"> <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-2" value="+ Texture(path, reload)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-1"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-2" value="+ Texture(path, reload)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="uLiKtnuvw4STLNpZsRI7-1" vertex="1"> <mxGeometry y="26" width="240" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-3" value="+ Texture(unique_ptr<Asset>, reload)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-1"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-3" value="+ Texture(unique_ptr<Asset>, reload)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="uLiKtnuvw4STLNpZsRI7-1" vertex="1"> <mxGeometry y="52" width="240" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-4" value="~Texture" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-1"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-4" value="~Texture" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="uLiKtnuvw4STLNpZsRI7-1" vertex="1"> <mxGeometry y="78" width="240" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-5" value="- 	void load(std::unique_ptr<Asset> res);
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-1"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-5" value="- 	void load(std::unique_ptr<Asset> res);
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="uLiKtnuvw4STLNpZsRI7-1" vertex="1"> <mxGeometry y="104" width="240" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-6" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-1"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-6" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="uLiKtnuvw4STLNpZsRI7-1" vertex="1"> <mxGeometry y="130" width="240" height="8" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-7" value="- SDL_texture shared_ptr" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-1"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-7" value="- SDL_texture shared_ptr" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="uLiKtnuvw4STLNpZsRI7-1" vertex="1"> <mxGeometry y="138" width="240" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-8" value="<<singleton>>
SdlContext" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=37;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-8" value="<<singleton>>
SdlContext" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=37;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="1" vertex="1"> <mxGeometry x="1530" y="-870" width="450" height="361" as="geometry"> <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-9" value="- SdlContext();" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-8"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-9" value="- SdlContext();" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="uLiKtnuvw4STLNpZsRI7-8" vertex="1"> <mxGeometry y="37" width="450" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-10" value="virtual ~SdlContext();" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-8"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-10" value="virtual ~SdlContext();" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="uLiKtnuvw4STLNpZsRI7-8" vertex="1"> <mxGeometry y="63" width="450" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-11" value="- static SdlContext & get_instance();
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-8"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-11" value="- static SdlContext & get_instance();
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="uLiKtnuvw4STLNpZsRI7-8" vertex="1"> <mxGeometry y="89" width="450" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-12" value="- void draw(const api::Sprite&, const api::Transform&);
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-8"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-12" value="- void draw(const api::Sprite&, const api::Transform&);
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="uLiKtnuvw4STLNpZsRI7-8" vertex="1"> <mxGeometry y="115" width="450" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-13" value="- void presentScreen();" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-8"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-13" value="- void presentScreen();" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="uLiKtnuvw4STLNpZsRI7-8" vertex="1"> <mxGeometry y="141" width="450" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-14" value="- void clearScreen();
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-8"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-14" value="- void clearScreen();
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="uLiKtnuvw4STLNpZsRI7-8" vertex="1"> <mxGeometry y="167" width="450" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-15" value="- void draw(const api::Sprite&, const api::Transform&);
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-8"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-15" value="- void draw(const api::Sprite&, const api::Transform&);
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="uLiKtnuvw4STLNpZsRI7-8" vertex="1"> <mxGeometry y="193" width="450" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-16" value="- SDL_Texture* setTextureFromPath(const char*);" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-8"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-16" value="- SDL_Texture* setTextureFromPath(const char*);" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="uLiKtnuvw4STLNpZsRI7-8" vertex="1"> <mxGeometry y="219" width="450" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-17" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-8"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-17" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="uLiKtnuvw4STLNpZsRI7-8" vertex="1"> <mxGeometry y="245" width="450" height="8" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-18" value="- friend class Texture" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-8"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-18" value="- friend class Texture" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="uLiKtnuvw4STLNpZsRI7-8" vertex="1"> <mxGeometry y="253" width="450" height="27" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-19" value="- friend class RenderSystem" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-8"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-19" value="- friend class RenderSystem" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="uLiKtnuvw4STLNpZsRI7-8" vertex="1"> <mxGeometry y="280" width="450" height="27" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-20" value="- SDL_Window* window" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-8"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-20" value="- SDL_Window* window" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="uLiKtnuvw4STLNpZsRI7-8" vertex="1"> <mxGeometry y="307" width="450" height="27" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-21" value="- SDL_Renderer* renderer" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-8"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-21" value="- SDL_Renderer* renderer" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="uLiKtnuvw4STLNpZsRI7-8" vertex="1"> <mxGeometry y="334" width="450" height="27" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-22" value="Asset" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-22" value="Asset" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="1" vertex="1"> <mxGeometry x="870" y="-771.5" width="240" height="164" as="geometry"> <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-23" value="+ Asset(const std::string & src);" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-22"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-23" value="+ Asset(const std::string & src);" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="uLiKtnuvw4STLNpZsRI7-22" vertex="1"> <mxGeometry y="26" width="240" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-24" value="+ const std::istream & read();" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-22"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-24" value="+ const std::istream & read();" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="uLiKtnuvw4STLNpZsRI7-22" vertex="1"> <mxGeometry y="52" width="240" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-25" value="+ const char * canonical()
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-22"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-25" value="+ const char * canonical()
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="uLiKtnuvw4STLNpZsRI7-22" vertex="1"> <mxGeometry y="78" width="240" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-26" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-22"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-26" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="uLiKtnuvw4STLNpZsRI7-22" vertex="1"> <mxGeometry y="104" width="240" height="8" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-27" value="- 	std::string src;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-22"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-27" value="- 	std::string src;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="uLiKtnuvw4STLNpZsRI7-22" vertex="1"> <mxGeometry y="112" width="240" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-28" value="- 	std::ifstream file;
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="uLiKtnuvw4STLNpZsRI7-22"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-28" value="- 	std::ifstream file;
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="uLiKtnuvw4STLNpZsRI7-22" vertex="1"> <mxGeometry y="138" width="240" height="26" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-29" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;" edge="1" parent="1" source="uLiKtnuvw4STLNpZsRI7-1" target="uLiKtnuvw4STLNpZsRI7-22"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-29" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;" parent="1" source="uLiKtnuvw4STLNpZsRI7-1" target="uLiKtnuvw4STLNpZsRI7-22" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="1090" y="650" as="sourcePoint" /> <mxPoint x="1250" y="650" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="KHBOkPQzprUpjYBXyaD9-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" vertex="1" parent="1"> + <mxCell id="KHBOkPQzprUpjYBXyaD9-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="860" y="-794.5" width="590" height="210" as="geometry" /> </mxCell> - <mxCell id="uLiKtnuvw4STLNpZsRI7-30" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;" edge="1" parent="1" source="uLiKtnuvw4STLNpZsRI7-1" target="uLiKtnuvw4STLNpZsRI7-8"> + <mxCell id="uLiKtnuvw4STLNpZsRI7-30" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;" parent="1" source="uLiKtnuvw4STLNpZsRI7-1" target="uLiKtnuvw4STLNpZsRI7-8" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="1527.8351973261347" y="-185.67999999999984" as="sourcePoint" /> <mxPoint x="1318.9034580280245" y="-592" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="KHBOkPQzprUpjYBXyaD9-2" value="api" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> + <mxCell id="KHBOkPQzprUpjYBXyaD9-2" value="api" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="1130" y="-824.5" width="40" height="30" as="geometry" /> </mxCell> - <mxCell id="KHBOkPQzprUpjYBXyaD9-3" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" target="uLiKtnuvw4STLNpZsRI7-2"> + <mxCell id="KHBOkPQzprUpjYBXyaD9-3" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;" parent="1" target="uLiKtnuvw4STLNpZsRI7-2" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="1530" y="-720" as="sourcePoint" /> <mxPoint x="1430" y="-870" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="KHBOkPQzprUpjYBXyaD9-5" value="friend" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="KHBOkPQzprUpjYBXyaD9-3"> + <mxCell id="KHBOkPQzprUpjYBXyaD9-5" value="friend" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="KHBOkPQzprUpjYBXyaD9-3" vertex="1" connectable="0"> <mxGeometry x="0.269" y="-4" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> @@ -3127,60 +3127,60 @@ </root> </mxGraphModel> </diagram> - <diagram id="23OjqhjSbyBXrvKH5rPI" name="AssesManager"> - <mxGraphModel dx="2713" dy="1721" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> + <diagram id="23OjqhjSbyBXrvKH5rPI" name="AssetManager"> + <mxGraphModel dx="3068" dy="1938" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> - <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-1" value="<<singleton>>
AssetManager" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=38;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1"> + <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-1" value="<<singleton>>
AssetManager" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=38;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="1" vertex="1"> <mxGeometry x="-1500" y="-690" width="380" height="210" as="geometry"> <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> - <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-2" value="- static AssetManager & get_instance();
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="e3fB-zZ3n_cLuHSx0Qf0-1"> + <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-2" value="- static AssetManager & get_instance();
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="e3fB-zZ3n_cLuHSx0Qf0-1" vertex="1"> <mxGeometry y="38" width="380" height="26" as="geometry" /> </mxCell> - <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-3" value="- AssetManager();
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="e3fB-zZ3n_cLuHSx0Qf0-1"> + <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-3" value="- AssetManager();
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="e3fB-zZ3n_cLuHSx0Qf0-1" vertex="1"> <mxGeometry y="64" width="380" height="26" as="geometry" /> </mxCell> - <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-4" value="- virtual ~AssetManager()" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="e3fB-zZ3n_cLuHSx0Qf0-1"> + <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-4" value="- virtual ~AssetManager()" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="e3fB-zZ3n_cLuHSx0Qf0-1" vertex="1"> <mxGeometry y="90" width="380" height="26" as="geometry" /> </mxCell> - <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-5" value="template <typename asset>
std::shared_ptr<asset> cache(path, bool reload)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="e3fB-zZ3n_cLuHSx0Qf0-1"> + <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-5" value="template <typename asset>
std::shared_ptr<asset> cache(path, bool reload)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="e3fB-zZ3n_cLuHSx0Qf0-1" vertex="1"> <mxGeometry y="116" width="380" height="35" as="geometry" /> </mxCell> - <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-6" value="- virtual ~AssetManager()" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="e3fB-zZ3n_cLuHSx0Qf0-1"> + <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-6" value="- virtual ~AssetManager()" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="e3fB-zZ3n_cLuHSx0Qf0-1" vertex="1"> <mxGeometry y="151" width="380" height="26" as="geometry" /> </mxCell> - <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-7" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="e3fB-zZ3n_cLuHSx0Qf0-1"> + <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-7" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="e3fB-zZ3n_cLuHSx0Qf0-1" vertex="1"> <mxGeometry y="177" width="380" height="8" as="geometry" /> </mxCell> - <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-8" value="- std::unordered_map<std::string, std::any> asset_cache" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="e3fB-zZ3n_cLuHSx0Qf0-1"> + <mxCell id="e3fB-zZ3n_cLuHSx0Qf0-8" value="- std::unordered_map<std::string, std::any> asset_cache" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="e3fB-zZ3n_cLuHSx0Qf0-1" vertex="1"> <mxGeometry y="185" width="380" height="25" as="geometry" /> </mxCell> - <mxCell id="8_LcbX6gMbjuHArqpFud-1" value="Texture" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1"> + <mxCell id="8_LcbX6gMbjuHArqpFud-1" value="Texture" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="1" vertex="1"> <mxGeometry x="-1590" y="-920" width="240" height="40" as="geometry"> <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> - <mxCell id="8_LcbX6gMbjuHArqpFud-6" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="8_LcbX6gMbjuHArqpFud-1"> + <mxCell id="8_LcbX6gMbjuHArqpFud-6" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="8_LcbX6gMbjuHArqpFud-1" vertex="1"> <mxGeometry y="26" width="240" height="8" as="geometry" /> </mxCell> - <mxCell id="oKbLYUMuTHWLhRLqUG_X-8" value="Sound" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1"> + <mxCell id="oKbLYUMuTHWLhRLqUG_X-8" value="Sound" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="1" vertex="1"> <mxGeometry x="-1275" y="-920" width="240" height="40" as="geometry"> <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> - <mxCell id="oKbLYUMuTHWLhRLqUG_X-9" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="oKbLYUMuTHWLhRLqUG_X-8"> + <mxCell id="oKbLYUMuTHWLhRLqUG_X-9" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="oKbLYUMuTHWLhRLqUG_X-8" vertex="1"> <mxGeometry y="26" width="240" height="8" as="geometry" /> </mxCell> - <mxCell id="oKbLYUMuTHWLhRLqUG_X-10" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="e3fB-zZ3n_cLuHSx0Qf0-1" target="8_LcbX6gMbjuHArqpFud-1"> + <mxCell id="oKbLYUMuTHWLhRLqUG_X-10" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;" parent="1" source="e3fB-zZ3n_cLuHSx0Qf0-1" target="8_LcbX6gMbjuHArqpFud-1" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="-1400" y="-760" as="sourcePoint" /> <mxPoint x="-1240" y="-760" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="oKbLYUMuTHWLhRLqUG_X-11" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="e3fB-zZ3n_cLuHSx0Qf0-1" target="oKbLYUMuTHWLhRLqUG_X-8"> + <mxCell id="oKbLYUMuTHWLhRLqUG_X-11" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;" parent="1" source="e3fB-zZ3n_cLuHSx0Qf0-1" target="oKbLYUMuTHWLhRLqUG_X-8" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="-1300" y="-680" as="sourcePoint" /> <mxPoint x="-1460" y="-870" as="targetPoint" /> |