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>
93 enum class State : unsigned int {
177 std::deque<float> _fpswindow;
188 std::unordered_map<Uint32, scheduable> _callbacks;
190 std::mutex _queueMutex;
200 void processCallbacks(Uint32 millis);
203 #pragma mark Constructors
255 #pragma mark Virtual Methods
344 #pragma mark Application Loop
404 Uint32
schedule(std::function<
bool()> callback, Uint32 time=0);
432 Uint32
schedule(std::function<
bool()> callback, Uint32 time, Uint32 period);
452 #pragma mark Initialization Attributes
466 void setSize(
int width,
int height);
586 #pragma mark Runtime Attributes
600 void setName(
const char* name);
614 void setName(
const std::string& name);
747 #pragma mark File Directories
795 #pragma mark Internal Helpers
804 bool prepareOpenGL();
bool _highdpi
Definition: CUApplication.h:159
SDL_GLContext _glContext
Definition: CUApplication.h:149
Uint32 period
Definition: CUApplication.h:64
const Size & getDisplaySize() const
Definition: CUApplication.h:487
std::string _savesdir
Definition: CUApplication.h:144
int getDisplayWidth() const
Definition: CUApplication.h:473
bool isMultiSampled() const
Definition: CUApplication.h:583
State getState() const
Definition: CUApplication.h:737
SDL_Window * _window
Definition: CUApplication.h:147
virtual void onSuspend()
Definition: CUApplication.h:304
Rect _display
Definition: CUApplication.h:155
std::string getAssetDirectory()
const std::string getOpenGLDescription() const
const std::string & getName() const
Definition: CUApplication.h:625
virtual void onResume()
Definition: CUApplication.h:316
void setClearColor(Color4 color)
Definition: CUApplication.h:719
bool _fullscreen
Definition: CUApplication.h:157
Definition: CUColor4.h:73
State
Definition: CUApplication.h:93
float width
Definition: CUSize.h:61
std::string _org
Definition: CUApplication.h:139
const Rect & getDisplayBounds() const
Definition: CUApplication.h:498
virtual void onShutdown()
float _fps
Definition: CUApplication.h:164
void setFullscreen(bool value)
virtual void update(float timestep)
Definition: CUApplication.h:329
std::string _assetdir
Definition: CUApplication.h:142
Uint32 schedule(std::function< bool()> callback, Uint32 time=0)
float height
Definition: CUSize.h:63
int getDisplayHeight() const
Definition: CUApplication.h:480
std::string _name
Definition: CUApplication.h:137
std::function< bool()> callback
Definition: CUApplication.h:62
std::string getSaveDirectory()
Color4 getClearColor() const
Definition: CUApplication.h:729
bool isHighDPI() const
Definition: CUApplication.h:555
Color4f _clearColor
Definition: CUApplication.h:166
float getFPS() const
Definition: CUApplication.h:695
Definition: CUApplication.h:84
void setOrganization(const char *name)
float getAverageFPS() const
Definition: CUApplication.h:60
Uint32 timer
Definition: CUApplication.h:66
void setMultiSampled(bool flag)
Size size
Definition: CURect.h:51
void setSize(int width, int height)
State _state
Definition: CUApplication.h:152
Definition: CUColor4.h:1084
void setHighDPI(bool highDPI)
virtual void onLowMemory()
Definition: CUApplication.h:291
const std::string & getOrganization() const
Definition: CUApplication.h:664
Definition: CUAction.h:51
bool isFullscreen() const
Definition: CUApplication.h:519
~Application()
Definition: CUApplication.h:216
void setName(const char *name)
bool _multisamp
Definition: CUApplication.h:161
virtual void draw()
Definition: CUApplication.h:340
static Application * _theapp
Definition: CUApplication.h:169
void unschedule(Uint32 id)