#include <SDL_image.h>
#include <SDL_net.h>
#include <SDL_ttf.h>
+#include <string>
#include <GL/glew.h>
-namespace {
-
-std::string sdl_error_append(std::string msg) {
- const char *error = SDL_GetError();
- if (*error != '\0') {
- msg += ": ";
- msg += error;
- SDL_ClearError();
- }
- return msg;
-}
-
-std::string net_error_append(std::string msg) {
- const char *error = SDLNet_GetError();
- if (*error != '\0') {
- msg += ": ";
- msg += error;
- }
- return msg;
-}
-
-std::string alut_error_append(ALenum num, std::string msg) {
- const char *error = alutGetErrorString(num);
- if (*error != '\0') {
- msg += ": ";
- msg += error;
- }
- return msg;
-}
-
-}
-
namespace blank {
-AlutError::AlutError(ALenum num)
-: std::runtime_error(alutGetErrorString(num)) {
-
-}
-
-AlutError::AlutError(ALenum num, const std::string &msg)
-: std::runtime_error(alut_error_append(num, msg)) {
-
-}
-
-
-NetError::NetError()
-: std::runtime_error(SDLNet_GetError()) {
-
-}
-
-NetError::NetError(const std::string &msg)
-: std::runtime_error(net_error_append(msg)) {
-
-}
-
-
-SDLError::SDLError()
-: std::runtime_error(SDL_GetError()) {
-
-}
-
-SDLError::SDLError(const std::string &msg)
-: std::runtime_error(sdl_error_append(msg)) {
-
-}
-
-
InitSDL::InitSDL() {
if (SDL_Init(SDL_INIT_EVENTS) != 0) {
throw SDLError("SDL_Init(SDL_INIT_EVENTS)");
if (SDL_InitSubSystem(SDL_INIT_VIDEO) != 0) {
throw SDLError("SDL_InitSubSystem(SDL_INIT_VIDEO)");
}
+ // SDL seems to start out in text input state
+ SDL_StopTextInput();
}
InitVideo::~InitVideo() {
}
}
-InitAL::~InitAL() {
+InitAL::~InitAL() throw(AlutError) {
if (!alutExit()) {
throw AlutError(alutGetError(), "alutExit");
}
throw SDLError("SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE)");
}
- if (double_buffer) {
- if (SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1) != 0) {
- throw SDLError("SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1)");
+ if (!double_buffer) {
+ if (SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 0) != 0) {
+ throw SDLError("SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 0)");
}
}