21#ifndef __RENDERERPROVIDER_H__
22#define __RENDERERPROVIDER_H__
28#include "renderer/rendererconfig.h"
29#include "renderer/tilemaprenderer.h"
60 typedef std :: function<void( SunLight :: Renderer :: TileMapRenderer& )>
CreatedHook;
64 SunLight :: Renderer :: RendererConfig m_DefaultConfig;
65 SunLight :: Renderer :: RendererConfig m_EffectiveConfig;
67 std :: unique_ptr<SunLight :: Renderer :: TileMapRenderer> m_pRenderer;
69 std :: string m_strTrigger;
72 SunLight :: Renderer :: TileMapRenderer* GetOrCreateDefault(
const char *szTrigger );
81 bool Create(
const SunLight :: Renderer :: RendererConfig &config,
83 const std :: string &strTrigger,
84 std :: string *pError );
87 SunLight :: Renderer :: TileMapRenderer*
GetRenderer(
void );
91 SunLight :: TileMap :: ITileMap*
GetTileMap(
const char *szTrigger );
92 SunLight :: DrawSurface :: IDrawSurface*
GetDrawSurface(
const char *szTrigger );
94 bool CreateRenderer(
const SunLight :: Renderer :: RendererConfig &config, std :: string *pError );
Owns the process's one renderer and creates it on demand.
Definition rendererprovider.h:56
bool Create(const SunLight ::Renderer ::RendererConfig &config, Origin origin, const std ::string &strTrigger, std ::string *pError)
Create the process's renderer and open its window.
Definition rendererprovider.cpp:76
SunLight::Renderer::RendererConfig GetDefaultConfig(void)
Definition rendererprovider.cpp:216
const stHeadlessSettings & GetHeadlessSettings(void) const
What the command line asked of –headless.
Definition rendererprovider.cpp:162
SunLight::DrawSurface::IDrawSurface * PeekDrawSurface(void)
Definition rendererprovider.cpp:177
Origin GetOrigin(void)
Definition rendererprovider.cpp:206
virtual ~RendererProvider(void)
Destructor. Destroys the renderer, if one was ever created (its window is normally already closed by ...
Definition rendererprovider.cpp:48
bool CreateRenderer(const SunLight ::Renderer ::RendererConfig &config, std ::string *pError)
Explicitly create the renderer (renderer_create). The error for "a renderer already exists" says whic...
Definition rendererprovider.cpp:188
void SetCreatedHook(CreatedHook hook)
Set the function called with every renderer right after it is created and before its window opens - w...
Definition rendererprovider.cpp:57
SunLight::Renderer::RendererConfig GetEffectiveConfig(void)
Definition rendererprovider.cpp:221
SunLight::Renderer::TileMapRenderer * GetRenderer(void)
The renderer, or nullptr if none exists yet (never creates one).
Definition rendererprovider.cpp:156
SunLight::TileMap::ITileMap * GetTileMap(const char *szTrigger)
Definition rendererprovider.cpp:167
std ::function< void(SunLight ::Renderer ::TileMapRenderer &)> CreatedHook
Definition rendererprovider.h:60
void EnsureCreated(const char *szTrigger)
Create the default renderer if none exists yet - called when the entry script has finished,...
Definition rendererprovider.cpp:131
bool IsHeadless(void)
Definition rendererprovider.cpp:211
void NoteWindowTitle(const std ::string &strTitle)
Keep the effective configuration's title current: app_set_name changes the live window title,...
Definition rendererprovider.cpp:230
SunLight::DrawSurface::IDrawSurface * GetDrawSurface(const char *szTrigger)
Definition rendererprovider.cpp:172
Definition irendererprovider.h:32
What the command line asked of –headless; the provider applies it to every renderer it creates,...
Definition rendererprovider.h:39
bool bFast
Definition rendererprovider.h:41
unsigned nMaxFrames
Definition rendererprovider.h:42
bool bEnabled
Definition rendererprovider.h:40