#include "SDL_config.h"
#include "SDL_test.h"
#include <stdio.h>
Go to the source code of this file.
|
#define | CASE(X) case SDL_ORIENTATION_##X: return #X |
|
#define | AXIS_CASE(ax) case SDL_CONTROLLER_AXIS_##ax: return #ax |
|
#define | BUTTON_CASE(btn) case SDL_CONTROLLER_BUTTON_##btn: return #btn |
|
|
static void | SDL_snprintfcat (SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, SDL_PRINTF_FORMAT_STRING const char *fmt,...) |
|
SDLTest_CommonState * | SDLTest_CommonCreateState (char **argv, Uint32 flags) |
| Parse command line parameters and create common state. More...
|
|
int | SDLTest_CommonArg (SDLTest_CommonState *state, int index) |
| Process one common argument. More...
|
|
void | SDLTest_CommonLogUsage (SDLTest_CommonState *state, const char *argv0, const char **options) |
| Logs command line usage info. More...
|
|
SDL_bool | SDLTest_CommonDefaultArgs (SDLTest_CommonState *state, const int argc, char **argv) |
| Easy argument handling when test app doesn't need any custom args. More...
|
|
static void | SDLTest_PrintRendererFlag (char *text, size_t maxlen, Uint32 flag) |
|
static void | SDLTest_PrintPixelFormat (char *text, size_t maxlen, Uint32 format) |
|
static void | SDLTest_PrintRenderer (SDL_RendererInfo *info) |
|
static SDL_Surface * | SDLTest_LoadIcon (const char *file) |
|
static SDL_HitTestResult | SDLTest_ExampleHitTestCallback (SDL_Window *win, const SDL_Point *area, void *data) |
|
SDL_bool | SDLTest_CommonInit (SDLTest_CommonState *state) |
| Open test window. More...
|
|
static const char * | DisplayOrientationName (int orientation) |
|
static const char * | ControllerAxisName (const SDL_GameControllerAxis axis) |
|
static const char * | ControllerButtonName (const SDL_GameControllerButton button) |
|
static void | SDLTest_PrintEvent (SDL_Event *event) |
|
static void | SDLTest_ScreenShot (SDL_Renderer *renderer) |
|
static void | FullscreenTo (int index, int windowId) |
|
void | SDLTest_CommonEvent (SDLTest_CommonState *state, SDL_Event *event, int *done) |
| Common event handler for test windows. More...
|
|
void | SDLTest_CommonQuit (SDLTest_CommonState *state) |
| Close test window. More...
|
|
◆ AXIS_CASE
#define AXIS_CASE |
( |
|
ax | ) |
case SDL_CONTROLLER_AXIS_##ax: return #ax |
◆ BUTTON_CASE
#define BUTTON_CASE |
( |
|
btn | ) |
case SDL_CONTROLLER_BUTTON_##btn: return #btn |
◆ CASE
#define CASE |
( |
|
X | ) |
case SDL_ORIENTATION_##X: return #X |
◆ ControllerAxisName()
◆ ControllerButtonName()
◆ DisplayOrientationName()
static const char* DisplayOrientationName |
( |
int |
orientation | ) |
|
|
static |
Definition at line 1090 of file SDL_test_common.c.
1092 switch (orientation)
1094 #define CASE(X) case SDL_ORIENTATION_##X: return #X
1097 CASE(LANDSCAPE_FLIPPED);
1099 CASE(PORTRAIT_FLIPPED);
1101 default:
return "???";
References CASE.
Referenced by SDLTest_PrintEvent().
◆ FullscreenTo()
static void FullscreenTo |
( |
int |
index, |
|
|
int |
windowId |
|
) |
| |
|
static |
Definition at line 1479 of file SDL_test_common.c.
References rect, SDL_Delay, SDL_FALSE, SDL_GetDisplayBounds, SDL_GetWindowFlags, SDL_GetWindowFromID, SDL_SetWindowFullscreen, SDL_SetWindowPosition, SDL_TRUE, SDL_WINDOW_FULLSCREEN, SDL_Rect::x, and SDL_Rect::y.
Referenced by SDLTest_CommonEvent().
◆ SDL_snprintfcat()
◆ SDLTest_CommonArg()
Process one common argument.
- Parameters
-
state | The common state describing the test window to create. |
index | The index of the argument to process in argv[]. |
- Returns
- The number of arguments processed (i.e. 1 for –fullscreen, 2 for –video [videodriver], or -1 on error.
Definition at line 117 of file SDL_test_common.c.
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') {
References AUDIO_S16, AUDIO_S16LSB, AUDIO_S16MSB, AUDIO_S8, AUDIO_U16, AUDIO_U16LSB, AUDIO_U16MSB, AUDIO_U8, SDL_atof, SDL_atoi, SDL_isdigit, SDL_LOG_CATEGORY_AUDIO, SDL_LOG_CATEGORY_ERROR, SDL_LOG_CATEGORY_INPUT, SDL_LOG_CATEGORY_RENDER, SDL_LOG_CATEGORY_SYSTEM, SDL_LOG_CATEGORY_VIDEO, SDL_LOG_PRIORITY_VERBOSE, SDL_LogSetAllPriority, SDL_LogSetPriority, SDL_RENDERER_PRESENTVSYNC, SDL_strcasecmp, SDL_strcmp, SDL_WINDOW_ALLOW_HIGHDPI, SDL_WINDOW_BORDERLESS, SDL_WINDOW_FULLSCREEN, SDL_WINDOW_FULLSCREEN_DESKTOP, SDL_WINDOW_INPUT_GRABBED, SDL_WINDOW_MAXIMIZED, SDL_WINDOW_MINIMIZED, SDL_WINDOW_RESIZABLE, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED_DISPLAY, SDL_WINDOWPOS_ISCENTERED, SDL_WINDOWPOS_ISUNDEFINED, SDL_WINDOWPOS_UNDEFINED_DISPLAY, state, VERBOSE_EVENT, VERBOSE_MODES, VERBOSE_RENDER, and VERBOSE_VIDEO.
Referenced by main(), and SDLTest_CommonDefaultArgs().
◆ SDLTest_CommonCreateState()
Parse command line parameters and create common state.
- Parameters
-
argv | Array of command line parameters |
flags | Flags indicating which subsystem to initialize (i.e. SDL_INIT_VIDEO | SDL_INIT_AUDIO) |
- Returns
- Returns a newly allocated common state object.
Definition at line 59 of file SDL_test_common.c.
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;
References AUDIO_S16, DEFAULT_WINDOW_HEIGHT, DEFAULT_WINDOW_WIDTH, i, NULL, SDL_calloc, SDL_OutOfMemory, SDL_strcasecmp, SDL_WINDOWPOS_UNDEFINED, SDLTest_TrackAllocations(), and state.
Referenced by main().
◆ SDLTest_CommonDefaultArgs()
◆ SDLTest_CommonEvent()
Common event handler for test windows.
- Parameters
-
state | The common state used to create test window. |
event | The event to handle. |
done | Flag indicating we are done. |
Definition at line 1501 of file SDL_test_common.c.
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;
References done, FullscreenTo(), SDL_Rect::h, i, KMOD_ALT, KMOD_CTRL, KMOD_SHIFT, NULL, SDL_BUTTON_LMASK, SDL_BUTTON_MMASK, SDL_BUTTON_RMASK, SDL_BUTTON_X1MASK, SDL_BUTTON_X2MASK, SDL_CaptureMouse, SDL_DestroyRenderer, SDL_DestroyTexture, SDL_DestroyWindow, SDL_DROPFILE, SDL_DROPTEXT, SDL_FALSE, SDL_free, SDL_GetClipboardText, SDL_GetGlobalMouseState, SDL_GetKeyboardFocus, SDL_GetNumVideoDisplays, SDL_GetRelativeMouseMode, SDL_GetWindowDisplayIndex, SDL_GetWindowFlags, SDL_GetWindowFromID, SDL_GetWindowGrab, SDL_GetWindowOpacity, SDL_GetWindowPosition, SDL_GetWindowSize, SDL_KEYDOWN, SDL_Log, SDL_MaximizeWindow, SDL_MESSAGEBOX_INFORMATION, SDL_MinimizeWindow, SDL_MOUSEMOTION, SDL_QUIT, SDL_RectEmpty(), SDL_RenderGetClipRect, SDL_RenderSetClipRect, SDL_RestoreWindow, SDL_SetClipboardText, SDL_SetRelativeMouseMode, SDL_SetWindowBordered, SDL_SetWindowFullscreen, SDL_SetWindowGrab, SDL_SetWindowOpacity, SDL_SetWindowPosition, SDL_SetWindowSize, SDL_ShowSimpleMessageBox, SDL_snprintf, SDL_TRUE, SDL_WINDOW_BORDERLESS, SDL_WINDOW_FULLSCREEN, SDL_WINDOW_FULLSCREEN_DESKTOP, SDL_WINDOW_MAXIMIZED, SDL_WINDOW_MOUSE_CAPTURE, SDL_WINDOWEVENT, SDL_WINDOWEVENT_CLOSE, SDL_WINDOWPOS_CENTERED_DISPLAY, SDLK_0, SDLK_1, SDLK_2, SDLK_a, SDLK_b, SDLK_c, SDLK_DOWN, SDLK_EQUALS, SDLK_ESCAPE, SDLK_g, SDLK_LEFT, SDLK_m, SDLK_MINUS, SDLK_o, SDLK_PRINTSCREEN, SDLK_r, SDLK_RETURN, SDLK_RIGHT, SDLK_SPACE, SDLK_UP, SDLK_v, SDLK_z, SDLTest_PrintEvent(), SDLTest_ScreenShot(), state, text, VERBOSE_EVENT, SDL_Rect::w, SDL_Rect::x, SDL_MouseMotionEvent::x, SDL_MouseMotionEvent::xrel, SDL_Rect::y, SDL_MouseMotionEvent::y, and SDL_MouseMotionEvent::yrel.
Referenced by loop(), and main().
◆ SDLTest_CommonInit()
Open test window.
- Parameters
-
state | The common state describing the test window to create. |
- Returns
- True if initialization succeeded, false otherwise
Definition at line 764 of file SDL_test_common.c.
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",
References SDL_DisplayMode::format, SDL_Rect::h, i, j, SDL_RendererInfo::name, NULL, SDL_DisplayMode::refresh_rate, SDL_arraysize, SDL_AudioInit, SDL_calloc, SDL_CreateRenderer, SDL_CreateWindow, SDL_Direct3D9GetAdapterIndex(), SDL_DXGIGetOutputInfo(), SDL_FALSE, SDL_FreeSurface, SDL_GetAudioDriver, SDL_GetCurrentAudioDriver, SDL_GetCurrentVideoDriver, SDL_GetDesktopDisplayMode, SDL_GetDisplayBounds, SDL_GetDisplayDPI, SDL_GetDisplayMode, SDL_GetDisplayName, SDL_GetDisplayUsableBounds, SDL_GetError, SDL_GetNumAudioDrivers, SDL_GetNumDisplayModes, SDL_GetNumRenderDrivers, SDL_GetNumVideoDisplays, SDL_GetNumVideoDrivers, SDL_GetPixelFormatName, SDL_GetRenderDriverInfo, SDL_GetRendererInfo, SDL_GetVideoDriver, SDL_GetWindowSize, SDL_GL_ACCELERATED_VISUAL, SDL_GL_ACCUM_ALPHA_SIZE, SDL_GL_ACCUM_BLUE_SIZE, SDL_GL_ACCUM_GREEN_SIZE, SDL_GL_ACCUM_RED_SIZE, SDL_GL_ALPHA_SIZE, SDL_GL_BLUE_SIZE, SDL_GL_BUFFER_SIZE, SDL_GL_CONTEXT_DEBUG_FLAG, SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_MAJOR_VERSION, SDL_GL_CONTEXT_MINOR_VERSION, SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_DEPTH_SIZE, SDL_GL_DOUBLEBUFFER, SDL_GL_GREEN_SIZE, SDL_GL_MULTISAMPLEBUFFERS, SDL_GL_MULTISAMPLESAMPLES, SDL_GL_RED_SIZE, SDL_GL_RETAINED_BACKING, SDL_GL_SetAttribute, SDL_GL_STENCIL_SIZE, SDL_GL_STEREO, SDL_INIT_AUDIO, SDL_INIT_VIDEO, SDL_Log, SDL_OpenAudio, SDL_PIXELFORMAT_INDEX8, SDL_PIXELFORMAT_RGB24, SDL_PIXELFORMAT_RGB555, SDL_PIXELFORMAT_RGB565, SDL_PIXELFORMAT_RGB888, SDL_PixelFormatEnumToMasks, SDL_RenderSetLogicalSize, SDL_RenderSetScale, SDL_SetWindowDisplayMode, SDL_SetWindowHitTest, SDL_SetWindowIcon, SDL_SetWindowMaximumSize, SDL_SetWindowMinimumSize, SDL_ShowWindow, SDL_snprintf, SDL_snprintfcat(), SDL_strcasecmp, SDL_strlcpy, SDL_TRUE, SDL_VideoInit, SDL_WINDOW_BORDERLESS, SDL_WINDOW_OPENGL, SDL_WINDOW_RESIZABLE, SDL_WINDOW_VULKAN, SDL_zero, SDLTest_ExampleHitTestCallback(), SDLTest_LoadIcon(), SDLTest_PrintRenderer(), state, text, VERBOSE_AUDIO, VERBOSE_MODES, VERBOSE_RENDER, VERBOSE_VIDEO, SDL_Rect::w, SDL_Rect::x, and SDL_Rect::y.
Referenced by main().
◆ SDLTest_CommonLogUsage()
Logs command line usage info.
This logs the appropriate command line options for the subsystems in use plus other common options, and then any application-specific options. This uses the SDL_Log() function and splits up output to be friendly to 80-character-wide terminals.
- Parameters
-
state | The common state describing the test window for the app. |
argv0 | argv[0], as passed to main/SDL_main. |
options | an array of strings for application specific options. The last element of the array should be NULL. |
Definition at line 489 of file SDL_test_common.c.
494 SDL_Log(
" %s",
"[--trackmem]");
509 for (
i = 0; options[
i] !=
NULL;
i++) {
References audio_usage, i, NULL, SDL_arraysize, SDL_INIT_AUDIO, SDL_INIT_VIDEO, SDL_Log, state, and video_usage.
Referenced by main(), and SDLTest_CommonDefaultArgs().
◆ SDLTest_CommonQuit()
Close test window.
- Parameters
-
state | The common state used to create test window. |
Definition at line 1832 of file SDL_test_common.c.
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]) {
References i, SDL_AudioQuit, SDL_DestroyRenderer, SDL_DestroyTexture, SDL_free, SDL_INIT_AUDIO, SDL_INIT_VIDEO, SDL_Quit, SDL_VideoQuit, SDLTest_LogAllocations(), and state.
Referenced by main(), and quit().
◆ SDLTest_ExampleHitTestCallback()
Definition at line 718 of file SDL_test_common.c.
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");
References RESIZE_BORDER, SDL_GetWindowSize, SDL_HITTEST_DRAGGABLE, SDL_HITTEST_NORMAL, SDL_HITTEST_RESIZE_BOTTOM, SDL_HITTEST_RESIZE_BOTTOMLEFT, SDL_HITTEST_RESIZE_BOTTOMRIGHT, SDL_HITTEST_RESIZE_LEFT, SDL_HITTEST_RESIZE_RIGHT, SDL_HITTEST_RESIZE_TOP, SDL_HITTEST_RESIZE_TOPLEFT, SDL_HITTEST_RESIZE_TOPRIGHT, SDL_Log, SDL_Point::x, and SDL_Point::y.
Referenced by SDLTest_CommonInit().
◆ SDLTest_LoadIcon()
static SDL_Surface* SDLTest_LoadIcon |
( |
const char * |
file | ) |
|
|
static |
◆ SDLTest_PrintEvent()
Definition at line 1151 of file SDL_test_common.c.
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");
References ControllerAxisName(), ControllerButtonName(), DisplayOrientationName(), SDL_APP_DIDENTERBACKGROUND, SDL_APP_DIDENTERFOREGROUND, SDL_APP_LOWMEMORY, SDL_APP_TERMINATING, SDL_APP_WILLENTERBACKGROUND, SDL_APP_WILLENTERFOREGROUND, SDL_CLIPBOARDUPDATE, SDL_CONTROLLERAXISMOTION, SDL_CONTROLLERBUTTONDOWN, SDL_CONTROLLERBUTTONUP, SDL_CONTROLLERDEVICEADDED, SDL_CONTROLLERDEVICEREMOVED, SDL_DISPLAYEVENT, SDL_DISPLAYEVENT_ORIENTATION, SDL_DOLLARGESTURE, SDL_DOLLARRECORD, SDL_DROPBEGIN, SDL_DROPCOMPLETE, SDL_DROPFILE, SDL_DROPTEXT, SDL_FINGERDOWN, SDL_FINGERMOTION, SDL_FINGERUP, SDL_GetKeyName, SDL_GetScancodeName, SDL_HAT_CENTERED, SDL_HAT_DOWN, SDL_HAT_LEFT, SDL_HAT_LEFTDOWN, SDL_HAT_LEFTUP, SDL_HAT_RIGHT, SDL_HAT_RIGHTDOWN, SDL_HAT_RIGHTUP, SDL_HAT_UP, SDL_JOYBALLMOTION, SDL_JOYBUTTONDOWN, SDL_JOYBUTTONUP, SDL_JOYDEVICEADDED, SDL_JOYDEVICEREMOVED, SDL_JOYHATMOTION, SDL_KEYDOWN, SDL_KEYMAPCHANGED, SDL_KEYUP, SDL_Log, SDL_MOUSEBUTTONDOWN, SDL_MOUSEBUTTONUP, SDL_MOUSEMOTION, SDL_MOUSEWHEEL, SDL_MULTIGESTURE, SDL_QUIT, SDL_RENDER_DEVICE_RESET, SDL_RENDER_TARGETS_RESET, SDL_TEXTEDITING, SDL_TEXTINPUT, SDL_USEREVENT, SDL_WINDOWEVENT, SDL_WINDOWEVENT_CLOSE, SDL_WINDOWEVENT_ENTER, SDL_WINDOWEVENT_EXPOSED, SDL_WINDOWEVENT_FOCUS_GAINED, SDL_WINDOWEVENT_FOCUS_LOST, SDL_WINDOWEVENT_HIDDEN, SDL_WINDOWEVENT_HIT_TEST, SDL_WINDOWEVENT_LEAVE, SDL_WINDOWEVENT_MAXIMIZED, SDL_WINDOWEVENT_MINIMIZED, SDL_WINDOWEVENT_MOVED, SDL_WINDOWEVENT_RESIZED, SDL_WINDOWEVENT_RESTORED, SDL_WINDOWEVENT_SHOWN, SDL_WINDOWEVENT_SIZE_CHANGED, and SDL_WINDOWEVENT_TAKE_FOCUS.
Referenced by SDLTest_CommonEvent().
◆ SDLTest_PrintPixelFormat()
static void SDLTest_PrintPixelFormat |
( |
char * |
text, |
|
|
size_t |
maxlen, |
|
|
Uint32 |
format |
|
) |
| |
|
static |
Definition at line 553 of file SDL_test_common.c.
References SDL_PIXELFORMAT_ABGR1555, SDL_PIXELFORMAT_ABGR4444, SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ARGB1555, SDL_PIXELFORMAT_ARGB2101010, SDL_PIXELFORMAT_ARGB4444, SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_BGR24, SDL_PIXELFORMAT_BGR555, SDL_PIXELFORMAT_BGR565, SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_INDEX1LSB, SDL_PIXELFORMAT_INDEX1MSB, SDL_PIXELFORMAT_INDEX4LSB, SDL_PIXELFORMAT_INDEX4MSB, SDL_PIXELFORMAT_INDEX8, SDL_PIXELFORMAT_IYUV, SDL_PIXELFORMAT_NV12, SDL_PIXELFORMAT_NV21, SDL_PIXELFORMAT_RGB24, SDL_PIXELFORMAT_RGB332, SDL_PIXELFORMAT_RGB444, SDL_PIXELFORMAT_RGB555, SDL_PIXELFORMAT_RGB565, SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_UNKNOWN, SDL_PIXELFORMAT_UYVY, SDL_PIXELFORMAT_YUY2, SDL_PIXELFORMAT_YV12, SDL_PIXELFORMAT_YVYU, SDL_snprintfcat(), and text.
Referenced by SDLTest_PrintRenderer().
◆ SDLTest_PrintRenderer()
Definition at line 659 of file SDL_test_common.c.
669 for (
i = 0;
i <
sizeof(info->
flags) * 8; ++
i) {
671 if (info->
flags & flag) {
692 SDL_Log(
" Max Texture Size: %dx%d\n",
References SDL_RendererInfo::flags, i, SDL_RendererInfo::max_texture_height, SDL_RendererInfo::max_texture_width, SDL_RendererInfo::name, SDL_RendererInfo::num_texture_formats, SDL_Log, SDL_snprintf, SDL_snprintfcat(), SDLTest_PrintPixelFormat(), SDLTest_PrintRendererFlag(), text, and SDL_RendererInfo::texture_formats.
Referenced by SDLTest_CommonInit().
◆ SDLTest_PrintRendererFlag()
static void SDLTest_PrintRendererFlag |
( |
char * |
text, |
|
|
size_t |
maxlen, |
|
|
Uint32 |
flag |
|
) |
| |
|
static |
◆ SDLTest_ScreenShot()
Definition at line 1442 of file SDL_test_common.c.
1454 0x00FF0000, 0x0000FF00, 0x000000FF,
1456 0x000000FF, 0x0000FF00, 0x00FF0000,
References SDL_Rect::h, NULL, renderer, SDL_BYTEORDER, SDL_CreateRGBSurface, SDL_free, SDL_GetError, SDL_LIL_ENDIAN, SDL_Log, SDL_RenderGetViewport, SDL_RenderReadPixels, SDL_SaveBMP, viewport, and SDL_Rect::w.
Referenced by SDLTest_CommonEvent().
◆ audio_usage
const char* audio_usage[] |
|
static |
◆ video_usage
const char* video_usage[] |
|
static |
Initial value:= {
"[--video driver]", "[--renderer driver]", "[--gldebug]",
"[--info all|video|modes|render|event]",
"[--log all|error|system|audio|video|render|input]", "[--display N]",
"[--fullscreen | --fullscreen-desktop | --windows N]", "[--title title]",
"[--icon icon.bmp]", "[--center | --position X,Y]", "[--geometry WxH]",
"[--min-geometry WxH]", "[--max-geometry WxH]", "[--logical WxH]",
"[--scale N]", "[--depth N]", "[--refresh R]", "[--vsync]", "[--noframe]",
"[--resize]", "[--minimize]", "[--maximize]", "[--grab]",
"[--allow-highdpi]"
}
Definition at line 29 of file SDL_test_common.c.
Referenced by SDLTest_CommonLogUsage().
#define SDL_GetWindowDisplayIndex
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
#define SDL_SetClipboardText
#define SDL_GetPixelFormatName
SDL_bool SDL_DXGIGetOutputInfo(int displayIndex, int *adapterIndex, int *outputIndex)
Returns the DXGI Adapter and Output indices for the specified display index.
#define SDL_SetWindowMinimumSize
Mouse motion event structure (event.motion.*)
A collection of pixels used in software blitting.
#define SDL_WINDOWPOS_CENTERED
#define SDL_GetNumVideoDrivers
#define SDL_SetWindowSize
#define SDL_RenderGetClipRect
GLboolean GLboolean GLboolean b
GLuint GLsizei const GLchar * message
#define SDL_GetNumRenderDrivers
#define SDL_GetDisplayMode
void SDLTest_CommonLogUsage(SDLTest_CommonState *state, const char *argv0, const char **options)
Logs command line usage info.
#define SDL_SetWindowDisplayMode
#define SDL_GetDisplayName
static void SDL_snprintfcat(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, SDL_PRINTF_FORMAT_STRING const char *fmt,...)
#define SDL_SetWindowFullscreen
GLuint GLuint GLsizei count
#define SDL_GetWindowFlags
static void SDLTest_ScreenShot(SDL_Renderer *renderer)
#define SDL_BUTTON_X2MASK
#define SDL_WINDOWPOS_UNDEFINED
#define SDL_GetDesktopDisplayMode
SDL_FORCE_INLINE SDL_bool SDL_RectEmpty(const SDL_Rect *r)
Returns true if the rectangle has no area.
#define SDL_WINDOWPOS_ISCENTERED(X)
int SDLTest_CommonArg(SDLTest_CommonState *state, int index)
Process one common argument.
#define SDL_GetDisplayUsableBounds
GLfloat GLfloat GLfloat GLfloat h
GLuint GLsizei GLsizei * length
#define SDL_SetWindowIcon
#define SDL_GetNumVideoDisplays
static void SDLTest_PrintRendererFlag(char *text, size_t maxlen, Uint32 flag)
Information on the capabilities of a render driver or context.
static const char * video_usage[]
#define SDL_SetRelativeMouseMode
The type used to identify a window.
#define SDL_GetRenderDriverInfo
The structure that defines a display mode.
#define SDL_GetKeyboardFocus
static const char * ControllerButtonName(const SDL_GameControllerButton button)
static SDL_Surface * SDLTest_LoadIcon(const char *file)
#define SDL_GetWindowSize
#define SDL_MinimizeWindow
static void SDLTest_PrintPixelFormat(char *text, size_t maxlen, Uint32 format)
#define SDL_ShowSimpleMessageBox
#define SDL_SetWindowGrab
void SDLTest_LogAllocations(void)
Print a log of any outstanding allocations.
GLint GLint GLint GLint GLint x
EGLSurface EGLNativeWindowType * window
#define SDL_GL_SetAttribute
#define SDL_GetRelativeMouseMode
#define SDL_RenderGetViewport
static void SDLTest_PrintRenderer(SDL_RendererInfo *info)
#define SDL_GetClipboardText
#define DEFAULT_WINDOW_HEIGHT
#define SDL_WINDOWPOS_UNDEFINED_DISPLAY(X)
int SDL_Direct3D9GetAdapterIndex(int displayIndex)
Returns the D3D9 adapter index that matches the specified display index.
#define DEFAULT_WINDOW_WIDTH
#define SDL_PixelFormatEnumToMasks
#define SDL_GetWindowFromID
#define SDL_GetWindowPosition
static char text[MAX_TEXT_LENGTH]
#define SDL_RenderSetLogicalSize
#define SDL_GetDisplayBounds
#define SDL_LoadBMP(file)
#define SDL_RestoreWindow
static SDL_HitTestResult SDLTest_ExampleHitTestCallback(SDL_Window *win, const SDL_Point *area, void *data)
#define SDL_BUTTON_X1MASK
#define SDL_SetWindowOpacity
#define SDL_WINDOWPOS_CENTERED_DISPLAY(X)
int SDLTest_TrackAllocations(void)
Start tracking SDL memory allocations.
#define SDL_GetAudioDriver
#define SDL_OutOfMemory()
#define SDL_GetCurrentAudioDriver
#define SDL_GetWindowOpacity
GLint GLint GLint GLint GLint GLint y
#define SDL_GetVideoDriver
#define SDL_RenderSetScale
#define SDL_CreateRGBSurface
#define SDL_arraysize(array)
#define SDL_DestroyTexture
#define SDL_GetScancodeName
static SDL_Renderer * renderer
#define SDL_GetWindowGrab
#define SDL_GetCurrentVideoDriver
#define SDL_SetWindowHitTest
#define SDL_LogSetPriority
#define SDL_SetWindowBordered
A rectangle, with the origin at the upper left (integer).
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)
#define SDL_MaximizeWindow
#define SDL_GetGlobalMouseState
static void SDLTest_PrintEvent(SDL_Event *event)
#define SDL_GetDisplayDPI
#define SDL_LogSetAllPriority
Uint32 texture_formats[16]
#define SDL_CreateRenderer
#define SDL_RenderSetClipRect
#define SDL_DestroyRenderer
#define SDL_SaveBMP(surface, file)
#define SDL_GetNumDisplayModes
#define SDL_SetWindowPosition
static const char * DisplayOrientationName(int orientation)
static void FullscreenTo(int index, int windowId)
#define SDL_RenderReadPixels
#define SDL_HAT_RIGHTDOWN
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)
static const char * audio_usage[]
static const char * ControllerAxisName(const SDL_GameControllerAxis axis)
#define SDL_SetWindowMaximumSize
#define SDL_DestroyWindow
#define SDL_WINDOWPOS_ISUNDEFINED(X)
#define SDL_GetNumAudioDrivers
Uint32 num_texture_formats
GLubyte GLubyte GLubyte GLubyte w
#define SDL_GetRendererInfo