16 string alut_error_append(ALenum num, string msg) {
17 const char *error = alutGetErrorString(num);
18 if (error && *error != '\0') {
25 string gl_error_append(string msg) {
26 const GLubyte *error = gluErrorString(glGetError());
27 if (error && *error != '\0') {
28 const GLubyte *errEnd = error;
29 while (*errEnd != '\0') {
33 msg.append(error, errEnd);
38 string gl_error_get() {
40 const GLubyte *error = gluErrorString(glGetError());
41 if (error && *error != '\0') {
42 const GLubyte *errEnd = error;
43 while (*errEnd != '\0') {
46 msg.assign(error, errEnd);
51 string net_error_append(string msg) {
52 const char *error = SDLNet_GetError();
60 string sdl_error_append(string msg) {
61 const char *error = SDL_GetError();
62 if (error && *error != '\0') {
70 string ttf_error_append(string msg) {
71 const char *error = TTF_GetError();
72 if (error && *error != '\0') {
84 AlutError::AlutError(ALenum num)
85 : runtime_error(alutGetErrorString(num)) {
89 AlutError::AlutError(ALenum num, const string &msg)
90 : runtime_error(alut_error_append(num, msg)) {
96 : runtime_error(gl_error_get()) {
100 GLError::GLError(const string &msg)
101 : runtime_error(gl_error_append(msg)) {
107 : runtime_error(SDLNet_GetError()) {
111 NetError::NetError(const string &msg)
112 : runtime_error(net_error_append(msg)) {
118 : runtime_error(SDL_GetError()) {
122 SDLError::SDLError(const string &msg)
123 : runtime_error(sdl_error_append(msg)) {
133 SysError::SysError(const string &msg)
134 : SysError(errno, msg) {
138 SysError::SysError(int err_num)
139 : runtime_error(strerror(err_num)) {
143 SysError::SysError(int err_num, const string &msg)
144 : runtime_error(msg + ": " + strerror(err_num)) {
150 : runtime_error(TTF_GetError()) {
154 TTFError::TTFError(const string &msg)
155 : runtime_error(ttf_error_append(msg)) {