SDL_error.h File Reference
`#include "SDL_stdinc.h"`
`#include "begin_code.h"`
`#include "close_code.h"`
Include dependency graph for SDL_error.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Functions

int | SDL_SetError (SDL_PRINTF_FORMAT_STRING const char *fmt,...) SDL_PRINTF_VARARG_FUNC(1)
const char * | SDL_GetError (void)
void | SDL_ClearError (void)

## Internal error functions

Private error reporting function - used internally.
#define | SDL_OutOfMemory() SDL_Error(SDL_ENOMEM)
#define | SDL_Unsupported() SDL_Error(SDL_UNSUPPORTED)
#define | SDL_InvalidParamError(param) SDL_SetError("Parameter '%s' is invalid", (param))
enum | SDL_errorcode { SDL_ENOMEM, SDL_EFREAD, SDL_EFWRITE, SDL_EFSEEK, SDL_UNSUPPORTED, SDL_LASTERROR }
int | SDL_Error (SDL_errorcode code)

## Detailed Description

Simple error message routines for SDL.

Definition in file SDL_error.h.

## Macro Definition Documentation

#define SDL_InvalidParamError | ( |  | param | ) | SDL_SetError("Parameter '%s' is invalid", (param))

Definition at line 54 of file SDL_error.h.

Referenced by SDL_AddHintCallback(), SDL_AllocFormat(), SDL_AllocPalette(), SDL_BuildAudioCVT(), SDL_CalculateGammaRamp(), SDL_ConvertPixels(), SDL_EnclosePoints(), SDL_FreeFormat(), SDL_FreePalette(), SDL_GameControllerAddMapping(), SDL_GetKeyFromScancode(), SDL_GetScancodeFromName(), SDL_GetScancodeName(), SDL_GetSpanEnclosingRect(), SDL_GetWindowData(), SDL_GetWindowDisplayMode(), SDL_GetWindowWMInfo(), SDL_HasIntersection(), SDL_IntersectRect(), SDL_IntersectRectAndLine(), SDL_RWFromConstMem(), SDL_RWFromMem(), SDL_SetColorKey(), SDL_SetWindowData(), SDL_SetWindowMaximumSize(), SDL_SetWindowMinimumSize(), SDL_SetWindowSize(), SDL_ShowMessageBox(), SDL_TLSSet(), SDL_UnionRect(), SDL_UpdateTexture(), SDL_UpdateYUVTexture(), SDLTest_RandomAsciiStringOfSize(), and SDLTest_RandomAsciiStringWithMaximumLength().

#define SDL_OutOfMemory | ( |  | ) | SDL_Error(SDL_ENOMEM)

Definition at line 52 of file SDL_error.h.

Referenced by IMA_ADPCM_decode(), Map1to1(), Map1toN(), MS_ADPCM_decode(), open_audio_device(), ReadChunk(), RenderDrawLinesWithRects(), RenderDrawPointsWithRects(), RLEAlphaSurface(), RLEColorkeySurface(), SDL_AddDollarGesture_one(), SDL_AddFinger(), SDL_AddHintCallback(), SDL_AddTimer(), SDL_AddTouch(), SDL_AddVideoDisplay(), SDL_AllocBlitMap(), SDL_AllocFormat(), SDL_AllocPalette(), SDL_AllocRW(), SDL_CreateCond(), SDL_CreateMutex(), SDL_CreateRGBSurface(), SDL_CreateSemaphore(), SDL_CreateTexture(), SDL_CreateThread(), SDL_CreateWindow(), SDL_CreateWindowFrom(), SDL_CreateWindowTexture(), SDL_GameControllerMappingForGUID(), SDL_GameControllerOpen(), SDL_Generic_SetTLSData(), SDL_GestureAddTouch(), SDL_GetWindowGammaRamp(), SDL_HapticOpen(), SDL_HapticOpenFromJoystick(), SDL_JoystickOpen(), SDL_LoadBMP_RW(), SDL_PrivateAddMappingForGUID(), SDL_PrivateGetControllerGUIDFromMappingString(), SDL_PrivateGetControllerNameFromMappingString(), SDL_QueueAudio(), SDL_RenderDrawLines(), SDL_RenderDrawPoints(), SDL_RenderFillRects(), SDL_SW_CreateYUVTexture(), SDL_SYS_CreateThread(), SDL_TLSSet(), SDL_UpdateTextureNative(), SDL_UpdateTextureYUV(), SDL_UpdateTextureYUVPlanar(), SDLTest_CommonCreateState(), SW_CreateRendererForSurface(), SW_RenderDrawLines(), SW_RenderDrawPoints(), and SW_RenderFillRects().

#define SDL_Unsupported | ( |  | ) | SDL_Error(SDL_UNSUPPORTED)

Definition at line 53 of file SDL_error.h.

