30 "[--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]" 33 "[--rate N] [--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE] [--channels N] [--samples N]" 85 char **argv = state->
argv;
240 while (*y && *y !=
',') {
259 while (*h && *h !=
'x') {
278 while (*h && *h !=
'x') {
297 while (*h && *h !=
'x') {
316 while (*h && *h !=
'x') {
443 if (
SDL_strcmp(argv[index],
"-NSDocumentRevisionsDebugMode") == 0) {
470 fprintf(stderr,
"PresentVSync");
473 fprintf(stderr,
"Accelerated");
476 fprintf(stderr,
"0x%8.8x", flag);
486 fprintf(stderr,
"Unknwon");
489 fprintf(stderr,
"Index1LSB");
492 fprintf(stderr,
"Index1MSB");
495 fprintf(stderr,
"Index4LSB");
498 fprintf(stderr,
"Index4MSB");
501 fprintf(stderr,
"Index8");
504 fprintf(stderr,
"RGB332");
507 fprintf(stderr,
"RGB444");
510 fprintf(stderr,
"RGB555");
513 fprintf(stderr,
"BGR555");
516 fprintf(stderr,
"ARGB4444");
519 fprintf(stderr,
"ABGR4444");
522 fprintf(stderr,
"ARGB1555");
525 fprintf(stderr,
"ABGR1555");
528 fprintf(stderr,
"RGB565");
531 fprintf(stderr,
"BGR565");
534 fprintf(stderr,
"RGB24");
537 fprintf(stderr,
"BGR24");
540 fprintf(stderr,
"RGB888");
543 fprintf(stderr,
"BGR888");
546 fprintf(stderr,
"ARGB8888");
549 fprintf(stderr,
"RGBA8888");
552 fprintf(stderr,
"ABGR8888");
555 fprintf(stderr,
"BGRA8888");
558 fprintf(stderr,
"ARGB2101010");
561 fprintf(stderr,
"YV12");
564 fprintf(stderr,
"IYUV");
567 fprintf(stderr,
"YUY2");
570 fprintf(stderr,
"UYVY");
573 fprintf(stderr,
"YVYU");
576 fprintf(stderr,
"NV12");
579 fprintf(stderr,
"NV21");
582 fprintf(stderr,
"0x%8.8x", format);
592 fprintf(stderr,
" Renderer %s:\n", info->
name);
594 fprintf(stderr,
" Flags: 0x%8.8X", info->
flags);
595 fprintf(stderr,
" (");
597 for (i = 0; i <
sizeof(info->
flags) * 8; ++
i) {
599 if (info->
flags & flag) {
601 fprintf(stderr,
" | ");
607 fprintf(stderr,
")\n");
612 fprintf(stderr,
", ");
616 fprintf(stderr,
"\n");
619 fprintf(stderr,
" Max Texture Size: %dx%d\n",
632 fprintf(stderr,
"Couldn't load %s: %s\n", file,
SDL_GetError());
654 fprintf(stderr,
"No built-in video drivers\n");
656 fprintf(stderr,
"Built-in video drivers:");
657 for (i = 0; i <
n; ++
i) {
659 fprintf(stderr,
",");
663 fprintf(stderr,
"\n");
667 fprintf(stderr,
"Couldn't initialize video driver: %s\n",
672 fprintf(stderr,
"Video driver: %s\n",
712 Uint32 Rmask, Gmask, Bmask, Amask;
713 #if SDL_VIDEO_DRIVER_WINDOWS 714 int adapterIndex = 0;
718 fprintf(stderr,
"Number of displays: %d\n", n);
719 for (i = 0; i <
n; ++
i) {
724 fprintf(stderr,
"Bounds: %dx%d at %d,%d\n", bounds.
w, bounds.
h, bounds.
x, bounds.
y);
730 " Current mode: %dx%d@%dHz, %d bits-per-pixel (%s)\n",
733 if (Rmask || Gmask || Bmask) {
734 fprintf(stderr,
" Red Mask = 0x%.8x\n", Rmask);
735 fprintf(stderr,
" Green Mask = 0x%.8x\n", Gmask);
736 fprintf(stderr,
" Blue Mask = 0x%.8x\n", Bmask);
738 fprintf(stderr,
" Alpha Mask = 0x%.8x\n", Amask);
744 fprintf(stderr,
"No available fullscreen video modes\n");
746 fprintf(stderr,
" Fullscreen video modes:\n");
747 for (j = 0; j <
m; ++
j) {
750 &Gmask, &Bmask, &Amask);
752 " Mode %d: %dx%d@%dHz, %d bits-per-pixel (%s)\n",
755 if (Rmask || Gmask || Bmask) {
756 fprintf(stderr,
" Red Mask = 0x%.8x\n",
758 fprintf(stderr,
" Green Mask = 0x%.8x\n",
760 fprintf(stderr,
" Blue Mask = 0x%.8x\n",
764 " Alpha Mask = 0x%.8x\n",
770 #if SDL_VIDEO_DRIVER_WINDOWS 773 fprintf( stderr,
"D3D9 Adapter Index: %d", adapterIndex );
777 fprintf( stderr,
"DXGI Adapter Index: %d Output Index: %d", adapterIndex, outputIndex );
787 fprintf(stderr,
"No built-in render drivers\n");
789 fprintf(stderr,
"Built-in render drivers:\n");
790 for (i = 0; i <
n; ++
i) {
798 switch (state->
depth) {
827 fprintf(stderr,
"Out of memory!\n");
844 fprintf(stderr,
"Couldn't create window: %s\n",
857 printf(
"Window requested size %dx%d, got %dx%d\n", state->
window_w, state->
window_h, w, h);
862 fprintf(stderr,
"Can't set up fullscreen display mode: %s\n",
887 for (j = 0; j <
n; ++
j) {
897 "Couldn't find render driver named %s",
905 fprintf(stderr,
"Couldn't create renderer: %s\n",
911 }
else if (state->
scale) {
917 fprintf(stderr,
"Current renderer:\n");
929 fprintf(stderr,
"No built-in audio drivers\n");
931 fprintf(stderr,
"Built-in audio drivers:");
932 for (i = 0; i <
n; ++
i) {
934 fprintf(stderr,
",");
938 fprintf(stderr,
"\n");
942 fprintf(stderr,
"Couldn't initialize audio driver: %s\n",
947 fprintf(stderr,
"Audio driver: %s\n",
952 fprintf(stderr,
"Couldn't open audio: %s\n",
SDL_GetError());
965 #define AXIS_CASE(ax) case SDL_CONTROLLER_AXIS_##ax: return #ax 974 default:
return "???";
983 #define BUTTON_CASE(btn) case SDL_CONTROLLER_BUTTON_##btn: return #btn 1001 default:
return "???";
1013 switch (event->
type) {
1026 SDL_Log(
"SDL EVENT: Window %d moved to %d,%d",
1031 SDL_Log(
"SDL EVENT: Window %d resized to %dx%d",
1036 SDL_Log(
"SDL EVENT: Window %d changed size to %dx%d",
1050 SDL_Log(
"SDL EVENT: Mouse entered window %d",
1057 SDL_Log(
"SDL EVENT: Window %d gained keyboard focus",
1061 SDL_Log(
"SDL EVENT: Window %d lost keyboard focus",
1068 SDL_Log(
"SDL EVENT: Window %d got unknown event %d",
1074 SDL_Log(
"SDL EVENT: Keyboard: key pressed in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s",
1081 SDL_Log(
"SDL EVENT: Keyboard: key released in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s",
1088 SDL_Log(
"SDL EVENT: Keyboard: text input \"%s\" in window %d",
1092 SDL_Log(
"SDL EVENT: Mouse: moved to %d,%d (%d,%d) in window %d",
1098 SDL_Log(
"SDL EVENT: Mouse: button %d pressed at %d,%d with click count %d in window %d",
1103 SDL_Log(
"SDL EVENT: Mouse: button %d released at %d,%d with click count %d in window %d",
1108 SDL_Log(
"SDL EVENT: Mouse: wheel scrolled %d in x and %d in y (reversed: %d) in window %d",
1112 SDL_Log(
"SDL EVENT: Joystick index %d attached",
1116 SDL_Log(
"SDL EVENT: Joystick %d removed",
1120 SDL_Log(
"SDL EVENT: Joystick %d: ball %d moved by %d,%d",
1126 const char *position =
"UNKNOWN";
1129 position =
"CENTER";
1135 position =
"RIGHTUP";
1141 position =
"RIGHTDOWN";
1147 position =
"LEFTDOWN";
1153 position =
"LEFTUP";
1161 SDL_Log(
"SDL EVENT: Joystick %d: button %d pressed",
1165 SDL_Log(
"SDL EVENT: Joystick %d: button %d released",
1169 SDL_Log(
"SDL EVENT: Controller index %d attached",
1173 SDL_Log(
"SDL EVENT: Controller %d removed",
1177 SDL_Log(
"SDL EVENT: Controller %d axis %d ('%s') value: %d",
1184 SDL_Log(
"SDL EVENT: Controller %d button %d ('%s') down",
1189 SDL_Log(
"SDL EVENT: Controller %d button %d ('%s') up",
1194 SDL_Log(
"SDL EVENT: Clipboard updated");
1199 SDL_Log(
"SDL EVENT: Finger: %s touch=%ld, finger=%ld, x=%f, y=%f, dx=%f, dy=%f, pressure=%f",
1217 SDL_Log(
"SDL EVENT: render device reset");
1220 SDL_Log(
"SDL EVENT: render targets reset");
1224 SDL_Log(
"SDL EVENT: Quit requested");
1248 0x00FF0000, 0x0000FF00, 0x000000FF,
1250 0x000000FF, 0x0000FF00, 0x00FF0000,
1254 fprintf(stderr,
"Couldn't create surface: %s\n",
SDL_GetError());
1260 fprintf(stderr,
"Couldn't read screen: %s\n",
SDL_GetError());
1266 fprintf(stderr,
"Couldn't save screenshot.bmp: %s\n",
SDL_GetError());
1276 struct SDL_Rect rect = { 0, 0, 0, 0 };
1304 switch (event->
type) {
1312 if (window == state->
windows[i]) {
1342 if (window == state->
windows[i]) {
1375 printf(
"Copied text to clipboard\n");
1402 SDL_Log(
"%sapturing mouse %s!\n", shouldCapture ?
"C" :
"Unc", (rc == 0) ?
"succeeded" :
"failed");
1411 printf(
"Clipboard: %s\n", text);
1413 printf(
"Clipboard is empty\n");
1468 }
else if (withAlt) {
1479 }
else if (withShift) {
1509 SDL_Log(
"ABSOLUTE MOUSE: (%d, %d)%s%s%s%s%s\n", x, y,
1541 SDL_snprintf(message,
sizeof(message),
"(%i, %i), rel (%i, %i)\n", lastEvent.
x, lastEvent.
y, lastEvent.
xrel, lastEvent.
yrel);
1554 lastEvent =
event->motion;
#define SDL_WINDOWPOS_ISUNDEFINED(X)
#define SDL_RenderReadPixels
#define SDL_GetNumAudioDrivers
SDL_MouseMotionEvent motion
#define SDL_SetWindowMaximumSize
#define SDL_WINDOWPOS_CENTERED
#define SDL_GetNumVideoDrivers
SDL_ControllerAxisEvent caxis
SDL_JoyDeviceEvent jdevice
#define SDL_SetWindowDisplayMode
static SDL_Surface * SDLTest_LoadIcon(const char *file)
SDL_DollarGestureEvent dgesture
#define SDL_RenderGetClipRect
#define SDL_GetDisplayMode
uint32_t Uint32
An unsigned 32-bit integer type.
SDL_bool SDL_DXGIGetOutputInfo(int displayIndex, int *adapterIndex, int *outputIndex)
Returns the DXGI Adapter and Output indices for the specified display index.
#define SDL_SetWindowFullscreen
#define SDL_SetWindowMinimumSize
SDL_ControllerDeviceEvent cdevice
#define SDL_LoadBMP(file)
GLuint GLsizei const GLchar * message
SDL_JoyButtonEvent jbutton
GLuint GLuint GLsizei count
#define SDL_BUTTON_X2MASK
#define SDL_GetNumRenderDrivers
#define SDL_SetWindowSize
A collection of pixels used in software blitting.
#define SDL_GetDesktopDisplayMode
#define SDL_GetDisplayName
Uint32 texture_formats[16]
The structure that defines a display mode.
#define SDL_GetWindowFlags
#define SDL_WINDOWPOS_ISCENTERED(X)
#define SDL_SaveBMP(surface, file)
SDL_bool SDLTest_CommonInit(SDLTest_CommonState *state)
Open test window.
const char * renderdriver
#define SDL_WINDOWPOS_UNDEFINED
#define SDL_SetRelativeMouseMode
#define SDL_GetKeyboardFocus
#define SDL_MinimizeWindow
#define SDL_GetRenderDriverInfo
GLint GLint GLint GLint GLint x
SDL_FORCE_INLINE SDL_bool SDL_RectEmpty(const SDL_Rect *r)
Returns true if the rectangle has no area.
SDL_MouseWheelEvent wheel
static void SDLTest_PrintPixelFormat(Uint32 format)
#define SDL_SetWindowIcon
#define SDL_GetNumVideoDisplays
int SDL_Direct3D9GetAdapterIndex(int displayIndex)
Returns the D3D9 adapter index that matches the specified display index.
#define SDL_GL_SetAttribute
#define SDL_GetWindowSize
#define SDL_GetRelativeMouseMode
void * SDL_calloc(size_t nmemb, size_t size)
char text[SDL_TEXTINPUTEVENT_TEXT_SIZE]
#define SDL_ShowSimpleMessageBox
#define SDL_GetClipboardText
#define SDL_HAT_RIGHTDOWN
static const char * ControllerButtonName(const SDL_GameControllerButton button)
int gl_multisamplebuffers
#define SDL_WINDOWPOS_UNDEFINED_DISPLAY(X)
static void SDLTest_PrintRenderer(SDL_RendererInfo *info)
#define SDL_SetWindowGrab
uint8_t Uint8
An unsigned 8-bit integer type.
SDL_MultiGestureEvent mgesture
void SDLTest_CommonEvent(SDLTest_CommonState *state, SDL_Event *event, int *done)
Common event handler for test windows.
#define SDL_RenderSetLogicalSize
void SDLTest_CommonQuit(SDLTest_CommonState *state)
Close test window.
#define SDL_BUTTON_X1MASK
#define SDL_RenderGetViewport
#define SDL_GetDisplayBounds
SDLTest_CommonState * SDLTest_CommonCreateState(char **argv, Uint32 flags)
Parse command line parameters and create common state.
int gl_multisamplesamples
#define DEFAULT_WINDOW_HEIGHT
#define SDL_GetAudioDriver
#define SDL_PixelFormatEnumToMasks
#define SDL_GetWindowFromID
static void SDLTest_PrintRendererFlag(Uint32 flag)
#define SDL_RenderSetScale
#define SDL_RestoreWindow
SDL_Renderer ** renderers
static void SDLTest_PrintEvent(SDL_Event *event)
#define SDL_WINDOWPOS_CENTERED_DISPLAY(X)
const char * SDLTest_CommonUsage(SDLTest_CommonState *state)
Returns common usage information.
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)
#define SDL_LogSetPriority
#define SDL_GetCurrentAudioDriver
#define SDL_OutOfMemory()
#define SDL_GetCurrentVideoDriver
#define SDL_SetWindowBordered
#define SDL_GetVideoDriver
Information on the capabilities of a render driver or context.
static char text[MAX_TEXT_LENGTH]
Mouse motion event structure (event.motion.*)
#define SDL_CreateRGBSurface
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
#define SDL_GetScancodeName
GLint GLint GLint GLint GLint GLint y
#define SDL_DestroyTexture
SDL_ControllerButtonEvent cbutton
The type used to identify a window.
#define SDL_GetWindowGrab
static const char * ControllerAxisName(const SDL_GameControllerAxis axis)
#define SDL_GetGlobalMouseState
#define SDL_LogSetAllPriority
SDL_MouseButtonEvent button
static void SDLTest_ScreenShot(SDL_Renderer *renderer)
uint16_t Uint16
An unsigned 16-bit integer type.
Uint32 num_texture_formats
#define SDL_arraysize(array)
#define SDL_RenderSetClipRect
#define SDL_GetNumDisplayModes
GLubyte GLubyte GLubyte GLubyte w
#define SDL_DestroyRenderer
#define SDL_MaximizeWindow
static void FullscreenTo(int index, int windowId)
int64_t Sint64
A signed 64-bit integer type.
#define SDL_DestroyWindow
GLboolean GLboolean GLboolean b
#define DEFAULT_WINDOW_WIDTH
#define SDL_SetWindowPosition
GLfloat GLfloat GLfloat GLfloat h
#define SDL_CreateRenderer
A rectangle, with the origin at the upper left.
#define SDL_GetRendererInfo
int SDLTest_CommonArg(SDLTest_CommonState *state, int index)
Process one common argument.
#define SDL_SetClipboardText
SDL_TouchFingerEvent tfinger
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)
const char * window_title
#define SDL_GetPixelFormatName