From 66dc3056429ee8f7ede94195add9c406fdf35f7b Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 26 Mar 2011 21:27:23 -0700 Subject: [PATCH] Temporarily removing sprite and sprite2 at Frank's request --- test/nds-test-progs/sprite/Makefile | 132 --- test/nds-test-progs/sprite/source/common.c | 965 ------------------ test/nds-test-progs/sprite/source/common.h | 48 - .../nds-test-progs/sprite/source/testsprite.c | 316 ------ test/nds-test-progs/sprite2/Makefile | 132 --- test/nds-test-progs/sprite2/icon.bmp | Bin 578 -> 0 bytes test/nds-test-progs/sprite2/source/common.c | 965 ------------------ test/nds-test-progs/sprite2/source/common.h | 48 - .../sprite2/source/testsprite2.c | 270 ----- 9 files changed, 2876 deletions(-) delete mode 100755 test/nds-test-progs/sprite/Makefile delete mode 100755 test/nds-test-progs/sprite/source/common.c delete mode 100755 test/nds-test-progs/sprite/source/common.h delete mode 100755 test/nds-test-progs/sprite/source/testsprite.c delete mode 100755 test/nds-test-progs/sprite2/Makefile delete mode 100644 test/nds-test-progs/sprite2/icon.bmp delete mode 100755 test/nds-test-progs/sprite2/source/common.c delete mode 100755 test/nds-test-progs/sprite2/source/common.h delete mode 100755 test/nds-test-progs/sprite2/source/testsprite2.c diff --git a/test/nds-test-progs/sprite/Makefile b/test/nds-test-progs/sprite/Makefile deleted file mode 100755 index 0f59a0e76..000000000 --- a/test/nds-test-progs/sprite/Makefile +++ /dev/null @@ -1,132 +0,0 @@ -#--------------------------------------------------------------------------------- -.SUFFIXES: -#--------------------------------------------------------------------------------- - -ifeq ($(strip $(DEVKITARM)),) -$(error "Please set DEVKITARM in your environment. export DEVKITARM=devkitARM") -endif - -include $(DEVKITARM)/ds_rules - -#--------------------------------------------------------------------------------- -# TARGET is the name of the output -# BUILD is the directory where object files & intermediate files will be placed -# SOURCES is a list of directories containing source code -# INCLUDES is a list of directories containing extra header files -#--------------------------------------------------------------------------------- -TARGET := $(shell basename $(CURDIR)) -BUILD := build -SOURCES := source -DATA := data -INCLUDES := include - -#--------------------------------------------------------------------------------- -# options for code generation -#--------------------------------------------------------------------------------- -ARCH := -mthumb -mthumb-interwork - -# note: arm9tdmi isn't the correct CPU arch, but anything newer and LD -# *insists* it has a FPU or VFP, and it won't take no for an answer! -CFLAGS := -save-temps -g -Wall -O0\ - -mcpu=arm9tdmi -mtune=arm9tdmi \ - $(ARCH) - -CFLAGS += $(INCLUDE) -DARM9 -D__NDS__ -CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -fno-exceptions -fno-rtti - -ASFLAGS := -g $(ARCH) -LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -mno-fpu -Wl,-Map,$(notdir $*.map) - -#--------------------------------------------------------------------------------- -# any extra libraries we wish to link with the project -#--------------------------------------------------------------------------------- -LIBS := -lSDL -lfat -lnds9 - - -#--------------------------------------------------------------------------------- -# list of directories containing libraries, this must be the top level containing -# include and lib -#--------------------------------------------------------------------------------- -LIBDIRS := $(LIBNDS) - -#--------------------------------------------------------------------------------- -# no real need to edit anything past this point unless you need to add additional -# rules for different file extensions -#--------------------------------------------------------------------------------- -ifneq ($(BUILD),$(notdir $(CURDIR))) -#--------------------------------------------------------------------------------- - -export OUTPUT := $(CURDIR)/$(TARGET) - -export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ - $(foreach dir,$(DATA),$(CURDIR)/$(dir)) - -export DEPSDIR := $(CURDIR)/$(BUILD) - -CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) -CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) -SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) -BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) - -#--------------------------------------------------------------------------------- -# use CXX for linking C++ projects, CC for standard C -#--------------------------------------------------------------------------------- -ifeq ($(strip $(CPPFILES)),) -#--------------------------------------------------------------------------------- - export LD := $(CC) -#--------------------------------------------------------------------------------- -else -#--------------------------------------------------------------------------------- - export LD := $(CXX) -#--------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------- - -export OFILES := $(addsuffix .o,$(BINFILES)) \ - $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) - -export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ - $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ - $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ - -I$(CURDIR)/$(BUILD) - -export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) - -.PHONY: $(BUILD) clean - -#--------------------------------------------------------------------------------- -$(BUILD): - @[ -d $@ ] || mkdir -p $@ - @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile - -#--------------------------------------------------------------------------------- -clean: - @echo clean ... - @rm -fr $(BUILD) $(TARGET).elf $(TARGET).nds $(TARGET).arm9 $(TARGET).ds.gba - - -#--------------------------------------------------------------------------------- -else - -DEPENDS := $(OFILES:.o=.d) - -#--------------------------------------------------------------------------------- -# main targets -#--------------------------------------------------------------------------------- -$(OUTPUT).ds.gba : $(OUTPUT).nds -$(OUTPUT).nds : $(OUTPUT).arm9 -$(OUTPUT).arm9 : $(OUTPUT).elf -$(OUTPUT).elf : $(OFILES) - -#--------------------------------------------------------------------------------- -%.pcx.o : %.pcx -#--------------------------------------------------------------------------------- - @echo $(notdir $<) - @$(bin2o) - - --include $(DEPENDS) - -#--------------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------------- diff --git a/test/nds-test-progs/sprite/source/common.c b/test/nds-test-progs/sprite/source/common.c deleted file mode 100755 index 021ab8b08..000000000 --- a/test/nds-test-progs/sprite/source/common.c +++ /dev/null @@ -1,965 +0,0 @@ - -/* A simple test program framework */ - -#include - -#include "common.h" - -#define VIDEO_USAGE \ -"[--video driver] [--renderer driver] [--info all|video|modes|render|event] [--display %d] [--fullscreen | --windows N] [--title title] [--center | --position X,Y] [--geometry WxH] [--depth N] [--refresh R] [--vsync] [--noframe] [--resize] [--minimize] [--maximize] [--grab]" - -#define AUDIO_USAGE \ -"[--rate N] [--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE] [--channels N] [--samples N]" - -CommonState * -CommonCreateState(char **argv, Uint32 flags) -{ - CommonState *state = SDL_calloc(1, sizeof(*state)); - if (!state) { - SDL_OutOfMemory(); - return NULL; - } - - /* Initialize some defaults */ - state->argv = argv; - state->flags = flags; - state->window_title = argv[0]; - state->window_flags = SDL_WINDOW_SHOWN; - state->window_x = SDL_WINDOWPOS_UNDEFINED; - state->window_y = SDL_WINDOWPOS_UNDEFINED; - state->window_w = 256; - state->window_h = 192; - state->num_windows = 1; - state->audiospec.freq = 22050; - state->audiospec.format = AUDIO_S16; - state->audiospec.channels = 2; - state->audiospec.samples = 2048; - return state; -} - -int -CommonArg(CommonState * state, int index) -{ - char **argv = state->argv; - - if (SDL_strcasecmp(argv[index], "--video") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->videodriver = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--renderer") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->renderdriver = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--info") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - if (SDL_strcasecmp(argv[index], "all") == 0) { - state->verbose |= - (VERBOSE_VIDEO | VERBOSE_MODES | VERBOSE_RENDER | - VERBOSE_EVENT); - return 2; - } - if (SDL_strcasecmp(argv[index], "video") == 0) { - state->verbose |= VERBOSE_VIDEO; - return 2; - } - if (SDL_strcasecmp(argv[index], "modes") == 0) { - state->verbose |= VERBOSE_MODES; - return 2; - } - if (SDL_strcasecmp(argv[index], "render") == 0) { - state->verbose |= VERBOSE_RENDER; - return 2; - } - if (SDL_strcasecmp(argv[index], "event") == 0) { - state->verbose |= VERBOSE_EVENT; - return 2; - } - return -1; - } - if (SDL_strcasecmp(argv[index], "--display") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->display = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--fullscreen") == 0) { - state->window_flags |= SDL_WINDOW_FULLSCREEN; - state->num_windows = 1; - return 1; - } - if (SDL_strcasecmp(argv[index], "--windows") == 0) { - ++index; - if (!argv[index] || !SDL_isdigit(*argv[index])) { - return -1; - } - if (!(state->window_flags & SDL_WINDOW_FULLSCREEN)) { - state->num_windows = SDL_atoi(argv[index]); - } - return 2; - } - if (SDL_strcasecmp(argv[index], "--title") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->window_title = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--center") == 0) { - state->window_x = SDL_WINDOWPOS_CENTERED; - state->window_y = SDL_WINDOWPOS_CENTERED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--position") == 0) { - char *x, *y; - ++index; - if (!argv[index]) { - return -1; - } - x = argv[index]; - y = argv[index]; - while (*y && *y != ',') { - ++y; - } - if (!*y) { - return -1; - } - *y++ = '\0'; - state->window_x = SDL_atoi(x); - state->window_y = SDL_atoi(y); - return 2; - } - if (SDL_strcasecmp(argv[index], "--geometry") == 0) { - char *w, *h; - ++index; - if (!argv[index]) { - return -1; - } - w = argv[index]; - h = argv[index]; - while (*h && *h != 'x') { - ++h; - } - if (!*h) { - return -1; - } - *h++ = '\0'; - state->window_w = SDL_atoi(w); - state->window_h = SDL_atoi(h); - return 2; - } - if (SDL_strcasecmp(argv[index], "--depth") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->depth = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--refresh") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->refresh_rate = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--vsync") == 0) { - state->render_flags |= SDL_RENDERER_PRESENTVSYNC; - return 1; - } - if (SDL_strcasecmp(argv[index], "--noframe") == 0) { - state->window_flags |= SDL_WINDOW_BORDERLESS; - return 1; - } - if (SDL_strcasecmp(argv[index], "--resize") == 0) { - state->window_flags |= SDL_WINDOW_RESIZABLE; - return 1; - } - if (SDL_strcasecmp(argv[index], "--minimize") == 0) { - state->window_flags |= SDL_WINDOW_MINIMIZED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--maximize") == 0) { - state->window_flags |= SDL_WINDOW_MAXIMIZED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--grab") == 0) { - state->window_flags |= SDL_WINDOW_INPUT_GRABBED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--rate") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.freq = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--format") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - if (SDL_strcasecmp(argv[index], "U8") == 0) { - state->audiospec.format = AUDIO_U8; - return 2; - } - if (SDL_strcasecmp(argv[index], "S8") == 0) { - state->audiospec.format = AUDIO_S8; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16") == 0) { - state->audiospec.format = AUDIO_U16; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16LE") == 0) { - state->audiospec.format = AUDIO_U16LSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16BE") == 0) { - state->audiospec.format = AUDIO_U16MSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16") == 0) { - state->audiospec.format = AUDIO_S16; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16LE") == 0) { - state->audiospec.format = AUDIO_S16LSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16BE") == 0) { - state->audiospec.format = AUDIO_S16MSB; - return 2; - } - return -1; - } - if (SDL_strcasecmp(argv[index], "--channels") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.channels = (Uint8) SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--samples") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.samples = (Uint16) SDL_atoi(argv[index]); - return 2; - } - if ((SDL_strcasecmp(argv[index], "-h") == 0) - || (SDL_strcasecmp(argv[index], "--help") == 0)) { - /* Print the usage message */ - return -1; - } - return 0; -} - -const char * -CommonUsage(CommonState * state) -{ - switch (state->flags & (SDL_INIT_VIDEO | SDL_INIT_AUDIO)) { - case SDL_INIT_VIDEO: - return VIDEO_USAGE; - case SDL_INIT_AUDIO: - return AUDIO_USAGE; - case (SDL_INIT_VIDEO | SDL_INIT_AUDIO): - return VIDEO_USAGE " " AUDIO_USAGE; - default: - return ""; - } -} - -static void -PrintRendererFlag(Uint32 flag) -{ - switch (flag) { - case SDL_RENDERER_SINGLEBUFFER: - fprintf(stderr, "SingleBuffer"); - break; - case SDL_RENDERER_PRESENTCOPY: - fprintf(stderr, "PresentCopy"); - break; - case SDL_RENDERER_PRESENTFLIP2: - fprintf(stderr, "PresentFlip2"); - break; - case SDL_RENDERER_PRESENTFLIP3: - fprintf(stderr, "PresentFlip3"); - break; - case SDL_RENDERER_PRESENTDISCARD: - fprintf(stderr, "PresentDiscard"); - break; - case SDL_RENDERER_PRESENTVSYNC: - fprintf(stderr, "PresentVSync"); - break; - case SDL_RENDERER_ACCELERATED: - fprintf(stderr, "Accelerated"); - break; - default: - fprintf(stderr, "0x%8.8x", flag); - break; - } -} - -static void -PrintBlendMode(Uint32 flag) -{ - switch (flag) { - case SDL_BLENDMODE_NONE: - fprintf(stderr, "None"); - break; - case SDL_BLENDMODE_MASK: - fprintf(stderr, "Mask"); - break; - case SDL_BLENDMODE_BLEND: - fprintf(stderr, "Blend"); - break; - case SDL_BLENDMODE_ADD: - fprintf(stderr, "Add"); - break; - case SDL_BLENDMODE_MOD: - fprintf(stderr, "Mod"); - break; - default: - fprintf(stderr, "0x%8.8x", flag); - break; - } -} - -static void -PrintScaleMode(Uint32 flag) -{ - switch (flag) { - case SDL_TEXTURESCALEMODE_NONE: - fprintf(stderr, "None"); - break; - case SDL_TEXTURESCALEMODE_FAST: - fprintf(stderr, "Fast"); - break; - case SDL_TEXTURESCALEMODE_SLOW: - fprintf(stderr, "Slow"); - break; - case SDL_TEXTURESCALEMODE_BEST: - fprintf(stderr, "Best"); - break; - default: - fprintf(stderr, "0x%8.8x", flag); - break; - } -} - -static void -PrintPixelFormat(Uint32 format) -{ - switch (format) { - case SDL_PIXELFORMAT_UNKNOWN: - fprintf(stderr, "Unknwon"); - break; - case SDL_PIXELFORMAT_INDEX1LSB: - fprintf(stderr, "Index1LSB"); - break; - case SDL_PIXELFORMAT_INDEX1MSB: - fprintf(stderr, "Index1MSB"); - break; - case SDL_PIXELFORMAT_INDEX4LSB: - fprintf(stderr, "Index4LSB"); - break; - case SDL_PIXELFORMAT_INDEX4MSB: - fprintf(stderr, "Index4MSB"); - break; - case SDL_PIXELFORMAT_INDEX8: - fprintf(stderr, "Index8"); - break; - case SDL_PIXELFORMAT_RGB332: - fprintf(stderr, "RGB332"); - break; - case SDL_PIXELFORMAT_RGB444: - fprintf(stderr, "RGB444"); - break; - case SDL_PIXELFORMAT_RGB555: - fprintf(stderr, "RGB555"); - break; - case SDL_PIXELFORMAT_ARGB4444: - fprintf(stderr, "ARGB4444"); - break; - case SDL_PIXELFORMAT_ARGB1555: - fprintf(stderr, "ARGB1555"); - break; - case SDL_PIXELFORMAT_RGB565: - fprintf(stderr, "RGB565"); - break; - case SDL_PIXELFORMAT_RGB24: - fprintf(stderr, "RGB24"); - break; - case SDL_PIXELFORMAT_BGR24: - fprintf(stderr, "BGR24"); - break; - case SDL_PIXELFORMAT_RGB888: - fprintf(stderr, "RGB888"); - break; - case SDL_PIXELFORMAT_BGR888: - fprintf(stderr, "BGR888"); - break; - case SDL_PIXELFORMAT_ARGB8888: - fprintf(stderr, "ARGB8888"); - break; - case SDL_PIXELFORMAT_RGBA8888: - fprintf(stderr, "RGBA8888"); - break; - case SDL_PIXELFORMAT_ABGR8888: - fprintf(stderr, "ABGR8888"); - break; - case SDL_PIXELFORMAT_BGRA8888: - fprintf(stderr, "BGRA8888"); - break; - case SDL_PIXELFORMAT_ARGB2101010: - fprintf(stderr, "ARGB2101010"); - break; - case SDL_PIXELFORMAT_YV12: - fprintf(stderr, "YV12"); - break; - case SDL_PIXELFORMAT_IYUV: - fprintf(stderr, "IYUV"); - break; - case SDL_PIXELFORMAT_YUY2: - fprintf(stderr, "YUY2"); - break; - case SDL_PIXELFORMAT_UYVY: - fprintf(stderr, "UYVY"); - break; - case SDL_PIXELFORMAT_YVYU: - fprintf(stderr, "YVYU"); - break; - case SDL_PIXELFORMAT_ABGR1555: - fprintf(stderr, "ABGR1555"); - break; - case SDL_PIXELFORMAT_BGR555: - fprintf(stderr, "BGR555"); - break; - default: - fprintf(stderr, "0x%8.8x", format); - break; - } -} - -static void -PrintRenderer(SDL_RendererInfo * info) -{ - int i, count; - - fprintf(stderr, " Renderer %s:\n", info->name); - - fprintf(stderr, " Flags: 0x%8.8X", info->flags); - fprintf(stderr, " ("); - count = 0; - for (i = 0; i < sizeof(info->flags) * 8; ++i) { - Uint32 flag = (1 << i); - if (info->flags & flag) { - if (count > 0) { - fprintf(stderr, " | "); - } - PrintRendererFlag(flag); - ++count; - } - } - fprintf(stderr, ")\n"); - - fprintf(stderr, " Blend: 0x%8.8X", info->blend_modes); - fprintf(stderr, " ("); - count = 0; - for (i = 0; i < sizeof(info->blend_modes) * 8; ++i) { - Uint32 flag = (1 << i); - if (info->blend_modes & flag) { - if (count > 0) { - fprintf(stderr, " | "); - } - PrintBlendMode(flag); - ++count; - } - } - fprintf(stderr, ")\n"); - - fprintf(stderr, " Scale: 0x%8.8X", info->scale_modes); - fprintf(stderr, " ("); - count = 0; - for (i = 0; i < sizeof(info->scale_modes) * 8; ++i) { - Uint32 flag = (1 << i); - if (info->scale_modes & flag) { - if (count > 0) { - fprintf(stderr, " | "); - } - PrintScaleMode(flag); - ++count; - } - } - fprintf(stderr, ")\n"); - - fprintf(stderr, " Texture formats (%d): ", info->num_texture_formats); - for (i = 0; i < (int) info->num_texture_formats; ++i) { - if (i > 0) { - fprintf(stderr, ", "); - } - PrintPixelFormat(info->texture_formats[i]); - } - fprintf(stderr, "\n"); - - if (info->max_texture_width || info->max_texture_height) { - fprintf(stderr, " Max Texture Size: %dx%d\n", - info->max_texture_width, info->max_texture_height); - } -} - -SDL_bool -CommonInit(CommonState * state) -{ - int i, j, m, n; - SDL_DisplayMode fullscreen_mode; - - if (state->flags & SDL_INIT_VIDEO) { - if (state->verbose & VERBOSE_VIDEO) { - n = SDL_GetNumVideoDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in video drivers\n"); - } else { - fprintf(stderr, "Built-in video drivers:"); - for (i = 0; i < n; ++i) { - if (i > 0) { - fprintf(stderr, ","); - } - fprintf(stderr, " %s", SDL_GetVideoDriver(i)); - } - fprintf(stderr, "\n"); - } - } - if (SDL_VideoInit(state->videodriver, 0) < 0) { - fprintf(stderr, "Couldn't initialize video driver: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_VIDEO) { - fprintf(stderr, "Video driver: %s\n", - SDL_GetCurrentVideoDriver()); - } - - if (state->verbose & VERBOSE_MODES) { - SDL_DisplayMode mode; - int bpp; - Uint32 Rmask, Gmask, Bmask, Amask; - - n = SDL_GetNumVideoDisplays(); - fprintf(stderr, "Number of displays: %d\n", n); - for (i = 0; i < n; ++i) { - fprintf(stderr, "Display %d:\n", i); - SDL_SelectVideoDisplay(i); - - SDL_GetDesktopDisplayMode(&mode); - SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, &Gmask, - &Bmask, &Amask); - fprintf(stderr, - " Current mode: %dx%d@%dHz, %d bits-per-pixel\n", - mode.w, mode.h, mode.refresh_rate, bpp); - if (Rmask || Gmask || Bmask) { - fprintf(stderr, " Red Mask = 0x%.8x\n", Rmask); - fprintf(stderr, " Green Mask = 0x%.8x\n", Gmask); - fprintf(stderr, " Blue Mask = 0x%.8x\n", Bmask); - if (Amask) - fprintf(stderr, " Alpha Mask = 0x%.8x\n", Amask); - } - - /* Print available fullscreen video modes */ - m = SDL_GetNumDisplayModes(); - if (m == 0) { - fprintf(stderr, "No available fullscreen video modes\n"); - } else { - fprintf(stderr, " Fullscreen video modes:\n"); - for (j = 0; j < m; ++j) { - SDL_GetDisplayMode(j, &mode); - SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, - &Gmask, &Bmask, &Amask); - fprintf(stderr, - " Mode %d: %dx%d@%dHz, %d bits-per-pixel\n", - j, mode.w, mode.h, mode.refresh_rate, bpp); - if (Rmask || Gmask || Bmask) { - fprintf(stderr, " Red Mask = 0x%.8x\n", - Rmask); - fprintf(stderr, " Green Mask = 0x%.8x\n", - Gmask); - fprintf(stderr, " Blue Mask = 0x%.8x\n", - Bmask); - if (Amask) - fprintf(stderr, - " Alpha Mask = 0x%.8x\n", - Amask); - } - } - } - } - } - - SDL_SelectVideoDisplay(state->display); - if (state->verbose & VERBOSE_RENDER) { - SDL_RendererInfo info; - - n = SDL_GetNumRenderDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in render drivers\n"); - } else { - fprintf(stderr, "Built-in render drivers:\n"); - for (i = 0; i < n; ++i) { - SDL_GetRenderDriverInfo(i, &info); - PrintRenderer(&info); - } - } - } - - switch (state->depth) { - case 8: - fullscreen_mode.format = SDL_PIXELFORMAT_INDEX8; - break; - case 15: - fullscreen_mode.format = SDL_PIXELFORMAT_BGR555; - break; - case 16: - default: - fullscreen_mode.format = SDL_PIXELFORMAT_ABGR1555; - break; -/* NDS default: - fullscreen_mode.format = SDL_PIXELFORMAT_RGB888; - break;*/ - } - fullscreen_mode.w = state->window_w; - fullscreen_mode.h = state->window_h; - fullscreen_mode.refresh_rate = state->refresh_rate; - SDL_SetFullscreenDisplayMode(&fullscreen_mode); - - state->windows = - (SDL_WindowID *) SDL_malloc(state->num_windows * - sizeof(*state->windows)); - if (!state->windows) { - fprintf(stderr, "Out of memory!\n"); - return SDL_FALSE; - } - for (i = 0; i < state->num_windows; ++i) { - char title[1024]; - - if (state->num_windows > 1) { - SDL_snprintf(title, SDL_arraysize(title), "%s %d", - state->window_title, i + 1); - } else { - SDL_strlcpy(title, state->window_title, SDL_arraysize(title)); - } - state->windows[i] = - SDL_CreateWindow(title, state->window_x, state->window_y, - state->window_w, state->window_h, - state->window_flags); - if (!state->windows[i]) { - fprintf(stderr, "Couldn't create window: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - - if (!state->skip_renderer - && (state->renderdriver - || !(state->window_flags & SDL_WINDOW_OPENGL))) { - m = -1; - if (state->renderdriver) { - SDL_RendererInfo info; - n = SDL_GetNumRenderDrivers(); - for (j = 0; j < n; ++j) { - SDL_GetRenderDriverInfo(j, &info); - if (SDL_strcasecmp(info.name, state->renderdriver) == - 0) { - m = j; - break; - } - } - if (m == n) { - fprintf(stderr, - "Couldn't find render driver named %s", - state->renderdriver); - return SDL_FALSE; - } - } - if (SDL_CreateRenderer - (state->windows[i], m, state->render_flags) < 0) { - fprintf(stderr, "Couldn't create renderer: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_RENDER) { - SDL_RendererInfo info; - - fprintf(stderr, "Current renderer:\n"); - SDL_GetRendererInfo(&info); - PrintRenderer(&info); - } - } - } - SDL_SelectRenderer(state->windows[0]); - } - - if (state->flags & SDL_INIT_AUDIO) { - if (state->verbose & VERBOSE_AUDIO) { - n = SDL_GetNumAudioDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in audio drivers\n"); - } else { - fprintf(stderr, "Built-in audio drivers:"); - for (i = 0; i < n; ++i) { - if (i > 0) { - fprintf(stderr, ","); - } - fprintf(stderr, " %s", SDL_GetAudioDriver(i)); - } - fprintf(stderr, "\n"); - } - } - if (SDL_AudioInit(state->audiodriver) < 0) { - fprintf(stderr, "Couldn't initialize audio driver: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_VIDEO) { - fprintf(stderr, "Audio driver: %s\n", - SDL_GetCurrentAudioDriver()); - } - - if (SDL_OpenAudio(&state->audiospec, NULL) < 0) { - fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError()); - return SDL_FALSE; - } - } - - return SDL_TRUE; -} - -static void -PrintEvent(SDL_Event * event) -{ - fprintf(stderr, "SDL EVENT: "); - switch (event->type) { - case SDL_WINDOWEVENT: - switch (event->window.event) { - case SDL_WINDOWEVENT_SHOWN: - fprintf(stderr, "Window %d shown", event->window.windowID); - break; - case SDL_WINDOWEVENT_HIDDEN: - fprintf(stderr, "Window %d hidden", event->window.windowID); - break; - case SDL_WINDOWEVENT_EXPOSED: - fprintf(stderr, "Window %d exposed", event->window.windowID); - break; - case SDL_WINDOWEVENT_MOVED: - fprintf(stderr, "Window %d moved to %d,%d", - event->window.windowID, event->window.data1, - event->window.data2); - break; - case SDL_WINDOWEVENT_RESIZED: - fprintf(stderr, "Window %d resized to %dx%d", - event->window.windowID, event->window.data1, - event->window.data2); - break; - case SDL_WINDOWEVENT_MINIMIZED: - fprintf(stderr, "Window %d minimized", event->window.windowID); - break; - case SDL_WINDOWEVENT_MAXIMIZED: - fprintf(stderr, "Window %d maximized", event->window.windowID); - break; - case SDL_WINDOWEVENT_RESTORED: - fprintf(stderr, "Window %d restored", event->window.windowID); - break; - case SDL_WINDOWEVENT_ENTER: - fprintf(stderr, "Mouse entered window %d", - event->window.windowID); - break; - case SDL_WINDOWEVENT_LEAVE: - fprintf(stderr, "Mouse left window %d", event->window.windowID); - break; - case SDL_WINDOWEVENT_FOCUS_GAINED: - fprintf(stderr, "Window %d gained keyboard focus", - event->window.windowID); - break; - case SDL_WINDOWEVENT_FOCUS_LOST: - fprintf(stderr, "Window %d lost keyboard focus", - event->window.windowID); - break; - case SDL_WINDOWEVENT_CLOSE: - fprintf(stderr, "Window %d closed", event->window.windowID); - break; - default: - fprintf(stderr, "Window %d got unknown event %d", - event->window.windowID, event->window.event); - break; - } - break; - case SDL_KEYDOWN: - fprintf(stderr, - "Keyboard %d: key pressed in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s", - event->key.which, event->key.windowID, - event->key.keysym.scancode, - SDL_GetScancodeName(event->key.keysym.scancode), - event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym)); - break; - case SDL_KEYUP: - fprintf(stderr, - "Keyboard %d: key released in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s", - event->key.which, event->key.windowID, - event->key.keysym.scancode, - SDL_GetScancodeName(event->key.keysym.scancode), - event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym)); - break; - case SDL_TEXTINPUT: - fprintf(stderr, "Keyboard %d: text input \"%s\" in window %d", - event->text.which, event->text.text, event->text.windowID); - break; - case SDL_MOUSEMOTION: - fprintf(stderr, "Mouse %d: moved to %d,%d (%d,%d) in window %d", - event->motion.which, event->motion.x, event->motion.y, - event->motion.xrel, event->motion.yrel, - event->motion.windowID); - break; - case SDL_MOUSEBUTTONDOWN: - fprintf(stderr, "Mouse %d: button %d pressed at %d,%d in window %d", - event->button.which, event->button.button, event->button.x, - event->button.y, event->button.windowID); - break; - case SDL_MOUSEBUTTONUP: - fprintf(stderr, "Mouse %d: button %d released at %d,%d in window %d", - event->button.which, event->button.button, event->button.x, - event->button.y, event->button.windowID); - break; - case SDL_MOUSEWHEEL: - fprintf(stderr, - "Mouse %d: wheel scrolled %d in x and %d in y in window %d", - event->wheel.which, event->wheel.x, event->wheel.y, - event->wheel.windowID); - break; - case SDL_JOYBALLMOTION: - fprintf(stderr, "Joystick %d: ball %d moved by %d,%d", - event->jball.which, event->jball.ball, event->jball.xrel, - event->jball.yrel); - break; - case SDL_JOYHATMOTION: - fprintf(stderr, "Joystick %d: hat %d moved to ", event->jhat.which, - event->jhat.hat); - switch (event->jhat.value) { - case SDL_HAT_CENTERED: - fprintf(stderr, "CENTER"); - break; - case SDL_HAT_UP: - fprintf(stderr, "UP"); - break; - case SDL_HAT_RIGHTUP: - fprintf(stderr, "RIGHTUP"); - break; - case SDL_HAT_RIGHT: - fprintf(stderr, "RIGHT"); - break; - case SDL_HAT_RIGHTDOWN: - fprintf(stderr, "RIGHTDOWN"); - break; - case SDL_HAT_DOWN: - fprintf(stderr, "DOWN"); - break; - case SDL_HAT_LEFTDOWN: - fprintf(stderr, "LEFTDOWN"); - break; - case SDL_HAT_LEFT: - fprintf(stderr, "LEFT"); - break; - case SDL_HAT_LEFTUP: - fprintf(stderr, "LEFTUP"); - break; - default: - fprintf(stderr, "UNKNOWN"); - break; - } - break; - case SDL_JOYBUTTONDOWN: - fprintf(stderr, "Joystick %d: button %d pressed", - event->jbutton.which, event->jbutton.button); - break; - case SDL_JOYBUTTONUP: - fprintf(stderr, "Joystick %d: button %d released", - event->jbutton.which, event->jbutton.button); - break; - case SDL_QUIT: - fprintf(stderr, "Quit requested"); - break; - case SDL_USEREVENT: - fprintf(stderr, "User event %d", event->user.code); - break; - default: - fprintf(stderr, "Unknown event %d", event->type); - break; - } - fprintf(stderr, "\n"); -} - -void -CommonEvent(CommonState * state, SDL_Event * event, int *done) -{ - if (state->verbose & VERBOSE_EVENT) { - PrintEvent(event); - } - - switch (event->type) { - case SDL_WINDOWEVENT: - switch (event->window.event) { - case SDL_WINDOWEVENT_CLOSE: - *done = 1; - break; - } - break; - case SDL_KEYDOWN: - switch (event->key.keysym.sym) { - /* Add hotkeys here */ - case SDLK_g: - if (event->key.keysym.mod & KMOD_CTRL) { - /* Ctrl-G toggle grab */ - } - break; - case SDLK_ESCAPE: - *done = 1; - break; - default: - break; - } - break; - case SDL_QUIT: - *done = 1; - break; - } -} - -void -CommonQuit(CommonState * state) -{ - if (state->flags & SDL_INIT_VIDEO) { - SDL_VideoQuit(); - } - if (state->flags & SDL_INIT_AUDIO) { - SDL_AudioQuit(); - } - if (state->windows) { - SDL_free(state->windows); - } - SDL_free(state); -} diff --git a/test/nds-test-progs/sprite/source/common.h b/test/nds-test-progs/sprite/source/common.h deleted file mode 100755 index 0e0393198..000000000 --- a/test/nds-test-progs/sprite/source/common.h +++ /dev/null @@ -1,48 +0,0 @@ - -/* A simple test program framework */ - -#include - -#define VERBOSE_VIDEO 0x00000001 -#define VERBOSE_MODES 0x00000002 -#define VERBOSE_RENDER 0x00000004 -#define VERBOSE_EVENT 0x00000008 -#define VERBOSE_AUDIO 0x00000010 - -typedef struct -{ - /* SDL init flags */ - char **argv; - Uint32 flags; - Uint32 verbose; - - /* Video info */ - const char *videodriver; - int display; - const char *window_title; - Uint32 window_flags; - int window_x; - int window_y; - int window_w; - int window_h; - int depth; - int refresh_rate; - int num_windows; - SDL_WindowID *windows; - - /* Renderer info */ - const char *renderdriver; - Uint32 render_flags; - SDL_bool skip_renderer; - - /* Audio info */ - const char *audiodriver; - SDL_AudioSpec audiospec; -} CommonState; - -extern CommonState *CommonCreateState(char **argv, Uint32 flags); -extern int CommonArg(CommonState * state, int index); -extern const char *CommonUsage(CommonState * state); -extern SDL_bool CommonInit(CommonState * state); -extern void CommonEvent(CommonState * state, SDL_Event * event, int *done); -extern void CommonQuit(CommonState * state); diff --git a/test/nds-test-progs/sprite/source/testsprite.c b/test/nds-test-progs/sprite/source/testsprite.c deleted file mode 100755 index 4134de581..000000000 --- a/test/nds-test-progs/sprite/source/testsprite.c +++ /dev/null @@ -1,316 +0,0 @@ -/* Simple program: Move N sprites around on the screen as fast as possible */ - -#include -#include -#include -#include -#include -#include - -#define NUM_SPRITES 10 -#define MAX_SPEED 1 - -SDL_Surface *sprite; -int numsprites; -SDL_Rect *sprite_rects; -SDL_Rect *positions; -SDL_Rect *velocities; -int sprites_visible; -int debug_flip; -Uint16 sprite_w, sprite_h; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -int -LoadSprite(char *file) -{ - SDL_Surface *temp; - - /* Load the sprite image */ - sprite = SDL_LoadBMP(file); - if (sprite == NULL) { - fprintf(stderr, "Couldn't load %s: %s", file, SDL_GetError()); - return (-1); - } - - /* Set transparent pixel as the pixel at (0,0) */ - if (sprite->format->palette) { - SDL_SetColorKey(sprite, (SDL_SRCCOLORKEY | SDL_RLEACCEL), - *(Uint8 *) sprite->pixels); - } - - /* Convert sprite to video format */ - temp = SDL_DisplayFormat(sprite); - SDL_FreeSurface(sprite); - if (temp == NULL) { - fprintf(stderr, "Couldn't convert background: %s\n", SDL_GetError()); - return (-1); - } - sprite = temp; - - /* We're ready to roll. :) */ - return (0); -} - -void -MoveSprites(SDL_Surface * screen, Uint32 background) -{ - int i, nupdates; - SDL_Rect area, *position, *velocity; - - nupdates = 0; - /* Erase all the sprites if necessary */ - if (sprites_visible) { - SDL_FillRect(screen, NULL, background); - } - - /* Move the sprite, bounce at the wall, and draw */ - for (i = 0; i < numsprites; ++i) { - position = &positions[i]; - velocity = &velocities[i]; - position->x += velocity->x; - if ((position->x < 0) || (position->x >= (screen->w - sprite_w))) { - velocity->x = -velocity->x; - position->x += velocity->x; - } - position->y += velocity->y; - if ((position->y < 0) || (position->y >= (screen->h - sprite_w))) { - velocity->y = -velocity->y; - position->y += velocity->y; - } - - /* Blit the sprite onto the screen */ - area = *position; - SDL_BlitSurface(sprite, NULL, screen, &area); - sprite_rects[nupdates++] = area; - } - - if (debug_flip) { - if ((screen->flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF) { - static int t = 0; - - Uint32 color = SDL_MapRGB(screen->format, 255, 0, 0); - SDL_Rect r; - r.x = t; -/* (sin((float) t * 2 * 3.1459) + 1.0) / 2.0 * (screen->w - 20); */ - r.y = 0; - r.w = 20; - r.h = screen->h; - - SDL_FillRect(screen, &r, color); - t += 2; - } - } - - /* Update the screen! */ - if ((screen->flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF) { - SDL_Flip(screen); - } else { - SDL_UpdateRects(screen, nupdates, sprite_rects); - } - sprites_visible = 1; -} - -/* This is a way of telling whether or not to use hardware surfaces */ -Uint32 -FastestFlags(Uint32 flags, int width, int height, int bpp) -{ - const SDL_VideoInfo *info; - - /* Hardware acceleration is only used in fullscreen mode */ - flags |= SDL_FULLSCREEN; - - /* Check for various video capabilities */ - info = SDL_GetVideoInfo(); - if (info->blit_hw_CC && info->blit_fill) { - /* We use accelerated colorkeying and color filling */ - flags |= SDL_HWSURFACE; - } - /* If we have enough video memory, and will use accelerated - blits directly to it, then use page flipping. - */ - if ((flags & SDL_HWSURFACE) == SDL_HWSURFACE) { - /* Direct hardware blitting without double-buffering - causes really bad flickering. - */ - if (info->video_mem * 1024 > (height * width * bpp / 8)) { - flags |= SDL_DOUBLEBUF; - } else { - flags &= ~SDL_HWSURFACE; - } - } - - /* Return the flags */ - return (flags); -} - -int -main(int argc, char *argv[]) -{ - SDL_Surface *screen; - Uint8 *mem; - int width, height; - Uint8 video_bpp; - Uint32 videoflags; - Uint32 background; - int i, done; - SDL_Event event; - Uint32 then, now, frames; - - consoleDemoInit(); - puts("Hello world! Initializing FAT..."); - fatInitDefault(); - /* Initialize SDL */ - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - puts("* initialized SDL"); - - numsprites = NUM_SPRITES; - videoflags = SDL_SWSURFACE /*| SDL_ANYFORMAT */ ; - width = 256; - height = 192; - video_bpp = 15; - debug_flip = 0; - while (argc > 1) { - --argc; - if (strcmp(argv[argc - 1], "-width") == 0) { - width = atoi(argv[argc]); - --argc; - } else if (strcmp(argv[argc - 1], "-height") == 0) { - height = atoi(argv[argc]); - --argc; - } else if (strcmp(argv[argc - 1], "-bpp") == 0) { - video_bpp = atoi(argv[argc]); - videoflags &= ~SDL_ANYFORMAT; - --argc; - } else if (strcmp(argv[argc], "-fast") == 0) { - videoflags = FastestFlags(videoflags, width, height, video_bpp); - } else if (strcmp(argv[argc], "-hw") == 0) { - videoflags ^= SDL_HWSURFACE; - } else if (strcmp(argv[argc], "-flip") == 0) { - videoflags ^= SDL_DOUBLEBUF; - } else if (strcmp(argv[argc], "-debugflip") == 0) { - debug_flip ^= 1; - } else if (strcmp(argv[argc], "-fullscreen") == 0) { - videoflags ^= SDL_FULLSCREEN; - } else if (isdigit(argv[argc][0])) { - numsprites = atoi(argv[argc]); - } else { - fprintf(stderr, - "Usage: %s [-bpp N] [-hw] [-flip] [-fast] [-fullscreen] [numsprites]\n", - argv[0]); - quit(1); - } - } - - /* Set video mode */ - screen = SDL_SetVideoMode(width, height, video_bpp, videoflags); - if (!screen) { - fprintf(stderr, "Couldn't set %dx%d video mode: %s\n", - width, height, SDL_GetError()); - quit(2); - } - screen->flags &= ~SDL_PREALLOC; - puts("* set video mode"); - - /* Load the sprite */ - if (LoadSprite("icon.bmp") < 0) { - quit(1); - } - puts("* loaded sprite"); - - /* Allocate memory for the sprite info */ - mem = (Uint8 *) malloc(4 * sizeof(SDL_Rect) * numsprites); - if (mem == NULL) { - SDL_FreeSurface(sprite); - fprintf(stderr, "Out of memory!\n"); - quit(2); - } - sprite_rects = (SDL_Rect *) mem; - positions = sprite_rects; - sprite_rects += numsprites; - velocities = sprite_rects; - sprite_rects += numsprites; - sprite_w = sprite->w; - sprite_h = sprite->h; - srand(time(NULL)); - for (i = 0; i < numsprites; ++i) { - positions[i].x = rand() % (screen->w - sprite_w); - positions[i].y = rand() % (screen->h - sprite_h); - positions[i].w = sprite->w; - positions[i].h = sprite->h; - velocities[i].x = 0; - velocities[i].y = 0; - while (!velocities[i].x && !velocities[i].y) { - velocities[i].x = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - velocities[i].y = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - } - } - background = SDL_MapRGB(screen->format, 0x00, 0x00, 0x00); - - /* Print out information about our surfaces */ - printf("Screen is at %d bits per pixel\n", screen->format->BitsPerPixel); - if ((screen->flags & SDL_HWSURFACE) == SDL_HWSURFACE) { - printf("Screen is in video memory\n"); - } else { - printf("Screen is in system memory\n"); - } - if ((screen->flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF) { - printf("Screen has double-buffering enabled\n"); - } - if ((sprite->flags & SDL_HWSURFACE) == SDL_HWSURFACE) { - printf("Sprite is in video memory\n"); - } else { - printf("Sprite is in system memory\n"); - } - /* Run a sample blit to trigger blit acceleration */ - { - SDL_Rect dst; - dst.x = 0; - dst.y = 0; - dst.w = sprite->w; - dst.h = sprite->h; - SDL_BlitSurface(sprite, NULL, screen, &dst); - SDL_FillRect(screen, &dst, background); - } - if ((sprite->flags & SDL_HWACCEL) == SDL_HWACCEL) { - printf("Sprite blit uses hardware acceleration\n"); - } - if ((sprite->flags & SDL_RLEACCEL) == SDL_RLEACCEL) { - printf("Sprite blit uses RLE acceleration\n"); - } - - /* Loop, blitting sprites and waiting for a keystroke */ - frames = 0; - then = SDL_GetTicks(); - done = 0; - sprites_visible = 0; - puts("hello!"); - while (!done) { - /* Check for events */ - ++frames; - printf("."); - swiWaitForVBlank(); - MoveSprites(screen, background); - } - puts("goodbye!"); - SDL_FreeSurface(sprite); - free(mem); - - /* Print out some timing information */ - now = SDL_GetTicks(); - if (now > then) { - printf("%2.2f frames per second\n", - ((double) frames * 1000) / (now - then)); - } - SDL_Quit(); - return (0); -} diff --git a/test/nds-test-progs/sprite2/Makefile b/test/nds-test-progs/sprite2/Makefile deleted file mode 100755 index 2612f5a7e..000000000 --- a/test/nds-test-progs/sprite2/Makefile +++ /dev/null @@ -1,132 +0,0 @@ -#--------------------------------------------------------------------------------- -.SUFFIXES: -#--------------------------------------------------------------------------------- - -ifeq ($(strip $(DEVKITARM)),) -$(error "Please set DEVKITARM in your environment. export DEVKITARM=devkitARM") -endif - -include $(DEVKITARM)/ds_rules - -#--------------------------------------------------------------------------------- -# TARGET is the name of the output -# BUILD is the directory where object files & intermediate files will be placed -# SOURCES is a list of directories containing source code -# INCLUDES is a list of directories containing extra header files -#--------------------------------------------------------------------------------- -TARGET := $(shell basename $(CURDIR)) -BUILD := build -SOURCES := source -DATA := data -INCLUDES := include - -#--------------------------------------------------------------------------------- -# options for code generation -#--------------------------------------------------------------------------------- -ARCH := -mthumb -mthumb-interwork - -# note: arm9tdmi isn't the correct CPU arch, but anything newer and LD -# *insists* it has a FPU or VFP, and it won't take no for an answer! -CFLAGS := -save-temps -g -Wall -O0\ - -mcpu=arm9tdmi -mtune=arm9tdmi \ - $(ARCH) - -CFLAGS += $(INCLUDE) -DARM9 -D__NDS__ -CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -fno-exceptions -fno-rtti - -ASFLAGS := -g $(ARCH) -LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -mno-fpu -Wl,-Map,$(notdir $*.map) - -#--------------------------------------------------------------------------------- -# any extra libraries we wish to link with the project -#--------------------------------------------------------------------------------- -LIBS := -lSDL -lfat -lnds9 - - -#--------------------------------------------------------------------------------- -# list of directories containing libraries, this must be the top level containing -# include and lib -#--------------------------------------------------------------------------------- -LIBDIRS := $(LIBNDS) - -#--------------------------------------------------------------------------------- -# no real need to edit anything past this point unless you need to add additional -# rules for different file extensions -#--------------------------------------------------------------------------------- -ifneq ($(BUILD),$(notdir $(CURDIR))) -#--------------------------------------------------------------------------------- - -export OUTPUT := $(CURDIR)/$(TARGET) - -export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ - $(foreach dir,$(DATA),$(CURDIR)/$(dir)) - -export DEPSDIR := $(CURDIR)/$(BUILD) - -CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) -CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) -SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) -BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) - -#--------------------------------------------------------------------------------- -# use CXX for linking C++ projects, CC for standard C -#--------------------------------------------------------------------------------- -ifeq ($(strip $(CPPFILES)),) -#--------------------------------------------------------------------------------- - export LD := $(CC) -#--------------------------------------------------------------------------------- -else -#--------------------------------------------------------------------------------- - export LD := $(CXX) -#--------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------- - -export OFILES := $(addsuffix .o,$(BINFILES)) \ - $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) - -export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ - $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ - $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ - -I$(CURDIR)/$(BUILD) - -export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) - -.PHONY: $(BUILD) clean - -#--------------------------------------------------------------------------------- -$(BUILD): - @[ -d $@ ] || mkdir -p $@ - @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile - -#--------------------------------------------------------------------------------- -clean: - @echo clean ... - @rm -fr $(BUILD) $(TARGET).elf $(TARGET).nds $(TARGET).arm9 $(TARGET).ds.gba - - -#--------------------------------------------------------------------------------- -else - -DEPENDS := $(OFILES:.o=.d) - -#--------------------------------------------------------------------------------- -# main targets -#--------------------------------------------------------------------------------- -$(OUTPUT).ds.gba : $(OUTPUT).nds -$(OUTPUT).nds : $(OUTPUT).arm9 -$(OUTPUT).arm9 : $(OUTPUT).elf -$(OUTPUT).elf : $(OFILES) - -#--------------------------------------------------------------------------------- -%.bin.o : %.bin -#--------------------------------------------------------------------------------- - @echo $(notdir $<) - @$(bin2o) - - --include $(DEPENDS) - -#--------------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------------- diff --git a/test/nds-test-progs/sprite2/icon.bmp b/test/nds-test-progs/sprite2/icon.bmp deleted file mode 100644 index cc96356acb521c7f1518acdb2a3b5d59b8a061aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmcgoK@Nm42&C%Gi}VGyC*RS#Puc$;>j1^7i6@ht1lnN+#Fo7bq$tQ6Vr>y - -#include "common.h" - -#define VIDEO_USAGE \ -"[--video driver] [--renderer driver] [--info all|video|modes|render|event] [--display %d] [--fullscreen | --windows N] [--title title] [--center | --position X,Y] [--geometry WxH] [--depth N] [--refresh R] [--vsync] [--noframe] [--resize] [--minimize] [--maximize] [--grab]" - -#define AUDIO_USAGE \ -"[--rate N] [--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE] [--channels N] [--samples N]" - -CommonState * -CommonCreateState(char **argv, Uint32 flags) -{ - CommonState *state = SDL_calloc(1, sizeof(*state)); - if (!state) { - SDL_OutOfMemory(); - return NULL; - } - - /* Initialize some defaults */ - state->argv = argv; - state->flags = flags; - state->window_title = argv[0]; - state->window_flags = SDL_WINDOW_SHOWN; - state->window_x = SDL_WINDOWPOS_UNDEFINED; - state->window_y = SDL_WINDOWPOS_UNDEFINED; - state->window_w = 256; - state->window_h = 192; - state->num_windows = 1; - state->audiospec.freq = 22050; - state->audiospec.format = AUDIO_S16; - state->audiospec.channels = 2; - state->audiospec.samples = 2048; - return state; -} - -int -CommonArg(CommonState * state, int index) -{ - char **argv = state->argv; - - if (SDL_strcasecmp(argv[index], "--video") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->videodriver = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--renderer") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->renderdriver = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--info") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - if (SDL_strcasecmp(argv[index], "all") == 0) { - state->verbose |= - (VERBOSE_VIDEO | VERBOSE_MODES | VERBOSE_RENDER | - VERBOSE_EVENT); - return 2; - } - if (SDL_strcasecmp(argv[index], "video") == 0) { - state->verbose |= VERBOSE_VIDEO; - return 2; - } - if (SDL_strcasecmp(argv[index], "modes") == 0) { - state->verbose |= VERBOSE_MODES; - return 2; - } - if (SDL_strcasecmp(argv[index], "render") == 0) { - state->verbose |= VERBOSE_RENDER; - return 2; - } - if (SDL_strcasecmp(argv[index], "event") == 0) { - state->verbose |= VERBOSE_EVENT; - return 2; - } - return -1; - } - if (SDL_strcasecmp(argv[index], "--display") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->display = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--fullscreen") == 0) { - state->window_flags |= SDL_WINDOW_FULLSCREEN; - state->num_windows = 1; - return 1; - } - if (SDL_strcasecmp(argv[index], "--windows") == 0) { - ++index; - if (!argv[index] || !SDL_isdigit(*argv[index])) { - return -1; - } - if (!(state->window_flags & SDL_WINDOW_FULLSCREEN)) { - state->num_windows = SDL_atoi(argv[index]); - } - return 2; - } - if (SDL_strcasecmp(argv[index], "--title") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->window_title = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--center") == 0) { - state->window_x = SDL_WINDOWPOS_CENTERED; - state->window_y = SDL_WINDOWPOS_CENTERED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--position") == 0) { - char *x, *y; - ++index; - if (!argv[index]) { - return -1; - } - x = argv[index]; - y = argv[index]; - while (*y && *y != ',') { - ++y; - } - if (!*y) { - return -1; - } - *y++ = '\0'; - state->window_x = SDL_atoi(x); - state->window_y = SDL_atoi(y); - return 2; - } - if (SDL_strcasecmp(argv[index], "--geometry") == 0) { - char *w, *h; - ++index; - if (!argv[index]) { - return -1; - } - w = argv[index]; - h = argv[index]; - while (*h && *h != 'x') { - ++h; - } - if (!*h) { - return -1; - } - *h++ = '\0'; - state->window_w = SDL_atoi(w); - state->window_h = SDL_atoi(h); - return 2; - } - if (SDL_strcasecmp(argv[index], "--depth") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->depth = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--refresh") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->refresh_rate = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--vsync") == 0) { - state->render_flags |= SDL_RENDERER_PRESENTVSYNC; - return 1; - } - if (SDL_strcasecmp(argv[index], "--noframe") == 0) { - state->window_flags |= SDL_WINDOW_BORDERLESS; - return 1; - } - if (SDL_strcasecmp(argv[index], "--resize") == 0) { - state->window_flags |= SDL_WINDOW_RESIZABLE; - return 1; - } - if (SDL_strcasecmp(argv[index], "--minimize") == 0) { - state->window_flags |= SDL_WINDOW_MINIMIZED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--maximize") == 0) { - state->window_flags |= SDL_WINDOW_MAXIMIZED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--grab") == 0) { - state->window_flags |= SDL_WINDOW_INPUT_GRABBED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--rate") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.freq = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--format") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - if (SDL_strcasecmp(argv[index], "U8") == 0) { - state->audiospec.format = AUDIO_U8; - return 2; - } - if (SDL_strcasecmp(argv[index], "S8") == 0) { - state->audiospec.format = AUDIO_S8; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16") == 0) { - state->audiospec.format = AUDIO_U16; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16LE") == 0) { - state->audiospec.format = AUDIO_U16LSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16BE") == 0) { - state->audiospec.format = AUDIO_U16MSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16") == 0) { - state->audiospec.format = AUDIO_S16; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16LE") == 0) { - state->audiospec.format = AUDIO_S16LSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16BE") == 0) { - state->audiospec.format = AUDIO_S16MSB; - return 2; - } - return -1; - } - if (SDL_strcasecmp(argv[index], "--channels") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.channels = (Uint8) SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--samples") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.samples = (Uint16) SDL_atoi(argv[index]); - return 2; - } - if ((SDL_strcasecmp(argv[index], "-h") == 0) - || (SDL_strcasecmp(argv[index], "--help") == 0)) { - /* Print the usage message */ - return -1; - } - return 0; -} - -const char * -CommonUsage(CommonState * state) -{ - switch (state->flags & (SDL_INIT_VIDEO | SDL_INIT_AUDIO)) { - case SDL_INIT_VIDEO: - return VIDEO_USAGE; - case SDL_INIT_AUDIO: - return AUDIO_USAGE; - case (SDL_INIT_VIDEO | SDL_INIT_AUDIO): - return VIDEO_USAGE " " AUDIO_USAGE; - default: - return ""; - } -} - -static void -PrintRendererFlag(Uint32 flag) -{ - switch (flag) { - case SDL_RENDERER_SINGLEBUFFER: - fprintf(stderr, "SingleBuffer"); - break; - case SDL_RENDERER_PRESENTCOPY: - fprintf(stderr, "PresentCopy"); - break; - case SDL_RENDERER_PRESENTFLIP2: - fprintf(stderr, "PresentFlip2"); - break; - case SDL_RENDERER_PRESENTFLIP3: - fprintf(stderr, "PresentFlip3"); - break; - case SDL_RENDERER_PRESENTDISCARD: - fprintf(stderr, "PresentDiscard"); - break; - case SDL_RENDERER_PRESENTVSYNC: - fprintf(stderr, "PresentVSync"); - break; - case SDL_RENDERER_ACCELERATED: - fprintf(stderr, "Accelerated"); - break; - default: - fprintf(stderr, "0x%8.8x", flag); - break; - } -} - -static void -PrintBlendMode(Uint32 flag) -{ - switch (flag) { - case SDL_BLENDMODE_NONE: - fprintf(stderr, "None"); - break; - case SDL_BLENDMODE_MASK: - fprintf(stderr, "Mask"); - break; - case SDL_BLENDMODE_BLEND: - fprintf(stderr, "Blend"); - break; - case SDL_BLENDMODE_ADD: - fprintf(stderr, "Add"); - break; - case SDL_BLENDMODE_MOD: - fprintf(stderr, "Mod"); - break; - default: - fprintf(stderr, "0x%8.8x", flag); - break; - } -} - -static void -PrintScaleMode(Uint32 flag) -{ - switch (flag) { - case SDL_TEXTURESCALEMODE_NONE: - fprintf(stderr, "None"); - break; - case SDL_TEXTURESCALEMODE_FAST: - fprintf(stderr, "Fast"); - break; - case SDL_TEXTURESCALEMODE_SLOW: - fprintf(stderr, "Slow"); - break; - case SDL_TEXTURESCALEMODE_BEST: - fprintf(stderr, "Best"); - break; - default: - fprintf(stderr, "0x%8.8x", flag); - break; - } -} - -static void -PrintPixelFormat(Uint32 format) -{ - switch (format) { - case SDL_PIXELFORMAT_UNKNOWN: - fprintf(stderr, "Unknwon"); - break; - case SDL_PIXELFORMAT_INDEX1LSB: - fprintf(stderr, "Index1LSB"); - break; - case SDL_PIXELFORMAT_INDEX1MSB: - fprintf(stderr, "Index1MSB"); - break; - case SDL_PIXELFORMAT_INDEX4LSB: - fprintf(stderr, "Index4LSB"); - break; - case SDL_PIXELFORMAT_INDEX4MSB: - fprintf(stderr, "Index4MSB"); - break; - case SDL_PIXELFORMAT_INDEX8: - fprintf(stderr, "Index8"); - break; - case SDL_PIXELFORMAT_RGB332: - fprintf(stderr, "RGB332"); - break; - case SDL_PIXELFORMAT_RGB444: - fprintf(stderr, "RGB444"); - break; - case SDL_PIXELFORMAT_RGB555: - fprintf(stderr, "RGB555"); - break; - case SDL_PIXELFORMAT_ARGB4444: - fprintf(stderr, "ARGB4444"); - break; - case SDL_PIXELFORMAT_ARGB1555: - fprintf(stderr, "ARGB1555"); - break; - case SDL_PIXELFORMAT_RGB565: - fprintf(stderr, "RGB565"); - break; - case SDL_PIXELFORMAT_RGB24: - fprintf(stderr, "RGB24"); - break; - case SDL_PIXELFORMAT_BGR24: - fprintf(stderr, "BGR24"); - break; - case SDL_PIXELFORMAT_RGB888: - fprintf(stderr, "RGB888"); - break; - case SDL_PIXELFORMAT_BGR888: - fprintf(stderr, "BGR888"); - break; - case SDL_PIXELFORMAT_ARGB8888: - fprintf(stderr, "ARGB8888"); - break; - case SDL_PIXELFORMAT_RGBA8888: - fprintf(stderr, "RGBA8888"); - break; - case SDL_PIXELFORMAT_ABGR8888: - fprintf(stderr, "ABGR8888"); - break; - case SDL_PIXELFORMAT_BGRA8888: - fprintf(stderr, "BGRA8888"); - break; - case SDL_PIXELFORMAT_ARGB2101010: - fprintf(stderr, "ARGB2101010"); - break; - case SDL_PIXELFORMAT_YV12: - fprintf(stderr, "YV12"); - break; - case SDL_PIXELFORMAT_IYUV: - fprintf(stderr, "IYUV"); - break; - case SDL_PIXELFORMAT_YUY2: - fprintf(stderr, "YUY2"); - break; - case SDL_PIXELFORMAT_UYVY: - fprintf(stderr, "UYVY"); - break; - case SDL_PIXELFORMAT_YVYU: - fprintf(stderr, "YVYU"); - break; - case SDL_PIXELFORMAT_ABGR1555: - fprintf(stderr, "ABGR1555"); - break; - case SDL_PIXELFORMAT_BGR555: - fprintf(stderr, "BGR555"); - break; - default: - fprintf(stderr, "0x%8.8x", format); - break; - } -} - -static void -PrintRenderer(SDL_RendererInfo * info) -{ - int i, count; - - fprintf(stderr, " Renderer %s:\n", info->name); - - fprintf(stderr, " Flags: 0x%8.8X", info->flags); - fprintf(stderr, " ("); - count = 0; - for (i = 0; i < sizeof(info->flags) * 8; ++i) { - Uint32 flag = (1 << i); - if (info->flags & flag) { - if (count > 0) { - fprintf(stderr, " | "); - } - PrintRendererFlag(flag); - ++count; - } - } - fprintf(stderr, ")\n"); - - fprintf(stderr, " Blend: 0x%8.8X", info->blend_modes); - fprintf(stderr, " ("); - count = 0; - for (i = 0; i < sizeof(info->blend_modes) * 8; ++i) { - Uint32 flag = (1 << i); - if (info->blend_modes & flag) { - if (count > 0) { - fprintf(stderr, " | "); - } - PrintBlendMode(flag); - ++count; - } - } - fprintf(stderr, ")\n"); - - fprintf(stderr, " Scale: 0x%8.8X", info->scale_modes); - fprintf(stderr, " ("); - count = 0; - for (i = 0; i < sizeof(info->scale_modes) * 8; ++i) { - Uint32 flag = (1 << i); - if (info->scale_modes & flag) { - if (count > 0) { - fprintf(stderr, " | "); - } - PrintScaleMode(flag); - ++count; - } - } - fprintf(stderr, ")\n"); - - fprintf(stderr, " Texture formats (%d): ", info->num_texture_formats); - for (i = 0; i < (int) info->num_texture_formats; ++i) { - if (i > 0) { - fprintf(stderr, ", "); - } - PrintPixelFormat(info->texture_formats[i]); - } - fprintf(stderr, "\n"); - - if (info->max_texture_width || info->max_texture_height) { - fprintf(stderr, " Max Texture Size: %dx%d\n", - info->max_texture_width, info->max_texture_height); - } -} - -SDL_bool -CommonInit(CommonState * state) -{ - int i, j, m, n; - SDL_DisplayMode fullscreen_mode; - - if (state->flags & SDL_INIT_VIDEO) { - if (state->verbose & VERBOSE_VIDEO) { - n = SDL_GetNumVideoDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in video drivers\n"); - } else { - fprintf(stderr, "Built-in video drivers:"); - for (i = 0; i < n; ++i) { - if (i > 0) { - fprintf(stderr, ","); - } - fprintf(stderr, " %s", SDL_GetVideoDriver(i)); - } - fprintf(stderr, "\n"); - } - } - if (SDL_VideoInit(state->videodriver, 0) < 0) { - fprintf(stderr, "Couldn't initialize video driver: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_VIDEO) { - fprintf(stderr, "Video driver: %s\n", - SDL_GetCurrentVideoDriver()); - } - - if (state->verbose & VERBOSE_MODES) { - SDL_DisplayMode mode; - int bpp; - Uint32 Rmask, Gmask, Bmask, Amask; - - n = SDL_GetNumVideoDisplays(); - fprintf(stderr, "Number of displays: %d\n", n); - for (i = 0; i < n; ++i) { - fprintf(stderr, "Display %d:\n", i); - SDL_SelectVideoDisplay(i); - - SDL_GetDesktopDisplayMode(&mode); - SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, &Gmask, - &Bmask, &Amask); - fprintf(stderr, - " Current mode: %dx%d@%dHz, %d bits-per-pixel\n", - mode.w, mode.h, mode.refresh_rate, bpp); - if (Rmask || Gmask || Bmask) { - fprintf(stderr, " Red Mask = 0x%.8x\n", Rmask); - fprintf(stderr, " Green Mask = 0x%.8x\n", Gmask); - fprintf(stderr, " Blue Mask = 0x%.8x\n", Bmask); - if (Amask) - fprintf(stderr, " Alpha Mask = 0x%.8x\n", Amask); - } - - /* Print available fullscreen video modes */ - m = SDL_GetNumDisplayModes(); - if (m == 0) { - fprintf(stderr, "No available fullscreen video modes\n"); - } else { - fprintf(stderr, " Fullscreen video modes:\n"); - for (j = 0; j < m; ++j) { - SDL_GetDisplayMode(j, &mode); - SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, - &Gmask, &Bmask, &Amask); - fprintf(stderr, - " Mode %d: %dx%d@%dHz, %d bits-per-pixel\n", - j, mode.w, mode.h, mode.refresh_rate, bpp); - if (Rmask || Gmask || Bmask) { - fprintf(stderr, " Red Mask = 0x%.8x\n", - Rmask); - fprintf(stderr, " Green Mask = 0x%.8x\n", - Gmask); - fprintf(stderr, " Blue Mask = 0x%.8x\n", - Bmask); - if (Amask) - fprintf(stderr, - " Alpha Mask = 0x%.8x\n", - Amask); - } - } - } - } - } - - SDL_SelectVideoDisplay(state->display); - if (state->verbose & VERBOSE_RENDER) { - SDL_RendererInfo info; - - n = SDL_GetNumRenderDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in render drivers\n"); - } else { - fprintf(stderr, "Built-in render drivers:\n"); - for (i = 0; i < n; ++i) { - SDL_GetRenderDriverInfo(i, &info); - PrintRenderer(&info); - } - } - } - - switch (state->depth) { - case 8: - fullscreen_mode.format = SDL_PIXELFORMAT_INDEX8; - break; - case 15: - fullscreen_mode.format = SDL_PIXELFORMAT_BGR555; - break; - case 16: - default: - fullscreen_mode.format = SDL_PIXELFORMAT_ABGR1555; - break; -/* NDS default: - fullscreen_mode.format = SDL_PIXELFORMAT_RGB888; - break;*/ - } - fullscreen_mode.w = state->window_w; - fullscreen_mode.h = state->window_h; - fullscreen_mode.refresh_rate = state->refresh_rate; - SDL_SetFullscreenDisplayMode(&fullscreen_mode); - - state->windows = - (SDL_WindowID *) SDL_malloc(state->num_windows * - sizeof(*state->windows)); - if (!state->windows) { - fprintf(stderr, "Out of memory!\n"); - return SDL_FALSE; - } - for (i = 0; i < state->num_windows; ++i) { - char title[1024]; - - if (state->num_windows > 1) { - SDL_snprintf(title, SDL_arraysize(title), "%s %d", - state->window_title, i + 1); - } else { - SDL_strlcpy(title, state->window_title, SDL_arraysize(title)); - } - state->windows[i] = - SDL_CreateWindow(title, state->window_x, state->window_y, - state->window_w, state->window_h, - state->window_flags); - if (!state->windows[i]) { - fprintf(stderr, "Couldn't create window: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - - if (!state->skip_renderer - && (state->renderdriver - || !(state->window_flags & SDL_WINDOW_OPENGL))) { - m = -1; - if (state->renderdriver) { - SDL_RendererInfo info; - n = SDL_GetNumRenderDrivers(); - for (j = 0; j < n; ++j) { - SDL_GetRenderDriverInfo(j, &info); - if (SDL_strcasecmp(info.name, state->renderdriver) == - 0) { - m = j; - break; - } - } - if (m == n) { - fprintf(stderr, - "Couldn't find render driver named %s", - state->renderdriver); - return SDL_FALSE; - } - } - if (SDL_CreateRenderer - (state->windows[i], m, state->render_flags) < 0) { - fprintf(stderr, "Couldn't create renderer: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_RENDER) { - SDL_RendererInfo info; - - fprintf(stderr, "Current renderer:\n"); - SDL_GetRendererInfo(&info); - PrintRenderer(&info); - } - } - } - SDL_SelectRenderer(state->windows[0]); - } - - if (state->flags & SDL_INIT_AUDIO) { - if (state->verbose & VERBOSE_AUDIO) { - n = SDL_GetNumAudioDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in audio drivers\n"); - } else { - fprintf(stderr, "Built-in audio drivers:"); - for (i = 0; i < n; ++i) { - if (i > 0) { - fprintf(stderr, ","); - } - fprintf(stderr, " %s", SDL_GetAudioDriver(i)); - } - fprintf(stderr, "\n"); - } - } - if (SDL_AudioInit(state->audiodriver) < 0) { - fprintf(stderr, "Couldn't initialize audio driver: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_VIDEO) { - fprintf(stderr, "Audio driver: %s\n", - SDL_GetCurrentAudioDriver()); - } - - if (SDL_OpenAudio(&state->audiospec, NULL) < 0) { - fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError()); - return SDL_FALSE; - } - } - - return SDL_TRUE; -} - -static void -PrintEvent(SDL_Event * event) -{ - fprintf(stderr, "SDL EVENT: "); - switch (event->type) { - case SDL_WINDOWEVENT: - switch (event->window.event) { - case SDL_WINDOWEVENT_SHOWN: - fprintf(stderr, "Window %d shown", event->window.windowID); - break; - case SDL_WINDOWEVENT_HIDDEN: - fprintf(stderr, "Window %d hidden", event->window.windowID); - break; - case SDL_WINDOWEVENT_EXPOSED: - fprintf(stderr, "Window %d exposed", event->window.windowID); - break; - case SDL_WINDOWEVENT_MOVED: - fprintf(stderr, "Window %d moved to %d,%d", - event->window.windowID, event->window.data1, - event->window.data2); - break; - case SDL_WINDOWEVENT_RESIZED: - fprintf(stderr, "Window %d resized to %dx%d", - event->window.windowID, event->window.data1, - event->window.data2); - break; - case SDL_WINDOWEVENT_MINIMIZED: - fprintf(stderr, "Window %d minimized", event->window.windowID); - break; - case SDL_WINDOWEVENT_MAXIMIZED: - fprintf(stderr, "Window %d maximized", event->window.windowID); - break; - case SDL_WINDOWEVENT_RESTORED: - fprintf(stderr, "Window %d restored", event->window.windowID); - break; - case SDL_WINDOWEVENT_ENTER: - fprintf(stderr, "Mouse entered window %d", - event->window.windowID); - break; - case SDL_WINDOWEVENT_LEAVE: - fprintf(stderr, "Mouse left window %d", event->window.windowID); - break; - case SDL_WINDOWEVENT_FOCUS_GAINED: - fprintf(stderr, "Window %d gained keyboard focus", - event->window.windowID); - break; - case SDL_WINDOWEVENT_FOCUS_LOST: - fprintf(stderr, "Window %d lost keyboard focus", - event->window.windowID); - break; - case SDL_WINDOWEVENT_CLOSE: - fprintf(stderr, "Window %d closed", event->window.windowID); - break; - default: - fprintf(stderr, "Window %d got unknown event %d", - event->window.windowID, event->window.event); - break; - } - break; - case SDL_KEYDOWN: - fprintf(stderr, - "Keyboard %d: key pressed in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s", - event->key.which, event->key.windowID, - event->key.keysym.scancode, - SDL_GetScancodeName(event->key.keysym.scancode), - event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym)); - break; - case SDL_KEYUP: - fprintf(stderr, - "Keyboard %d: key released in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s", - event->key.which, event->key.windowID, - event->key.keysym.scancode, - SDL_GetScancodeName(event->key.keysym.scancode), - event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym)); - break; - case SDL_TEXTINPUT: - fprintf(stderr, "Keyboard %d: text input \"%s\" in window %d", - event->text.which, event->text.text, event->text.windowID); - break; - case SDL_MOUSEMOTION: - fprintf(stderr, "Mouse %d: moved to %d,%d (%d,%d) in window %d", - event->motion.which, event->motion.x, event->motion.y, - event->motion.xrel, event->motion.yrel, - event->motion.windowID); - break; - case SDL_MOUSEBUTTONDOWN: - fprintf(stderr, "Mouse %d: button %d pressed at %d,%d in window %d", - event->button.which, event->button.button, event->button.x, - event->button.y, event->button.windowID); - break; - case SDL_MOUSEBUTTONUP: - fprintf(stderr, "Mouse %d: button %d released at %d,%d in window %d", - event->button.which, event->button.button, event->button.x, - event->button.y, event->button.windowID); - break; - case SDL_MOUSEWHEEL: - fprintf(stderr, - "Mouse %d: wheel scrolled %d in x and %d in y in window %d", - event->wheel.which, event->wheel.x, event->wheel.y, - event->wheel.windowID); - break; - case SDL_JOYBALLMOTION: - fprintf(stderr, "Joystick %d: ball %d moved by %d,%d", - event->jball.which, event->jball.ball, event->jball.xrel, - event->jball.yrel); - break; - case SDL_JOYHATMOTION: - fprintf(stderr, "Joystick %d: hat %d moved to ", event->jhat.which, - event->jhat.hat); - switch (event->jhat.value) { - case SDL_HAT_CENTERED: - fprintf(stderr, "CENTER"); - break; - case SDL_HAT_UP: - fprintf(stderr, "UP"); - break; - case SDL_HAT_RIGHTUP: - fprintf(stderr, "RIGHTUP"); - break; - case SDL_HAT_RIGHT: - fprintf(stderr, "RIGHT"); - break; - case SDL_HAT_RIGHTDOWN: - fprintf(stderr, "RIGHTDOWN"); - break; - case SDL_HAT_DOWN: - fprintf(stderr, "DOWN"); - break; - case SDL_HAT_LEFTDOWN: - fprintf(stderr, "LEFTDOWN"); - break; - case SDL_HAT_LEFT: - fprintf(stderr, "LEFT"); - break; - case SDL_HAT_LEFTUP: - fprintf(stderr, "LEFTUP"); - break; - default: - fprintf(stderr, "UNKNOWN"); - break; - } - break; - case SDL_JOYBUTTONDOWN: - fprintf(stderr, "Joystick %d: button %d pressed", - event->jbutton.which, event->jbutton.button); - break; - case SDL_JOYBUTTONUP: - fprintf(stderr, "Joystick %d: button %d released", - event->jbutton.which, event->jbutton.button); - break; - case SDL_QUIT: - fprintf(stderr, "Quit requested"); - break; - case SDL_USEREVENT: - fprintf(stderr, "User event %d", event->user.code); - break; - default: - fprintf(stderr, "Unknown event %d", event->type); - break; - } - fprintf(stderr, "\n"); -} - -void -CommonEvent(CommonState * state, SDL_Event * event, int *done) -{ - if (state->verbose & VERBOSE_EVENT) { - PrintEvent(event); - } - - switch (event->type) { - case SDL_WINDOWEVENT: - switch (event->window.event) { - case SDL_WINDOWEVENT_CLOSE: - *done = 1; - break; - } - break; - case SDL_KEYDOWN: - switch (event->key.keysym.sym) { - /* Add hotkeys here */ - case SDLK_g: - if (event->key.keysym.mod & KMOD_CTRL) { - /* Ctrl-G toggle grab */ - } - break; - case SDLK_ESCAPE: - *done = 1; - break; - default: - break; - } - break; - case SDL_QUIT: - *done = 1; - break; - } -} - -void -CommonQuit(CommonState * state) -{ - if (state->flags & SDL_INIT_VIDEO) { - SDL_VideoQuit(); - } - if (state->flags & SDL_INIT_AUDIO) { - SDL_AudioQuit(); - } - if (state->windows) { - SDL_free(state->windows); - } - SDL_free(state); -} diff --git a/test/nds-test-progs/sprite2/source/common.h b/test/nds-test-progs/sprite2/source/common.h deleted file mode 100755 index 0e0393198..000000000 --- a/test/nds-test-progs/sprite2/source/common.h +++ /dev/null @@ -1,48 +0,0 @@ - -/* A simple test program framework */ - -#include - -#define VERBOSE_VIDEO 0x00000001 -#define VERBOSE_MODES 0x00000002 -#define VERBOSE_RENDER 0x00000004 -#define VERBOSE_EVENT 0x00000008 -#define VERBOSE_AUDIO 0x00000010 - -typedef struct -{ - /* SDL init flags */ - char **argv; - Uint32 flags; - Uint32 verbose; - - /* Video info */ - const char *videodriver; - int display; - const char *window_title; - Uint32 window_flags; - int window_x; - int window_y; - int window_w; - int window_h; - int depth; - int refresh_rate; - int num_windows; - SDL_WindowID *windows; - - /* Renderer info */ - const char *renderdriver; - Uint32 render_flags; - SDL_bool skip_renderer; - - /* Audio info */ - const char *audiodriver; - SDL_AudioSpec audiospec; -} CommonState; - -extern CommonState *CommonCreateState(char **argv, Uint32 flags); -extern int CommonArg(CommonState * state, int index); -extern const char *CommonUsage(CommonState * state); -extern SDL_bool CommonInit(CommonState * state); -extern void CommonEvent(CommonState * state, SDL_Event * event, int *done); -extern void CommonQuit(CommonState * state); diff --git a/test/nds-test-progs/sprite2/source/testsprite2.c b/test/nds-test-progs/sprite2/source/testsprite2.c deleted file mode 100755 index 15dfa0ed4..000000000 --- a/test/nds-test-progs/sprite2/source/testsprite2.c +++ /dev/null @@ -1,270 +0,0 @@ -/* Simple program: Move N sprites around on the screen as fast as possible */ - -#include -#include -#include -#include -#include -#include "common.h" - -#define NUM_SPRITES 10 -#define MAX_SPEED 1 - -static CommonState *state; -static int num_sprites; -static SDL_TextureID *sprites; -static SDL_bool cycle_color; -static SDL_bool cycle_alpha; -static int cycle_direction = 1; -static int current_alpha = 0; -static int current_color = 0; -static SDL_Rect *positions; -static SDL_Rect *velocities; -static int sprite_w, sprite_h; -static SDL_BlendMode blendMode = SDL_BLENDMODE_MASK; -static SDL_TextureScaleMode scaleMode = SDL_TEXTURESCALEMODE_NONE; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - if (sprites) { - SDL_free(sprites); - } - if (positions) { - SDL_free(positions); - } - if (velocities) { - SDL_free(velocities); - } - CommonQuit(state); - exit(rc); -} - -int -LoadSprite(char *file) -{ - int i; - SDL_Surface *temp; - - /* Load the sprite image */ - temp = SDL_LoadBMP(file); - if (temp == NULL) { - fprintf(stderr, "Couldn't load %s: %s", file, SDL_GetError()); - return (-1); - } - sprite_w = temp->w; - sprite_h = temp->h; - - /* Set transparent pixel as the pixel at (0,0) */ - if (temp->format->palette) { - SDL_SetColorKey(temp, SDL_SRCCOLORKEY, *(Uint8 *) temp->pixels); - } - - /* Create textures from the image */ - for (i = 0; i < state->num_windows; ++i) { - SDL_SelectRenderer(state->windows[i]); - sprites[i] = SDL_CreateTextureFromSurface(0, temp); - if (!sprites[i]) { - fprintf(stderr, "Couldn't create texture: %s\n", SDL_GetError()); - SDL_FreeSurface(temp); - return (-1); - } - SDL_SetTextureBlendMode(sprites[i], blendMode); - SDL_SetTextureScaleMode(sprites[i], scaleMode); - } - SDL_FreeSurface(temp); - - /* We're ready to roll. :) */ - return (0); -} - -int -LoadSprite2(const u8 * ptr, int size) -{ - int i; - SDL_Rect r = { 0, 0, 32, 32 }; - for (i = 0; i < state->num_windows; ++i) { - SDL_SelectRenderer(state->windows[i]); - sprites[i] = SDL_CreateTexture(SDL_PIXELFORMAT_ABGR1555, - SDL_TEXTUREACCESS_STATIC, r.w, r.h); - if (!sprites[i]) { - fprintf(stderr, "Couldn't create texture: %s\n", SDL_GetError()); - return -1; - } - SDL_UpdateTexture(sprites[i], &r, ptr, r.w * 2); - SDL_SetTextureBlendMode(sprites[i], blendMode); - SDL_SetTextureScaleMode(sprites[i], scaleMode); - } - return 0; -} - -void -MoveSprites(SDL_WindowID window, SDL_TextureID sprite) -{ - int i, n; - int window_w, window_h; - SDL_Rect area, *position, *velocity; - - SDL_SelectRenderer(window); - - /* Query the sizes */ - SDL_GetWindowSize(window, &window_w, &window_h); - - /* Cycle the color and alpha, if desired */ - if (cycle_color) { - current_color += cycle_direction; - if (current_color < 0) { - current_color = 0; - cycle_direction = -cycle_direction; - } - if (current_color > 255) { - current_color = 255; - cycle_direction = -cycle_direction; - } - SDL_SetTextureColorMod(sprite, 255, (Uint8) current_color, - (Uint8) current_color); - } - if (cycle_alpha) { - current_alpha += cycle_direction; - if (current_alpha < 0) { - current_alpha = 0; - cycle_direction = -cycle_direction; - } - if (current_alpha > 255) { - current_alpha = 255; - cycle_direction = -cycle_direction; - } - SDL_SetTextureAlphaMod(sprite, (Uint8) current_alpha); - } - - /* Move the sprite, bounce at the wall, and draw */ - n = 0; - SDL_RenderFill(0xA0, 0xA0, 0xA0, 0xFF, NULL); - for (i = 0; i < num_sprites; ++i) { - position = &positions[i]; - velocity = &velocities[i]; - position->x += velocity->x; - if ((position->x < 0) || (position->x >= (window_w - sprite_w))) { - velocity->x = -velocity->x; - position->x += velocity->x; - } - position->y += velocity->y; - if ((position->y < 0) || (position->y >= (window_h - sprite_w))) { - velocity->y = -velocity->y; - position->y += velocity->y; - } - - /* Blit the sprite onto the screen */ - SDL_RenderCopy(sprite, NULL, position); - } - - /* Update the screen! */ - SDL_RenderPresent(); -} - -int -main(int argc, char *argv[]) -{ - int i, done; - SDL_Event event; - Uint32 then, now, frames; - - consoleDemoInit(); - puts("Hello world! Initializing FAT..."); - fatInitDefault(); - - /* Initialize parameters */ - num_sprites = NUM_SPRITES; - - /* Initialize test framework */ - state = CommonCreateState(argv, SDL_INIT_VIDEO); - if (!state) { - return 1; - } - - if (!CommonInit(state)) { - quit(2); - } - - /* Create the windows, initialize the renderers, and load the textures */ - sprites = - (SDL_TextureID *) SDL_malloc(state->num_windows * sizeof(*sprites)); - if (!sprites) { - fprintf(stderr, "Out of memory!\n"); - quit(2); - } - for (i = 0; i < state->num_windows; ++i) { - SDL_SelectRenderer(state->windows[i]); - SDL_RenderFill(0xA0, 0xA0, 0xA0, 0xFF, NULL); - } - if (LoadSprite("icon.bmp") < 0) { - printf("\nerrored.\n"); - while (1); - quit(2); - } - - /* Allocate memory for the sprite info */ - positions = (SDL_Rect *) SDL_malloc(num_sprites * sizeof(SDL_Rect)); - velocities = (SDL_Rect *) SDL_malloc(num_sprites * sizeof(SDL_Rect)); - if (!positions || !velocities) { - fprintf(stderr, "Out of memory!\n"); - quit(2); - } - srand(time(NULL)); - if (scaleMode != SDL_TEXTURESCALEMODE_NONE) { - sprite_w += sprite_w / 2; - sprite_h += sprite_h / 2; - } - for (i = 0; i < num_sprites; ++i) { - positions[i].x = rand() % (state->window_w - sprite_w); - positions[i].y = rand() % (state->window_h - sprite_h); - positions[i].w = sprite_w; - positions[i].h = sprite_h; - velocities[i].x = 0; - velocities[i].y = 0; - while (!velocities[i].x && !velocities[i].y) { - velocities[i].x = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - velocities[i].y = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - } - } - - /* Main render loop */ - frames = 0; - then = SDL_GetTicks(); - done = 0; - while (!done) { - /* Check for events */ - ++frames; - while (SDL_PollEvent(&event)) { - CommonEvent(state, &event, &done); - switch (event.type) { - case SDL_WINDOWEVENT: - switch (event.window.event) { - case SDL_WINDOWEVENT_EXPOSED: - SDL_SelectRenderer(event.window.windowID); - SDL_RenderFill(0xA0, 0xA0, 0xA0, 0xFF, NULL); - break; - } - break; - default: - break; - } - } - for (i = 0; i < state->num_windows; ++i) { - MoveSprites(state->windows[i], sprites[i]); - } - } - - /* Print out some timing information */ - now = SDL_GetTicks(); - if (now > then) { - printf("%2.2f frames per second\n", - ((double) frames * 1000) / (now - then)); - } - - quit(0); - return 0; -} - -/* vi: set ts=4 sw=4 expandtab: */