Referenced by SDL_AudioOpenDevice_Default(), SDL_BlendFillRect_RGB(), SDL_BlendFillRect_RGBA(), SDL_BlendPoint_RGB(), SDL_BlendPoint_RGBA(), SDL_CaptureMouse(), SDL_CreateWindowFrom(), SDL_DINPUT_HapticGetEffectStatus(), SDL_DINPUT_HapticNewEffect(), SDL_DINPUT_HapticOpen(), SDL_DINPUT_HapticOpenFromJoystick(), SDL_DINPUT_HapticPause(), SDL_DINPUT_HapticRunEffect(), SDL_DINPUT_HapticSetAutocenter(), SDL_DINPUT_HapticSetGain(), SDL_DINPUT_HapticStopAll(), SDL_DINPUT_HapticStopEffect(), SDL_DINPUT_HapticUnpause(), SDL_DINPUT_HapticUpdateEffect(), SDL_DINPUT_JoystickOpen(), SDL_DINPUT_JoystickSameHaptic(), SDL_DINPUT_MaybeAddDevice(), SDL_DINPUT_MaybeRemoveDevice(), SDL_DrawPoint(), SDL_DrawPoints(), SDL_GetWindowWMInfo(), SDL_GL_BindTexture(), SDL_GL_GetAttribute(), SDL_GL_SetAttribute(), SDL_GL_UnbindTexture(), SDL_RenderReadPixels(), SDL_SetRenderTarget(), SDL_SetSurfaceBlendMode(), SDL_SetWindowGammaRamp(), SDL_SetWindowHitTest(), SDL_UpdateYUVTexture(), SDL_WarpMouseGlobal(), SDL_XINPUT_HapticGetEffectStatus(), SDL_XINPUT_HapticNewEffect(), SDL_XINPUT_HapticOpen(), SDL_XINPUT_HapticOpenFromJoystick(), SDL_XINPUT_HapticPause(), SDL_XINPUT_HapticRunEffect(), SDL_XINPUT_HapticSetAutocenter(), SDL_XINPUT_HapticSetGain(), SDL_XINPUT_HapticStopAll(), SDL_XINPUT_HapticStopEffect(), SDL_XINPUT_HapticUnpause(), SDL_XINPUT_HapticUpdateEffect(), SDL_XINPUT_JoystickOpen(), SDL_XINPUT_JoystickSameHaptic(), SDL_XINPUT_MaybeAddDevice(), SDL_XINPUT_MaybeRemoveDevice(), SDLTest_GenerateSignedBoundaryValues(), and SDLTest_GenerateUnsignedBoundaryValues().

## Enumeration Type Documentation

enum SDL_errorcode

Enumerator
SDL_ENOMEM |
SDL_EFREAD |
SDL_EFWRITE |
SDL_EFSEEK |
SDL_UNSUPPORTED |
SDL_LASTERROR |

Definition at line 55 of file SDL_error.h.

{
SDL_ENOMEM,
SDL_EFREAD,
SDL_EFWRITE,
SDL_EFSEEK,
SDL_UNSUPPORTED,
SDL_LASTERROR
} SDL_errorcode;
SDL_errorcode
SDL_errorcode
Definition: SDL_error.h:55
SDL_EFSEEK
Definition: SDL_error.h:60
SDL_LASTERROR
Definition: SDL_error.h:62
SDL_ENOMEM
Definition: SDL_error.h:57
SDL_UNSUPPORTED
Definition: SDL_error.h:61
SDL_EFREAD
Definition: SDL_error.h:58
SDL_EFWRITE
Definition: SDL_error.h:59

## Function Documentation

void SDL_ClearError | ( | void |  | ) |

Definition at line 230 of file SDL_error.c.

References SDL_error::error, and SDL_GetErrBuf().

Referenced by SDL_Error().

{
SDL_error *error;
error = SDL_GetErrBuf();
error->error = 0;
}
SDL_error
Definition: SDL_error_c.h:33
SDL_GetErrBuf
SDL_error * SDL_GetErrBuf(void)
Definition: SDL_thread.c:205
SDL_error::error
int error
Definition: SDL_error_c.h:36

int SDL_Error | ( | SDL_errorcode | code | ) |

Definition at line 240 of file SDL_error.c.

References main, SDL_ClearError(), SDL_EFREAD, SDL_EFSEEK, SDL_EFWRITE, SDL_ENOMEM, SDL_GetError(), SDL_memset, SDL_SetError(), and SDL_UNSUPPORTED.

