X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2Finit.hpp;h=9385d44979b815078f609e332cf9617b08607e3c;hb=d2f4c8720ae2326fac4203fa4984d835e875b355;hp=122210d1e96bc426a33de8b8a6fb938eda02976e;hpb=5d2da8a07411ad6417d6ed8d1be997189cf5ce89;p=blank.git diff --git a/src/app/init.hpp b/src/app/init.hpp index 122210d..9385d44 100644 --- a/src/app/init.hpp +++ b/src/app/init.hpp @@ -1,6 +1,7 @@ #ifndef BLANK_APP_INIT_HPP_ #define BLANK_APP_INIT_HPP_ +#include #include #include #include @@ -8,6 +9,15 @@ namespace blank { +class AlutError +: public std::runtime_error { + +public: + explicit AlutError(ALenum); + AlutError(ALenum, const std::string &); + +}; + class SDLError : public std::runtime_error { @@ -17,6 +27,15 @@ public: }; +class NetError +: public std::runtime_error { + +public: + NetError(); + explicit NetError(const std::string &); + +}; + class InitSDL { @@ -30,6 +49,18 @@ public: }; +class InitVideo { + +public: + InitVideo(); + ~InitVideo(); + + InitVideo(const InitVideo &) = delete; + InitVideo &operator =(const InitVideo &) = delete; + +}; + + class InitIMG { public: @@ -42,6 +73,18 @@ public: }; +class InitNet { + +public: + InitNet(); + ~InitNet(); + + InitNet(const InitNet &) = delete; + InitNet &operator =(const InitNet &) = delete; + +}; + + class InitTTF { public: @@ -54,6 +97,18 @@ public: }; +class InitAL { + +public: + InitAL(); + ~InitAL() throw(AlutError); + + InitAL(const InitAL &) = delete; + InitAL &operator =(const InitAL &) = delete; + +}; + + class InitGL { public: @@ -116,13 +171,23 @@ public: }; +struct InitHeadless { + + InitHeadless(); + + InitSDL init_sdl; + InitNet init_net; + +}; + struct Init { Init(bool double_buffer = true, int sample_size = 1); - InitSDL init_sdl; + InitVideo init_video; InitIMG init_img; InitTTF init_ttf; + InitAL init_al; InitGL init_gl; Window window; GLContext ctx;