mirror of https://github.com/encounter/SDL.git
test: added SDLTest_CommonDefaultArgs()
This is for test apps that don't need custom command line arguments; it lets us reduce the boilerplate code a tiny bit.
This commit is contained in:
parent
18d83093a8
commit
00e5eeb40e
|
@ -158,6 +158,17 @@ const char *SDLTest_CommonUsage(SDLTest_CommonState * state);
|
||||||
*/
|
*/
|
||||||
SDL_bool SDLTest_CommonInit(SDLTest_CommonState * state);
|
SDL_bool SDLTest_CommonInit(SDLTest_CommonState * state);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Easy argument handling when test app doesn't need any custom args.
|
||||||
|
*
|
||||||
|
* \param state The common state describing the test window to create.
|
||||||
|
* \param argc argc, as supplied to SDL_main
|
||||||
|
* \param argv argv, as supplied to SDL_main
|
||||||
|
*
|
||||||
|
* \returns False if app should quit, true otherwise.
|
||||||
|
*/
|
||||||
|
SDL_bool SDLTest_CommonDefaultArgs(SDLTest_CommonState * state, const int argc, char **argv);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Common event handler for test windows.
|
* \brief Common event handler for test windows.
|
||||||
*
|
*
|
||||||
|
|
|
@ -489,6 +489,21 @@ SDLTest_CommonUsage(SDLTest_CommonState * state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDL_bool
|
||||||
|
SDLTest_CommonDefaultArgs(SDLTest_CommonState *state, const int argc, char **argv)
|
||||||
|
{
|
||||||
|
int i = 1;
|
||||||
|
while (i < argc) {
|
||||||
|
const int consumed = SDLTest_CommonArg(state, i);
|
||||||
|
if (consumed == 0) {
|
||||||
|
SDL_Log("Usage: %s %s\n", argv[0], SDLTest_CommonUsage(state));
|
||||||
|
return SDL_FALSE;
|
||||||
|
}
|
||||||
|
i += consumed;
|
||||||
|
}
|
||||||
|
return SDL_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
SDLTest_PrintRendererFlag(char *text, size_t maxlen, Uint32 flag)
|
SDLTest_PrintRendererFlag(char *text, size_t maxlen, Uint32 flag)
|
||||||
{
|
{
|
||||||
|
|
|
@ -268,9 +268,6 @@ loop(void)
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
|
|
||||||
/* !!! FIXME: there should be an SDLTest_CommonDefaultArgs() so apps don't need this. */
|
|
||||||
state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO);
|
state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO);
|
||||||
if (!state) {
|
if (!state) {
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -281,16 +278,8 @@ int main(int argc, char* argv[])
|
||||||
state->window_h = HEIGHT;
|
state->window_h = HEIGHT;
|
||||||
state->skip_renderer = SDL_TRUE;
|
state->skip_renderer = SDL_TRUE;
|
||||||
|
|
||||||
for (i = 1; i < argc;) {
|
if (!SDLTest_CommonDefaultArgs(state, argc, argv) || !SDLTest_CommonInit(state)) {
|
||||||
const int consumed = SDLTest_CommonArg(state, i);
|
SDLTest_CommonQuit(state);
|
||||||
if (consumed == 0) {
|
|
||||||
SDL_Log("Usage: %s %s\n", argv[0], SDLTest_CommonUsage(state));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
i += consumed;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!SDLTest_CommonInit(state)) {
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -174,18 +174,10 @@ main(int argc, char *argv[])
|
||||||
if (!state) {
|
if (!state) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
for (i = 1; i < argc;) {
|
|
||||||
int consumed;
|
|
||||||
|
|
||||||
consumed = SDLTest_CommonArg(state, i);
|
if (!SDLTest_CommonDefaultArgs(state, argc, argv) || !SDLTest_CommonInit(state)) {
|
||||||
if (consumed == 0) {
|
SDLTest_CommonQuit(state);
|
||||||
SDL_Log("Usage: %s %s\n", argv[0], SDLTest_CommonUsage(state));
|
return 1;
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
i += consumed;
|
|
||||||
}
|
|
||||||
if (!SDLTest_CommonInit(state)) {
|
|
||||||
quit(2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
drawstates = SDL_stack_alloc(DrawState, state->num_windows);
|
drawstates = SDL_stack_alloc(DrawState, state->num_windows);
|
||||||
|
|
|
@ -164,18 +164,10 @@ main(int argc, char *argv[])
|
||||||
if (!state) {
|
if (!state) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
for (i = 1; i < argc;) {
|
|
||||||
int consumed;
|
|
||||||
|
|
||||||
consumed = SDLTest_CommonArg(state, i);
|
if (!SDLTest_CommonDefaultArgs(state, argc, argv) || !SDLTest_CommonInit(state)) {
|
||||||
if (consumed == 0) {
|
SDLTest_CommonQuit(state);
|
||||||
SDL_Log("Usage: %s %s\n", argv[0], SDLTest_CommonUsage(state));
|
return 1;
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
i += consumed;
|
|
||||||
}
|
|
||||||
if (!SDLTest_CommonInit(state)) {
|
|
||||||
quit(2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
drawstates = SDL_stack_alloc(DrawState, state->num_windows);
|
drawstates = SDL_stack_alloc(DrawState, state->num_windows);
|
||||||
|
|
|
@ -1119,7 +1119,7 @@ static SDL_bool render(void)
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int fsaa, accel;
|
int fsaa, accel;
|
||||||
int i, done;
|
int done;
|
||||||
SDL_DisplayMode mode;
|
SDL_DisplayMode mode;
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
Uint32 then, now, frames;
|
Uint32 then, now, frames;
|
||||||
|
@ -1138,27 +1138,15 @@ int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
for(i = 1; i < argc;)
|
|
||||||
{
|
|
||||||
int consumed;
|
|
||||||
|
|
||||||
consumed = SDLTest_CommonArg(state, i);
|
|
||||||
if(consumed < 0)
|
|
||||||
{
|
|
||||||
SDL_Log("Usage: %s %s\n", argv[0], SDLTest_CommonUsage(state));
|
|
||||||
quit(1);
|
|
||||||
}
|
|
||||||
i += consumed;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Set Vulkan parameters */
|
/* Set Vulkan parameters */
|
||||||
state->window_flags |= SDL_WINDOW_VULKAN;
|
state->window_flags |= SDL_WINDOW_VULKAN;
|
||||||
state->num_windows = 1;
|
state->num_windows = 1;
|
||||||
state->skip_renderer = 1;
|
state->skip_renderer = 1;
|
||||||
|
|
||||||
if(!SDLTest_CommonInit(state))
|
if (!SDLTest_CommonDefaultArgs(state, argc, argv) || !SDLTest_CommonInit(state)) {
|
||||||
{
|
SDLTest_CommonQuit(state);
|
||||||
quit(2);
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_GetCurrentDisplayMode(0, &mode);
|
SDL_GetCurrentDisplayMode(0, &mode);
|
||||||
|
|
|
@ -129,21 +129,10 @@ main(int argc, char *argv[])
|
||||||
if (!state) {
|
if (!state) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
for (i = 1; i < argc;) {
|
|
||||||
int consumed;
|
|
||||||
|
|
||||||
consumed = SDLTest_CommonArg(state, i);
|
if (!SDLTest_CommonDefaultArgs(state, argc, argv) || !SDLTest_CommonInit(state)) {
|
||||||
if (consumed == 0) {
|
SDLTest_CommonQuit(state);
|
||||||
consumed = -1;
|
return 1;
|
||||||
}
|
|
||||||
if (consumed < 0) {
|
|
||||||
SDL_Log("Usage: %s %s\n", argv[0], SDLTest_CommonUsage(state));
|
|
||||||
quit(1);
|
|
||||||
}
|
|
||||||
i += consumed;
|
|
||||||
}
|
|
||||||
if (!SDLTest_CommonInit(state)) {
|
|
||||||
quit(2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_EventState(SDL_DROPFILE, SDL_ENABLE);
|
SDL_EventState(SDL_DROPFILE, SDL_ENABLE);
|
||||||
|
|
Loading…
Reference in New Issue