{
switch (code) {
case SDL_ENOMEM:
return SDL_SetError("Out of memory");
case SDL_EFREAD:
return SDL_SetError("Error reading from datastream");
case SDL_EFWRITE:
return SDL_SetError("Error writing to datastream");
case SDL_EFSEEK:
return SDL_SetError("Error seeking in datastream");
case SDL_UNSUPPORTED:
return SDL_SetError("That operation is not supported");
default:
return SDL_SetError("Unknown SDL error");
}
}
SDL_EFSEEK
Definition: SDL_error.h:60
SDL_ENOMEM
Definition: SDL_error.h:57
SDL_UNSUPPORTED
Definition: SDL_error.h:61
SDL_EFREAD
Definition: SDL_error.h:58
SDL_SetError
int SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt,...)
Definition: SDL_error.c:53
SDL_EFWRITE
Definition: SDL_error.h:59

const char* SDL_GetError | ( | void |  | ) |

Definition at line 222 of file SDL_error.c.

References SDL_ERRBUFIZE, and SDL_GetErrorMsg().

Referenced by SDL_Error(), and SDL_SetError().

{
static char errmsg[SDL_ERRBUFIZE];
return SDL_GetErrorMsg(errmsg, SDL_ERRBUFIZE);
}
SDL_ERRBUFIZE
#define SDL_ERRBUFIZE
Definition: SDL_error.c:39
SDL_GetErrorMsg
static char * SDL_GetErrorMsg(char *errstr, int maxlen)
Definition: SDL_error.c:123

int SDL_SetError | ( | SDL_PRINTF_FORMAT_STRING const char * | fmt,
|  |  | ...
| ) |  |

Definition at line 53 of file SDL_error.c.

References SDL_error::argc, SDL_error::args, SDL_error::buf, ERR_MAX_ARGS, ERR_MAX_STRLEN, SDL_error::error, i, SDL_error::key, NULL, SDL_GetErrBuf(), SDL_GetError(), SDL_LOG_CATEGORY_ERROR, SDL_LogDebug, SDL_strlcpy, SDL_error::value_f, SDL_error::value_i, and SDL_error::value_ptr.

Referenced by SDL_Error().

{
va_list ap;
SDL_error *error;
/* Ignore call if invalid format pointer was passed */
if (fmt == NULL) return -1;
/* Copy in the key, mark error as valid */
error = SDL_GetErrBuf();
error->error = 1;
SDL_strlcpy((char *) error->key, fmt, sizeof(error->key));
va_start(ap, fmt);
error->argc = 0;
while (*fmt) {
if (*fmt++ == '%') {
while (*fmt == '.' || (*fmt >= '0' && *fmt <= '9')) {
++fmt;
}
switch (*fmt++) {
case 0: /* Malformed format string.. */
--fmt;
break;
case 'c':
case 'i':
case 'd':
case 'u':
case 'o':
case 'x':
case 'X':
error->args[error->argc++].value_i = va_arg(ap, int);
break;
case 'f':
error->args[error->argc++].value_f = va_arg(ap, double);
break;
case 'p':
error->args[error->argc++].value_ptr = va_arg(ap, void *);
break;
case 's':
{
int i = error->argc;
const char *str = va_arg(ap, const char *);
if (str == NULL)
str = "(null)";
SDL_strlcpy((char *) error->args[i].buf, str,
ERR_MAX_STRLEN);
error->argc++;
}
break;
default:
break;
}
if (error->argc >= ERR_MAX_ARGS) {
break;
}
}
}
va_end(ap);
/* If we are in debug mode, print out an error message */
SDL_LogDebug(SDL_LOG_CATEGORY_ERROR, "%s", SDL_GetError());
return -1;
}
SDL_strlcpy
#define SDL_strlcpy
Definition: SDL_dynapi_overrides.h:400
SDL_error::value_f
double value_f
Definition: SDL_error_c.h:54
SDL_error
Definition: SDL_error_c.h:33
SDL_GetErrBuf
SDL_error * SDL_GetErrBuf(void)
Definition: SDL_thread.c:205
ERR_MAX_STRLEN
#define ERR_MAX_STRLEN
Definition: SDL_error_c.h:30
SDL_GetError
const char * SDL_GetError(void)
Definition: SDL_error.c:222
SDL_error::error
int error
Definition: SDL_error_c.h:36
SDL_LogDebug
#define SDL_LogDebug
Definition: SDL_dynapi_overrides.h:39
SDL_error::args
union SDL_error::@24 args[ERR_MAX_ARGS]
ERR_MAX_ARGS
#define ERR_MAX_ARGS
Definition: SDL_error_c.h:31
SDL_error::key
char key[ERR_MAX_STRLEN]
Definition: SDL_error_c.h:43
i
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)
Definition: SDL_x11sym.h:42
NULL
#define NULL
Definition: begin_code.h:143
SDL_error::buf
char buf[ERR_MAX_STRLEN]
Definition: SDL_error_c.h:55
SDL_error::value_ptr
void * value_ptr
Definition: SDL_error_c.h:49
SDL_error::argc
int argc
Definition: SDL_error_c.h:46
SDL_error::value_i
int value_i
Definition: SDL_error_c.h:53
SDL_LOG_CATEGORY_ERROR
Definition: SDL_log.h:67