34 #ifndef __CU_APPLICATION_H__
35 #define __CU_APPLICATION_H__
36 #include <cugl/util/CUTimestamp.h>
37 #include <cugl/math/CUColor4.h>
38 #include <cugl/math/CURect.h>
39 #include <unordered_map>
92 enum class State : unsigned int {
174 std::deque<float> _fpswindow;
185 std::unordered_map<Uint32, scheduable> _callbacks;
196 void processCallbacks(Uint32 millis);
199 #pragma mark Constructors
251 #pragma mark Virtual Methods
340 #pragma mark Application Loop
400 Uint32
schedule(std::function<
bool()> callback, Uint32 time=0);
428 Uint32
schedule(std::function<
bool()> callback, Uint32 time, Uint32 period);
448 #pragma mark Initialization Attributes
462 void setSize(
int width,
int height);
555 #pragma mark Runtime Attributes
569 void setName(
const char* name);
583 void setName(
const std::string& name);
716 #pragma mark File Directories
764 #pragma mark Internal Helpers
bool _highdpi
Definition: CUApplication.h:158
SDL_GLContext _glContext
Definition: CUApplication.h:148
Uint32 period
Definition: CUApplication.h:63
const Size & getDisplaySize() const
Definition: CUApplication.h:483
int getDisplayWidth() const
Definition: CUApplication.h:469
State getState() const
Definition: CUApplication.h:706
SDL_Window * _window
Definition: CUApplication.h:146
virtual void onSuspend()
Definition: CUApplication.h:300
Rect _display
Definition: CUApplication.h:154
std::string _assets
Definition: CUApplication.h:141
std::string getAssetDirectory()
const std::string getOpenGLDescription() const
const std::string & getName() const
Definition: CUApplication.h:594
virtual void onResume()
Definition: CUApplication.h:312
void setClearColor(Color4 color)
Definition: CUApplication.h:688
bool _fullscreen
Definition: CUApplication.h:156
Definition: CUColor4.h:73
State
Definition: CUApplication.h:92
float width
Definition: CUSize.h:61
std::string _org
Definition: CUApplication.h:138
const Rect & getDisplayBounds() const
Definition: CUApplication.h:494
virtual void onShutdown()
float _fps
Definition: CUApplication.h:161
void setFullscreen(bool value)
virtual void update(float timestep)
Definition: CUApplication.h:325
Uint32 schedule(std::function< bool()> callback, Uint32 time=0)
float height
Definition: CUSize.h:63
int getDisplayHeight() const
Definition: CUApplication.h:476
std::string _name
Definition: CUApplication.h:136
std::function< bool()> callback
Definition: CUApplication.h:61
std::string getSaveDirectory()
Color4 getClearColor() const
Definition: CUApplication.h:698
bool isHighDPI() const
Definition: CUApplication.h:551
Color4f _clearColor
Definition: CUApplication.h:163
float getFPS() const
Definition: CUApplication.h:664
std::string _saves
Definition: CUApplication.h:143
Definition: CUApplication.h:83
void setOrganization(const char *name)
float getAverageFPS() const
Definition: CUApplication.h:59
Uint32 timer
Definition: CUApplication.h:65
Size size
Definition: CURect.h:51
void setSize(int width, int height)
State _state
Definition: CUApplication.h:151
Definition: CUColor4.h:1104
void setHighDPI(bool highDPI)
virtual void onLowMemory()
Definition: CUApplication.h:287
const std::string & getOrganization() const
Definition: CUApplication.h:633
Definition: CUAnimationNode.h:52
bool isFullscreen() const
Definition: CUApplication.h:515
~Application()
Definition: CUApplication.h:212
void setName(const char *name)
virtual void draw()
Definition: CUApplication.h:336
static Application * _theapp
Definition: CUApplication.h:166
void unschedule(Uint32 id)