24#include "SDL_config.h"
30 "[--video driver]",
"[--renderer driver]",
"[--gldebug]",
31 "[--info all|video|modes|render|event]",
32 "[--log all|error|system|audio|video|render|input]",
"[--display N]",
33 "[--fullscreen | --fullscreen-desktop | --windows N]",
"[--title title]",
34 "[--icon icon.bmp]",
"[--center | --position X,Y]",
"[--geometry WxH]",
35 "[--min-geometry WxH]",
"[--max-geometry WxH]",
"[--logical WxH]",
36 "[--scale N]",
"[--depth N]",
"[--refresh R]",
"[--vsync]",
"[--noframe]",
37 "[--resize]",
"[--minimize]",
"[--maximize]",
"[--grab]",
42 "[--rate N]",
"[--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE]",
43 "[--channels N]",
"[--samples N]"
65 for (
i = 1; argv[
i]; ++
i) {
81 state->window_title = argv[0];
82 state->window_flags = 0;
87 state->num_windows = 1;
88 state->audiospec.freq = 22050;
90 state->audiospec.channels = 2;
91 state->audiospec.samples = 2048;
94 state->gl_red_size = 3;
95 state->gl_green_size = 3;
96 state->gl_blue_size = 2;
97 state->gl_alpha_size = 0;
98 state->gl_buffer_size = 0;
99 state->gl_depth_size = 16;
100 state->gl_stencil_size = 0;
101 state->gl_double_buffer = 1;
102 state->gl_accum_red_size = 0;
103 state->gl_accum_green_size = 0;
104 state->gl_accum_blue_size = 0;
105 state->gl_accum_alpha_size = 0;
106 state->gl_stereo = 0;
107 state->gl_multisamplebuffers = 0;
108 state->gl_multisamplesamples = 0;
109 state->gl_retained_backing = 1;
110 state->gl_accelerated = -1;
119 char **argv =
state->argv;
223 state->num_windows = 1;
228 state->num_windows = 1;
274 while (*
y && *
y !=
',') {
293 while (*
h && *
h !=
'x') {
312 while (*
h && *
h !=
'x') {
331 while (*
h && *
h !=
'x') {
350 while (*
h && *
h !=
'x') {
494 SDL_Log(
" %s",
"[--trackmem]");
509 for (
i = 0; options[
i] !=
NULL;
i++) {
669 for (
i = 0;
i <
sizeof(info->
flags) * 8; ++
i) {
671 if (info->
flags & flag) {
692 SDL_Log(
" Max Texture Size: %dx%d\n",
722 const int DRAGGABLE_TITLE = 32;
730 SDL_Log(
"SDL_HITTEST_RESIZE_TOPLEFT\n");
733 SDL_Log(
"SDL_HITTEST_RESIZE_BOTTOMLEFT\n");
736 SDL_Log(
"SDL_HITTEST_RESIZE_LEFT\n");
741 SDL_Log(
"SDL_HITTEST_RESIZE_TOPRIGHT\n");
744 SDL_Log(
"SDL_HITTEST_RESIZE_BOTTOMRIGHT\n");
747 SDL_Log(
"SDL_HITTEST_RESIZE_RIGHT\n");
751 SDL_Log(
"SDL_HITTEST_RESIZE_BOTTOM\n");
754 SDL_Log(
"SDL_HITTEST_RESIZE_TOP\n");
756 }
else if (area->
y < DRAGGABLE_TITLE) {
757 SDL_Log(
"SDL_HITTEST_DRAGGABLE\n");
774 SDL_Log(
"No built-in video drivers\n");
777 for (
i = 0;
i <
n; ++
i) {
787 SDL_Log(
"Couldn't initialize video driver: %s\n",
812 if (
state->gl_accelerated >= 0) {
814 state->gl_accelerated);
817 if (
state->gl_major_version) {
821 if (
state->gl_debug) {
824 if (
state->gl_profile_mask) {
834 Uint32 Rmask, Gmask, Bmask, Amask;
835#if SDL_VIDEO_DRIVER_WINDOWS
836 int adapterIndex = 0;
840 SDL_Log(
"Number of displays: %d\n",
n);
841 for (
i = 0;
i <
n; ++
i) {
852 SDL_Log(
"Bounds: %dx%d at %d,%d\n", bounds.
w, bounds.
h, bounds.
x, bounds.
y);
853 SDL_Log(
"Usable bounds: %dx%d at %d,%d\n", usablebounds.
w, usablebounds.
h, usablebounds.
x, usablebounds.
y);
854 SDL_Log(
"DPI: %fx%f\n", hdpi, vdpi);
859 SDL_Log(
" Current mode: %dx%d@%dHz, %d bits-per-pixel (%s)\n",
862 if (Rmask || Gmask || Bmask) {
863 SDL_Log(
" Red Mask = 0x%.8x\n", Rmask);
864 SDL_Log(
" Green Mask = 0x%.8x\n", Gmask);
865 SDL_Log(
" Blue Mask = 0x%.8x\n", Bmask);
867 SDL_Log(
" Alpha Mask = 0x%.8x\n", Amask);
873 SDL_Log(
"No available fullscreen video modes\n");
875 SDL_Log(
" Fullscreen video modes:\n");
876 for (
j = 0;
j <
m; ++
j) {
879 &Gmask, &Bmask, &Amask);
880 SDL_Log(
" Mode %d: %dx%d@%dHz, %d bits-per-pixel (%s)\n",
883 if (Rmask || Gmask || Bmask) {
884 SDL_Log(
" Red Mask = 0x%.8x\n",
886 SDL_Log(
" Green Mask = 0x%.8x\n",
888 SDL_Log(
" Blue Mask = 0x%.8x\n",
891 SDL_Log(
" Alpha Mask = 0x%.8x\n",
897#if SDL_VIDEO_DRIVER_WINDOWS
900 SDL_Log(
"D3D9 Adapter Index: %d", adapterIndex);
904 SDL_Log(
"DXGI Adapter Index: %d Output Index: %d", adapterIndex, outputIndex);
914 SDL_Log(
"No built-in render drivers\n");
916 SDL_Log(
"Built-in render drivers:\n");
917 for (
i = 0;
i <
n; ++
i) {
925 switch (
state->depth) {
946 sizeof(*
state->windows));
949 sizeof(*
state->renderers));
952 sizeof(*
state->targets));
957 for (
i = 0;
i <
state->num_windows; ++
i) {
960 if (
state->num_windows > 1) {
962 state->window_title,
i + 1);
969 state->window_flags);
971 SDL_Log(
"Couldn't create window: %s\n",
975 if (
state->window_minW ||
state->window_minH) {
978 if (
state->window_maxW ||
state->window_maxH) {
984 printf(
"Window requested size %dx%d, got %dx%d\n",
state->window_w,
state->window_h,
w,
h);
989 SDL_Log(
"Can't set up fullscreen display mode: %s\n",
1000 if (
state->window_icon) {
1010 if (!
state->skip_renderer
1011 && (
state->renderdriver
1014 if (
state->renderdriver) {
1017 for (
j = 0;
j <
n; ++
j) {
1026 SDL_Log(
"Couldn't find render driver named %s",
1027 state->renderdriver);
1033 if (!
state->renderers[
i]) {
1034 SDL_Log(
"Couldn't create renderer: %s\n",
1040 }
else if (
state->scale != 0.) {
1046 SDL_Log(
"Current renderer:\n");
1058 SDL_Log(
"No built-in audio drivers\n");
1061 for (
i = 0;
i <
n; ++
i) {
1071 SDL_Log(
"Couldn't initialize audio driver: %s\n",
1092 switch (orientation)
1094#define CASE(X) case SDL_ORIENTATION_##X: return #X
1097 CASE(LANDSCAPE_FLIPPED);
1099 CASE(PORTRAIT_FLIPPED);
1101default:
return "???";
1110#define AXIS_CASE(ax) case SDL_CONTROLLER_AXIS_##ax: return #ax
1119default:
return "???";
1128#define BUTTON_CASE(btn) case SDL_CONTROLLER_BUTTON_##btn: return #btn
1146default:
return "???";
1158 switch (
event->type) {
1160 switch (
event->display.event) {
1165 SDL_Log(
"SDL EVENT: Display %d got unknown event 0x%4.4x",
1166 event->display.display,
event->display.event);
1171 switch (
event->window.event) {
1173 SDL_Log(
"SDL EVENT: Window %d shown",
event->window.windowID);
1176 SDL_Log(
"SDL EVENT: Window %d hidden",
event->window.windowID);
1179 SDL_Log(
"SDL EVENT: Window %d exposed",
event->window.windowID);
1182 SDL_Log(
"SDL EVENT: Window %d moved to %d,%d",
1184 event->window.data2);
1187 SDL_Log(
"SDL EVENT: Window %d resized to %dx%d",
1189 event->window.data2);
1192 SDL_Log(
"SDL EVENT: Window %d changed size to %dx%d",
1194 event->window.data2);
1197 SDL_Log(
"SDL EVENT: Window %d minimized",
event->window.windowID);
1200 SDL_Log(
"SDL EVENT: Window %d maximized",
event->window.windowID);
1203 SDL_Log(
"SDL EVENT: Window %d restored",
event->window.windowID);
1206 SDL_Log(
"SDL EVENT: Mouse entered window %d",
1207 event->window.windowID);
1210 SDL_Log(
"SDL EVENT: Mouse left window %d",
event->window.windowID);
1213 SDL_Log(
"SDL EVENT: Window %d gained keyboard focus",
1214 event->window.windowID);
1217 SDL_Log(
"SDL EVENT: Window %d lost keyboard focus",
1218 event->window.windowID);
1221 SDL_Log(
"SDL EVENT: Window %d closed",
event->window.windowID);
1224 SDL_Log(
"SDL EVENT: Window %d take focus",
event->window.windowID);
1227 SDL_Log(
"SDL EVENT: Window %d hit test",
event->window.windowID);
1230 SDL_Log(
"SDL EVENT: Window %d got unknown event 0x%4.4x",
1231 event->window.windowID,
event->window.event);
1236 SDL_Log(
"SDL EVENT: Keyboard: key pressed in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s",
1237 event->key.windowID,
1238 event->key.keysym.scancode,
1243 SDL_Log(
"SDL EVENT: Keyboard: key released in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s",
1244 event->key.windowID,
1245 event->key.keysym.scancode,
1250 SDL_Log(
"SDL EVENT: Keyboard: text editing \"%s\" in window %d",
1254 SDL_Log(
"SDL EVENT: Keyboard: text input \"%s\" in window %d",
1258 SDL_Log(
"SDL EVENT: Keymap changed");
1261 SDL_Log(
"SDL EVENT: Mouse: moved to %d,%d (%d,%d) in window %d",
1264 event->motion.windowID);
1267 SDL_Log(
"SDL EVENT: Mouse: button %d pressed at %d,%d with click count %d in window %d",
1269 event->button.windowID);
1272 SDL_Log(
"SDL EVENT: Mouse: button %d released at %d,%d with click count %d in window %d",
1274 event->button.windowID);
1277 SDL_Log(
"SDL EVENT: Mouse: wheel scrolled %d in x and %d in y (reversed: %d) in window %d",
1281 SDL_Log(
"SDL EVENT: Joystick index %d attached",
1282 event->jdevice.which);
1285 SDL_Log(
"SDL EVENT: Joystick %d removed",
1286 event->jdevice.which);
1289 SDL_Log(
"SDL EVENT: Joystick %d: ball %d moved by %d,%d",
1295 const char *position =
"UNKNOWN";
1296 switch (
event->jhat.value) {
1298 position =
"CENTER";
1304 position =
"RIGHTUP";
1310 position =
"RIGHTDOWN";
1316 position =
"LEFTDOWN";
1322 position =
"LEFTUP";
1325 SDL_Log(
"SDL EVENT: Joystick %d: hat %d moved to %s",
event->jhat.which,
1326 event->jhat.hat, position);
1330 SDL_Log(
"SDL EVENT: Joystick %d: button %d pressed",
1331 event->jbutton.which,
event->jbutton.button);
1334 SDL_Log(
"SDL EVENT: Joystick %d: button %d released",
1335 event->jbutton.which,
event->jbutton.button);
1338 SDL_Log(
"SDL EVENT: Controller index %d attached",
1339 event->cdevice.which);
1342 SDL_Log(
"SDL EVENT: Controller %d removed",
1343 event->cdevice.which);
1346 SDL_Log(
"SDL EVENT: Controller %d axis %d ('%s') value: %d",
1350 event->caxis.value);
1353 SDL_Log(
"SDL EVENT: Controller %d button %d ('%s') down",
1358 SDL_Log(
"SDL EVENT: Controller %d button %d ('%s') up",
1363 SDL_Log(
"SDL EVENT: Clipboard updated");
1367 SDL_Log(
"SDL EVENT: Finger: motion touch=%ld, finger=%ld, x=%f, y=%f, dx=%f, dy=%f, pressure=%f",
1368 (
long)
event->tfinger.touchId,
1369 (
long)
event->tfinger.fingerId,
1375 SDL_Log(
"SDL EVENT: Finger: %s touch=%ld, finger=%ld, x=%f, y=%f, dx=%f, dy=%f, pressure=%f",
1377 (
long)
event->tfinger.touchId,
1378 (
long)
event->tfinger.fingerId,
1383 SDL_Log(
"SDL_EVENT: Dollar gesture detect: %ld", (
long)
event->dgesture.gestureId);
1386 SDL_Log(
"SDL_EVENT: Dollar gesture record: %ld", (
long)
event->dgesture.gestureId);
1389 SDL_Log(
"SDL_EVENT: Multi gesture fingers: %d",
event->mgesture.numFingers);
1393 SDL_Log(
"SDL EVENT: render device reset");
1396 SDL_Log(
"SDL EVENT: render targets reset");
1400 SDL_Log(
"SDL EVENT: App terminating");
1403 SDL_Log(
"SDL EVENT: App running low on memory");
1406 SDL_Log(
"SDL EVENT: App will enter the background");
1409 SDL_Log(
"SDL EVENT: App entered the background");
1412 SDL_Log(
"SDL EVENT: App will enter the foreground");
1415 SDL_Log(
"SDL EVENT: App entered the foreground");
1418 SDL_Log(
"SDL EVENT: Drag and drop beginning");
1421 SDL_Log(
"SDL EVENT: Drag and drop file: '%s'",
event->drop.file);
1424 SDL_Log(
"SDL EVENT: Drag and drop text: '%s'",
event->drop.file);
1427 SDL_Log(
"SDL EVENT: Drag and drop ending");
1430 SDL_Log(
"SDL EVENT: Quit requested");
1454 0x00FF0000, 0x0000FF00, 0x000000FF,
1456 0x000000FF, 0x0000FF00, 0x00FF0000,
1510 switch (
event->type) {
1512 switch (
event->window.event) {
1517 for (
i = 0;
i <
state->num_windows; ++
i) {
1523 if (
state->renderers[
i]) {
1542 switch (
event->key.keysym.sym) {
1547 for (
i = 0;
i <
state->num_windows; ++
i) {
1588 if (currentIndex >= 0 && numDisplays >= 1) {
1591 dest = (currentIndex + numDisplays - 1) % numDisplays;
1593 dest = (currentIndex + numDisplays + 1) % numDisplays;
1595 SDL_Log(
"Centering on display %d\n", dest);
1606 const int delta = 100;
1615 SDL_Log(
"Setting position to (%d, %d)\n",
x,
y);
1642 printf(
"Copied text to clipboard\n");
1646 for (
i = 0;
i <
state->num_windows; ++
i) {
1648 if (
state->renderers[
i]) {
1669 SDL_Log(
"%sapturing mouse %s!\n", shouldCapture ?
"C" :
"Unc", (rc == 0) ?
"succeeded" :
"failed");
1678 printf(
"Clipboard: %s\n",
text);
1680 printf(
"Clipboard is empty\n");
1735 }
else if (withAlt) {
1746 }
else if (withShift) {
1776 SDL_Log(
"ABSOLUTE MOUSE: (%d, %d)%s%s%s%s%s\n",
x,
y,
1821 lastEvent =
event->motion;
1837 if (
state->targets) {
1838 for (
i = 0;
i <
state->num_windows; ++
i) {
1845 if (
state->renderers) {
1846 for (
i = 0;
i <
state->num_windows; ++
i) {
1847 if (
state->renderers[
i]) {
#define SDL_GetWindowGrab
#define SDL_SetWindowGrab
#define SDL_GetWindowSize
#define SDL_RenderGetViewport
#define SDL_DestroyWindow
#define SDL_SetWindowHitTest
#define SDL_SetWindowOpacity
#define SDL_SetWindowMinimumSize
#define SDL_MaximizeWindow
#define SDL_GetCurrentVideoDriver
#define SDL_DestroyRenderer
#define SDL_DestroyTexture
#define SDL_SetWindowFullscreen
#define SDL_RenderSetClipRect
#define SDL_RestoreWindow
#define SDL_SetRelativeMouseMode
#define SDL_GetNumAudioDrivers
#define SDL_GetWindowFlags
#define SDL_GetScancodeName
#define SDL_GetPixelFormatName
#define SDL_SetClipboardText
#define SDL_GetKeyboardFocus
#define SDL_GetRenderDriverInfo
#define SDL_SetWindowPosition
#define SDL_GetDisplayName
#define SDL_RenderSetLogicalSize
#define SDL_GetClipboardText
#define SDL_LogSetAllPriority
#define SDL_GetDisplayDPI
#define SDL_RenderGetClipRect
#define SDL_RenderSetScale
#define SDL_CreateRenderer
#define SDL_GetNumDisplayModes
#define SDL_GL_SetAttribute
#define SDL_GetCurrentAudioDriver
#define SDL_SetWindowIcon
#define SDL_LogSetPriority
#define SDL_PixelFormatEnumToMasks
#define SDL_GetDisplayMode
#define SDL_ShowSimpleMessageBox
#define SDL_SetWindowMaximumSize
#define SDL_GetNumRenderDrivers
#define SDL_GetVideoDriver
#define SDL_SetWindowBordered
#define SDL_GetRendererInfo
#define SDL_GetWindowDisplayIndex
#define SDL_SetWindowDisplayMode
#define SDL_GetWindowFromID
#define SDL_GetWindowPosition
#define SDL_CreateRGBSurface
#define SDL_SetWindowSize
#define SDL_GetDesktopDisplayMode
#define SDL_GetNumVideoDisplays
#define SDL_GetDisplayBounds
#define SDL_GetAudioDriver
#define SDL_MinimizeWindow
#define SDL_GetWindowOpacity
#define SDL_GetGlobalMouseState
#define SDL_GetNumVideoDrivers
#define SDL_GetRelativeMouseMode
#define SDL_GetDisplayUsableBounds
#define SDL_RenderReadPixels
SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char const char SDL_SCANF_FORMAT_STRING const char return SDL_ThreadFunction const char void return Uint32 return Uint32 SDL_AssertionHandler void SDL_SpinLock SDL_atomic_t int int return SDL_atomic_t return void void void return void return int return SDL_AudioSpec SDL_AudioSpec return int int return return int SDL_RWops int SDL_AudioSpec Uint8 Uint32 return SDL_AudioCVT SDL_AudioFormat Uint8 int SDL_AudioFormat Uint8 int return Uint8 const Uint8 Uint32 int const char return return return return return return return return Uint32 return Uint32 SDL_Event return SDL_Event int return SDL_EventFilter void SDL_EventFilter void SDL_EventFilter void int return const char const char return SDL_JoystickGUID return int return int return SDL_GameController return int return const char return SDL_GameController SDL_GameControllerAxis return const char return SDL_GameController SDL_GameControllerButton return SDL_GameController SDL_RWops return SDL_TouchID SDL_RWops return int return int return return SDL_Joystick return SDL_Haptic SDL_Haptic return SDL_Haptic return SDL_Haptic SDL_HapticEffect return SDL_Haptic int Uint32 return SDL_Haptic int SDL_Haptic int return SDL_Haptic return SDL_Haptic return SDL_Haptic return SDL_Haptic return const char const char return const char SDL_HintCallback void int return SDL_Joystick return SDL_Joystick return const char return SDL_Joystick return SDL_Joystick return SDL_Joystick return int return SDL_Joystick int return SDL_Joystick int return return return SDL_Scancode return SDL_Scancode return SDL_Keycode return return const char return void int SDL_LogPriority SDL_LogOutputFunction void Uint32 const char const char SDL_Window return int int return SDL_Window int int return SDL_Surface int int return SDL_Cursor return int return SDL_mutex return SDL_mutex return Uint32 return SDL_sem return SDL_sem Uint32 return SDL_sem return SDL_cond SDL_cond return SDL_cond SDL_mutex Uint32 return Uint32 int Uint32 Uint32 Uint32 Uint32 return Uint32 return int return SDL_Palette const SDL_Color int int return const SDL_PixelFormat Uint8 Uint8 Uint8 return Uint32 const SDL_PixelFormat Uint8 Uint8 Uint8 float Uint16 int int return const SDL_Rect const SDL_Rect SDL_Rect return const SDL_Point int const SDL_Rect SDL_Rect return return int int Uint32 SDL_Window SDL_Renderer return SDL_Surface return SDL_Renderer SDL_RendererInfo return SDL_Renderer Uint32 int int int return SDL_Texture Uint32 int int int return SDL_Texture Uint8 Uint8 Uint8 return SDL_Texture Uint8 return SDL_Texture SDL_BlendMode return SDL_Texture const SDL_Rect const Uint8 int const Uint8 int const Uint8 int return SDL_Texture SDL_Renderer SDL_Texture return SDL_Renderer int int return SDL_Renderer const SDL_Rect return SDL_Renderer const SDL_Rect return SDL_Renderer float float return SDL_Renderer Uint8 Uint8 Uint8 Uint8 return SDL_Renderer SDL_BlendMode return SDL_Renderer return SDL_Renderer const SDL_Point int return SDL_Renderer const SDL_Point int return SDL_Renderer const SDL_Rect int return SDL_Renderer const SDL_Rect int return SDL_Renderer SDL_Texture const SDL_Rect const SDL_Rect const double const SDL_Point const SDL_RendererFlip return SDL_Renderer SDL_Renderer SDL_Texture return void int return return SDL_RWops return SDL_RWops return SDL_RWops return SDL_RWops return SDL_RWops Uint16 return SDL_RWops Uint32 return SDL_RWops Uint64 return const char unsigned int unsigned int unsigned int unsigned int Uint32 return SDL_Window SDL_Surface SDL_WindowShapeMode return size_t return void size_t return const char return void size_t size_t int(*) int return int return int size_t return size_t return const wchar_t return const wchar_t size_t retur SDL_OUT_Z_CAP)(c) char *a
#define SDL_OutOfMemory()
@ SDL_APP_WILLENTERFOREGROUND
@ SDL_RENDER_DEVICE_RESET
@ SDL_CONTROLLERDEVICEADDED
@ SDL_APP_DIDENTERFOREGROUND
@ SDL_APP_WILLENTERBACKGROUND
@ SDL_CONTROLLERBUTTONDOWN
@ SDL_APP_DIDENTERBACKGROUND
@ SDL_CONTROLLERAXISMOTION
@ SDL_CONTROLLERDEVICEREMOVED
@ SDL_RENDER_TARGETS_RESET
#define SDL_HAT_RIGHTDOWN
@ SDL_LOG_PRIORITY_VERBOSE
@ SDL_LOG_CATEGORY_RENDER
@ SDL_LOG_CATEGORY_SYSTEM
@ SDL_MESSAGEBOX_INFORMATION
#define SDL_BUTTON_X1MASK
#define SDL_BUTTON_X2MASK
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLint GLint GLint x
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
GLboolean GLboolean GLboolean b
GLuint GLsizei const GLchar * message
GLuint GLsizei GLsizei * length
GLfloat GLfloat GLfloat GLfloat h
GLubyte GLubyte GLubyte GLubyte w
@ SDL_PIXELFORMAT_INDEX1LSB
@ SDL_PIXELFORMAT_ABGR4444
@ SDL_PIXELFORMAT_INDEX4MSB
@ SDL_PIXELFORMAT_RGBA8888
@ SDL_PIXELFORMAT_ARGB1555
@ SDL_PIXELFORMAT_ABGR8888
@ SDL_PIXELFORMAT_BGRA8888
@ SDL_PIXELFORMAT_ABGR1555
@ SDL_PIXELFORMAT_ARGB8888
@ SDL_PIXELFORMAT_ARGB4444
@ SDL_PIXELFORMAT_INDEX1MSB
@ SDL_PIXELFORMAT_INDEX4LSB
@ SDL_PIXELFORMAT_ARGB2101010
@ SDL_PIXELFORMAT_UNKNOWN
SDL_FORCE_INLINE SDL_bool SDL_RectEmpty(const SDL_Rect *r)
Returns true if the rectangle has no area.
@ SDL_RENDERER_ACCELERATED
@ SDL_RENDERER_PRESENTVSYNC
@ SDL_RENDERER_TARGETTEXTURE
#define SDL_arraysize(array)
#define SDL_PRINTF_FORMAT_STRING
#define SDL_SaveBMP(surface, file)
#define SDL_LoadBMP(file)
int SDL_Direct3D9GetAdapterIndex(int displayIndex)
Returns the D3D9 adapter index that matches the specified display index.
SDL_bool SDL_DXGIGetOutputInfo(int displayIndex, int *adapterIndex, int *outputIndex)
Returns the DXGI Adapter and Output indices for the specified display index.
static const char * DisplayOrientationName(int orientation)
static void SDLTest_PrintRenderer(SDL_RendererInfo *info)
static const char * video_usage[]
static void SDLTest_PrintPixelFormat(char *text, size_t maxlen, Uint32 format)
void SDLTest_CommonQuit(SDLTest_CommonState *state)
Close test window.
static void SDL_snprintfcat(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, SDL_PRINTF_FORMAT_STRING const char *fmt,...)
static SDL_HitTestResult SDLTest_ExampleHitTestCallback(SDL_Window *win, const SDL_Point *area, void *data)
SDL_bool SDLTest_CommonDefaultArgs(SDLTest_CommonState *state, const int argc, char **argv)
Easy argument handling when test app doesn't need any custom args.
static void SDLTest_PrintEvent(SDL_Event *event)
static const char * audio_usage[]
SDLTest_CommonState * SDLTest_CommonCreateState(char **argv, Uint32 flags)
Parse command line parameters and create common state.
void SDLTest_CommonEvent(SDLTest_CommonState *state, SDL_Event *event, int *done)
Common event handler for test windows.
int SDLTest_CommonArg(SDLTest_CommonState *state, int index)
Process one common argument.
SDL_bool SDLTest_CommonInit(SDLTest_CommonState *state)
Open test window.
static void SDLTest_PrintRendererFlag(char *text, size_t maxlen, Uint32 flag)
static void FullscreenTo(int index, int windowId)
static void SDLTest_ScreenShot(SDL_Renderer *renderer)
static const char * ControllerAxisName(const SDL_GameControllerAxis axis)
void SDLTest_CommonLogUsage(SDLTest_CommonState *state, const char *argv0, const char **options)
Logs command line usage info.
static const char * ControllerButtonName(const SDL_GameControllerButton button)
static SDL_Surface * SDLTest_LoadIcon(const char *file)
#define DEFAULT_WINDOW_HEIGHT
#define DEFAULT_WINDOW_WIDTH
void SDLTest_LogAllocations(void)
Print a log of any outstanding allocations.
int SDLTest_TrackAllocations(void)
Start tracking SDL memory allocations.
SDL_HitTestResult
Possible return values from the SDL_HitTest callback.
@ SDL_HITTEST_RESIZE_LEFT
@ SDL_HITTEST_RESIZE_TOPRIGHT
@ SDL_HITTEST_RESIZE_BOTTOM
@ SDL_HITTEST_RESIZE_BOTTOMRIGHT
@ SDL_HITTEST_RESIZE_BOTTOMLEFT
@ SDL_HITTEST_RESIZE_RIGHT
@ SDL_HITTEST_RESIZE_TOPLEFT
#define SDL_WINDOWPOS_ISCENTERED(X)
#define SDL_WINDOWPOS_UNDEFINED
#define SDL_WINDOWPOS_UNDEFINED_DISPLAY(X)
#define SDL_WINDOWPOS_CENTERED_DISPLAY(X)
#define SDL_WINDOWPOS_CENTERED
#define SDL_WINDOWPOS_ISUNDEFINED(X)
@ SDL_GL_CONTEXT_MAJOR_VERSION
@ SDL_GL_ACCUM_ALPHA_SIZE
@ SDL_GL_MULTISAMPLESAMPLES
@ SDL_GL_CONTEXT_MINOR_VERSION
@ SDL_GL_MULTISAMPLEBUFFERS
@ SDL_GL_ACCUM_GREEN_SIZE
@ SDL_GL_RETAINED_BACKING
@ SDL_GL_ACCELERATED_VISUAL
@ SDL_GL_CONTEXT_PROFILE_MASK
@ SDL_WINDOW_ALLOW_HIGHDPI
@ SDL_WINDOW_MOUSE_CAPTURE
@ SDL_WINDOW_INPUT_GRABBED
@ SDL_WINDOW_FULLSCREEN_DESKTOP
@ SDL_GL_CONTEXT_DEBUG_FLAG
@ SDL_WINDOWEVENT_FOCUS_LOST
@ SDL_WINDOWEVENT_RESIZED
@ SDL_WINDOWEVENT_HIT_TEST
@ SDL_WINDOWEVENT_FOCUS_GAINED
@ SDL_WINDOWEVENT_TAKE_FOCUS
@ SDL_WINDOWEVENT_MINIMIZED
@ SDL_WINDOWEVENT_MAXIMIZED
@ SDL_WINDOWEVENT_SIZE_CHANGED
@ SDL_WINDOWEVENT_RESTORED
@ SDL_WINDOWEVENT_EXPOSED
@ SDL_DISPLAYEVENT_ORIENTATION
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 int in j)
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)
EGLSurface EGLNativeWindowType * window
The structure that defines a display mode.
Mouse motion event structure (event.motion.*)
The structure that defines a point (integer)
A rectangle, with the origin at the upper left (integer).
Information on the capabilities of a render driver or context.
Uint32 texture_formats[16]
Uint32 num_texture_formats
A collection of pixels used in software blitting.
The type used to identify a window.
static SDL_Renderer * renderer
static char text[MAX_TEXT_LENGTH]