Source

pyGAP / game / inc / platform / x11 / application_x11.h

#ifndef _PLATFORM_X11_APPLICATION_X11_
#define _PLATFORM_X11_APPLICATION_X11_

#include "platform/application.h"
#include "io/settings_display.h"


namespace platform {
class GameLoop;
class Window;
class Clock;
}


namespace platform {
namespace x11 {
class WindowX11;
class Display;


class ApplicationX11 : public Application
{
public:
    ApplicationX11(GameLoop* game_loop);
    ~ApplicationX11();

    WindowX11* get_window();

private:
    ApplicationX11(const ApplicationX11&);
    ApplicationX11& operator=(const ApplicationX11&);

    int init_input_devices();
    virtual int init_commands();
    int init_display();
    int init_renderer();
    int init_clock();

    int init();
    void display();
    void update();
    void finish();

    int init_window();

    WindowX11* window_;
    Display* display_;

    //TODO: move SettingsDisplay from io to platform::x11?
    // because every platform does not necessary need the same settings
    // information
    io::SettingsDisplay display_settings_;

    static const char* c_config_filename;
    static const unsigned short c_display_width;
    static const unsigned short c_display_height;
};


} // namespace x11
} // namespace platform


#endif // _PLATFORM_X11_APPLICATION_X11_