remove sdl tests files
|
@ -1,3 +0,0 @@
|
|||
handle SIGUSR1 pass noprint
|
||||
handle SIGUSR2 pass noprint
|
||||
break main
|
|
@ -1,8 +0,0 @@
|
|||
|
||||
The test programs in this directory tree are for demonstrating and
|
||||
testing the functionality of the SDL library, and are placed in the
|
||||
public domain.
|
||||
|
||||
October 28, 1997
|
||||
--
|
||||
Sam Lantinga (slouken@libsdl.org)
|
|
@ -1,199 +0,0 @@
|
|||
# Makefile to build the SDL tests
|
||||
|
||||
srcdir = @srcdir@
|
||||
|
||||
CC = @CC@
|
||||
EXE = @EXE@
|
||||
CFLAGS = @CFLAGS@
|
||||
LIBS = @LIBS@
|
||||
|
||||
TARGETS = \
|
||||
checkkeys$(EXE) \
|
||||
loopwave$(EXE) \
|
||||
testaudioinfo$(EXE) \
|
||||
testdraw2$(EXE) \
|
||||
testerror$(EXE) \
|
||||
testfile$(EXE) \
|
||||
testgesture$(EXE) \
|
||||
testgl2$(EXE) \
|
||||
testgles$(EXE) \
|
||||
testhaptic$(EXE) \
|
||||
testrumble$(EXE) \
|
||||
testthread$(EXE) \
|
||||
testiconv$(EXE) \
|
||||
testime$(EXE) \
|
||||
testintersections$(EXE) \
|
||||
testrelative$(EXE) \
|
||||
testjoystick$(EXE) \
|
||||
testkeys$(EXE) \
|
||||
testloadso$(EXE) \
|
||||
testlock$(EXE) \
|
||||
testmultiaudio$(EXE) \
|
||||
testnative$(EXE) \
|
||||
testoverlay2$(EXE) \
|
||||
testplatform$(EXE) \
|
||||
testpower$(EXE) \
|
||||
testrendertarget$(EXE) \
|
||||
testresample$(EXE) \
|
||||
testscale$(EXE) \
|
||||
testsem$(EXE) \
|
||||
testshader$(EXE) \
|
||||
testshape$(EXE) \
|
||||
testsprite2$(EXE) \
|
||||
testspriteminimal$(EXE) \
|
||||
teststreaming$(EXE) \
|
||||
testtimer$(EXE) \
|
||||
testver$(EXE) \
|
||||
testwm2$(EXE) \
|
||||
torturethread$(EXE) \
|
||||
testrendercopyex$(EXE) \
|
||||
|
||||
all: Makefile $(TARGETS)
|
||||
|
||||
Makefile: $(srcdir)/Makefile.in
|
||||
$(SHELL) config.status $@
|
||||
|
||||
checkkeys$(EXE): $(srcdir)/checkkeys.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
loopwave$(EXE): $(srcdir)/loopwave.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testresample$(EXE): $(srcdir)/testresample.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testaudioinfo$(EXE): $(srcdir)/testaudioinfo.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testmultiaudio$(EXE): $(srcdir)/testmultiaudio.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testatomic$(EXE): $(srcdir)/testatomic.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testintersections$(EXE): $(srcdir)/testintersections.c $(srcdir)/common.c
|
||||
$(CC) -o $@ $(srcdir)/testintersections.c $(srcdir)/common.c $(CFLAGS) $(LIBS)
|
||||
|
||||
testrelative$(EXE): $(srcdir)/testrelative.c $(srcdir)/common.c
|
||||
$(CC) -o $@ $(srcdir)/testrelative.c $(srcdir)/common.c $(CFLAGS) $(LIBS)
|
||||
|
||||
testdraw2$(EXE): $(srcdir)/testdraw2.c $(srcdir)/common.c
|
||||
$(CC) -o $@ $(srcdir)/testdraw2.c $(srcdir)/common.c $(CFLAGS) $(LIBS)
|
||||
|
||||
testerror$(EXE): $(srcdir)/testerror.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testfile$(EXE): $(srcdir)/testfile.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testgesture$(EXE): $(srcdir)/testgesture.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS) @MATHLIB@
|
||||
|
||||
testgl2$(EXE): $(srcdir)/testgl2.c $(srcdir)/common.c
|
||||
$(CC) -o $@ $(srcdir)/testgl2.c $(srcdir)/common.c $(CFLAGS) $(LIBS) @GLLIB@ @MATHLIB@
|
||||
|
||||
testgles$(EXE): $(srcdir)/testgles.c $(srcdir)/common.c
|
||||
$(CC) -o $@ $(srcdir)/testgles.c $(srcdir)/common.c $(CFLAGS) $(LIBS) @GLLIB@ @MATHLIB@
|
||||
|
||||
testhaptic$(EXE): $(srcdir)/testhaptic.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testrumble$(EXE): $(srcdir)/testrumble.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testthread$(EXE): $(srcdir)/testthread.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testiconv$(EXE): $(srcdir)/testiconv.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testime$(EXE): $(srcdir)/testime.c $(srcdir)/common.c
|
||||
$(CC) -o $@ $(srcdir)/testime.c $(srcdir)/common.c $(CFLAGS) $(LIBS) @SDL_TTF_LIB@
|
||||
|
||||
testjoystick$(EXE): $(srcdir)/testjoystick.c $(srcdir)/common.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testkeys$(EXE): $(srcdir)/testkeys.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testloadso$(EXE): $(srcdir)/testloadso.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testlock$(EXE): $(srcdir)/testlock.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
ifeq (@ISMACOSX@,true)
|
||||
testnative$(EXE): $(srcdir)/testnative.c \
|
||||
$(srcdir)/testnativecocoa.m \
|
||||
$(srcdir)/testnativew32.c \
|
||||
$(srcdir)/testnativex11.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS) -L/usr/X11/lib -lX11 -framework Cocoa
|
||||
endif
|
||||
|
||||
ifeq (@ISWINDOWS@,true)
|
||||
testnative$(EXE): $(srcdir)/testnative.c \
|
||||
$(srcdir)/testnativew32.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
endif
|
||||
|
||||
ifeq (@ISUNIX@,true)
|
||||
testnative$(EXE): $(srcdir)/testnative.c \
|
||||
$(srcdir)/testnativex11.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS) -L/usr/X11/lib -lX11
|
||||
endif
|
||||
|
||||
testoverlay2$(EXE): $(srcdir)/testoverlay2.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testplatform$(EXE): $(srcdir)/testplatform.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testpower$(EXE): $(srcdir)/testpower.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testrendertarget$(EXE): $(srcdir)/testrendertarget.c $(srcdir)/common.c
|
||||
$(CC) -o $@ $(srcdir)/testrendertarget.c $(srcdir)/common.c $(CFLAGS) $(LIBS)
|
||||
|
||||
testscale$(EXE): $(srcdir)/testscale.c $(srcdir)/common.c
|
||||
$(CC) -o $@ $(srcdir)/testscale.c $(srcdir)/common.c $(CFLAGS) $(LIBS)
|
||||
|
||||
testsem$(EXE): $(srcdir)/testsem.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testshader$(EXE): $(srcdir)/testshader.c
|
||||
$(CC) -o $@ $(srcdir)/testshader.c $(CFLAGS) $(LIBS) @GLLIB@ @MATHLIB@
|
||||
|
||||
testshape$(EXE): $(srcdir)/testshape.c
|
||||
$(CC) -o $@ $? -std=c99 $(CFLAGS) $(LIBS)
|
||||
|
||||
testsprite2$(EXE): $(srcdir)/testsprite2.c $(srcdir)/common.c
|
||||
$(CC) -o $@ $(srcdir)/testsprite2.c $(srcdir)/common.c $(CFLAGS) $(LIBS) @MATHLIB@
|
||||
|
||||
testspriteminimal$(EXE): $(srcdir)/testspriteminimal.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS) @MATHLIB@
|
||||
|
||||
teststreaming$(EXE): $(srcdir)/teststreaming.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS) @MATHLIB@
|
||||
|
||||
testtimer$(EXE): $(srcdir)/testtimer.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testver$(EXE): $(srcdir)/testver.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testwm2$(EXE): $(srcdir)/testwm2.c $(srcdir)/common.c
|
||||
$(CC) -o $@ $(srcdir)/testwm2.c $(srcdir)/common.c $(CFLAGS) $(LIBS)
|
||||
|
||||
torturethread$(EXE): $(srcdir)/torturethread.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testrendercopyex$(EXE): $(srcdir)/testrendercopyex.c $(srcdir)/common.c
|
||||
$(CC) -o $@ $(srcdir)/testrendercopyex.c $(srcdir)/common.c $(CFLAGS) $(LIBS) @MATHLIB@
|
||||
|
||||
clean:
|
||||
rm -f $(TARGETS)
|
||||
|
||||
distclean: clean
|
||||
rm -f Makefile
|
||||
rm -f config.status config.cache config.log
|
||||
rm -rf $(srcdir)/autom4te*
|
|
@ -1,27 +0,0 @@
|
|||
|
||||
These are test programs for the SDL library:
|
||||
|
||||
checkkeys Watch the key events to check the keyboard
|
||||
loopwave Audio test -- loop playing a WAV file
|
||||
testaudioinfo Lists audio device capabilities
|
||||
testcdrom Sample audio CD control program
|
||||
testerror Tests multi-threaded error handling
|
||||
testfile Tests RWops layer
|
||||
testgl2 A very simple example of using OpenGL with SDL
|
||||
testhread Hacked up test of multi-threading
|
||||
testiconv Tests international string conversion
|
||||
testjoystick List joysticks and watch joystick events
|
||||
testkeys List the available keyboard keys
|
||||
testloadso Tests the loadable library layer
|
||||
testlock Hacked up test of multi-threading and locking
|
||||
testmultiaudio Tests using several audio devices
|
||||
testoverlay2 Tests the overlay flickering/scaling during playback.
|
||||
testpalette Tests palette color cycling
|
||||
testplatform Tests types, endianness and cpu capabilities
|
||||
testsem Tests SDL's semaphore implementation
|
||||
testshape Tests shaped windows
|
||||
testsprite2 Example of fast sprite movement on the screen
|
||||
testtimer Test the timer facilities
|
||||
testver Check the version and dynamic loading and endianness
|
||||
testwm2 Test window manager -- title, icon, events
|
||||
torturethread Simple test for thread creation/destruction
|
|
@ -1,359 +0,0 @@
|
|||
# Configure paths for SDL
|
||||
# Sam Lantinga 9/21/99
|
||||
# stolen from Manish Singh
|
||||
# stolen back from Frank Belew
|
||||
# stolen from Manish Singh
|
||||
# Shamelessly stolen from Owen Taylor
|
||||
|
||||
# serial 1
|
||||
|
||||
dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||
dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS
|
||||
dnl
|
||||
AC_DEFUN([AM_PATH_SDL2],
|
||||
[dnl
|
||||
dnl Get the cflags and libraries from the sdl2-config script
|
||||
dnl
|
||||
AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)],
|
||||
sdl_prefix="$withval", sdl_prefix="")
|
||||
AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)],
|
||||
sdl_exec_prefix="$withval", sdl_exec_prefix="")
|
||||
AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program],
|
||||
, enable_sdltest=yes)
|
||||
|
||||
min_sdl_version=ifelse([$1], ,0.9.0,$1)
|
||||
|
||||
if test "x$sdl_prefix$sdl_exec_prefix" = x ; then
|
||||
PKG_CHECK_MODULES([SDL], [sdl2 >= $min_sdl_version],
|
||||
[sdl_pc=yes],
|
||||
[sdl_pc=no])
|
||||
else
|
||||
sdl_pc=no
|
||||
if test x$sdl_exec_prefix != x ; then
|
||||
sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix"
|
||||
if test x${SDL_CONFIG+set} != xset ; then
|
||||
SDL_CONFIG=$sdl_exec_prefix/bin/sdl2-config
|
||||
fi
|
||||
fi
|
||||
if test x$sdl_prefix != x ; then
|
||||
sdl_config_args="$sdl_config_args --prefix=$sdl_prefix"
|
||||
if test x${SDL_CONFIG+set} != xset ; then
|
||||
SDL_CONFIG=$sdl_prefix/bin/sdl2-config
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$sdl_pc" = xyes ; then
|
||||
no_sdl=""
|
||||
SDL_CONFIG="pkg-config sdl2"
|
||||
else
|
||||
as_save_PATH="$PATH"
|
||||
if test "x$prefix" != xNONE && test "$cross_compiling" != yes; then
|
||||
PATH="$prefix/bin:$prefix/usr/bin:$PATH"
|
||||
fi
|
||||
AC_PATH_PROG(SDL_CONFIG, sdl2-config, no, [$PATH])
|
||||
PATH="$as_save_PATH"
|
||||
AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
|
||||
no_sdl=""
|
||||
|
||||
if test "$SDL_CONFIG" = "no" ; then
|
||||
no_sdl=yes
|
||||
else
|
||||
SDL_CFLAGS=`$SDL_CONFIG $sdl_config_args --cflags`
|
||||
SDL_LIBS=`$SDL_CONFIG $sdl_config_args --libs`
|
||||
|
||||
sdl_major_version=`$SDL_CONFIG $sdl_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
sdl_minor_version=`$SDL_CONFIG $sdl_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
if test "x$enable_sdltest" = "xyes" ; then
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_CXXFLAGS="$CXXFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $SDL_CFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
|
||||
LIBS="$LIBS $SDL_LIBS"
|
||||
dnl
|
||||
dnl Now check if the installed SDL is sufficiently new. (Also sanity
|
||||
dnl checks the results of sdl2-config to some extent
|
||||
dnl
|
||||
rm -f conf.sdltest
|
||||
AC_TRY_RUN([
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "SDL.h"
|
||||
|
||||
char*
|
||||
my_strdup (char *str)
|
||||
{
|
||||
char *new_str;
|
||||
|
||||
if (str)
|
||||
{
|
||||
new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
|
||||
strcpy (new_str, str);
|
||||
}
|
||||
else
|
||||
new_str = NULL;
|
||||
|
||||
return new_str;
|
||||
}
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
int major, minor, micro;
|
||||
char *tmp_version;
|
||||
|
||||
/* This hangs on some systems (?)
|
||||
system ("touch conf.sdltest");
|
||||
*/
|
||||
{ FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
|
||||
|
||||
/* HP/UX 9 (%@#!) writes to sscanf strings */
|
||||
tmp_version = my_strdup("$min_sdl_version");
|
||||
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
|
||||
printf("%s, bad version string\n", "$min_sdl_version");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (($sdl_major_version > major) ||
|
||||
(($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
|
||||
(($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro)))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\n*** 'sdl2-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version);
|
||||
printf("*** of SDL required is %d.%d.%d. If sdl2-config is correct, then it is\n", major, minor, micro);
|
||||
printf("*** best to upgrade to the required version.\n");
|
||||
printf("*** If sdl2-config was wrong, set the environment variable SDL_CONFIG\n");
|
||||
printf("*** to point to the correct copy of sdl2-config, and remove the file\n");
|
||||
printf("*** config.cache before re-running configure\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
if test "x$no_sdl" = x ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
fi
|
||||
if test "x$no_sdl" = x ; then
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
if test "$SDL_CONFIG" = "no" ; then
|
||||
echo "*** The sdl2-config script installed by SDL could not be found"
|
||||
echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
|
||||
echo "*** your path, or set the SDL_CONFIG environment variable to the"
|
||||
echo "*** full path to sdl2-config."
|
||||
else
|
||||
if test -f conf.sdltest ; then
|
||||
:
|
||||
else
|
||||
echo "*** Could not run SDL test program, checking why..."
|
||||
CFLAGS="$CFLAGS $SDL_CFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
|
||||
LIBS="$LIBS $SDL_LIBS"
|
||||
AC_TRY_LINK([
|
||||
#include <stdio.h>
|
||||
#include "SDL.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{ return 0; }
|
||||
#undef main
|
||||
#define main K_and_R_C_main
|
||||
], [ return 0; ],
|
||||
[ echo "*** The test program compiled, but did not run. This usually means"
|
||||
echo "*** that the run-time linker is not finding SDL or finding the wrong"
|
||||
echo "*** version of SDL. If it is not finding SDL, you'll need to set your"
|
||||
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
|
||||
echo "*** to the installed location Also, make sure you have run ldconfig if that"
|
||||
echo "*** is required on your system"
|
||||
echo "***"
|
||||
echo "*** If you have an old version installed, it is best to remove it, although"
|
||||
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
|
||||
[ echo "*** The test program failed to compile or link. See the file config.log for the"
|
||||
echo "*** exact error that occured. This usually means SDL was incorrectly installed"
|
||||
echo "*** or that you have moved SDL since it was installed. In the latter case, you"
|
||||
echo "*** may want to edit the sdl2-config script: $SDL_CONFIG" ])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
SDL_CFLAGS=""
|
||||
SDL_LIBS=""
|
||||
ifelse([$3], , :, [$3])
|
||||
fi
|
||||
AC_SUBST(SDL_CFLAGS)
|
||||
AC_SUBST(SDL_LIBS)
|
||||
rm -f conf.sdltest
|
||||
])
|
||||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
||||
# serial 1 (pkg-config-0.24)
|
||||
#
|
||||
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
||||
# ----------------------------------
|
||||
AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
||||
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
||||
m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
|
||||
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
|
||||
AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
|
||||
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
|
||||
|
||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
||||
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
|
||||
fi
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
_pkg_min_version=m4_default([$1], [0.9.0])
|
||||
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
PKG_CONFIG=""
|
||||
fi
|
||||
fi[]dnl
|
||||
])# PKG_PROG_PKG_CONFIG
|
||||
|
||||
# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
# Check to see whether a particular set of modules exists. Similar
|
||||
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
|
||||
#
|
||||
# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
# only at the first occurence in configure.ac, so if the first place
|
||||
# it's called might be skipped (such as if it is within an "if", you
|
||||
# have to call PKG_CHECK_EXISTS manually
|
||||
# --------------------------------------------------------------
|
||||
AC_DEFUN([PKG_CHECK_EXISTS],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
|
||||
m4_default([$2], [:])
|
||||
m4_ifvaln([$3], [else
|
||||
$3])dnl
|
||||
fi])
|
||||
|
||||
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
||||
# ---------------------------------------------
|
||||
m4_define([_PKG_CONFIG],
|
||||
[if test -n "$$1"; then
|
||||
pkg_cv_[]$1="$$1"
|
||||
elif test -n "$PKG_CONFIG"; then
|
||||
PKG_CHECK_EXISTS([$3],
|
||||
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
|
||||
[pkg_failed=yes])
|
||||
else
|
||||
pkg_failed=untried
|
||||
fi[]dnl
|
||||
])# _PKG_CONFIG
|
||||
|
||||
# _PKG_SHORT_ERRORS_SUPPORTED
|
||||
# -----------------------------
|
||||
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||
_pkg_short_errors_supported=yes
|
||||
else
|
||||
_pkg_short_errors_supported=no
|
||||
fi[]dnl
|
||||
])# _PKG_SHORT_ERRORS_SUPPORTED
|
||||
|
||||
|
||||
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
||||
# [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
#
|
||||
# Note that if there is a possibility the first call to
|
||||
# PKG_CHECK_MODULES might not happen, you should be sure to include an
|
||||
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
|
||||
#
|
||||
#
|
||||
# --------------------------------------------------------------
|
||||
AC_DEFUN([PKG_CHECK_MODULES],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
||||
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
|
||||
|
||||
pkg_failed=no
|
||||
AC_MSG_CHECKING([for $1])
|
||||
|
||||
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
|
||||
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
|
||||
|
||||
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
|
||||
and $1[]_LIBS to avoid the need to call pkg-config.
|
||||
See the pkg-config man page for more details.])
|
||||
|
||||
if test $pkg_failed = yes; then
|
||||
AC_MSG_RESULT([no])
|
||||
_PKG_SHORT_ERRORS_SUPPORTED
|
||||
if test $_pkg_short_errors_supported = yes; then
|
||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
|
||||
else
|
||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
|
||||
fi
|
||||
# Put the nasty error message in config.log where it belongs
|
||||
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
|
||||
|
||||
m4_default([$4], [AC_MSG_ERROR(
|
||||
[Package requirements ($2) were not met:
|
||||
|
||||
$$1_PKG_ERRORS
|
||||
|
||||
Consider adjusting the PKG_CONFIG_PATH environment variable if you
|
||||
installed software in a non-standard prefix.
|
||||
|
||||
_PKG_TEXT])dnl
|
||||
])
|
||||
elif test $pkg_failed = untried; then
|
||||
AC_MSG_RESULT([no])
|
||||
m4_default([$4], [AC_MSG_FAILURE(
|
||||
[The pkg-config script could not be found or is too old. Make sure it
|
||||
is in your PATH or set the PKG_CONFIG environment variable to the full
|
||||
path to pkg-config.
|
||||
|
||||
_PKG_TEXT
|
||||
|
||||
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])dnl
|
||||
])
|
||||
else
|
||||
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
|
||||
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
|
||||
AC_MSG_RESULT([yes])
|
||||
$3
|
||||
fi[]dnl
|
||||
])# PKG_CHECK_MODULES
|
359
src/SDL/test/aclocal.m4
vendored
|
@ -1,359 +0,0 @@
|
|||
# Configure paths for SDL
|
||||
# Sam Lantinga 9/21/99
|
||||
# stolen from Manish Singh
|
||||
# stolen back from Frank Belew
|
||||
# stolen from Manish Singh
|
||||
# Shamelessly stolen from Owen Taylor
|
||||
|
||||
# serial 1
|
||||
|
||||
dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||
dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS
|
||||
dnl
|
||||
AC_DEFUN([AM_PATH_SDL2],
|
||||
[dnl
|
||||
dnl Get the cflags and libraries from the sdl2-config script
|
||||
dnl
|
||||
AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)],
|
||||
sdl_prefix="$withval", sdl_prefix="")
|
||||
AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)],
|
||||
sdl_exec_prefix="$withval", sdl_exec_prefix="")
|
||||
AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program],
|
||||
, enable_sdltest=yes)
|
||||
|
||||
min_sdl_version=ifelse([$1], ,0.9.0,$1)
|
||||
|
||||
if test "x$sdl_prefix$sdl_exec_prefix" = x ; then
|
||||
PKG_CHECK_MODULES([SDL], [sdl2 >= $min_sdl_version],
|
||||
[sdl_pc=yes],
|
||||
[sdl_pc=no])
|
||||
else
|
||||
sdl_pc=no
|
||||
if test x$sdl_exec_prefix != x ; then
|
||||
sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix"
|
||||
if test x${SDL_CONFIG+set} != xset ; then
|
||||
SDL_CONFIG=$sdl_exec_prefix/bin/sdl2-config
|
||||
fi
|
||||
fi
|
||||
if test x$sdl_prefix != x ; then
|
||||
sdl_config_args="$sdl_config_args --prefix=$sdl_prefix"
|
||||
if test x${SDL_CONFIG+set} != xset ; then
|
||||
SDL_CONFIG=$sdl_prefix/bin/sdl2-config
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$sdl_pc" = xyes ; then
|
||||
no_sdl=""
|
||||
SDL_CONFIG="pkg-config sdl2"
|
||||
else
|
||||
as_save_PATH="$PATH"
|
||||
if test "x$prefix" != xNONE && test "$cross_compiling" != yes; then
|
||||
PATH="$prefix/bin:$prefix/usr/bin:$PATH"
|
||||
fi
|
||||
AC_PATH_PROG(SDL_CONFIG, sdl2-config, no, [$PATH])
|
||||
PATH="$as_save_PATH"
|
||||
AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
|
||||
no_sdl=""
|
||||
|
||||
if test "$SDL_CONFIG" = "no" ; then
|
||||
no_sdl=yes
|
||||
else
|
||||
SDL_CFLAGS=`$SDL_CONFIG $sdl_config_args --cflags`
|
||||
SDL_LIBS=`$SDL_CONFIG $sdl_config_args --libs`
|
||||
|
||||
sdl_major_version=`$SDL_CONFIG $sdl_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
sdl_minor_version=`$SDL_CONFIG $sdl_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
if test "x$enable_sdltest" = "xyes" ; then
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_CXXFLAGS="$CXXFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $SDL_CFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
|
||||
LIBS="$LIBS $SDL_LIBS"
|
||||
dnl
|
||||
dnl Now check if the installed SDL is sufficiently new. (Also sanity
|
||||
dnl checks the results of sdl2-config to some extent
|
||||
dnl
|
||||
rm -f conf.sdltest
|
||||
AC_TRY_RUN([
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "SDL.h"
|
||||
|
||||
char*
|
||||
my_strdup (char *str)
|
||||
{
|
||||
char *new_str;
|
||||
|
||||
if (str)
|
||||
{
|
||||
new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
|
||||
strcpy (new_str, str);
|
||||
}
|
||||
else
|
||||
new_str = NULL;
|
||||
|
||||
return new_str;
|
||||
}
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
int major, minor, micro;
|
||||
char *tmp_version;
|
||||
|
||||
/* This hangs on some systems (?)
|
||||
system ("touch conf.sdltest");
|
||||
*/
|
||||
{ FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
|
||||
|
||||
/* HP/UX 9 (%@#!) writes to sscanf strings */
|
||||
tmp_version = my_strdup("$min_sdl_version");
|
||||
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
|
||||
printf("%s, bad version string\n", "$min_sdl_version");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (($sdl_major_version > major) ||
|
||||
(($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
|
||||
(($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro)))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\n*** 'sdl2-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version);
|
||||
printf("*** of SDL required is %d.%d.%d. If sdl2-config is correct, then it is\n", major, minor, micro);
|
||||
printf("*** best to upgrade to the required version.\n");
|
||||
printf("*** If sdl2-config was wrong, set the environment variable SDL_CONFIG\n");
|
||||
printf("*** to point to the correct copy of sdl2-config, and remove the file\n");
|
||||
printf("*** config.cache before re-running configure\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
if test "x$no_sdl" = x ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
fi
|
||||
if test "x$no_sdl" = x ; then
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
if test "$SDL_CONFIG" = "no" ; then
|
||||
echo "*** The sdl2-config script installed by SDL could not be found"
|
||||
echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
|
||||
echo "*** your path, or set the SDL_CONFIG environment variable to the"
|
||||
echo "*** full path to sdl2-config."
|
||||
else
|
||||
if test -f conf.sdltest ; then
|
||||
:
|
||||
else
|
||||
echo "*** Could not run SDL test program, checking why..."
|
||||
CFLAGS="$CFLAGS $SDL_CFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
|
||||
LIBS="$LIBS $SDL_LIBS"
|
||||
AC_TRY_LINK([
|
||||
#include <stdio.h>
|
||||
#include "SDL.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{ return 0; }
|
||||
#undef main
|
||||
#define main K_and_R_C_main
|
||||
], [ return 0; ],
|
||||
[ echo "*** The test program compiled, but did not run. This usually means"
|
||||
echo "*** that the run-time linker is not finding SDL or finding the wrong"
|
||||
echo "*** version of SDL. If it is not finding SDL, you'll need to set your"
|
||||
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
|
||||
echo "*** to the installed location Also, make sure you have run ldconfig if that"
|
||||
echo "*** is required on your system"
|
||||
echo "***"
|
||||
echo "*** If you have an old version installed, it is best to remove it, although"
|
||||
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
|
||||
[ echo "*** The test program failed to compile or link. See the file config.log for the"
|
||||
echo "*** exact error that occured. This usually means SDL was incorrectly installed"
|
||||
echo "*** or that you have moved SDL since it was installed. In the latter case, you"
|
||||
echo "*** may want to edit the sdl2-config script: $SDL_CONFIG" ])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
SDL_CFLAGS=""
|
||||
SDL_LIBS=""
|
||||
ifelse([$3], , :, [$3])
|
||||
fi
|
||||
AC_SUBST(SDL_CFLAGS)
|
||||
AC_SUBST(SDL_LIBS)
|
||||
rm -f conf.sdltest
|
||||
])
|
||||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
||||
# serial 1 (pkg-config-0.24)
|
||||
#
|
||||
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
||||
# ----------------------------------
|
||||
AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
||||
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
||||
m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
|
||||
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
|
||||
AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
|
||||
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
|
||||
|
||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
||||
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
|
||||
fi
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
_pkg_min_version=m4_default([$1], [0.9.0])
|
||||
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
PKG_CONFIG=""
|
||||
fi
|
||||
fi[]dnl
|
||||
])# PKG_PROG_PKG_CONFIG
|
||||
|
||||
# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
# Check to see whether a particular set of modules exists. Similar
|
||||
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
|
||||
#
|
||||
# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
# only at the first occurence in configure.ac, so if the first place
|
||||
# it's called might be skipped (such as if it is within an "if", you
|
||||
# have to call PKG_CHECK_EXISTS manually
|
||||
# --------------------------------------------------------------
|
||||
AC_DEFUN([PKG_CHECK_EXISTS],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
|
||||
m4_default([$2], [:])
|
||||
m4_ifvaln([$3], [else
|
||||
$3])dnl
|
||||
fi])
|
||||
|
||||
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
||||
# ---------------------------------------------
|
||||
m4_define([_PKG_CONFIG],
|
||||
[if test -n "$$1"; then
|
||||
pkg_cv_[]$1="$$1"
|
||||
elif test -n "$PKG_CONFIG"; then
|
||||
PKG_CHECK_EXISTS([$3],
|
||||
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
|
||||
[pkg_failed=yes])
|
||||
else
|
||||
pkg_failed=untried
|
||||
fi[]dnl
|
||||
])# _PKG_CONFIG
|
||||
|
||||
# _PKG_SHORT_ERRORS_SUPPORTED
|
||||
# -----------------------------
|
||||
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||
_pkg_short_errors_supported=yes
|
||||
else
|
||||
_pkg_short_errors_supported=no
|
||||
fi[]dnl
|
||||
])# _PKG_SHORT_ERRORS_SUPPORTED
|
||||
|
||||
|
||||
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
||||
# [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
#
|
||||
# Note that if there is a possibility the first call to
|
||||
# PKG_CHECK_MODULES might not happen, you should be sure to include an
|
||||
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
|
||||
#
|
||||
#
|
||||
# --------------------------------------------------------------
|
||||
AC_DEFUN([PKG_CHECK_MODULES],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
||||
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
|
||||
|
||||
pkg_failed=no
|
||||
AC_MSG_CHECKING([for $1])
|
||||
|
||||
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
|
||||
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
|
||||
|
||||
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
|
||||
and $1[]_LIBS to avoid the need to call pkg-config.
|
||||
See the pkg-config man page for more details.])
|
||||
|
||||
if test $pkg_failed = yes; then
|
||||
AC_MSG_RESULT([no])
|
||||
_PKG_SHORT_ERRORS_SUPPORTED
|
||||
if test $_pkg_short_errors_supported = yes; then
|
||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
|
||||
else
|
||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
|
||||
fi
|
||||
# Put the nasty error message in config.log where it belongs
|
||||
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
|
||||
|
||||
m4_default([$4], [AC_MSG_ERROR(
|
||||
[Package requirements ($2) were not met:
|
||||
|
||||
$$1_PKG_ERRORS
|
||||
|
||||
Consider adjusting the PKG_CONFIG_PATH environment variable if you
|
||||
installed software in a non-standard prefix.
|
||||
|
||||
_PKG_TEXT])dnl
|
||||
])
|
||||
elif test $pkg_failed = untried; then
|
||||
AC_MSG_RESULT([no])
|
||||
m4_default([$4], [AC_MSG_FAILURE(
|
||||
[The pkg-config script could not be found or is too old. Make sure it
|
||||
is in your PATH or set the PKG_CONFIG environment variable to the full
|
||||
path to pkg-config.
|
||||
|
||||
_PKG_TEXT
|
||||
|
||||
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])dnl
|
||||
])
|
||||
else
|
||||
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
|
||||
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
|
||||
AC_MSG_RESULT([yes])
|
||||
$3
|
||||
fi[]dnl
|
||||
])# PKG_CHECK_MODULES
|
|
@ -1,12 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Regenerate configuration files
|
||||
cp acinclude.m4 aclocal.m4
|
||||
found=false
|
||||
for autoconf in autoconf autoconf259 autoconf-2.59
|
||||
do if which $autoconf >/dev/null 2>&1; then $autoconf && found=true; break; fi
|
||||
done
|
||||
if test x$found = xfalse; then
|
||||
echo "Couldn't find autoconf, aborting"
|
||||
exit 1
|
||||
fi
|
|
@ -1,60 +0,0 @@
|
|||
|
||||
|
||||
CFLAGS := -W -Wall -Wextra -g `sdl2-config --prefix=/usr/local --cflags` -DSDL_NO_COMPAT
|
||||
LDFLAGS := `sdl2-config --prefix=/usr/local --libs`
|
||||
|
||||
# If it doesn't pick up defaults
|
||||
#CFLAGS := -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/local/include/SDL2
|
||||
#LDFLAGS := -lm -ldl -lesd -lpthread
|
||||
|
||||
SRC := testsdl.c \
|
||||
platform/platform.c \
|
||||
rect/rect.c \
|
||||
surface/surface.c \
|
||||
render/render.c \
|
||||
audio/audio.c
|
||||
COMMON_SRC := SDL_at.c common/common.c
|
||||
COMMON_INCLUDE := SDL_at.h
|
||||
|
||||
RWOPS_SRC := rwops/rwops.c rwops/TestSupportRWops_Generic.c
|
||||
|
||||
TESTS_ALL := testsdl \
|
||||
platform/platform \
|
||||
rwops/rwops \
|
||||
rect/rect \
|
||||
surface/surface \
|
||||
render/render \
|
||||
audio/audio
|
||||
|
||||
|
||||
.PHONY: all clean test
|
||||
|
||||
|
||||
all: $(TESTS_ALL)
|
||||
|
||||
test: all
|
||||
@./testsdl
|
||||
|
||||
testsdl: $(SRC) $(RWOPS_SRC) $(COMMON_SRC)
|
||||
$(CC) $(CFLAGS) -o $@ $(SRC) $(RWOPS_SRC) $(COMMON_SRC) $(LDFLAGS)
|
||||
|
||||
platform/platform: platform/platform.c $(COMMON_INCLUDE) $(COMMON_SRC)
|
||||
$(CC) $(CFLAGS) -o $@ platform/platform.c $(COMMON_SRC) -DTEST_STANDALONE $(LDFLAGS)
|
||||
|
||||
rwops/rwops: $(RWOPS_SRC) $(COMMON_INCLUDE) $(COMMON_SRC)
|
||||
$(CC) $(CFLAGS) -o $@ $(RWOPS_SRC) $(COMMON_SRC) -DTEST_STANDALONE $(LDFLAGS)
|
||||
|
||||
rect/rect: rect/rect.c $(COMMON_INCLUDE) $(COMMON_SRC)
|
||||
$(CC) $(CFLAGS) -o $@ rect/rect.c $(COMMON_SRC) -DTEST_STANDALONE $(LDFLAGS)
|
||||
|
||||
surface/surface: surface/surface.c $(COMMON_INCLUDE) $(COMMON_SRC)
|
||||
$(CC) $(CFLAGS) -o $@ surface/surface.c $(COMMON_SRC) -DTEST_STANDALONE $(LDFLAGS)
|
||||
|
||||
render/render: render/render.c $(COMMON_INCLUDE) $(COMMON_SRC)
|
||||
$(CC) $(CFLAGS) -o $@ render/render.c $(COMMON_SRC) -DTEST_STANDALONE $(LDFLAGS)
|
||||
|
||||
audio/audio: audio/audio.c $(COMMON_INCLUDE) $(COMMON_SRC)
|
||||
$(CC) $(CFLAGS) -o $@ audio/audio.c $(COMMON_SRC) -DTEST_STANDALONE $(LDFLAGS)
|
||||
|
||||
clean:
|
||||
$(RM) $(TESTS_ALL)
|
|
@ -1,59 +0,0 @@
|
|||
|
||||
|
||||
SDL Automated Testing Framework User Documentation
|
||||
by Edgar Simo Serra
|
||||
|
||||
|
||||
|
||||
Abstract
|
||||
|
||||
The SDL Automated Testing Framework, hereby after called SDL_AT, is a meant
|
||||
to test the SDL code for regressions and other possible failures. It can also
|
||||
be used to display what your SDL set up supports.
|
||||
|
||||
|
||||
|
||||
Basics
|
||||
|
||||
The main way to use the framework is to compile it and run it, that can be
|
||||
done with the following command:
|
||||
|
||||
$> make test
|
||||
|
||||
It should then display something like:
|
||||
|
||||
Platform : All tests successful (2)
|
||||
SDL_RWops : All tests successful (5)
|
||||
SDL_Surface : All tests successful (6)
|
||||
Rendering with x11 driver : All tests successful (4)
|
||||
|
||||
Indicating that all tests were successful. If however a test fails output it
|
||||
will report the failure to stderr indicating where and why it happened. This
|
||||
output can then be sent to the developers so they can attempt to fix the
|
||||
problem.
|
||||
|
||||
|
||||
|
||||
Advanced
|
||||
|
||||
By passing the "-h" or "--help" parameter to testsdl you can get an overview
|
||||
of all the possible options you can set to furthur tweak the testing. A sample
|
||||
of the options would be the following:
|
||||
|
||||
Usage: ./testsdl [OPTIONS]
|
||||
Options are:
|
||||
-m, --manual enables tests that require user interaction
|
||||
--noplatform do not run the platform tests
|
||||
--norwops do not run the rwops tests
|
||||
--nosurface do not run the surface tests
|
||||
--norender do not run the render tests
|
||||
-v, --verbose increases verbosity level by 1 for each -v
|
||||
-q, --quiet only displays errors
|
||||
-h, --help display this message and exit
|
||||
|
||||
|
||||
|
||||
Developers
|
||||
|
||||
See SDL_at.h for developer information.
|
||||
|
|
@ -1,331 +0,0 @@
|
|||
/*
|
||||
* Common code for automated test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#include "SDL_at.h"
|
||||
#include "SDL_stdinc.h"
|
||||
#include "SDL_error.h"
|
||||
|
||||
#include <stdio.h> /* printf/fprintf */
|
||||
#include <stdarg.h> /* va_list */
|
||||
|
||||
|
||||
/*
|
||||
* Internal usage SDL_AT variables.
|
||||
*/
|
||||
static char *at_suite_msg = NULL; /**< Testsuite message. */
|
||||
static char *at_test_msg = NULL; /**< Testcase message. */
|
||||
static int at_success = 0; /**< Number of successful testcases. */
|
||||
static int at_failure = 0; /**< Number of failed testcases. */
|
||||
|
||||
|
||||
/*
|
||||
* Global properties.
|
||||
*/
|
||||
static int at_verbose = 0; /**< Verbosity. */
|
||||
static int at_quiet = 0; /**< Quietness. */
|
||||
|
||||
|
||||
/*
|
||||
* Prototypes.
|
||||
*/
|
||||
static void SDL_ATcleanup (void);
|
||||
static void SDL_ATendWith( int success );
|
||||
static void SDL_ATassertFailed( const char *msg );
|
||||
|
||||
|
||||
/**
|
||||
* @brief Cleans up the automated testsuite state.
|
||||
*/
|
||||
static void SDL_ATcleanup (void)
|
||||
{
|
||||
if (at_suite_msg != NULL)
|
||||
SDL_free(at_suite_msg);
|
||||
at_suite_msg = NULL;
|
||||
if (at_test_msg != NULL)
|
||||
SDL_free(at_test_msg);
|
||||
at_test_msg = NULL;
|
||||
at_success = 0;
|
||||
at_failure = 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Begin testsuite.
|
||||
*/
|
||||
void SDL_ATinit( const char *suite )
|
||||
{
|
||||
/* Do not open twice. */
|
||||
if (at_suite_msg) {
|
||||
SDL_ATprintErr( "AT suite '%s' not closed before opening suite '%s'\n",
|
||||
at_suite_msg, suite );
|
||||
}
|
||||
/* Must have a name. */
|
||||
if (suite == NULL) {
|
||||
SDL_ATprintErr( "AT testsuite does not have a name.\n");
|
||||
}
|
||||
SDL_ATcleanup();
|
||||
at_suite_msg = SDL_strdup(suite);
|
||||
|
||||
/* Verbose message. */
|
||||
SDL_ATprintVerbose( 2, "--+---> Started Test Suite '%s'\n", at_suite_msg );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Finish testsuite.
|
||||
*/
|
||||
int SDL_ATfinish (void)
|
||||
{
|
||||
int failed;
|
||||
|
||||
/* Make sure initialized. */
|
||||
if (at_suite_msg == NULL) {
|
||||
SDL_ATprintErr("Ended testcase without initializing.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Finished without closing testcase. */
|
||||
if (at_test_msg) {
|
||||
SDL_ATprintErr( "AT suite '%s' finished without closing testcase '%s'\n",
|
||||
at_suite_msg, at_test_msg );
|
||||
}
|
||||
|
||||
/* Verbose message. */
|
||||
SDL_ATprintVerbose( 2, "<-+---- Finished Test Suite '%s'\n", at_suite_msg );
|
||||
|
||||
/* Display message if verbose on failed. */
|
||||
failed = at_failure;
|
||||
if (at_failure > 0) {
|
||||
SDL_ATprintErr( "%s : Failed %d out of %d testcases!\n",
|
||||
at_suite_msg, at_failure, at_failure+at_success );
|
||||
}
|
||||
else {
|
||||
SDL_ATprint( "%s : All tests successful (%d)\n",
|
||||
at_suite_msg, at_success );
|
||||
}
|
||||
|
||||
/* Clean up. */
|
||||
SDL_ATcleanup();
|
||||
|
||||
/* Return failed. */
|
||||
return failed;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Sets a property.
|
||||
*/
|
||||
void SDL_ATseti( int property, int value )
|
||||
{
|
||||
switch (property) {
|
||||
case SDL_AT_VERBOSE:
|
||||
at_verbose = value;
|
||||
break;
|
||||
|
||||
case SDL_AT_QUIET:
|
||||
at_quiet = value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Gets a property.
|
||||
*/
|
||||
void SDL_ATgeti( int property, int *value )
|
||||
{
|
||||
switch (property) {
|
||||
case SDL_AT_VERBOSE:
|
||||
*value = at_verbose;
|
||||
break;
|
||||
|
||||
case SDL_AT_QUIET:
|
||||
*value = at_quiet;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Begin testcase.
|
||||
*/
|
||||
void SDL_ATbegin( const char *testcase )
|
||||
{
|
||||
/* Do not open twice. */
|
||||
if (at_test_msg) {
|
||||
SDL_ATprintErr( "AT testcase '%s' not closed before opening testcase '%s'\n",
|
||||
at_test_msg, testcase );
|
||||
}
|
||||
/* Must have a name. */
|
||||
if (testcase == NULL) {
|
||||
SDL_ATprintErr( "AT testcase does not have a name.\n");
|
||||
}
|
||||
at_test_msg = SDL_strdup(testcase);
|
||||
|
||||
/* Verbose message. */
|
||||
SDL_ATprintVerbose( 2, " +---> StartedTest Case '%s'\n", testcase );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Ends the testcase with a succes or failure.
|
||||
*/
|
||||
static void SDL_ATendWith( int success )
|
||||
{
|
||||
/* Make sure initialized. */
|
||||
if (at_test_msg == NULL) {
|
||||
SDL_ATprintErr("Ended testcase without initializing.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
/* Mark as success or failure. */
|
||||
if (success)
|
||||
at_success++;
|
||||
else
|
||||
at_failure++;
|
||||
|
||||
/* Verbose message. */
|
||||
SDL_ATprintVerbose( 2, " +---- Finished Test Case '%s'\n", at_test_msg );
|
||||
|
||||
/* Clean up. */
|
||||
if (at_test_msg != NULL)
|
||||
SDL_free(at_test_msg);
|
||||
at_test_msg = NULL;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Display failed assert message.
|
||||
*/
|
||||
static void SDL_ATassertFailed( const char *msg )
|
||||
{
|
||||
/* Print. */
|
||||
SDL_ATprintErr( "Assert Failed!\n" );
|
||||
SDL_ATprintErr( " %s\n", msg );
|
||||
SDL_ATprintErr( " Test Case '%s'\n", at_test_msg );
|
||||
SDL_ATprintErr( " Test Suite '%s'\n", at_suite_msg );
|
||||
SDL_ATprintErr( " Last SDL error '%s'\n", SDL_GetError() );
|
||||
/* End. */
|
||||
SDL_ATendWith(0);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Testcase test.
|
||||
*/
|
||||
int SDL_ATassert( const char *msg, int condition )
|
||||
{
|
||||
/* Condition failed. */
|
||||
if (!condition) {
|
||||
/* Failed message. */
|
||||
SDL_ATassertFailed(msg);
|
||||
}
|
||||
return !condition;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Testcase test.
|
||||
*/
|
||||
int SDL_ATvassert( int condition, const char *msg, ... )
|
||||
{
|
||||
va_list args;
|
||||
char buf[256];
|
||||
|
||||
/* Condition failed. */
|
||||
if (!condition) {
|
||||
/* Get message. */
|
||||
va_start( args, msg );
|
||||
SDL_vsnprintf( buf, sizeof(buf), msg, args );
|
||||
va_end( args );
|
||||
/* Failed message. */
|
||||
SDL_ATassertFailed( buf );
|
||||
}
|
||||
return !condition;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief End testcase.
|
||||
*/
|
||||
void SDL_ATend (void)
|
||||
{
|
||||
SDL_ATendWith(1);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Displays an error.
|
||||
*/
|
||||
int SDL_ATprintErr( const char *msg, ... )
|
||||
{
|
||||
va_list ap;
|
||||
int ret;
|
||||
|
||||
/* Make sure there is something to print. */
|
||||
if (msg == NULL)
|
||||
return 0;
|
||||
else {
|
||||
va_start(ap, msg);
|
||||
ret = vfprintf( stderr, msg, ap );
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Displays a message.
|
||||
*/
|
||||
int SDL_ATprint( const char *msg, ... )
|
||||
{
|
||||
va_list ap;
|
||||
int ret;
|
||||
|
||||
/* Only print if not quiet. */
|
||||
if (at_quiet)
|
||||
return 0;
|
||||
|
||||
/* Make sure there is something to print. */
|
||||
if (msg == NULL)
|
||||
return 0;
|
||||
else {
|
||||
va_start(ap, msg);
|
||||
ret = vfprintf( stdout, msg, ap );
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Displays a verbose message.
|
||||
*/
|
||||
int SDL_ATprintVerbose( int level, const char *msg, ... )
|
||||
{
|
||||
va_list ap;
|
||||
int ret;
|
||||
|
||||
/* Only print if not quiet. */
|
||||
if (at_quiet || (at_verbose < level))
|
||||
return 0;
|
||||
|
||||
/* Make sure there is something to print. */
|
||||
if (msg == NULL)
|
||||
return 0;
|
||||
else {
|
||||
va_start(ap, msg);
|
||||
ret = vfprintf( stdout, msg, ap );
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
|
@ -1,158 +0,0 @@
|
|||
/*
|
||||
* Common code for automated test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @file SDL_at.h
|
||||
*
|
||||
* @brief Handles automatic testing functionality.
|
||||
*
|
||||
* The basic approach with SDL_AT is to divide the tests into what are called
|
||||
* test suites and test cases. Each test suite should have multiple test
|
||||
* cases, each test case can have multiple asserts.
|
||||
*
|
||||
* To actually test for conditions within the testcase you check asserts, if
|
||||
* the asserts fail the failures will be logged in the testsuite and
|
||||
* displayed.
|
||||
*
|
||||
* Syntax is similar to OpenGL. An example would be:
|
||||
*
|
||||
* @code
|
||||
* int f; // Number failed
|
||||
* SDL_ATinit( "My testsuite" );
|
||||
*
|
||||
* SDL_ATbegin( "My first testcase" );
|
||||
* if (!SDL_ATassert( (1+1)==2, "Trying '1+1=2'."))
|
||||
* return; // Implicitly calls SDL_ATend if assert fails
|
||||
* SDL_ATend(); // Finish testcase
|
||||
*
|
||||
* SDL_ATbegin( "My second testcase" );
|
||||
* if (!SDL_ATassert( (4/2)==2, "Trying '4/2=2'."))
|
||||
* return; // Implicitly calls SDL_ATend if assert fails
|
||||
* SDL_ATend(); // Finish testcase
|
||||
*
|
||||
* f = SDL_ATfinish();
|
||||
* @endcode
|
||||
*
|
||||
* @author Edgar Simo "bobbens"
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _SDL_AT_H
|
||||
# define _SDL_AT_H
|
||||
|
||||
|
||||
|
||||
enum {
|
||||
SDL_AT_VERBOSE, /**< Sets the verbose level. */
|
||||
SDL_AT_QUIET /**< Sets quietness. */
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Suite level actions.
|
||||
*/
|
||||
/**
|
||||
* @brief Starts the testsuite.
|
||||
*
|
||||
* @param suite Name of the suite to start testing.
|
||||
*/
|
||||
void SDL_ATinit( const char *suite );
|
||||
/**
|
||||
* @brief Finishes the testsuite printing out global results if verbose.
|
||||
*
|
||||
* @return 0 if no errors occurred, otherwise number of failures.
|
||||
*/
|
||||
int SDL_ATfinish (void);
|
||||
/**
|
||||
* @brief Sets a global property value.
|
||||
*
|
||||
* @param property Property to set.
|
||||
* @param value Value to set property to.
|
||||
*/
|
||||
void SDL_ATseti( int property, int value );
|
||||
/**
|
||||
* @brief Gets a global property value.
|
||||
*
|
||||
* @param property Property to get.
|
||||
* @param[out] value Value of the property.
|
||||
*/
|
||||
void SDL_ATgeti( int property, int *value );
|
||||
|
||||
|
||||
/*
|
||||
* Testcase level actions.
|
||||
*/
|
||||
/**
|
||||
* @brief Begins a testcase.
|
||||
*
|
||||
* @param testcase Name of the testcase to begin.
|
||||
*/
|
||||
void SDL_ATbegin( const char *testcase );
|
||||
/**
|
||||
* @brief Checks a condition in the testcase.
|
||||
*
|
||||
* Will automatically call SDL_ATend if the condition isn't met.
|
||||
*
|
||||
* @param condition Condition to make sure is true.
|
||||
* @param msg Message to display for failure.
|
||||
* @return Returns 1 if the condition isn't met.
|
||||
*/
|
||||
int SDL_ATassert( const char *msg, int condition );
|
||||
/**
|
||||
* @brief Checks a condition in the testcase.
|
||||
*
|
||||
* Will automatically call SDL_ATend if the condition isn't met.
|
||||
*
|
||||
* @param condition Condition to make sure is true.
|
||||
* @param msg Message to display for failure with printf style formatting.
|
||||
* @return Returns 1 if the condition isn't met.
|
||||
*/
|
||||
int SDL_ATvassert( int condition, const char *msg, ... );
|
||||
/**
|
||||
* @brief Ends a testcase.
|
||||
*/
|
||||
void SDL_ATend (void);
|
||||
|
||||
|
||||
/*
|
||||
* Misc functions.
|
||||
*/
|
||||
/**
|
||||
* @brief Prints an error.
|
||||
*
|
||||
* @param msg printf formatted string to display.
|
||||
* @return Number of character printed.
|
||||
*/
|
||||
int SDL_ATprintErr( const char *msg, ... );
|
||||
/**
|
||||
* @brief Prints some text.
|
||||
*
|
||||
* @param msg printf formatted string to display.
|
||||
* @return Number of character printed.
|
||||
*/
|
||||
int SDL_ATprint( const char *msg, ... );
|
||||
/**
|
||||
* @brief Prints some verbose text.
|
||||
*
|
||||
* Verbosity levels are as follows:
|
||||
*
|
||||
* - 0 standard stdout, enabled by default
|
||||
* - 1 additional information
|
||||
* - 2 detailed information (spammy)
|
||||
*
|
||||
* @param level Level of verbosity to print at.
|
||||
* @param msg printf formatted string to display.
|
||||
* @return Number of character printed.
|
||||
*/
|
||||
int SDL_ATprintVerbose( int level, const char *msg, ... );
|
||||
|
||||
|
||||
#endif /* _SDL_AT_H */
|
||||
|
||||
|
|
@ -1,89 +0,0 @@
|
|||
/**
|
||||
* Automated SDL_RWops test.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#include "SDL.h"
|
||||
#include "../SDL_at.h"
|
||||
|
||||
|
||||
/**
|
||||
* @brief Prints available devices.
|
||||
*/
|
||||
static int audio_printDevices( int iscapture )
|
||||
{
|
||||
int i, n;
|
||||
|
||||
/* Get number of devices. */
|
||||
n = SDL_GetNumAudioDevices(iscapture);
|
||||
SDL_ATprintVerbose( 1, "%d %s Audio Devices\n",
|
||||
n, iscapture ? "Capture" : "Output" );
|
||||
|
||||
/* List devices. */
|
||||
for (i=0; i<n; i++) {
|
||||
SDL_ATprintVerbose( 1, " %d) %s\n", i+1, SDL_GetAudioDeviceName( i, iscapture ) );
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Makes sure parameters work properly.
|
||||
*/
|
||||
static void audio_testOpen (void)
|
||||
{
|
||||
int i, n;
|
||||
int ret;
|
||||
|
||||
/* Begin testcase. */
|
||||
SDL_ATbegin( "Audio Open" );
|
||||
|
||||
/* List drivers. */
|
||||
n = SDL_GetNumAudioDrivers();
|
||||
SDL_ATprintVerbose( 1, "%d Audio Drivers\n", n );
|
||||
for (i=0; i<n; i++) {
|
||||
SDL_ATprintVerbose( 1, " %s\n", SDL_GetAudioDriver(i) );
|
||||
}
|
||||
|
||||
/* Start SDL. */
|
||||
ret = SDL_Init( SDL_INIT_AUDIO );
|
||||
if (SDL_ATvassert( ret==0, "SDL_Init( SDL_INIT_AUDIO ): %s", SDL_GetError()))
|
||||
return;
|
||||
|
||||
/* Print devices. */
|
||||
SDL_ATprintVerbose( 1, "Using Audio Driver '%s'\n", SDL_GetCurrentAudioDriver() );
|
||||
audio_printDevices(0);
|
||||
audio_printDevices(1);
|
||||
|
||||
/* Quit SDL. */
|
||||
SDL_Quit();
|
||||
|
||||
/* End testcase. */
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Entry point.
|
||||
*/
|
||||
#ifdef TEST_STANDALONE
|
||||
int main( int argc, const char *argv[] )
|
||||
{
|
||||
(void) argc;
|
||||
(void) argv;
|
||||
#else /* TEST_STANDALONE */
|
||||
int test_audio (void)
|
||||
{
|
||||
#endif /* TEST_STANDALONE */
|
||||
|
||||
SDL_ATinit( "SDL_Audio" );
|
||||
|
||||
audio_testOpen();
|
||||
|
||||
return SDL_ATfinish();
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Part of SDL test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _TEST_AUDIO
|
||||
# define _TEST_AUDIO
|
||||
|
||||
|
||||
int test_audio (void);
|
||||
|
||||
|
||||
#endif /* _TEST_AUDIO */
|
||||
|
|
@ -1,110 +0,0 @@
|
|||
/**
|
||||
* Automated SDL_Surface test.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#include "SDL.h"
|
||||
#include "../SDL_at.h"
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
/**
|
||||
* @brief Compares a surface and a surface image for equality.
|
||||
*/
|
||||
int surface_compare( SDL_Surface *sur, const SurfaceImage_t *img, int allowable_error )
|
||||
{
|
||||
int ret;
|
||||
int i,j;
|
||||
int bpp;
|
||||
Uint8 *p, *pd;
|
||||
|
||||
/* Make sure size is the same. */
|
||||
if ((sur->w != img->width) || (sur->h != img->height))
|
||||
return -1;
|
||||
|
||||
SDL_LockSurface( sur );
|
||||
|
||||
ret = 0;
|
||||
bpp = sur->format->BytesPerPixel;
|
||||
|
||||
/* Compare image - should be same format. */
|
||||
for (j=0; j<sur->h; j++) {
|
||||
for (i=0; i<sur->w; i++) {
|
||||
p = (Uint8 *)sur->pixels + j * sur->pitch + i * bpp;
|
||||
pd = (Uint8 *)img->pixel_data + (j*img->width + i) * img->bytes_per_pixel;
|
||||
switch (bpp) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
ret += 1;
|
||||
/*printf("%d BPP not supported yet.\n",bpp);*/
|
||||
break;
|
||||
|
||||
case 4:
|
||||
{
|
||||
int dist = 0;
|
||||
Uint8 R, G, B, A;
|
||||
|
||||
SDL_GetRGBA(*(Uint32*)p, sur->format, &R, &G, &B, &A);
|
||||
|
||||
if (img->bytes_per_pixel == 3) {
|
||||
dist += (R-pd[0])*(R-pd[0]);
|
||||
dist += (G-pd[1])*(G-pd[1]);
|
||||
dist += (B-pd[2])*(B-pd[2]);
|
||||
} else {
|
||||
dist += (R-pd[0])*(R-pd[0]);
|
||||
dist += (G-pd[1])*(G-pd[1]);
|
||||
dist += (B-pd[2])*(B-pd[2]);
|
||||
dist += (A-pd[3])*(A-pd[3]);
|
||||
}
|
||||
/* Allow some difference in blending accuracy */
|
||||
if (dist > allowable_error) {
|
||||
/*printf("pixel %d,%d varies by %d\n", i, j, dist);*/
|
||||
++ret;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SDL_UnlockSurface( sur );
|
||||
|
||||
if (ret) {
|
||||
SDL_SaveBMP(sur, "fail.bmp");
|
||||
|
||||
SDL_LockSurface( sur );
|
||||
|
||||
bpp = sur->format->BytesPerPixel;
|
||||
|
||||
if (bpp == 4) {
|
||||
for (j=0; j<sur->h; j++) {
|
||||
for (i=0; i<sur->w; i++) {
|
||||
Uint8 R, G, B, A;
|
||||
p = (Uint8 *)sur->pixels + j * sur->pitch + i * bpp;
|
||||
pd = (Uint8 *)img->pixel_data + (j*img->width + i) * img->bytes_per_pixel;
|
||||
|
||||
R = pd[0];
|
||||
G = pd[1];
|
||||
B = pd[2];
|
||||
if (img->bytes_per_pixel == 4) {
|
||||
A = pd[3];
|
||||
} else {
|
||||
A = 0;
|
||||
}
|
||||
*(Uint32*)p = (A << 24) | (R << 16) | (G << 8) | B;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SDL_UnlockSurface( sur );
|
||||
|
||||
SDL_SaveBMP(sur, "good.bmp");
|
||||
}
|
||||
return ret;
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
/**
|
||||
* Automated SDL test common framework.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef COMMON_H
|
||||
# define COMMON_H
|
||||
|
||||
|
||||
# define FORMAT SDL_PIXELFORMAT_ARGB8888
|
||||
# define AMASK 0xff000000 /**< Alpha bit mask. */
|
||||
# define RMASK 0x00ff0000 /**< Red bit mask. */
|
||||
# define GMASK 0x0000ff00 /**< Green bit mask. */
|
||||
# define BMASK 0x000000ff /**< Blue bit mask. */
|
||||
|
||||
|
||||
typedef struct SurfaceImage_s {
|
||||
int width;
|
||||
int height;
|
||||
unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */
|
||||
const unsigned char pixel_data[];
|
||||
} SurfaceImage_t;
|
||||
|
||||
#define ALLOWABLE_ERROR_OPAQUE 0
|
||||
#define ALLOWABLE_ERROR_BLENDED 64
|
||||
|
||||
/**
|
||||
* @brief Compares a surface and a surface image for equality.
|
||||
*
|
||||
* @param sur Surface to compare.
|
||||
* @param img Image to compare against.
|
||||
* @return 0 if they are the same, -1 on error and positive if different.
|
||||
*/
|
||||
int surface_compare( SDL_Surface *sur, const SurfaceImage_t *img, int allowable_error );
|
||||
|
||||
|
||||
#endif /* COMMON_H */
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
|
||||
|
||||
#ifndef IMAGES_H
|
||||
# define IMAGES_H
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
/*
|
||||
* Pull in images for testcases.
|
||||
*/
|
||||
#include "img_primitives.c"
|
||||
#include "img_primitivesblend.c"
|
||||
#include "img_face.c"
|
||||
#include "img_blit.c"
|
||||
#include "img_blitblend.c"
|
||||
|
||||
|
||||
#endif /* IMAGES_H */
|
||||
|
||||
|
|
@ -1,196 +0,0 @@
|
|||
/* GIMP RGBA C-Source image dump (face.c) */
|
||||
|
||||
static const SurfaceImage_t img_face = {
|
||||
32, 32, 4,
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0"
|
||||
"\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
|
||||
"\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\0\0\0\377\0\0\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0\377\0\0\0\377"
|
||||
"\377\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\0\0\0\377\0\0\0\377\377\377\377\0\0\0\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0\377\0\0\0"
|
||||
"\377\0\0\0\377\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\0\0\0\377\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0"
|
||||
"\377\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0"
|
||||
"\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0"
|
||||
"\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\0\0\0\377\0\0\0\377"
|
||||
"\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0\377\0\0\0\377\0\0"
|
||||
"\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\0\0\0\377\377\377\0\377\377\377\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
|
||||
"\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
|
||||
"\0\0\377\0\0\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\0\377\377"
|
||||
"\377\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
|
||||
"\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\0\377\377\377\0\377\0\0\0"
|
||||
"\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\0\0\0\377\0\0\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
|
||||
"\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0",
|
||||
};
|
||||
|
|
@ -1,463 +0,0 @@
|
|||
/* GIMP RGB C-Source image dump (primitives.c) */
|
||||
|
||||
static const SurfaceImage_t img_primitives = {
|
||||
80, 60, 3,
|
||||
"\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15"
|
||||
"I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310"
|
||||
"\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0"
|
||||
"\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0"
|
||||
"\0\5ii\0\0\0\5ii\0\0\0\3\1\1\0\0\0\5\2\1\0\0\0\7\3\2\0\0\0\11\4\3\0\0\0\13"
|
||||
"\5\3\0\0\0\15\6\4\0\0\0\17\7\5\0\0\0\21\10\5\0\0\0\23\11\6\0\0\0\25\12\7"
|
||||
"\0\0\0\27\13\7\0\0\0\31\14\10\0\0\0\33\15\11\0\0\0\35\16\11\0\0\0\37\17\12"
|
||||
"\0\0\0!\20\13\0\0\0#\21\13\0\0\0%\22\14\0\0\0'\23\15\15I\310)\24\15\15I\310"
|
||||
"+\25\16\15I\310-\26\17\15I\310/\27\17\15I\3101\30\20\15I\3103\31\21\15I\310"
|
||||
"5\32\21\15I\3107\33\22\15I\3109\34\23\15I\310;\35\23\15I\310=\36\24\15I\310"
|
||||
"?\37\25\15I\310A\40\25\15I\310C!\26\15I\310E\"\27\15I\310G#\27\15I\310I$"
|
||||
"\30\15I\310K%\31\15I\310M&\31\5iiO'\32\0\0\0\0\0\0\5ii\0\0\0\10\4\2\0\0\0"
|
||||
"\14\6\4\0\0\0\20\10\5\0\0\0\24\12\6\0\0\0\30\14\10\0\0\0\34\16\11\0\0\0\40"
|
||||
"\20\12\0\0\0$\22\14\0\0\0(\24\15\0\0\0,\26\16\0\0\0""0\30\20\0\0\0""4\32"
|
||||
"\21\0\0\0""8\34\22\0\0\0<\36\24\0\0\0@\40\25\0\0\0D\"\26\0\0\0H$\30\0\0\0"
|
||||
"L&\31\0\0\0P(\32\15I\310T*\34\15I\310X,\35\15I\310\\.\36\15I\310`0\40\15"
|
||||
"I\310d2!\15I\310h4\"\15I\310l6$\15I\310p8%\15I\310t:&\15I\310x<(\15I\310"
|
||||
"|>)\15I\310\200@*\15I\310\204B,\15I\310\210D-\15I\310\214F.\15I\310\220H"
|
||||
"0\15I\310\224J1\15I\310\230L2\5ii\234N4\15I\310\0\0\0\0\0\0\0\0\0\5ii\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\5ii"
|
||||
"\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\5ii\15I\310\15I\310\15I\310\15I\310"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\5ii\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\5ii\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5ii\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\5ii\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\5ii\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\5ii\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d"
|
||||
"\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\5ii\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\5ii\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d"
|
||||
"\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\5ii\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310"
|
||||
"\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d"
|
||||
"\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d"
|
||||
"\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5"
|
||||
"ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d"
|
||||
"\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d"
|
||||
"\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0"
|
||||
"\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0"
|
||||
"\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0"
|
||||
"\0\377\0\0\377\0\0\377\0\0\377\0\5ii\0\377\0\0\377\0\0\377\0\0\377\0\0\377"
|
||||
"\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0""77\5\0\377\0\0\377\0\0\377\0"
|
||||
"\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\5ii\0\377\0\0\377\0\0\377"
|
||||
"\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377"
|
||||
"\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377"
|
||||
"\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5"
|
||||
"ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d"
|
||||
"\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5i"
|
||||
"i\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310"
|
||||
"\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\5ii\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310"
|
||||
"\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\5ii\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\5ii\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d7"
|
||||
"7\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0""77\5\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\5ii\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""77\5\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\5ii\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5ii\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""77\5\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\5ii\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0""77\5\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\5ii\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5"
|
||||
"ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""77\5\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\5ii\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""77\5\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\5ii\15I\310\15I\310\15I\310\15I\310\0\0\0\0"
|
||||
"\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0""77\5\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\5ii\15I\310\15I\310\15I\310\0\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""77\5\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\5ii"
|
||||
"\15I\310\15I\310\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""77\5\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\5ii\15I\310\5ii\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0""77\5\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\5ii",
|
||||
};
|
||||
|
|
@ -1,645 +0,0 @@
|
|||
/* GIMP RGB C-Source image dump (alpha.c) */
|
||||
|
||||
static const SurfaceImage_t img_blend = {
|
||||
80, 60, 3,
|
||||
"\260e\15\222\356/\37\313\15\36\330\17K\3745D\3471\0\20\0D\3502D\3502<\321"
|
||||
",\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\0-\0\377\377"
|
||||
"\377\377\377\377\311\324\311\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\0H\0\377\377\377\377\377\377\256\307\256\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\0c\0\377\377\377\377\377\377"
|
||||
"\223\300\223\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\0~\0\377\377\377\377\377\377x\277x\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\0\231\0\377\377\377\377\377\377]\303]\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\0\264\0\377\377\377\377\377"
|
||||
"\377B\316B\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\0"
|
||||
"\317\0\377\377\377\377\377\377'\335'\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\0\352\0\377\377\377#\262\6\260d\15\260e\15\224\357"
|
||||
"/&\262\6\34\300\5.\314\22\40\315\12[\3747M\332/\27\331\12\27\331\12K\374"
|
||||
"5K\3745K\3745D\3471D\3471D\3471D\3471D\3471D\3502D\3502D\3502D\3502D\350"
|
||||
"2D\3502D\3502D\3502D\3502D\3502\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377,\372\27\273\3465\327"
|
||||
"Q.\260d\15\213\213\40\241\3601\200\366*=\265\13?\301\25s\375<Y\316-X\320"
|
||||
"-!\315\13]\3749]\3749O\3321O\3321P\3342P\3342P\3342\371\377\364\371\377\364"
|
||||
"\371\377\364\371\377\364\371\377\364\362\375\360\362\375\360\362\375\360"
|
||||
"\362\375\360\362\375\360D\3471D\3471D\3471D\3502D\3502D\3502D\3502D\3502"
|
||||
"D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"K\3745&\262\6\213\213\40\11\2\0\260`\15\241~#m}\11\273\363AQ\247\15S\266"
|
||||
"\31\212\373@e\302,\4\33\2s\375<\\\3161M\260*\\\3202X\320-\366\377\354\364"
|
||||
"\377\352O\3321\3""5\2O\3321O\3321<\261&P\3342P\3342S\3655\377\377\377\377"
|
||||
"\377\377\14Z\14\377\377\377\377\377\377\234\302\231\371\377\364\362\375\360"
|
||||
"\367\377\365\362\375\360\362\375\360\13t\13\362\375\360\362\375\360\177\275"
|
||||
"~\362\375\360\362\375\360\370\377\366\362\375\360\377\377\377\14\220\14\377"
|
||||
"\377\377D\3502\"\267\33D\3502D\3502K\3779D\3502D\3502\3\233\2D\3502D\350"
|
||||
"2\34\303\26D\3502D\3502L\377:D\3502D\3502\3\264\2D\3502D\3502\25\323\22\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\14\341\14\377\377"
|
||||
"\377\377\377\377\40\353\40\377\377\377D\3471\34\300\5e\247\33\356\336?\277"
|
||||
"f)\260P\17\260i\16\356\336?\331\353C\274\363GQ\247\15\243\370Cp\270)\212"
|
||||
"\373@h\3021h\3042c\304+\364\377\336\\\3161\\\3161\\\3202\\\3202\\\3202\377"
|
||||
"\377\377\364\377\352\364\377\352\346\371\342\346\371\342O\3321O\3321P\334"
|
||||
"2P\3342P\3342P\3342P\3342P\3342\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\362\375\360\362\375\360\362\375\360\362\375\360\362\375"
|
||||
"\360\362\375\360\362\375\360\362\375\360\362\375\360\362\375\360\362\375"
|
||||
"\360\362\375\360\362\375\360\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502\40"
|
||||
"\315\12=\265\13f\230\14\237y\15\274Y\17\327Q.\260X\14\243\177$\220\214\""
|
||||
"\215\235*\274\363G\177\252+\243\370Cu\2661p\270)\367\377\324h\3021h\3021"
|
||||
"h\3042\364\377\336\364\377\336\335\364\323\\\3161\\\3161\\\3202\\\3202\\"
|
||||
"\3202\377\377\377\377\377\377\364\377\352\364\377\352\346\371\342\346\371"
|
||||
"\342\346\371\342\346\371\342O\3321P\3342P\3342P\3342P\3342P\3342P\3342P\334"
|
||||
"2\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\362\375\360\362\375\360"
|
||||
"\362\375\360\362\375\360\362\375\360\362\375\360\362\375\360\362\375\360"
|
||||
"\362\375\360\362\375\360\362\375\360\362\375\360\362\375\360\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\6\0\4[\3747?\301\25N\241\14\331\353C\243\177$\275Z\21\377\254W\260Q\17\30"
|
||||
"\26\7\370\343N\201\210\16|\213-\274\363G\200\2521\202\263+\243\370Cu\266"
|
||||
"1\12&\4\367\377\324h\3021S\241)h\3042h\3042\377\377\377\364\377\336\335\364"
|
||||
"\323\24M\23\\\3161\\\3202C\245(\\\3202\\\3202\377\377\377\377\377\377\377"
|
||||
"\377\377\30l\30\346\371\342\346\371\342\207\273\205\346\371\342\346\371\342"
|
||||
"\361\377\355\377\377\377P\3342\7t\4P\3342P\3342/\260\"P\3342P\3342^\377@"
|
||||
"\377\377\377\377\377\377\30\242\30\377\377\377\377\377\377d\306d\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\30\275\30\377\377\377"
|
||||
"\377\377\377K\322K\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\30\330\30\362\375\360\362\375\3601\3431\362\375\360\362\375\360\377"
|
||||
"\377\377\362\375\360D\3502M\332/s\375<>\265\14\177\252+\201\210\16\245\204"
|
||||
"*\377\314U\312\\,\224'\11\260i\17\244\210\40\232\2211\331\353J\215\2351\377"
|
||||
"\377\276\200\2521\200\2542\375\377\310u\2661t\2702t\2702\367\377\324\325"
|
||||
"\355\305h\3021h\3042h\3042\377\377\377\377\377\377\364\377\336\335\364\323"
|
||||
"\335\364\323\335\364\323\\\3202\\\3202\\\3202\\\3202\\\3202\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\346\371\342\346\371\342\346"
|
||||
"\371\342\346\371\342\346\371\342\346\371\342\346\371\342\377\377\377\377"
|
||||
"\377\377P\3342P\3342P\3342P\3342P\3342P\3342P\3342P\3342\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\27\331\12Y\316-h\3021\243\370Cg\230\15\230\224\"\245"
|
||||
"\204*\377\314U\310J\21\327Q.\260b\21\245\2041\370\343N\230\2242\331\353J"
|
||||
"\214\2402\377\377\276\200\2521\200\2542\375\377\310\317\344\266u\2661t\270"
|
||||
"2\377\377\377\367\377\324\325\355\305h\3021h\3042h\3042h\3042\377\377\377"
|
||||
"\377\377\377\364\377\336\335\364\323\335\364\323\335\364\323\335\364\323"
|
||||
"\\\3202\\\3202\\\3202\\\3202\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\346\371\342\346\371"
|
||||
"\342\346\371\342\346\371\342\346\371\342\346\371\342\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377P\3342P\3342P\3342P\3342P\3342P\3342P\3342P\334"
|
||||
"2\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377K\3745!\315\13d\304,p\270)\177\252+\23\13\6\232\2211\245\204"
|
||||
"1\347\270O\377\277Y\324<\22\265V\24\377\330Q\244\210\40#(\13\230\224\"\331"
|
||||
"\353Ju\211.\377\377\276\200\2521\210\273:\200\2542\375\377\310\20""3\6u\266"
|
||||
"1t\2702\271\307\271\367\377\324\325\355\305\341\377\321h\3021h\3042\16L\7"
|
||||
"h\3042\377\377\377\242\300\242\377\377\377\335\364\323\355\377\343\335\364"
|
||||
"\323\335\364\323\14f\7\\\3202\\\3202>\250*\\\3202\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377$\231$\377\377\377\377\377\377s\303s\377\377\377"
|
||||
"\346\371\342\376\377\372\346\371\342\346\371\342\40\257\37\346\371\342\346"
|
||||
"\371\342\\\316\\\377\377\377\377\377\377\377\377\377\377\377\377P\3342\13"
|
||||
"\262\7P\3342P\3342*\327%P\3342P\3342o\377Q\377\377\377\377\377\377$\352$"
|
||||
"\377\377\377\377\377\377K\3745]\3749s\375<\212\373@\243\370C\274\363G\331"
|
||||
"\353J\370\343N\377\330Q\377\314U\377\277Y\377\260\\\224(\11\260|\36\245\204"
|
||||
"1\377\377\250\232\2211\230\224\"\215\2351\214\2402\377\377\276\312\332\250"
|
||||
"\200\2521\200\2542\377\377\377\317\344\266u\2661t\2702t\2702\377\377\377"
|
||||
"\377\377\377\325\355\305\325\355\305\325\355\305h\3042h\3042h\3042\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\335\364\323\335\364\323\335\364"
|
||||
"\323\335\364\323\335\364\323\\\3202\\\3202\\\3202\\\3202\\\3202\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\346\371\342\346\371\342"
|
||||
"\346\371\342\346\371\342\346\371\342\346\371\342\346\371\342\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377P\3342P\3342"
|
||||
"P\3342P\3342\377\377\377K\3745O\3321\\\3161h\3021t\2702~\254'\214\240%\377"
|
||||
"\377\262\370\343N\377\330Q\262x1\277l1\312`1\327R.\260X\23\377\330Q\244\210"
|
||||
"2\377\377\250\230\2242\377\377\262\215\2351\214\2402\377\377\377\312\332"
|
||||
"\250\200\2521\200\2542\377\377\377\375\377\310\317\344\266u\2661t\2702t\270"
|
||||
"2\377\377\377\377\377\377\325\355\305\325\355\305\325\355\305h\3042h\304"
|
||||
"2h\3042h\3042\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\335\364\323\335\364\323\335\364\323\335\364\323\377\377\377\\\3202\\\320"
|
||||
"2\\\3202\\\3202\\\3202\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\346\371\342\346\371\342\346\371\342\346"
|
||||
"\371\342\346\371\342\346\371\342\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377D\3471O\3321\21\7\11c\304+\367\377\324o\2520\200\252"
|
||||
"1\214\2402\235\226'\377\377\250\377\330Q!\20\11\277l1\310d2\266?\33\224("
|
||||
"\11\260|\36\257\217;\377\377\250\232\2211\34$\11\377\377\262\215\2351q\206"
|
||||
"0\377\377\377\312\332\250\217\303@\200\2542\200\25420Z0\317\344\266\317\344"
|
||||
"\266X\2260t\2702t\2702\377\377\377\377\377\377\325\355\305(l%\325\355\305"
|
||||
"\325\355\305K\2410h\3042h\3042\377\377\377\377\377\377\377\377\3770\2200"
|
||||
"\377\377\377\377\377\377t\274p\335\364\323\335\364\323\373\377\361\377\377"
|
||||
"\377\377\377\377\21\213\11\\\3202\\\3202<\274/\\\3202\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\3770\3060\377\377\377\377\377\377V\330V\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\3770\3410\346\371\342\346"
|
||||
"\371\342>\352>\346\371\342\377\377\377D\3471P\3342\364\377\352s\375<h\302"
|
||||
"1t\2702~\254'\377\377\276\215\2351\230\2242\244\210\40\377\377\234\262x1"
|
||||
"\277l1\310W\32\377\260\\\327T1\260|2\377\330Q\244\2102\377\377\250\232\221"
|
||||
"1\230\2242\377\377\262\215\2351\214\2402\377\377\377\377\377\276\312\332"
|
||||
"\250\200\2542\200\2542\377\377\377\375\377\310\317\344\266\317\344\266t\270"
|
||||
"2t\2702t\2702\377\377\377\377\377\377\377\377\377\325\355\305\325\355\305"
|
||||
"\325\355\305h\3042h\3042h\3042h\3042\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\335\364\323\335\364\323\335\364\323"
|
||||
"\335\364\323\335\364\323\377\377\377\377\377\377\\\3202\\\3202\\\3202\\\320"
|
||||
"2\\\3202\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377D\3471P\3342\364\377\352\\\3161h\3042\367"
|
||||
"\377\324u\2661\200\2542\214\240%\377\377\262\232\2211\244\2102\377\377\234"
|
||||
"\262x1\274p2\377\337\207\377\260\\\327T1\227/\14\377\377\234\245\2041\244"
|
||||
"\2102\307\300\213\230\2242\377\377\377\377\377\262\215\2351\214\2402\377"
|
||||
"\377\377\377\377\276\312\332\250\200\2542\200\2542\377\377\377\377\377\377"
|
||||
"\317\344\266\317\344\266\317\344\266t\2702t\2702\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\325\355\305\325\355\305\325\355\305\377\377\377"
|
||||
"h\3042h\3042h\3042h\3042\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\335\364\323\335\364\323\335\364\323"
|
||||
"\335\364\323\377\377\377\377\377\377\377\377\377\\\3202\\\3202\\\3202\\\320"
|
||||
"2\\\3202\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377<\0<D\3502\371\377\364N\3221\\\3202\364\377"
|
||||
"\336l\3035t\2702\375\377\310\36\22\13\214\2402\377\377\262\214\2012\244\210"
|
||||
"2\377\377\234\274\177;\274p2\377\337\207/\24\13\324X2\227/\14\222l3\307\260"
|
||||
"|\244\2102\377\377\270\232\2211\230\2242<Q<\310\316\231\215\2351o\2065\377"
|
||||
"\377\377\377\377\276\341\377\277\200\2521\200\2542\36H\13\377\377\377\377"
|
||||
"\377\377\213\260}\317\344\266t\2702\221\366Ot\2702\377\377\377<\207<\377"
|
||||
"\377\377\377\377\377}\270v\325\355\305\325\355\305\371\377\351\377\377\377"
|
||||
"h\3042\30|\13h\3042\377\377\377|\306|\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377<\275<\335\364\323\335\364\323_\317]\335\364\323"
|
||||
"\335\364\323\377\377\377\377\377\377\377\377\377\25\260\13\\\3202\\\3202"
|
||||
">\3369\\\3202\377\377\377\377\377\377\377\377\377\377\377\377D\3502\371\377"
|
||||
"\364O\3321\\\3202\364\377\336h\3042\367\377\324u\2661\200\2542\377\377\276"
|
||||
"\215\2351\230\2242\307\300\213\244\2102\377\377\234\262x1\274p2\377\337\207"
|
||||
"\312`1\324E\30\327T1\260|2\377\377\234\245\2041\244\2102\377\377\250\232"
|
||||
"\2211\230\2242\377\377\377\310\316\231\215\2351\214\2402\377\377\377\377"
|
||||
"\377\377\312\332\250\312\332\250\200\2542\200\2542\377\377\377\377\377\377"
|
||||
"\317\344\266\317\344\266\317\344\266t\2702t\2702t\2702\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\325\355\305\325\355\305\325\355"
|
||||
"\305\377\377\377h\3042h\3042h\3042h\3042\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\335\364\323\335\364\323\335\364\323\335\364\323\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\\\3202\\\3202\\\3202\377\377\377D\3502\371\377"
|
||||
"\364O\3321\377\377\377\\\3161h\3042\367\377\324t\2702\375\377\310\200\252"
|
||||
"1\377\377\377\215\2351\230\2242\377\377\250\244\2102\377\377\234\262x1\274"
|
||||
"p2\316\214_\310d2\377\310|\327T1\227/\14\377\377\377\307\260|\244\2102\377"
|
||||
"\377\377\307\300\213\230\2242\230\2242\377\377\377\310\316\231\214\2402\214"
|
||||
"\2402\377\377\377\377\377\377\312\332\250\312\332\250\200\2542\200\2542\377"
|
||||
"\377\377\377\377\377\377\377\377\317\344\266\317\344\266\317\344\266t\270"
|
||||
"2t\2702t\2702\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\325\355\305\325\355\305\325\355\305\377\377\377\377\377\377h\3042h\3042"
|
||||
"h\3042\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\335\364\323\335\364"
|
||||
"\323\335\364\323\335\364\323\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377D\3502\371\377\364R\3344\364\377\352\\\3161H\22Hh\3021\377\377\377o\244"
|
||||
"2\200\2542\312\332\250\226\245<\377\377\262\230\2242H-/\245\2041\377\377"
|
||||
"\377\233i5\274p2\277l1\331sC\377\310|\324X2*\15\3\260|2\377\377\234\206s"
|
||||
"7\244\2102\377\377\250\340\337\244\230\2242\377\377\377Hc2\310\316\231\214"
|
||||
"\2402n\211:\377\377\377\377\377\377\353\377\311\312\332\250\200\2542$T\16"
|
||||
"\377\377\377\377\377\377\236\277\236\377\377\377\317\344\266\367\377\336"
|
||||
"\377\377\377t\2702\40n\16t\2702\377\377\377\212\303\212\377\377\377\377\377"
|
||||
"\377\377\377\377\325\355\305\325\355\305<\2477\377\377\377\377\377\377O\276"
|
||||
"Ah\3042h\3042\237\377i\377\377\377\377\377\377H\317H\377\377\377\377\377"
|
||||
"\377c\335c\377\377\377\377\377\377\377\377\377\377\377\377\335\364\323>\337"
|
||||
";\335\364\323\377\377\377D\3502\362\375\360P\3342\346\371\342\\\3202\364"
|
||||
"\377\336h\3042\367\377\324t\2702\375\377\310\200\2542\377\377\276\214\240"
|
||||
"2\377\377\262\232\2211\377\377\377\245\2041\377\377\377\262x1\377\377\377"
|
||||
"\277l1\310d2\312`1\324X2\327T1\260|2\377\377\377\307\260|\244\2102\377\377"
|
||||
"\377\307\300\213\232\2211\230\2242\377\377\377\377\377\262\310\316\231\214"
|
||||
"\2402\214\2402\377\377\377\377\377\377\312\332\250\312\332\250\200\2542\200"
|
||||
"\2542\200\2542\377\377\377\377\377\377\377\377\377\317\344\266\317\344\266"
|
||||
"\317\344\266\377\377\377t\2702t\2702t\2702\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\325\355\305\325\355\305\325\355\305\325\355"
|
||||
"\305\377\377\377\377\377\377h\3042h\3042h\3042h\3042\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377D\3502\362\375\360P\3342\346\371\342\\\3202\335"
|
||||
"\364\323h\3042\325\355\305t\2702\317\344\266\377\377\377\200\2521\377\377"
|
||||
"\377\215\2351\377\377\377\232\2211\377\377\377\245\2041\377\377\377\262x"
|
||||
"1\377\377\377\277l1\377\377\377\312`1\377\310|\327T1\227/\14\377\377\377"
|
||||
"\307\260|\244\2102\244\2102\377\377\377\307\300\213\230\2242\230\2242\377"
|
||||
"\377\377\310\316\231\310\316\231\214\2402\214\2402\377\377\377\377\377\377"
|
||||
"\312\332\250\312\332\250\377\377\377\200\2542\200\2542\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\317\344\266\317\344\266\377\377\377\377\377"
|
||||
"\377t\2702t\2702\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\325\355\305\325\355\305\325\355\305\377\377"
|
||||
"\377\377\377\377\377\377\377h\3042h\3042h\3042\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377D\3502\362\375\360"
|
||||
"T\11TO\3321\377\377\377Z\3002\377\377\377h\3042\377\377\334t\2702\375\377"
|
||||
"\310*\30\20\312\332\250\214\2402\262\260\214\230\2242\307\300\213\377\377"
|
||||
"\377\245\2041\377\377\377:\35\20\377\377\377\277l1\316\264w\310d2\377\310"
|
||||
"|\356qL\227/\14\260|2TZ3\307\260|\244\2102\274\302\274\307\300\213\307\300"
|
||||
"\213\273\301U\377\377\377\377\377\377A^2\310\316\231\214\2402o\216B\377\377"
|
||||
"\377\377\377\377\366\377\324\312\332\250\312\332\250*a\20\200\2542\377\377"
|
||||
"\377\230\301\230\377\377\377\377\377\377\377\377\353\317\344\266\317\344"
|
||||
"\266T\253Tt\2702t\2702]\265I\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377T\306T\377\377\377\325\355\305l\324i\325\355\305\377\377"
|
||||
"\377\377\377\377\377\377\377h\3042\"\254\20h\3042h\3042b\353b\377\377\377"
|
||||
"\377\377\377D\3502\362\375\360\377\377\377O\3321\377\377\377\\\3202\364\377"
|
||||
"\336h\3042\325\355\305t\2702\317\344\266\377\377\377\200\2521\377\377\377"
|
||||
"\214\2402\377\377\262\230\2242\307\300\213\244\2102\307\260|\377\377\377"
|
||||
"\262x1\377\377\377\274p2\377\337\207\310d2\377\310|\324X2\333bB\260|2\377"
|
||||
"\377\377\307\260|\244\2102\244\2102\377\377\377\307\300\213\232\2211\230"
|
||||
"\2242\377\377\377\377\377\377\310\316\231\310\316\231\214\2402\214\2402\377"
|
||||
"\377\377\377\377\377\377\377\377\312\332\250\312\332\250\200\2542\200\254"
|
||||
"2\200\2542\377\377\377\377\377\377\377\377\377\377\377\377\317\344\266\317"
|
||||
"\344\266\317\344\266\377\377\377t\2702t\2702t\2702\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\325\355\305"
|
||||
"\325\355\305\325\355\305\325\355\305\377\377\377\377\377\377\377\377\377"
|
||||
"h\3042h\3042\377\377\377\377\377\377D\3471\377\377\377P\3342\364\377\352"
|
||||
"\\\3202\335\364\323\377\377\377h\3021\377\377\377t\2702\375\377\310\200\254"
|
||||
"2\312\332\250\377\377\377\215\2351\377\377\377\230\2242\377\377\250\244\210"
|
||||
"2\307\260|\377\377\377\262x1\377\377\377\274p2\377\337\207\310d2\323xQ\324"
|
||||
"X2\327T1\227/\14\260|2\377\377\234\307\260|\244\2102\377\377\377\377\377"
|
||||
"\377\307\300\213\230\2242\230\2242\377\377\377\377\377\377\310\316\231\310"
|
||||
"\316\231\214\2402\214\2402\377\377\377\377\377\377\377\377\377\312\332\250"
|
||||
"\312\332\250\377\377\377\200\2542\200\2542\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\317\344\266\317\344\266\377\377\377\377\377"
|
||||
"\377t\2702t\2702t\2702\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\325\355\305\325\355\305\325"
|
||||
"\355\305\377\377\377\377\377\377`\0`\377\377\377D\3471\371\366\371P\3342"
|
||||
"\346\371\342\377\377\377\\\3161\377\377\377'\24\22\325\355\305t\2702\276"
|
||||
"\310\251\377\377\377\200\2542\377\377\316\214\2402\310\316\231`6`\230\224"
|
||||
"2\377\377\250\222u<\307\260|\377\377\377\315\214L\377\377\377\274p2M,#\310"
|
||||
"d2\312`1\306\304\306\324X2\333bB\325\242W\377\377\377\307\260|=9\22\244\210"
|
||||
"2\377\377\377\227\234w\307\300\213\230\2242\307\322a\377\377\377\377\377"
|
||||
"\377Km9\310\316\231\214\2402r\226K\377\377\377\377\377\377\377\377\377\312"
|
||||
"\332\250\312\332\250`\242`\200\2542\200\2542\224\306\224\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\317\344\266M\250D\317\344\266\377\377\377"
|
||||
"\203\322\203t\2702t\2702\301\377\177\377\377\377\377\377\377`\330`\377\377"
|
||||
"\377\377\377\377r\344r\377\377\377\377\377\377\377\377\377\325\355\305\377"
|
||||
"\377\377\377\377\377D\3502\371\377\364P\3342\346\371\342\377\377\377\\\320"
|
||||
"2\364\377\336h\3042\325\355\305\377\377\377t\2702\317\344\266\200\2542\312"
|
||||
"\332\250\377\377\377\214\2402\310\316\231\230\2242\307\300\213\377\377\377"
|
||||
"\244\2102\307\260|\377\377\377\200U0\220^\377\7\4/\227U[\246]\377\255Q1\377"
|
||||
"\242y\10\3/\306M@\6\4/{^\377mVvmVv\6\5/h\\\377h\\\377\\U\204\12\12\360\5"
|
||||
"\5/VX\377VX\377\12\12\360LR\221\12\12\360\5\6/\214\2402\377\377\377\377\377"
|
||||
"\377\377\377\377\312\332\250\312\332\250\377\377\377\200\2542\200\2542\200"
|
||||
"\2542\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\317\344"
|
||||
"\266\317\344\266\317\344\266\377\377\377\377\377\377t\2702t\2702\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377D\3502\362\375\360P\3342\346\371"
|
||||
"\342\377\377\377\\\3202\335\364\323\377\377\377h\3042\367\377\324t\2702\317"
|
||||
"\344\266\377\377\377\200\2542\312\332\250\377\377\377\214\2402\377\377\262"
|
||||
"\230\2242\307\300\213\377\377\377\244\2102\307\260|{^\377\200U0\220^\377"
|
||||
"\7\4/\227U[\246]\377\7\3/\377\242y\236\37""2\306M0\210%\14T-2{^\377mVv\6"
|
||||
"\5/\6\5/h\\\377\\U\204\\U\204\5\5/\5\5/VX\377VX\377LR\221LR\221\377\377\377"
|
||||
"\214\2402\214\2402\377\377\377\377\377\377\377\377\377\312\332\250\312\332"
|
||||
"\250\312\332\250\377\377\377\200\2542\200\2542\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\317\344\266\317\344\266\377"
|
||||
"\377\377\377\377\377t\2702t\2702t\2702\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377D\3502\365\375\363\377\377"
|
||||
"\377O\3321l\22l\\\3202\335\364\323\357\346\357h\3042\325\355\305\377\377"
|
||||
"\377t\2702\317\344\266l-l\200\2521\377\377\377\204\211=\310\316\231\377\377"
|
||||
"\377\262\243L\307\300\213\377\377\377E&\25mVv{^\377ySB\220^\377\7\4/\275"
|
||||
"t\201\246]\377\7\3/I\37!\277Z\377\10\3/\237YQ\6\4/{^\377\236\213\247mVv\6"
|
||||
"\5/,-lh\\\377\\U\204dow\5\5/\5\5/\222\251\377VX\377\310\316\231T{@\377\377"
|
||||
"\377\214\2402w\240V\377\377\377\377\377\377\377\377\377\377\377\377\312\332"
|
||||
"\250U\231G\377\377\377\200\2542q\270\\\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377l\317l\317\344\266\317\344\266z\330v\377\377\377"
|
||||
"\377\377\377\323\377\221t\2702t\2702l\352l\377\377\377\377\377\377\377\377"
|
||||
"\377D\3502\362\375\360\377\377\377P\3342\346\371\342\377\377\377\\\3202\364"
|
||||
"\377\336h\3042\325\355\305\377\377\377t\2702\317\344\266\377\377\377\200"
|
||||
"\2542\312\332\250\377\377\377\214\2402\310\316\231\377\377\377\230\2242\307"
|
||||
"\300\213\377\377\377\6\5/mVv{^\377\200U0\220^\377\7\4/\227U[\246]\377\7\3"
|
||||
"/\255RN\277Z\377\10\3/\306M@\6\4/{^\377{^\377mVv\6\5/\6\5/h\\\377h\\\377"
|
||||
"\\U\204\12\12\360\5\5/\12\12\360\377\377\377\377\377\377\310\316\231\310"
|
||||
"\316\231\377\377\377\214\2402\214\2402\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\312\332\250\312\332\250\377\377\377\200\2542\200\2542\200\254"
|
||||
"2\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\317\344\266\317\344\266\317\344\266\377\377\377\377\377\377t\2702t\2702"
|
||||
"\377\377\377\377\377\377D\3502\362\375\360\377\377\377P\3342\346\371\342"
|
||||
"\377\377\377\\\3202\335\364\323\377\377\377h\3042\325\355\305\377\377\377"
|
||||
"t\2702\317\344\266\377\377\377\200\2542\312\332\250\377\377\377\214\2402"
|
||||
"\310\316\231\377\377\377\230\2242\307\300\213h\\\377\6\5/mVv{^\377\200U0"
|
||||
"\220^\377\7\4/\227U[\246]\377\7\3/\255RN\277Z\377\10\3/\306M@\6\4/\6\4/{"
|
||||
"^\377mVvmVv\6\5/\12\12\360h\\\377\\U\204\\U\204\5\5/\230\2242\377\377\377"
|
||||
"\377\377\377\377\377\377\310\316\231\310\316\231\377\377\377\214\2402\214"
|
||||
"\2402\377\377\377\377\377\377\377\377\377\377\377\377\312\332\250\312\332"
|
||||
"\250\377\377\377\377\377\377\200\2542\200\2542\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\317\344\266\317"
|
||||
"\344\266\377\377\377\377\377\377\377\377\377\377\377\377D\3502q\10p\377\377"
|
||||
"\377P\3342\335\350\332\377\377\377\\\3202\351\366\337\377\377\377h\3042d"
|
||||
"!\\\377\377\377t\2702\277\302\252\377\377\377\200\2542\343\345\301\377\377"
|
||||
"\377\214\2402^2H\377\377\377\230\2242\257\235\204h\\\377\6\5/\223o\234{^"
|
||||
"\377\6\4/<\36""1\377\252\215j)2\211XK\377\250\203\202$2\337~c\377\242y\236"
|
||||
"\37""2]#\26\306M@\6\4/ym\274{^\377mVvELn\6\5/h\\\37703x\\U\204\307\300\213"
|
||||
"\204\226\\\230\2242\377\377\377\377\377\377\377\377\377\310\316\231^\212"
|
||||
"H\377\377\377\214\2402}\256b\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\312\332\250_\251O\377\377\377\377\377\377y\310j\200\2542\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377x\341x\377\377\377\377\377\377\177\350"
|
||||
"|\317\344\266\377\377\377\377\377\377D\3502\362\375\360\377\377\377P\334"
|
||||
"2\346\371\342\377\377\377\\\3202\335\364\323\377\377\377\377\377\377h\304"
|
||||
"2\325\355\305\377\377\377t\2702\317\344\266\377\377\377\200\2542\312\332"
|
||||
"\250\377\377\377\214\2402\310\316\231\377\377\377\230\2242\\U\204h\\\377"
|
||||
"\6\5/mVv{^\377\6\4/\12\12\360\201Vi\220^\377\7\4/\227U[\246]\377\7\3/\255"
|
||||
"RN\277Z\377\10\3/\306M@\6\4/\12\12\360{^\377mVvmVv\6\5/\12\12\360h\\\377"
|
||||
"\377\377\377\307\300\213\377\377\377\230\2242\230\2242\377\377\377\377\377"
|
||||
"\377\377\377\377\310\316\231\310\316\231\377\377\377\214\2402\214\2402\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\312\332\250\312\332\250\312"
|
||||
"\332\250\377\377\377\200\2542\200\2542\200\2542\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377D\350"
|
||||
"2\362\375\360\377\377\377P\3342\377\377\377\346\371\342\377\377\377\\\320"
|
||||
"2\335\364\323\377\377\377h\3042\325\355\305\377\377\377t\2702\317\344\266"
|
||||
"\377\377\377\200\2542\377\377\377\312\332\250\377\377\377\214\2402\310\316"
|
||||
"\231\377\377\377\5\5/\\U\204h\\\377\6\5/mVv{^\377\6\4/\12\12\360\201Vi\220"
|
||||
"^\377\7\4/\227U[\246]\377\7\3/\255RN\277Z\377\10\3/\306M@\6\4/\6\4/{^\377"
|
||||
"\12\12\360mVv\6\5/\6\5/\377\377\377\377\377\377\307\300\213\307\300\213\377"
|
||||
"\377\377\230\2242\377\377\377\377\377\377\377\377\377\377\377\377\310\316"
|
||||
"\231\310\316\231\377\377\377\214\2402\214\2402\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\312\332\250\312\332\250\377\377\377\377"
|
||||
"\377\377\200\2542\200\2542\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\204\0\204\377\377\377D\3502\355\364\353\377\377\377\377\377\377Y\335;\346"
|
||||
"\371\342\377\377\377/\26\31\335\364\323\377\377\377k\255<\325\355\305\377"
|
||||
"\377\377\377\377\377t\2702\317\344\266\2046\204\200\2542\312\332\250\340"
|
||||
"\317\340\214\2402\310\316\231\377\377\377VX\377\5\5//\33Dh\\\377\6\5/tVz"
|
||||
"{^\377\6\4/=0\377\201Vi\220^\377\3\1\30\227U[\246]\377?6U\255RN\277Z\377"
|
||||
"\337]s\306M0\306M@\3\2\30{^\377{^\377yv}mVv\244\2102\377\377\377\377\377"
|
||||
"\377\377\377\377gyG\307\300\213\230\2242\212\242h\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\310\316\231g\230O\377\377\377\214\2402\205\274q"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377h\270V\312\332"
|
||||
"\250\377\377\377\222\344\222\200\2542\200\2542\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377D\3502\362\375\360\377\377\377\377\377\377P\3342\346"
|
||||
"\371\342\377\377\377\\\3202\335\364\323\377\377\377\377\377\377h\3042\325"
|
||||
"\355\305\377\377\377t\2702\317\344\266\377\377\377\377\377\377\200\2542\312"
|
||||
"\332\250\377\377\377\214\2402\310\316\231VX\377\12\12\360\5\5/\\U\204h\\"
|
||||
"\377\6\5/mVv{^\377\6\4/\12\12\360\201Vi\220^\377\7\4/\227U[\246]\377\7\3"
|
||||
"/\255RN\255RN\277Z\377\10\3/\306M@\6\4/\12\12\360{^\377\12\12\360\307\260"
|
||||
"|\244\2102\244\2102\377\377\377\377\377\377\377\377\377\307\300\213\377\377"
|
||||
"\377\230\2242\230\2242\377\377\377\377\377\377\377\377\377\377\377\377\310"
|
||||
"\316\231\377\377\377\377\377\377\214\2402\214\2402\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\312\332\250\312\332\250\377\377\377"
|
||||
"\377\377\377\200\2542\200\2542\377\377\377\377\377\377D\3502\377\377\377"
|
||||
"\362\375\360\377\377\377P\3342\346\371\342\377\377\377\\\3202\377\377\377"
|
||||
"\335\364\323\377\377\377h\3042\325\355\305\377\377\377\377\377\377t\2702"
|
||||
"\317\344\266\377\377\377\200\2542\312\332\250\377\377\377\377\377\377\214"
|
||||
"\2402LR\221VX\377\5\5/\\U\204\12\12\360h\\\377\6\5/mVv{^\377\6\4/\12\12\360"
|
||||
"\201Vi\220^\377\7\4/\227U[\246]\377\7\3/\7\3/\255RN\277Z\377\10\3/\306M@"
|
||||
"\6\4/\6\4/{^\377\377\377\377\307\260|\377\377\377\244\2102\377\377\377\377"
|
||||
"\377\377\377\377\377\307\300\213\307\300\213\377\377\377\230\2242\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\310\316\231\310\316\231\377\377"
|
||||
"\377\377\377\377\214\2402\214\2402\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\312\332\250\312\332\250\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377D\3502\377\377\377\362\375\360\377\377\377-\17\34\346"
|
||||
"\371\342\377\377\377\363\346\363\\\3202\335\364\323\377\377\377h\3042\377"
|
||||
"\377\377x)o\377\377\377t\2702\301\276\255\377\377\377\377\377\377\243\273"
|
||||
"U\312\332\250\377\377\377O-\34\12\12\360LR\221gU\333\5\5/\\U\204<)\377h\\"
|
||||
"\377\6\5/=!B{^\377\6\4/A2\306\201Vi\220^\377I9q\227U[\246]\377]-\220\7\3"
|
||||
"/\255RN\245q\304\10\3/\306M0\377\236\221\6\4/\377\377\377\220\231\220\307"
|
||||
"\260|\307\260|\226\227m\244\2102\377\377\377\377\377\377\377\377\377\307"
|
||||
"\300\213p\207N\230\2242\230\2242\254\316\254\377\377\377\377\377\377\377"
|
||||
"\377\377\310\316\231\310\316\231\220\317\220\377\377\377\214\2402\216\316"
|
||||
"\200\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377r\310^\312"
|
||||
"\332\250\377\377\377\377\377\377\377\377\377D\3502\362\375\360\377\377\377"
|
||||
"P\3342\377\377\377\346\371\342\377\377\377\\\3202\335\364\323\377\377\377"
|
||||
"\377\377\377h\3042\325\355\305\377\377\377\377\377\377t\2702\317\344\266"
|
||||
"\377\377\377\200\2542\377\377\377\312\332\250\377\377\377\5\6/LR\221\12\12"
|
||||
"\360VX\377\5\5/\\U\204h\\\377\12\12\360\6\5/mVv{^\377\6\4/\12\12\360\201"
|
||||
"Vi\220^\377\7\4/\227U[\12\12\360\246]\377\7\3/\255RN\277Z\377\277Z\377\10"
|
||||
"\3/\306M@\260|2\260|2\377\377\377\377\377\377\307\260|\377\377\377\244\210"
|
||||
"2\377\377\377\377\377\377\377\377\377\377\377\377\307\300\213\377\377\377"
|
||||
"\230\2242\230\2242\377\377\377\377\377\377\377\377\377\377\377\377\310\316"
|
||||
"\231\310\316\231\377\377\377\377\377\377\214\2402\214\2402\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377D\3502\362\375\360\377\377\377P\3342\377\377\377\346\371\342\377"
|
||||
"\377\377\\\3202\377\377\377\335\364\323\377\377\377h\3042\325\355\305\377"
|
||||
"\377\377\377\377\377t\2702\317\344\266\377\377\377\377\377\377\200\2542\312"
|
||||
"\332\250\377\377\377\12\12\360\5\6/LR\221VX\377\12\12\360\5\5/\\U\204h\\"
|
||||
"\377\6\5/\12\12\360mVv{^\377\6\4/\12\12\360\201Vi\220^\377\7\4/\227U[\227"
|
||||
"U[\246]\377\7\3/\255RN\12\12\360\277Z\377\10\3/\333bB\377\377\377\260|2\377"
|
||||
"\377\377\377\377\377\307\260|\307\260|\244\2102\244\2102\377\377\377\377"
|
||||
"\377\377\377\377\377\307\300\213\307\300\213\377\377\377\230\2242\230\224"
|
||||
"2\377\377\377\377\377\377\377\377\377\377\377\377\310\316\231\310\316\231"
|
||||
"\377\377\377\377\377\377\214\2402\214\2402\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377)\10\36\362\375\360\377\377\377\370"
|
||||
"\356\370P\3342\346\371\342\377\377\377\377\377\377\\\3202\207\"\201\377\377"
|
||||
"\377\377\377\377p\250D\325\355\305\377\377\377\377\377\377t\2702\317\344"
|
||||
"\266\234?\234\200\2542\377\377\377\274\260\244FS\377\5\6/;#\377LR\221VX\377"
|
||||
"\3\1\34\12\12\360\\U\204{^\330\6\5/\12\12\360\257\203\270{^\377\6\4/\6\4"
|
||||
"\222\201Vi\220^\377P@d\12\12\360\227U[\370\244\377\7\3/\255RNi./\277Z\377"
|
||||
"\324X2\264\202w\333bB\260|2\377\377\377\377\377\377\377\377\377yvK\377\377"
|
||||
"\377\244\2102\236\247|\377\377\377\377\377\377\377\377\377\307\300\213\307"
|
||||
"\300\213\234\306\234\230\2242\377\377\377\256\330\256\377\377\377\377\377"
|
||||
"\377\377\377\377\310\316\231\310\316\231\234\341\234\377\377\377\214\240"
|
||||
"2\232\343\223\377\377\377\377\377\377\377\377\377\377\377\377D\3502\362\375"
|
||||
"\360\377\377\377\377\377\377P\3342\346\371\342\377\377\377\377\377\377\\"
|
||||
"\3202\335\364\323\377\377\377\377\377\377h\3042\325\355\305\377\377\377\377"
|
||||
"\377\377t\2702\317\344\266\377\377\377\377\377\377\200\2542\312\332\250\12"
|
||||
"\12\360FS\377\5\6/LR\221\12\12\360RW\255\3\5\35\6\11\224ZT\\d[\261\3\4\35"
|
||||
"\6\11\224lVTw]\264\4\4\35\6\11\224\200VN\214]\270\4\3\35\6\11\224\226UG\242"
|
||||
"\\\274\4\3\35\4\3\35\254R@\377\377\311\203U\36\203U\36\323a:my\36my\36\377"
|
||||
"\377\276\377\377\276\243\255X\243\255X\236\371\236e\204\36\236\371\236\374"
|
||||
"\377\273\236\371\236\236\371\236\234\275`\236\371\236^\220\36^\220\36\236"
|
||||
"\371\236\352\377\267\352\377\267\236\371\236\236\371\236\310\316\231\310"
|
||||
"\316\231\377\377\377\377\377\377\214\2402\377\377\377\377\377\377\377\377"
|
||||
"\377D\3502\362\375\360\377\377\377\377\377\377P\3342\346\371\342\377\377"
|
||||
"\377\377\377\377\\\3202\377\377\377\335\364\323\377\377\377h\3042\377\377"
|
||||
"\377\325\355\305\377\377\377t\2702\377\377\377\317\344\266\377\377\377\377"
|
||||
"\377\377\200\2542<L\237FS\377\12\12\360\5\6/LR\221\6\11\224RW\255\3\5\35"
|
||||
"ZT\\\6\11\224d[\261\3\4\35\6\11\224lVTw]\264\4\4\35\6\11\224\200VN\214]\270"
|
||||
"\4\3\35\4\3\35\226UG\242\\\274\6\11\224\4\3\35\304wB\377\377\311\377\377"
|
||||
"\311\203U\36\323a:\236\371\236my\36\236\371\236\377\377\276\236\371\236\243"
|
||||
"\255X\236\371\236e\204\36e\204\36\374\377\273\374\377\273\236\371\236\234"
|
||||
"\275`\234\275`\236\371\236^\220\36^\220\36\236\371\236\352\377\267\352\377"
|
||||
"\267\377\377\377\377\377\377\310\316\231\310\316\231\377\377\377\250\0\250"
|
||||
"\377\377\377\377\377\377F\3375\362\375\360\377\377\377\377\377\377P\3342"
|
||||
"\377\377\377\227\32\224\377\377\377\\\3202\362\340\362\335\364\323\377\377"
|
||||
"\377\377\377\377h\3042\325\355\305\2506\250\377\377\377t\2702\304\272\262"
|
||||
"\377\377\377\377\377\377\257\300a\12\12\360<L\237.\32\250\5\6/\12\12\360"
|
||||
"jSzRW\255\6\11\224D+^ZT\\\6\11\224A&t\3\4\35lVTP9\235w]\264\4\4\35YG\347"
|
||||
"\200VN\214]\270\3\4a\4\3\35\226UG\244y\257\6\11\224{a\36\377\322\246\236"
|
||||
"\371\236\377\377\311V6\23\323a:\323a:\223\231y\236\371\236\377\377\276\377"
|
||||
"\377\377\243\255X\243\255Xh\270he\204\36\236\371\236\272\322\253\374\377"
|
||||
"\273\236\371\236\377\377\350\236\371\236\236\371\236=y\23\236\371\236\236"
|
||||
"\371\236\262\344\262\377\377\377\377\377\377\377\377\377\310\316\231\377"
|
||||
"\377\377\377\377\377\377\377\377D\3502\362\375\360\377\377\377\377\377\377"
|
||||
"P\3342\377\377\377\346\371\342\377\377\377\377\377\377\\\3202\335\364\323"
|
||||
"\377\377\377\377\377\377h\3042\325\355\305\377\377\377\377\377\377t\2702"
|
||||
"\377\377\377\317\344\266\377\377\377\377\377\377\5\6/<L\237\12\12\360FS\377"
|
||||
"\5\6/\6\11\224JQbRW\255\6\11\224\3\5\35ZT\\d[\261\6\11\224\3\4\35lVT\6\11"
|
||||
"\224w]\264\4\4\35\6\11\224\200VN\214]\270\6\11\224\4\3\35\226UG\242\\\274"
|
||||
"\377\377\306{a\36\304wB\304wB\377\377\311\203U\36\203U\36\323a:my\36my\36"
|
||||
"\377\377\276\377\377\276\236\371\236\243\255X\236\371\236e\204\36e\204\36"
|
||||
"\236\371\236\374\377\273\236\371\236\234\275`\234\275`\236\371\236^\220\36"
|
||||
"^\220\36\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377D\3502\362\375\360\377\377\377\377\377\377"
|
||||
"P\3342\377\377\377\346\371\342\377\377\377\377\377\377\\\3202\335\364\323"
|
||||
"\377\377\377\377\377\377h\3042\377\377\377\325\355\305\377\377\377\377\377"
|
||||
"\377t\2702\317\344\266\377\377\377\377\377\377\5\6/\12\12\360<L\237FS\377"
|
||||
"\12\12\360\3\5\35JQb\6\11\224RW\255\3\5\35\6\11\224ZT\\d[\261\6\11\224\3"
|
||||
"\4\35lVT\6\11\224w]\264\4\4\35\6\11\224\200VN\214]\270\6\11\224\4\3\35\226"
|
||||
"UG\236\371\236\377\377\306{a\36\236\371\236\304wB\377\377\311\236\371\236"
|
||||
"\203U\36\323a:\236\371\236my\36\236\371\236\377\377\276\236\371\236\243\255"
|
||||
"X\243\255X\236\371\236e\204\36\236\371\236\374\377\273\374\377\273\236\371"
|
||||
"\236\234\275`\234\275`\236\371\236\230\2242\230\2242\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377J\3508\377\377\377\362"
|
||||
"\375\360\264\22\264\377\377\377P\3342\340\340\335\377\377\377\377\377\377"
|
||||
"u\325K\377\377\377\335\364\323\264-\264\377\377\377h\3042\315\305\301\377"
|
||||
"\377\377\377\377\377\240\307^\377\377\377\317\344\266\264H\264\12\12\360"
|
||||
"\5\6/aL\245\12\12\360FS\377E(\323\3\5\35JQb\4\3hRW\255\3\5\35O2\241ZT\\d"
|
||||
"[\261X>\346\3\4\35lVT\4\4hw]\264\4\4\35aK\244\200VN\214]\270kZ\371\4\3\35"
|
||||
"\270\212Io\225o\377\377\306{a\36\253\300\253\304wB\377\377\311\377\377\377"
|
||||
"\203U\36\323a:\224D(my\36\236\371\236\307\316\266\377\377\276\236\371\236"
|
||||
"\377\377\343\236\371\236e\204\36Gk\25\236\371\236\374\377\273\260\334\260"
|
||||
"\236\371\236\234\275`\377\377\377\377\377\377\230\2242k\207#\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377D\3502\377\377\377\362\375\360\377\377"
|
||||
"\377\377\377\377P\3342\346\371\342\377\377\377\377\377\377\\\3202\377\377"
|
||||
"\377\335\364\323\377\377\377\377\377\377h\3042\377\377\377\325\355\305\377"
|
||||
"\377\377\377\377\377t\2702\317\344\266\377\377\3778L\377\12\12\360\5\6/<"
|
||||
"L\237\12\12\360BR\252\3\5\35\6\11\224JQbRW\255\6\11\224\3\5\35ZT\\\6\11\224"
|
||||
"d[\261\6\11\224\3\4\35lVT\6\11\224w]\264\4\4\35\6\11\224\200VN\214]\270\6"
|
||||
"\11\224tm\36\270\212I\270\212I\377\377\306{a\36{a\36\304wB\236\371\236\377"
|
||||
"\377\311\203U\36\236\371\236\323a:my\36my\36\236\371\236\377\377\276\236"
|
||||
"\371\236\243\255X\243\255X\236\371\236e\204\36\236\371\236\374\377\273\374"
|
||||
"\377\273\236\371\236\307\300\213\307\300\213\377\377\377\377\377\377\230"
|
||||
"\2242\377\377\377\377\377\377\377\377\377D\3502\377\377\377\362\375\360\377"
|
||||
"\377\377\377\377\377P\3342\377\377\377\346\371\342\377\377\377\377\377\377"
|
||||
"\\\3202\335\364\323\377\377\377\377\377\377\377\377\377h\3042\325\355\305"
|
||||
"\377\377\377\377\377\377t\2702\377\377\377\317\344\2668L\377\12\12\360\5"
|
||||
"\6/\12\12\360<L\237BR\252\6\11\224\3\5\35JQb\6\11\224RW\255\6\11\224\3\5"
|
||||
"\35ZT\\\6\11\224d[\261\3\4\35\6\11\224lVT\6\11\224w]\264\4\4\35\6\11\224"
|
||||
"\200VN\214]\270\236\371\236tm\36\236\371\236\270\212I\377\377\306\236\371"
|
||||
"\236{a\36\304wB\236\371\236\377\377\311\203U\36\203U\36\323a:\236\371\236"
|
||||
"my\36\236\371\236\377\377\276\377\377\276\236\371\236\243\255X\236\371\236"
|
||||
"e\204\36e\204\36\236\371\236\374\377\273\377\377\377\377\377\377\307\300"
|
||||
"\213\307\300\213\377\377\377\377\377\377\377\377\377\377\377\3773\10%\377"
|
||||
"\377\377\362\375\360\372\356\372\377\377\377P\3342\377\377\377\346\371\342"
|
||||
"\377\377\377\300$\300\\\3202\377\377\377\327\317\316\377\377\377\377\377"
|
||||
"\377\220\317Z\377\377\377\325\355\305\300?\300\377\377\377t\2702\312\267"
|
||||
"\270\12\12\3608L\377F#\377\5\6/<L\237\4\3oBR\252\6\11\224K)[JQb\6\11\224"
|
||||
"\243\204\376\3\5\35\6\11\224C&E\6\11\224d[\261_@l\6\11\224lVTkP\371w]\264"
|
||||
"\4\4\35\4\5o\200VN\377\377\302\262\276\262tm\36\236\371\236\377\360\302\377"
|
||||
"\377\306\236\371\236\\A\26\304wB\304wB\322\312\302\236\371\236\203U\36\377"
|
||||
"\355\310\323a:my\36R]\26\236\371\236\377\377\276\270\326\270\243\255X\236"
|
||||
"\371\236\377\377\377e\204\36\236\371\236\300\341\300\377\377\377\377\377"
|
||||
"\377\305\353\305\307\300\213\377\377\377\377\377\377\377\377\377D\3502\377"
|
||||
"\377\377\362\375\360\377\377\377\377\377\377P\3342\377\377\377\346\371\342"
|
||||
"\377\377\377\377\377\377\\\3202\377\377\377\335\364\323\377\377\377\377\377"
|
||||
"\377h\3042\377\377\377\325\355\305\377\377\377\377\377\377t\2702\377\377"
|
||||
"\3770E\254\12\12\3608L\377\5\6/\12\12\360:Lj\6\11\224BR\252\3\5\35\6\11\224"
|
||||
"JQb\6\11\224RW\255\3\5\35\6\11\224ZT\\\6\11\224d[\261\3\4\35\6\11\224lVT"
|
||||
"\6\11\224w]\264\4\4\35\6\11\224\255\235Q\377\377\302\377\377\302tm\36\236"
|
||||
"\371\236\270\212I\377\377\306\377\377\306{a\36\236\371\236\304wB\377\377"
|
||||
"\311\377\377\311\203U\36\236\371\236\323a:\236\371\236my\36\236\371\236\377"
|
||||
"\377\276\236\371\236\243\255X\243\255X\236\371\236e\204\36\244\2102\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377D\3502\377\377\377\362\375\360\377\377\377\377\377\377P\3342\377\377"
|
||||
"\377\346\371\342\377\377\377\377\377\377\377\377\377\\\3202\335\364\323\377"
|
||||
"\377\377\377\377\377\377\377\377h\3042\325\355\305\377\377\377\377\377\377"
|
||||
"\377\377\377t\2702\317\344\266\377\377\377\377\377\377\377\377\377\200\254"
|
||||
"2\236\371\236\222\326p\332\377\264\236\371\236V\234\36\236\371\236\226\312"
|
||||
"g\352\377\267\236\371\236^\220\36\236\371\236\234\275`\374\377\273\236\371"
|
||||
"\236e\204\36\236\371\236\243\255X\377\377\276\236\371\236my\36\236\371\236"
|
||||
"\255\235Q\236\371\236\377\377\302tm\36\236\371\236\270\212I\236\371\236\377"
|
||||
"\377\306{a\36\236\371\236\304wB\236\371\236\377\377\311\203U\36\203U\36\323"
|
||||
"a:\236\371\236my\36\236\371\236\377\377\276\377\377\276\236\371\236\243\255"
|
||||
"X\236\371\236\377\377\377\244\2102\377\377\377\377\377\377\377\377\377\314"
|
||||
"\0\314\377\377\377\377\377\377H\3377\377\377\377\362\375\360\377\377\377"
|
||||
"\377\377\377\377\377\377@\27(\346\371\342\377\377\377\367\340\367\377\377"
|
||||
"\377\\\3202\377\377\377\335\364\323\377\377\377\3146\314h\3042\377\377\377"
|
||||
"\322\301\306\377\377\377\377\377\377\255\314k\377\377\377\317\344\266\314"
|
||||
"Q\314\377\377\377\200\2542\256\300\256\222\326p\236\371\236\377\377\377\236"
|
||||
"\371\236V\234\36xUR\236\371\236\352\377\267\262\273\262^\220\36\234\275`"
|
||||
"\377\377\377\374\377\273\236\371\236PE\30\236\371\236\243\255X\342\300\305"
|
||||
"\236\371\236my\36\377\377\377\255\235Q\236\371\236\314\242\233tm\36\236\371"
|
||||
"\236\304\237\240\236\371\236\377\377\306\377\340\256{a\36\304wB~\270~\377"
|
||||
"\377\311\236\371\236\273\254\244\323a:\323a:\377\377\303my\36\236\371\236"
|
||||
"\314\330\230\236\371\236\243\255X\313\332\302\377\377\377\244\2102\377\377"
|
||||
"\355\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377D\3502\362"
|
||||
"\375\360\377\377\377\377\377\377\377\377\377P\3342\377\377\377\346\371\342"
|
||||
"\377\377\377\377\377\377\\\3202\377\377\377\335\364\323\377\377\377\377\377"
|
||||
"\377h\3042\377\377\377\325\355\305\377\377\377\377\377\377\377\377\377t\270"
|
||||
"2\317\344\266\377\377\377\377\377\377\377\377\377O\247\36\236\371\236\222"
|
||||
"\326p\332\377\264\236\371\236V\234\36\236\371\236\226\312g\236\371\236\352"
|
||||
"\377\267\236\371\236^\220\36\234\275`\236\371\236\374\377\273\236\371\236"
|
||||
"e\204\36\236\371\236\243\255X\377\377\276\236\371\236my\36\236\371\236\255"
|
||||
"\235Q\236\371\236\377\377\302tm\36\236\371\236\270\212I\236\371\236\377\377"
|
||||
"\306\236\371\236{a\36\304wB\304wB\377\377\311\236\371\236\203U\36\236\371"
|
||||
"\236\323a:\236\371\236my\36\236\371\236\377\377\276\377\377\276\377\377\377"
|
||||
"\307\260|\377\377\377\377\377\377\244\2102\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377D\3502\362\375\360\377\377\377\377\377\377\377\377\377P\334"
|
||||
"2\377\377\377\346\371\342\377\377\377\377\377\377\\\3202\377\377\377\335"
|
||||
"\364\323\377\377\377\377\377\377\377\377\377h\3042\377\377\377\325\355\305"
|
||||
"\377\377\377\377\377\377t\2702\377\377\377\317\344\266\377\377\377\377\377"
|
||||
"\377\236\371\236O\247\36\222\326p\236\371\236\332\377\264\236\371\236V\234"
|
||||
"\36\236\371\236\226\312g\236\371\236\352\377\267^\220\36\236\371\236\234"
|
||||
"\275`\236\371\236\374\377\273\236\371\236e\204\36\236\371\236\243\255X\377"
|
||||
"\377\276\236\371\236my\36\236\371\236\255\235Q\236\371\236\377\377\302tm"
|
||||
"\36tm\36\270\212I\236\371\236\377\377\306\236\371\236{a\36\236\371\236\304"
|
||||
"wB\377\377\311\377\377\311\203U\36\236\371\236\323a:\236\371\236my\36\236"
|
||||
"\371\236\236\371\236\377\377\377\377\377\377\307\260|\307\260|\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377D\3502\362\375\360\330\22"
|
||||
"\330\377\377\377\377\377\377]\306B\377\377\377\346\371\342\377\377\377\377"
|
||||
"\377\377\377\377\377M$*\335\364\323\377\377\377\366\324\366\377\377\377h"
|
||||
"\3042\377\377\377\325\355\305\377\377\377\330H\330\377\377\377t\2702\321"
|
||||
"\264\300\377\377\377\377\377\377\352\377\352O\247\36\236\371\236{S^\236\371"
|
||||
"\236\332\377\264\266\274\266V\234\36\226\312g\377\377\377\352\377\267\236"
|
||||
"\371\236OG\31\236\371\236\234\275`\274\274\274\374\377\273\236\371\236\336"
|
||||
"\325\227\243\255X\236\371\236\330\231\240\236\371\236my\36\302\300\302\255"
|
||||
"\235Q\236\371\236\377\377\377\236\371\236tm\36\233a=\236\371\236\377\377"
|
||||
"\306\310\314\310{a\36\236\371\236\377\377\351\236\371\236\377\377\311nE\31"
|
||||
"\203U\36\323a:\326\304\276my\36my\36\377\377\377\377\377\377\377\377\377"
|
||||
"\330\352\330\307\260|\377\377\377\377\377\377\377\377\377\377\377\377D\350"
|
||||
"2\377\377\377\362\375\360\377\377\377\377\377\377P\3342\377\377\377\346\371"
|
||||
"\342\377\377\377\377\377\377\377\377\377\\\3202\377\377\377\335\364\323\377"
|
||||
"\377\377\377\377\377\377\377\377h\3042\325\355\305\377\377\377\377\377\377"
|
||||
"\377\377\377t\2702\377\377\377\317\344\266\377\377\377\377\377\377\377\377"
|
||||
"\377\200\2542\377\377\377\312\332\250\377\377\377\377\377\377\214\2402\377"
|
||||
"\377\377\310\316\231\377\377\377\377\377\377\377\377\377\230\2242\377\377"
|
||||
"\377\307\300\213\377\377\377\377\377\377\244\2102\377\377\377\307\260|\377"
|
||||
"\377\377\377\377\377\377\377\377\260|2\377\377\377\312\237n\377\377\377\377"
|
||||
"\377\377\377\377\377\274p2\316\214_\316\214_\377\377\377\377\377\377\310"
|
||||
"d2\377\377\377\323xQ\377\377\377\377\377\377\377\377\377\324X2\377\377\377"
|
||||
"\333bB\377\377\377\260|2\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377D\3502\377\377\377\362\375"
|
||||
"\360\377\377\377\377\377\377P\3342\377\377\377\346\371\342\377\377\377\377"
|
||||
"\377\377\377\377\377\\\3202\377\377\377\335\364\323\377\377\377\377\377\377"
|
||||
"\377\377\377h\3042\377\377\377\325\355\305\377\377\377\377\377\377\377\377"
|
||||
"\377t\2702\317\344\266\377\377\377\377\377\377\377\377\377\200\2542\377\377"
|
||||
"\377\312\332\250\377\377\377\377\377\377\377\377\377\214\2402\377\377\377"
|
||||
"\310\316\231\377\377\377\377\377\377\377\377\377\230\2242\377\377\377\307"
|
||||
"\300\213\377\377\377\377\377\377\244\2102\377\377\377\307\260|\377\377\377"
|
||||
"\377\377\377\377\377\377\260|2\377\377\377\312\237n\377\377\377\377\377\377"
|
||||
"\377\377\377\274p2\377\377\377\316\214_\377\377\377\377\377\377\310d2\310"
|
||||
"d2\323xQ\377\377\377\377\377\377\377\377\377\324X2\377\377\377\333bB\377"
|
||||
"\377\377\260|2\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\344\11\344D\3502\377\377\377\360\354\357\377\377\377\377\377"
|
||||
"\377\377\377\377P\3342\377\377\377\315#\312\377\377\377\377\377\377s\262"
|
||||
"Q\377\377\377\335\364\323\377\377\377\377\377\377\377\377\377\\0,\377\377"
|
||||
"\377\325\355\305\367\313\367\377\377\377\377\377\377\274\321z\377\377\377"
|
||||
"\317\344\266\344Z\344\377\377\377\377\377\377\246\217v\377\377\377\312\332"
|
||||
"\250\377\377\377\377\377\377\377\377\377}I,\377\377\377\310\316\231\361\277"
|
||||
"\361\377\377\377\230\2242\377\377\377\307\300\213\377\377\377\344\220\344"
|
||||
"\377\377\377\244\2102\356\301\356\307\260|\377\377\377\377\377\377\377\377"
|
||||
"\377\260|2\344\253\344\312\237n\377\377\377\353\312\353\377\377\377\274p"
|
||||
"2\377\377\377\316\214_\377\377\377\344\306\344\377\377\377\310d2\340\276"
|
||||
"\310\323xQ\377\377\377\377\377\377\324X2\324X2\303V;\333bB\260|2\337\340"
|
||||
"\325\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377D\3502\377"
|
||||
"\377\377\362\375\360\377\377\377\377\377\377\377\377\377P\3342\377\377\377"
|
||||
"\346\371\342\377\377\377\377\377\377\377\377\377\\\3202\377\377\377\335\364"
|
||||
"\323\377\377\377\377\377\377\377\377\377h\3042\377\377\377\325\355\305\377"
|
||||
"\377\377\377\377\377\377\377\377t\2702\317\344\266\377\377\377\377\377\377"
|
||||
"\377\377\377\200\2542\377\377\377\312\332\250\377\377\377\377\377\377\377"
|
||||
"\377\377\214\2402\377\377\377\310\316\231\377\377\377\377\377\377\377\377"
|
||||
"\377\230\2242\377\377\377\307\300\213\377\377\377\377\377\377\377\377\377"
|
||||
"\244\2102\377\377\377\307\260|\377\377\377\377\377\377\377\377\377\260|2"
|
||||
"\377\377\377\312\237n\377\377\377\377\377\377\377\377\377\274p2\377\377\377"
|
||||
"\316\214_\377\377\377\377\377\377\377\377\377\310d2\377\377\377\323xQ\377"
|
||||
"\377\377\377\377\377\377\377\377\324X2\377\377\377\333bB\377\377\377\260"
|
||||
"|2\377\377\377\377\377\377\377\377\377\377\377\377D\3502\377\377\377\362"
|
||||
"\375\360\377\377\377\377\377\377\377\377\377P\3342\377\377\377\346\371\342"
|
||||
"\377\377\377\377\377\377\377\377\377\\\3202\377\377\377\335\364\323\377\377"
|
||||
"\377\377\377\377\377\377\377h\3042\377\377\377\325\355\305\377\377\377\377"
|
||||
"\377\377\377\377\377t\2702\377\377\377\317\344\266\377\377\377\377\377\377"
|
||||
"\377\377\377\200\2542\377\377\377\312\332\250\377\377\377\377\377\377\377"
|
||||
"\377\377\214\2402\377\377\377\310\316\231\377\377\377\377\377\377\377\377"
|
||||
"\377\230\2242\377\377\377\307\300\213\377\377\377\377\377\377\377\377\377"
|
||||
"\244\2102\377\377\377\307\260|\377\377\377\377\377\377\377\377\377\260|2"
|
||||
"\377\377\377\312\237n\377\377\377\377\377\377\377\377\377\274p2\377\377\377"
|
||||
"\316\214_\377\377\377\377\377\377\377\377\377\310d2\377\377\377\323xQ\377"
|
||||
"\377\377\377\377\377\377\377\377\324X2\377\377\377\333bB\377\377\377",
|
||||
};
|
||||
|
|
@ -1,169 +0,0 @@
|
|||
/**
|
||||
* Automated SDL platform test.
|
||||
*
|
||||
* Based off of testplatform.c.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
#include "SDL.h"
|
||||
#include "SDL_endian.h"
|
||||
#include "SDL_cpuinfo.h"
|
||||
#include "../SDL_at.h"
|
||||
|
||||
|
||||
/*
|
||||
* Prototypes.
|
||||
*/
|
||||
static int plat_testSize( size_t sizeoftype, size_t hardcodetype );
|
||||
static void plat_testTypes (void);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Test size.
|
||||
*
|
||||
* @note Watcom C flags these as Warning 201: "Unreachable code" if you just
|
||||
* compare them directly, so we push it through a function to keep the
|
||||
* compiler quiet. --ryan.
|
||||
*/
|
||||
static int plat_testSize( size_t sizeoftype, size_t hardcodetype )
|
||||
{
|
||||
return sizeoftype != hardcodetype;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests type size.
|
||||
*/
|
||||
static void plat_testTypes (void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
SDL_ATbegin( "Type size" );
|
||||
|
||||
ret = plat_testSize( sizeof(Uint8), 1 );
|
||||
if (SDL_ATvassert( ret == 0, "sizeof(Uint8) = %lu instead of 1", sizeof(Uint8) ))
|
||||
return;
|
||||
|
||||
ret = plat_testSize( sizeof(Uint16), 2 );
|
||||
if (SDL_ATvassert( ret == 0, "sizeof(Uint16) = %lu instead of 2", sizeof(Uint16) ))
|
||||
return;
|
||||
|
||||
ret = plat_testSize( sizeof(Uint32), 4 );
|
||||
if (SDL_ATvassert( ret == 0, "sizeof(Uint32) = %lu instead of 4", sizeof(Uint32) ))
|
||||
return;
|
||||
|
||||
ret = plat_testSize( sizeof(Uint64), 8 );
|
||||
if (SDL_ATvassert( ret == 0, "sizeof(Uint64) = %lu instead of 8", sizeof(Uint64) ))
|
||||
return;
|
||||
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests platform endianness.
|
||||
*/
|
||||
static void plat_testEndian (void)
|
||||
{
|
||||
Uint16 value = 0x1234;
|
||||
int real_byteorder;
|
||||
Uint16 value16 = 0xCDAB;
|
||||
Uint16 swapped16 = 0xABCD;
|
||||
Uint32 value32 = 0xEFBEADDE;
|
||||
Uint32 swapped32 = 0xDEADBEEF;
|
||||
|
||||
Uint64 value64, swapped64;
|
||||
value64 = 0xEFBEADDE;
|
||||
value64 <<= 32;
|
||||
value64 |= 0xCDAB3412;
|
||||
swapped64 = 0x1234ABCD;
|
||||
swapped64 <<= 32;
|
||||
swapped64 |= 0xDEADBEEF;
|
||||
|
||||
SDL_ATbegin( "Endianness" );
|
||||
|
||||
/* Test endianness. */
|
||||
if ((*((char *) &value) >> 4) == 0x1) {
|
||||
real_byteorder = SDL_BIG_ENDIAN;
|
||||
} else {
|
||||
real_byteorder = SDL_LIL_ENDIAN;
|
||||
}
|
||||
if (SDL_ATvassert( real_byteorder == SDL_BYTEORDER,
|
||||
"Machine detected as %s endian but appears to be %s endian.",
|
||||
(SDL_BYTEORDER == SDL_LIL_ENDIAN) ? "little" : "big",
|
||||
(real_byteorder == SDL_LIL_ENDIAN) ? "little" : "big" ))
|
||||
return;
|
||||
|
||||
/* Test 16 swap. */
|
||||
if (SDL_ATvassert( SDL_Swap16(value16) == swapped16,
|
||||
"16 bit swapped incorrectly: 0x%X => 0x%X",
|
||||
value16, SDL_Swap16(value16) ))
|
||||
return;
|
||||
|
||||
/* Test 32 swap. */
|
||||
if (SDL_ATvassert( SDL_Swap32(value32) == swapped32,
|
||||
"32 bit swapped incorrectly: 0x%X => 0x%X",
|
||||
value32, SDL_Swap32(value32) ))
|
||||
return;
|
||||
|
||||
/* Test 64 swap. */
|
||||
if (SDL_ATvassert( SDL_Swap64(value64) == swapped64,
|
||||
#ifdef _MSC_VER
|
||||
"64 bit swapped incorrectly: 0x%I64X => 0x%I64X",
|
||||
#else
|
||||
"64 bit swapped incorrectly: 0x%llX => 0x%llX",
|
||||
#endif
|
||||
value64, SDL_Swap64(value64) ))
|
||||
return;
|
||||
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Platform test entrypoint.
|
||||
*/
|
||||
#ifdef TEST_STANDALONE
|
||||
int main( int argc, const char *argv[] )
|
||||
{
|
||||
(void) argc;
|
||||
(void) argv;
|
||||
#else /* TEST_STANDALONE */
|
||||
int test_platform (void)
|
||||
{
|
||||
#endif /* TEST_STANDALONE */
|
||||
|
||||
SDL_ATinit( "Platform" );
|
||||
|
||||
/* Debug information. */
|
||||
SDL_ATprintVerbose( 1, "%s System detected\n", SDL_GetPlatform() );
|
||||
SDL_ATprintVerbose( 1, "System is %s endian\n",
|
||||
#ifdef SDL_LIL_ENDIAN
|
||||
"little"
|
||||
#else
|
||||
"big"
|
||||
#endif
|
||||
);
|
||||
SDL_ATprintVerbose( 1, "CPU count: %d\n", SDL_GetCPUCount());
|
||||
SDL_ATprintVerbose( 1, "Available extensions:\n" );
|
||||
SDL_ATprintVerbose( 1, " RDTSC %s\n", SDL_HasRDTSC()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " AltiVec %s\n", SDL_HasAltiVec()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " MMX %s\n", SDL_HasMMX()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " 3DNow! %s\n", SDL_Has3DNow()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " SSE %s\n", SDL_HasSSE()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " SSE2 %s\n", SDL_HasSSE2()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " SSE3 %s\n", SDL_HasSSE3()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " SSE4.1 %s\n", SDL_HasSSE41()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " SSE4.2 %s\n", SDL_HasSSE42()? "detected" : "not detected" );
|
||||
|
||||
plat_testTypes();
|
||||
plat_testEndian();
|
||||
|
||||
return SDL_ATfinish();
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Part of SDL test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _TEST_PLATFORM
|
||||
# define _TEST_PLATFORM
|
||||
|
||||
|
||||
int test_platform (void);
|
||||
|
||||
|
||||
#endif /* _TEST_PLATFORM */
|
||||
|
|
@ -1,156 +0,0 @@
|
|||
/**
|
||||
* Automated SDL rect test.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
#include "SDL_rect.h"
|
||||
#include "../SDL_at.h"
|
||||
|
||||
|
||||
/*
|
||||
* Prototypes.
|
||||
*/
|
||||
static void rect_testIntersectRectAndLine (void);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests SDL_IntersectRectAndLine()
|
||||
*/
|
||||
static void rect_testIntersectRectAndLine (void)
|
||||
{
|
||||
SDL_Rect rect = { 0, 0, 32, 32 };
|
||||
int x1, y1;
|
||||
int x2, y2;
|
||||
SDL_bool clipped;
|
||||
|
||||
SDL_ATbegin( "IntersectRectAndLine" );
|
||||
|
||||
x1 = -10;
|
||||
y1 = 0;
|
||||
x2 = -10;
|
||||
y2 = 31;
|
||||
clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2);
|
||||
SDL_ATvassert( !clipped &&
|
||||
x1 == -10 && y1 == 0 && x2 == -10 && y2 == 31,
|
||||
"line outside to the left was incorrectly clipped: %d,%d - %d,%d",
|
||||
x1, y1, x2, y2);
|
||||
|
||||
x1 = 40;
|
||||
y1 = 0;
|
||||
x2 = 40;
|
||||
y2 = 31;
|
||||
clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2);
|
||||
SDL_ATvassert( !clipped &&
|
||||
x1 == 40 && y1 == 0 && x2 == 40 && y2 == 31,
|
||||
"line outside to the right was incorrectly clipped: %d,%d - %d,%d",
|
||||
x1, y1, x2, y2);
|
||||
|
||||
x1 = 0;
|
||||
y1 = -10;
|
||||
x2 = 31;
|
||||
y2 = -10;
|
||||
clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2);
|
||||
SDL_ATvassert( !clipped &&
|
||||
x1 == 0 && y1 == -10 && x2 == 31 && y2 == -10,
|
||||
"line outside above was incorrectly clipped: %d,%d - %d,%d",
|
||||
x1, y1, x2, y2);
|
||||
|
||||
x1 = 0;
|
||||
y1 = 40;
|
||||
x2 = 31;
|
||||
y2 = 40;
|
||||
clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2);
|
||||
SDL_ATvassert( !clipped &&
|
||||
x1 == 0 && y1 == 40 && x2 == 31 && y2 == 40,
|
||||
"line outside below was incorrectly clipped: %d,%d - %d,%d",
|
||||
x1, y1, x2, y2);
|
||||
|
||||
x1 = 0;
|
||||
y1 = 0;
|
||||
x2 = 31;
|
||||
y2 = 31;
|
||||
clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2);
|
||||
SDL_ATvassert( clipped &&
|
||||
x1 == 0 && y1 == 0 && x2 == 31 && y2 == 31,
|
||||
"line fully inside rect was clipped: %d,%d - %d,%d",
|
||||
x1, y1, x2, y2);
|
||||
|
||||
x1 = -10;
|
||||
y1 = 15;
|
||||
x2 = 40;
|
||||
y2 = 15;
|
||||
clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2);
|
||||
SDL_ATvassert( clipped &&
|
||||
x1 == 0 && y1 == 15 && x2 == 31 && y2 == 15,
|
||||
"horizontal line rect was incorrectly clipped: %d,%d - %d,%d",
|
||||
x1, y1, x2, y2);
|
||||
|
||||
x1 = -32;
|
||||
y1 = -32;
|
||||
x2 = 63;
|
||||
y2 = 63;
|
||||
clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2);
|
||||
SDL_ATvassert( clipped &&
|
||||
x1 == 0 && y1 == 0 && x2 == 31 && y2 == 31,
|
||||
"diagonal line to lower right was incorrectly clipped: %d,%d - %d,%d",
|
||||
x1, y1, x2, y2);
|
||||
|
||||
x1 = 63;
|
||||
y1 = 63;
|
||||
x2 = -32;
|
||||
y2 = -32;
|
||||
clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2);
|
||||
SDL_ATvassert( clipped &&
|
||||
x1 == 31 && y1 == 31 && x2 == 0 && y2 == 0,
|
||||
"diagonal line to upper left was incorrectly clipped: %d,%d - %d,%d",
|
||||
x1, y1, x2, y2);
|
||||
|
||||
x1 = 63;
|
||||
y1 = -32;
|
||||
x2 = -32;
|
||||
y2 = 63;
|
||||
clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2);
|
||||
SDL_ATvassert( clipped &&
|
||||
x1 == 31 && y1 == 0 && x2 == 0 && y2 == 31,
|
||||
"diagonal line to lower left was incorrectly clipped: %d,%d - %d,%d",
|
||||
x1, y1, x2, y2);
|
||||
|
||||
x1 = -32;
|
||||
y1 = 63;
|
||||
x2 = 63;
|
||||
y2 = -32;
|
||||
clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2);
|
||||
SDL_ATvassert( clipped &&
|
||||
x1 == 0 && y1 == 31 && x2 == 31 && y2 == 0,
|
||||
"diagonal line to upper right was incorrectly clipped: %d,%d - %d,%d",
|
||||
x1, y1, x2, y2);
|
||||
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Rect test entrypoint.
|
||||
*/
|
||||
#ifdef TEST_STANDALONE
|
||||
int main( int argc, const char *argv[] )
|
||||
{
|
||||
(void) argc;
|
||||
(void) argv;
|
||||
#else /* TEST_STANDALONE */
|
||||
int test_rect (void)
|
||||
{
|
||||
#endif /* TEST_STANDALONE */
|
||||
|
||||
SDL_ATinit( "Rect" );
|
||||
|
||||
rect_testIntersectRectAndLine();
|
||||
|
||||
return SDL_ATfinish();
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Part of SDL test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _TEST_RECT
|
||||
# define _TEST_RECT
|
||||
|
||||
|
||||
int test_rect (void);
|
||||
|
||||
|
||||
#endif /* _TEST_RECT */
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Part of SDL test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _TEST_RENDER
|
||||
# define _TEST_RENDER
|
||||
|
||||
|
||||
int test_render (void);
|
||||
|
||||
|
||||
#endif /* _TEST_RENDER */
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
|
||||
#include <stdio.h>
|
||||
#include "SDL.h"
|
||||
|
||||
#ifndef TestSupportRWops_h
|
||||
#define TestSupportRWops_h
|
||||
|
||||
FILE* TestSupportRWops_OpenFPFromReadDir(const char *file, const char *mode);
|
||||
FILE* TestSupportRWops_OpenFPFromWriteDir(const char *file, const char *mode);
|
||||
SDL_RWops* TestSupportRWops_OpenRWopsFromReadDir(const char *file, const char *mode);
|
||||
SDL_RWops* TestSupportRWops_OpenRWopsFromWriteDir(const char *file, const char *mode);
|
||||
|
||||
|
||||
#endif
|
|
@ -1,89 +0,0 @@
|
|||
#import "TestSupportRWops.h"
|
||||
#import <Foundation/Foundation.h>
|
||||
#include "SDL.h"
|
||||
|
||||
/* For proper OS X applications, the resources are contained inside the application bundle.
|
||||
So the strategy is to first check the application bundle for the file, then fallback to the current working directory.
|
||||
Note: One additional corner-case is if the resource is in a framework's resource bundle instead of the app.
|
||||
We might want to use bundle identifiers, e.g. org.libsdl.sdl to get the bundle for the framework,
|
||||
but we would somehow need to know what the bundle identifiers we need to search are.
|
||||
Conversely, write directories are usually not in the bundles. This implementation uses NSTemporaryDirectory,
|
||||
but consider Preferences, Application Support, Documents, etc.
|
||||
Also, note the bundle layouts are different for iPhone and Mac.
|
||||
*/
|
||||
|
||||
const char* RWOPS_READ = "rwops/read";
|
||||
const char* RWOPS_WRITE = "write";
|
||||
|
||||
|
||||
FILE* TestSupportRWops_OpenFPFromReadDir(const char *file, const char *mode)
|
||||
{
|
||||
FILE* fp = NULL;
|
||||
|
||||
// If the file mode is writable, skip all the bundle stuff because generally the bundle is read-only.
|
||||
if(strcmp("r", mode) && strcmp("rb", mode))
|
||||
{
|
||||
return fopen(file, mode);
|
||||
}
|
||||
|
||||
NSAutoreleasePool* autorelease_pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
|
||||
NSFileManager* file_manager = [NSFileManager defaultManager];
|
||||
NSString* resource_path = [[NSBundle mainBundle] resourcePath];
|
||||
|
||||
NSString* ns_string_file_component = [file_manager stringWithFileSystemRepresentation:file length:strlen(file)];
|
||||
|
||||
NSString* full_path_with_file_to_try = [resource_path stringByAppendingPathComponent:ns_string_file_component];
|
||||
if([file_manager fileExistsAtPath:full_path_with_file_to_try])
|
||||
{
|
||||
fp = fopen([full_path_with_file_to_try fileSystemRepresentation], mode);
|
||||
}
|
||||
else
|
||||
{
|
||||
fp = fopen(file, mode);
|
||||
}
|
||||
|
||||
[autorelease_pool drain];
|
||||
|
||||
return fp;
|
||||
}
|
||||
|
||||
FILE* TestSupportRWops_OpenFPFromWriteDir(const char *file, const char *mode)
|
||||
{
|
||||
FILE* fp = NULL;
|
||||
|
||||
NSAutoreleasePool* autorelease_pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
NSFileManager* file_manager = [NSFileManager defaultManager];
|
||||
NSString* ns_string_file_component = [file_manager stringWithFileSystemRepresentation:file length:strlen(file)];
|
||||
NSString* full_path_with_file_to_try = [NSTemporaryDirectory() stringByAppendingPathComponent:ns_string_file_component];
|
||||
|
||||
fp = fopen([full_path_with_file_to_try fileSystemRepresentation], mode);
|
||||
|
||||
[autorelease_pool drain];
|
||||
|
||||
return fp;
|
||||
}
|
||||
|
||||
SDL_RWops* TestSupportRWops_OpenRWopsFromReadDir(const char *file, const char *mode)
|
||||
{
|
||||
return SDL_RWFromFile(file, mode);
|
||||
}
|
||||
|
||||
SDL_RWops* TestSupportRWops_OpenRWopsFromWriteDir(const char *file, const char *mode)
|
||||
{
|
||||
SDL_RWops* rw = NULL;
|
||||
|
||||
NSAutoreleasePool* autorelease_pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
NSFileManager* file_manager = [NSFileManager defaultManager];
|
||||
NSString* ns_string_file_component = [file_manager stringWithFileSystemRepresentation:file length:strlen(file)];
|
||||
NSString* full_path_with_file_to_try = [NSTemporaryDirectory() stringByAppendingPathComponent:ns_string_file_component];
|
||||
|
||||
rw = SDL_RWFromFile( [full_path_with_file_to_try fileSystemRepresentation], mode );
|
||||
|
||||
[autorelease_pool drain];
|
||||
return rw;
|
||||
}
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
/* Generic implementation for file opening routines.
|
||||
* Customizations for specific platforms should go in alternative files.
|
||||
*/
|
||||
|
||||
// quiet windows compiler warnings
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
|
||||
#include <stdio.h>
|
||||
#include "SDL.h"
|
||||
|
||||
const char* RWOPS_READ = "rwops/read";
|
||||
const char* RWOPS_WRITE = "rwops/write";
|
||||
|
||||
FILE* TestSupportRWops_OpenFPFromReadDir(const char *file, const char *mode)
|
||||
{
|
||||
return fopen(file, mode);
|
||||
}
|
||||
|
||||
FILE* TestSupportRWops_OpenFPFromWriteDir(const char *file, const char *mode)
|
||||
{
|
||||
return fopen(file, mode);
|
||||
}
|
||||
|
||||
SDL_RWops* TestSupportRWops_OpenRWopsFromReadDir(const char *file, const char *mode)
|
||||
{
|
||||
return SDL_RWFromFile(file, mode);
|
||||
}
|
||||
|
||||
SDL_RWops* TestSupportRWops_OpenRWopsFromWriteDir(const char *file, const char *mode)
|
||||
{
|
||||
return SDL_RWFromFile(file, mode);
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
Hello World!
|
|
@ -1,272 +0,0 @@
|
|||
/**
|
||||
* Automated SDL_RWops test.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#include "SDL.h"
|
||||
#include "../SDL_at.h"
|
||||
#include "TestSupportRWops.h"
|
||||
|
||||
/* Defined in TestSupportRWops implementation to allow flexibility. */
|
||||
extern const char* RWOPS_READ;
|
||||
extern const char* RWOPS_WRITE;
|
||||
|
||||
static const char hello_world[] = "Hello World!";
|
||||
|
||||
|
||||
/**
|
||||
* @brief Makes sure parameters work properly.
|
||||
*/
|
||||
static void rwops_testParam (void)
|
||||
{
|
||||
SDL_RWops *rwops;
|
||||
|
||||
/* Begin testcase. */
|
||||
SDL_ATbegin( "RWops Parameters" );
|
||||
|
||||
/* These should all fail. */
|
||||
rwops = SDL_RWFromFile(NULL, NULL);
|
||||
if (SDL_ATassert( "SDL_RWFromFile(NULL, NULL) worked", rwops == NULL ))
|
||||
return;
|
||||
rwops = SDL_RWFromFile(NULL, "ab+");
|
||||
if (SDL_ATassert( "SDL_RWFromFile(NULL, \"ab+\") worked", rwops == NULL ))
|
||||
return;
|
||||
rwops = SDL_RWFromFile(NULL, "sldfkjsldkfj");
|
||||
if (SDL_ATassert( "SDL_RWFromFile(NULL, \"sldfkjsldkfj\") worked", rwops == NULL ))
|
||||
return;
|
||||
rwops = SDL_RWFromFile("something", "");
|
||||
if (SDL_ATassert( "SDL_RWFromFile(\"something\", \"\") worked", rwops == NULL ))
|
||||
return;
|
||||
rwops = SDL_RWFromFile("something", NULL);
|
||||
if (SDL_ATassert( "SDL_RWFromFile(\"something\", NULL) worked", rwops == NULL ))
|
||||
return;
|
||||
|
||||
|
||||
/* End testcase. */
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Does a generic rwops test.
|
||||
*
|
||||
* RWops should have "Hello World!" in it already if write is disabled.
|
||||
*
|
||||
* @param write Test writing also.
|
||||
* @return 1 if an assert is failed.
|
||||
*/
|
||||
static int rwops_testGeneric( SDL_RWops *rw, int write )
|
||||
{
|
||||
char buf[sizeof(hello_world)];
|
||||
int i;
|
||||
|
||||
/* Set to start. */
|
||||
i = SDL_RWseek( rw, 0, RW_SEEK_SET );
|
||||
if (SDL_ATvassert( i == 0,
|
||||
"Seeking with SDL_RWseek (RW_SEEK_SET): got %d, expected %d",
|
||||
i, 0 ))
|
||||
return 1;
|
||||
|
||||
/* Test write. */
|
||||
i = SDL_RWwrite( rw, hello_world, sizeof(hello_world)-1, 1 );
|
||||
if (write) {
|
||||
if (SDL_ATassert( "Writing with SDL_RWwrite (failed to write)", i == 1 ))
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
if (SDL_ATassert( "Writing with SDL_RWwrite (wrote when shouldn't have)", i <= 0 ))
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Test seek. */
|
||||
i = SDL_RWseek( rw, 6, RW_SEEK_SET );
|
||||
if (SDL_ATvassert( i == 6,
|
||||
"Seeking with SDL_RWseek (RW_SEEK_SET): got %d, expected %d",
|
||||
i, 0 ))
|
||||
return 1;
|
||||
|
||||
/* Test seek. */
|
||||
i = SDL_RWseek( rw, 0, RW_SEEK_SET );
|
||||
if (SDL_ATvassert( i == 0,
|
||||
"Seeking with SDL_RWseek (RW_SEEK_SET): got %d, expected %d",
|
||||
i, 0 ))
|
||||
return 1;
|
||||
|
||||
/* Test read. */
|
||||
i = SDL_RWread( rw, buf, 1, sizeof(hello_world)-1 );
|
||||
if (SDL_ATassert( "Reading with SDL_RWread", i == sizeof(hello_world)-1 ))
|
||||
return 1;
|
||||
if (SDL_ATassert( "Memory read does not match memory written",
|
||||
SDL_memcmp( buf, hello_world, sizeof(hello_world)-1 ) == 0 ))
|
||||
return 1;
|
||||
|
||||
/* More seek tests. */
|
||||
i = SDL_RWseek( rw, -4, RW_SEEK_CUR );
|
||||
if (SDL_ATvassert( i == sizeof(hello_world)-5,
|
||||
"Seeking with SDL_RWseek (RW_SEEK_CUR): got %d, expected %d",
|
||||
i, sizeof(hello_world)-5 ))
|
||||
return 1;
|
||||
i = SDL_RWseek( rw, -1, RW_SEEK_END );
|
||||
if (SDL_ATvassert( i == sizeof(hello_world)-2,
|
||||
"Seeking with SDL_RWseek (RW_SEEK_END): got %d, expected %d",
|
||||
i, sizeof(hello_world)-2 ))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests opening from memory.
|
||||
*/
|
||||
static void rwops_testMem (void)
|
||||
{
|
||||
char mem[sizeof(hello_world)];
|
||||
SDL_RWops *rw;
|
||||
|
||||
/* Begin testcase. */
|
||||
SDL_ATbegin( "SDL_RWFromMem" );
|
||||
|
||||
/* Open. */
|
||||
rw = SDL_RWFromMem( mem, sizeof(hello_world)-1 );
|
||||
if (SDL_ATassert( "Opening memory with SDL_RWFromMem", rw != NULL ))
|
||||
return;
|
||||
|
||||
/* Run generic tests. */
|
||||
if (rwops_testGeneric( rw, 1 ))
|
||||
return;
|
||||
|
||||
/* Close. */
|
||||
SDL_FreeRW( rw );
|
||||
|
||||
/* End testcase. */
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
static const char const_mem[] = "Hello World!";
|
||||
/**
|
||||
* @brief Tests opening from memory.
|
||||
*/
|
||||
static void rwops_testConstMem (void)
|
||||
{
|
||||
SDL_RWops *rw;
|
||||
|
||||
/* Begin testcase. */
|
||||
SDL_ATbegin( "SDL_RWFromConstMem" );
|
||||
|
||||
/* Open. */
|
||||
rw = SDL_RWFromConstMem( const_mem, sizeof(const_mem)-1 );
|
||||
if (SDL_ATassert( "Opening memory with SDL_RWFromConstMem", rw != NULL ))
|
||||
return;
|
||||
|
||||
/* Run generic tests. */
|
||||
if (rwops_testGeneric( rw, 0 ))
|
||||
return;
|
||||
|
||||
/* Close. */
|
||||
SDL_FreeRW( rw );
|
||||
|
||||
/* End testcase. */
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests opening from memory.
|
||||
*/
|
||||
static void rwops_testFile (void)
|
||||
{
|
||||
SDL_RWops *rw;
|
||||
|
||||
/* Begin testcase. */
|
||||
SDL_ATbegin( "SDL_RWFromFile" );
|
||||
|
||||
/* Read test. */
|
||||
rw = TestSupportRWops_OpenRWopsFromReadDir( RWOPS_READ, "r" );
|
||||
if (SDL_ATassert( "Opening memory with SDL_RWFromFile RWOPS_READ", rw != NULL ))
|
||||
return;
|
||||
if (rwops_testGeneric( rw, 0 ))
|
||||
return;
|
||||
SDL_FreeRW( rw );
|
||||
|
||||
/* Write test. */
|
||||
rw = TestSupportRWops_OpenRWopsFromWriteDir( RWOPS_WRITE, "w+" );
|
||||
if (SDL_ATassert( "Opening memory with SDL_RWFromFile RWOPS_WRITE", rw != NULL ))
|
||||
return;
|
||||
if (rwops_testGeneric( rw, 1 ))
|
||||
return;
|
||||
SDL_FreeRW( rw );
|
||||
|
||||
/* End testcase. */
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests opening from memory.
|
||||
*/
|
||||
static void rwops_testFP (void)
|
||||
{
|
||||
#ifdef HAVE_STDIO_H
|
||||
FILE *fp;
|
||||
SDL_RWops *rw;
|
||||
|
||||
/* Begin testcase. */
|
||||
SDL_ATbegin( "SDL_RWFromFP" );
|
||||
|
||||
/* Run read tests. */
|
||||
fp = TestSupportRWops_OpenFPFromReadDir( RWOPS_READ, "r" );
|
||||
if (SDL_ATassert( "Failed to open file 'WOPS_READ", fp != NULL))
|
||||
return;
|
||||
rw = SDL_RWFromFP( fp, 1 );
|
||||
if (SDL_ATassert( "Opening memory with SDL_RWFromFP", rw != NULL ))
|
||||
return;
|
||||
if (rwops_testGeneric( rw, 0 ))
|
||||
return;
|
||||
SDL_FreeRW( rw );
|
||||
|
||||
/* Run write tests. */
|
||||
fp = TestSupportRWops_OpenFPFromWriteDir( RWOPS_WRITE, "w+" );
|
||||
if (SDL_ATassert( "Failed to open file RWOPS_WRITE", fp != NULL))
|
||||
return;
|
||||
rw = SDL_RWFromFP( fp, 1 );
|
||||
if (SDL_ATassert( "Opening memory with SDL_RWFromFP", rw != NULL ))
|
||||
return;
|
||||
if (rwops_testGeneric( rw, 1 ))
|
||||
return;
|
||||
SDL_FreeRW( rw );
|
||||
|
||||
/* End testcase. */
|
||||
SDL_ATend();
|
||||
#endif /* HAVE_STDIO_H */
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Entry point.
|
||||
*/
|
||||
#ifdef TEST_STANDALONE
|
||||
int main( int argc, const char *argv[] )
|
||||
{
|
||||
(void) argc;
|
||||
(void) argv;
|
||||
#else /* TEST_STANDALONE */
|
||||
int test_rwops (void)
|
||||
{
|
||||
#endif /* TEST_STANDALONE */
|
||||
|
||||
SDL_ATinit( "SDL_RWops" );
|
||||
|
||||
rwops_testParam();
|
||||
rwops_testMem();
|
||||
rwops_testConstMem();
|
||||
rwops_testFile();
|
||||
rwops_testFP();
|
||||
|
||||
return SDL_ATfinish();
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Part of SDL test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _TEST_RWOPS
|
||||
# define _TEST_RWOPS
|
||||
|
||||
|
||||
int test_rwops (void);
|
||||
|
||||
|
||||
#endif /* _TEST_RWOPS */
|
||||
|
|
@ -1,449 +0,0 @@
|
|||
/**
|
||||
* Automated SDL_Surface test.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#include "SDL.h"
|
||||
#include "SDL_surface.h"
|
||||
#include "SDL_video.h"
|
||||
#include "../SDL_at.h"
|
||||
|
||||
#include "../common/common.h"
|
||||
|
||||
|
||||
/*
|
||||
* Pull in images for testcases.
|
||||
*/
|
||||
#include "../common/images.h"
|
||||
|
||||
|
||||
/*
|
||||
* Prototypes.
|
||||
*/
|
||||
/* Testcases. */
|
||||
static void surface_testLoad( SDL_Surface *testsur );
|
||||
static void surface_testBlit( SDL_Surface *testsur );
|
||||
static int surface_testBlitBlendMode( SDL_Surface *testsur, SDL_Surface *face, int mode );
|
||||
static void surface_testBlitBlend( SDL_Surface *testsur );
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests sprite loading.
|
||||
*/
|
||||
static void surface_testLoad( SDL_Surface *testsur )
|
||||
{
|
||||
int ret;
|
||||
SDL_Surface *face, *rface;
|
||||
|
||||
SDL_ATbegin( "Load Test" );
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Create the blit surface. */
|
||||
#ifdef __APPLE__
|
||||
face = SDL_LoadBMP("icon.bmp");
|
||||
#else
|
||||
face = SDL_LoadBMP("../icon.bmp");
|
||||
#endif
|
||||
|
||||
if (SDL_ATassert( "SDL_CreateLoadBmp", face != NULL))
|
||||
return;
|
||||
|
||||
/* Set transparent pixel as the pixel at (0,0) */
|
||||
if (face->format->palette) {
|
||||
ret = SDL_SetColorKey(face, SDL_RLEACCEL, *(Uint8 *) face->pixels);
|
||||
if (SDL_ATassert( "SDL_SetColorKey", ret == 0))
|
||||
return;
|
||||
}
|
||||
|
||||
/* Convert to 32 bit to compare. */
|
||||
rface = SDL_ConvertSurface( face, testsur->format, 0 );
|
||||
if (SDL_ATassert( "SDL_ConvertSurface", rface != NULL))
|
||||
return;
|
||||
|
||||
/* See if it's the same. */
|
||||
if (SDL_ATassert( "Primitives output not the same.",
|
||||
surface_compare( rface, &img_face, 0 )==0 ))
|
||||
return;
|
||||
|
||||
/* Clean up. */
|
||||
SDL_FreeSurface( rface );
|
||||
SDL_FreeSurface( face );
|
||||
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests some blitting routines.
|
||||
*/
|
||||
static void surface_testBlit( SDL_Surface *testsur )
|
||||
{
|
||||
int ret;
|
||||
SDL_Rect rect;
|
||||
SDL_Surface *face;
|
||||
int i, j, ni, nj;
|
||||
|
||||
SDL_ATbegin( "Blit Tests" );
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Create face surface. */
|
||||
face = SDL_CreateRGBSurfaceFrom( (void*)img_face.pixel_data,
|
||||
img_face.width, img_face.height, 32, img_face.width*4,
|
||||
#if (SDL_BYTEORDER == SDL_BIG_ENDIAN)
|
||||
0xff000000, /* Red bit mask. */
|
||||
0x00ff0000, /* Green bit mask. */
|
||||
0x0000ff00, /* Blue bit mask. */
|
||||
0x000000ff /* Alpha bit mask. */
|
||||
#else
|
||||
0x000000ff, /* Red bit mask. */
|
||||
0x0000ff00, /* Green bit mask. */
|
||||
0x00ff0000, /* Blue bit mask. */
|
||||
0xff000000 /* Alpha bit mask. */
|
||||
#endif
|
||||
);
|
||||
if (SDL_ATassert( "SDL_CreateRGBSurfaceFrom", face != NULL))
|
||||
return;
|
||||
|
||||
/* Constant values. */
|
||||
rect.w = face->w;
|
||||
rect.h = face->h;
|
||||
ni = testsur->w - face->w;
|
||||
nj = testsur->h - face->h;
|
||||
|
||||
/* Loop blit. */
|
||||
for (j=0; j <= nj; j+=4) {
|
||||
for (i=0; i <= ni; i+=4) {
|
||||
/* Blitting. */
|
||||
rect.x = i;
|
||||
rect.y = j;
|
||||
ret = SDL_BlitSurface( face, NULL, testsur, &rect );
|
||||
if (SDL_ATassert( "SDL_BlitSurface", ret == 0))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* See if it's the same. */
|
||||
if (SDL_ATassert( "Blitting output not the same (normal blit).",
|
||||
surface_compare( testsur, &img_blit, 0 )==0 ))
|
||||
return;
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Test blitting with colour mod. */
|
||||
for (j=0; j <= nj; j+=4) {
|
||||
for (i=0; i <= ni; i+=4) {
|
||||
/* Set colour mod. */
|
||||
ret = SDL_SetSurfaceColorMod( face, (255/nj)*j, (255/ni)*i, (255/nj)*j );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceColorMod", ret == 0))
|
||||
return;
|
||||
|
||||
/* Blitting. */
|
||||
rect.x = i;
|
||||
rect.y = j;
|
||||
ret = SDL_BlitSurface( face, NULL, testsur, &rect );
|
||||
if (SDL_ATassert( "SDL_BlitSurface", ret == 0))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* See if it's the same. */
|
||||
if (SDL_ATassert( "Blitting output not the same (using SDL_SetSurfaceColorMod).",
|
||||
surface_compare( testsur, &img_blitColour, 0 )==0 ))
|
||||
return;
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Restore colour. */
|
||||
ret = SDL_SetSurfaceColorMod( face, 255, 255, 255 );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceColorMod", ret == 0))
|
||||
return;
|
||||
|
||||
/* Test blitting with colour mod. */
|
||||
for (j=0; j <= nj; j+=4) {
|
||||
for (i=0; i <= ni; i+=4) {
|
||||
/* Set alpha mod. */
|
||||
ret = SDL_SetSurfaceAlphaMod( face, (255/ni)*i );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceAlphaMod", ret == 0))
|
||||
return;
|
||||
|
||||
/* Blitting. */
|
||||
rect.x = i;
|
||||
rect.y = j;
|
||||
ret = SDL_BlitSurface( face, NULL, testsur, &rect );
|
||||
if (SDL_ATassert( "SDL_BlitSurface", ret == 0))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* See if it's the same. */
|
||||
if (SDL_ATassert( "Blitting output not the same (using SDL_SetSurfaceAlphaMod).",
|
||||
surface_compare( testsur, &img_blitAlpha, 0 )==0 ))
|
||||
return;
|
||||
|
||||
/* Clean up. */
|
||||
SDL_FreeSurface( face );
|
||||
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests a blend mode.
|
||||
*/
|
||||
static int surface_testBlitBlendMode( SDL_Surface *testsur, SDL_Surface *face, int mode )
|
||||
{
|
||||
int ret;
|
||||
int i, j, ni, nj;
|
||||
SDL_Rect rect;
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return 1;
|
||||
|
||||
/* Steps to take. */
|
||||
ni = testsur->w - face->w;
|
||||
nj = testsur->h - face->h;
|
||||
|
||||
/* Constant values. */
|
||||
rect.w = face->w;
|
||||
rect.h = face->h;
|
||||
|
||||
/* Test blend mode. */
|
||||
for (j=0; j <= nj; j+=4) {
|
||||
for (i=0; i <= ni; i+=4) {
|
||||
/* Set blend mode. */
|
||||
ret = SDL_SetSurfaceBlendMode( face, mode );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceBlendMode", ret == 0))
|
||||
return 1;
|
||||
|
||||
/* Blitting. */
|
||||
rect.x = i;
|
||||
rect.y = j;
|
||||
ret = SDL_BlitSurface( face, NULL, testsur, &rect );
|
||||
if (SDL_ATassert( "SDL_BlitSurface", ret == 0))
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests some more blitting routines.
|
||||
*/
|
||||
static void surface_testBlitBlend( SDL_Surface *testsur )
|
||||
{
|
||||
int ret;
|
||||
SDL_Rect rect;
|
||||
SDL_Surface *face;
|
||||
int i, j, ni, nj;
|
||||
int mode;
|
||||
|
||||
SDL_ATbegin( "Blit Blending Tests" );
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Create the blit surface. */
|
||||
face = SDL_CreateRGBSurfaceFrom( (void*)img_face.pixel_data,
|
||||
img_face.width, img_face.height, 32, img_face.width*4,
|
||||
#if (SDL_BYTEORDER == SDL_BIG_ENDIAN)
|
||||
0xff000000, /* Red bit mask. */
|
||||
0x00ff0000, /* Green bit mask. */
|
||||
0x0000ff00, /* Blue bit mask. */
|
||||
0x000000ff /* Alpha bit mask. */
|
||||
#else
|
||||
0x000000ff, /* Red bit mask. */
|
||||
0x0000ff00, /* Green bit mask. */
|
||||
0x00ff0000, /* Blue bit mask. */
|
||||
0xff000000 /* Alpha bit mask. */
|
||||
#endif
|
||||
);
|
||||
if (SDL_ATassert( "SDL_CreateRGBSurfaceFrom", face != NULL))
|
||||
return;
|
||||
|
||||
/* Set alpha mod. */
|
||||
ret = SDL_SetSurfaceAlphaMod( face, 100 );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceAlphaMod", ret == 0))
|
||||
return;
|
||||
|
||||
/* Steps to take. */
|
||||
ni = testsur->w - face->w;
|
||||
nj = testsur->h - face->h;
|
||||
|
||||
/* Constant values. */
|
||||
rect.w = face->w;
|
||||
rect.h = face->h;
|
||||
|
||||
/* Test None. */
|
||||
if (surface_testBlitBlendMode( testsur, face, SDL_BLENDMODE_NONE ))
|
||||
return;
|
||||
if (SDL_ATassert( "Blitting blending output not the same (using SDL_BLENDMODE_NONE).",
|
||||
surface_compare( testsur, &img_blendNone, 0 )==0 ))
|
||||
return;
|
||||
|
||||
/* Test Blend. */
|
||||
if (surface_testBlitBlendMode( testsur, face, SDL_BLENDMODE_BLEND ))
|
||||
return;
|
||||
if (SDL_ATassert( "Blitting blending output not the same (using SDL_BLENDMODE_BLEND).",
|
||||
surface_compare( testsur, &img_blendBlend, 0 )==0 ))
|
||||
return;
|
||||
|
||||
/* Test Add. */
|
||||
if (surface_testBlitBlendMode( testsur, face, SDL_BLENDMODE_ADD ))
|
||||
return;
|
||||
if (SDL_ATassert( "Blitting blending output not the same (using SDL_BLENDMODE_ADD).",
|
||||
surface_compare( testsur, &img_blendAdd, 0 )==0 ))
|
||||
return;
|
||||
|
||||
/* Test Mod. */
|
||||
if (surface_testBlitBlendMode( testsur, face, SDL_BLENDMODE_MOD ))
|
||||
return;
|
||||
if (SDL_ATassert( "Blitting blending output not the same (using SDL_BLENDMODE_MOD).",
|
||||
surface_compare( testsur, &img_blendMod, 0 )==0 ))
|
||||
return;
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Loop blit. */
|
||||
for (j=0; j <= nj; j+=4) {
|
||||
for (i=0; i <= ni; i+=4) {
|
||||
|
||||
/* Set colour mod. */
|
||||
ret = SDL_SetSurfaceColorMod( face, (255/nj)*j, (255/ni)*i, (255/nj)*j );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceColorMod", ret == 0))
|
||||
return;
|
||||
|
||||
/* Set alpha mod. */
|
||||
ret = SDL_SetSurfaceAlphaMod( face, (100/ni)*i );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceAlphaMod", ret == 0))
|
||||
return;
|
||||
|
||||
/* Crazy blending mode magic. */
|
||||
mode = (i/4*j/4) % 4;
|
||||
if (mode==0) mode = SDL_BLENDMODE_NONE;
|
||||
else if (mode==1) mode = SDL_BLENDMODE_BLEND;
|
||||
else if (mode==2) mode = SDL_BLENDMODE_ADD;
|
||||
else if (mode==3) mode = SDL_BLENDMODE_MOD;
|
||||
ret = SDL_SetSurfaceBlendMode( face, mode );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceBlendMode", ret == 0))
|
||||
return;
|
||||
|
||||
/* Blitting. */
|
||||
rect.x = i;
|
||||
rect.y = j;
|
||||
ret = SDL_BlitSurface( face, NULL, testsur, &rect );
|
||||
if (SDL_ATassert( "SDL_BlitSurface", ret == 0))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check to see if matches. */
|
||||
if (SDL_ATassert( "Blitting blending output not the same (using SDL_BLEND_*).",
|
||||
surface_compare( testsur, &img_blendAll, 0 )==0 ))
|
||||
return;
|
||||
|
||||
/* Clean up. */
|
||||
SDL_FreeSurface( face );
|
||||
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Runs all the tests on the surface.
|
||||
*
|
||||
* @param testsur Surface to run tests on.
|
||||
*/
|
||||
void surface_runTests( SDL_Surface *testsur )
|
||||
{
|
||||
/* Software surface blitting. */
|
||||
surface_testBlit( testsur );
|
||||
surface_testBlitBlend( testsur );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Entry point.
|
||||
*/
|
||||
#ifdef TEST_STANDALONE
|
||||
int main( int argc, const char *argv[] )
|
||||
{
|
||||
(void) argc;
|
||||
(void) argv;
|
||||
#else /* TEST_STANDALONE */
|
||||
int test_surface (void)
|
||||
{
|
||||
#endif /* TEST_STANDALONE */
|
||||
int ret;
|
||||
SDL_Surface *testsur;
|
||||
|
||||
SDL_ATinit( "SDL_Surface" );
|
||||
|
||||
SDL_ATbegin( "Initializing" );
|
||||
/* Initializes the SDL subsystems. */
|
||||
ret = SDL_Init(0);
|
||||
if (SDL_ATassert( "SDL_Init(0)", ret == 0))
|
||||
goto err;
|
||||
|
||||
/* Now run on the video mode. */
|
||||
ret = SDL_InitSubSystem( SDL_INIT_VIDEO );
|
||||
if (SDL_ATassert( "SDL_InitSubSystem( SDL_INIT_VIDEO )", ret == 0))
|
||||
goto err;
|
||||
|
||||
/*
|
||||
* Surface on surface tests.
|
||||
*/
|
||||
/* Create the test surface. */
|
||||
testsur = SDL_CreateRGBSurface( 0, 80, 60, 32,
|
||||
RMASK, GMASK, BMASK, AMASK );
|
||||
if (SDL_ATassert( "SDL_CreateRGBSurface", testsur != NULL))
|
||||
goto err;
|
||||
SDL_ATend();
|
||||
/* Run surface on surface tests. */
|
||||
surface_testLoad( testsur );
|
||||
surface_runTests( testsur );
|
||||
/* Clean up. */
|
||||
SDL_FreeSurface( testsur );
|
||||
|
||||
/* Exit SDL. */
|
||||
SDL_Quit();
|
||||
|
||||
return SDL_ATfinish();
|
||||
|
||||
err:
|
||||
return SDL_ATfinish();
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Part of SDL test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _TEST_SURFACE
|
||||
# define _TEST_SURFACE
|
||||
|
||||
|
||||
int test_surface (void);
|
||||
|
||||
|
||||
#endif /* _TEST_SURFACE */
|
||||
|
|
@ -1,185 +0,0 @@
|
|||
/*
|
||||
* SDL test suite framework code.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
#include "SDL.h"
|
||||
#include "SDL_at.h"
|
||||
|
||||
#include "platform/platform.h"
|
||||
#include "rwops/rwops.h"
|
||||
#include "rect/rect.h"
|
||||
#include "surface/surface.h"
|
||||
#include "render/render.h"
|
||||
#include "audio/audio.h"
|
||||
|
||||
#if defined(WIN32)
|
||||
#define NO_GETOPT
|
||||
#endif
|
||||
#if defined(__QNXNTO__)
|
||||
#define NO_GETOPT_LONG 1
|
||||
#endif /* __QNXNTO__ */
|
||||
|
||||
#include <stdio.h> /* printf */
|
||||
#include <stdlib.h> /* exit */
|
||||
#ifndef NO_GETOPT
|
||||
#include <unistd.h> /* getopt */
|
||||
#if !defined(NO_GETOPT_LONG)
|
||||
#include <getopt.h> /* getopt_long */
|
||||
#endif /* !NO_GETOPT_LONG */
|
||||
#endif /* !NO_GETOPT */
|
||||
|
||||
|
||||
/*
|
||||
* Tests to run.
|
||||
*/
|
||||
static int run_manual = 0; /**< Run manual tests. */
|
||||
/* Manual. */
|
||||
/* Automatic. */
|
||||
static int run_platform = 1; /**< Run platform tests. */
|
||||
static int run_rwops = 1; /**< Run RWops tests. */
|
||||
static int run_rect = 1; /**< Run rect tests. */
|
||||
static int run_surface = 1; /**< Run surface tests. */
|
||||
static int run_render = 1; /**< Run render tests. */
|
||||
static int run_audio = 1; /**< Run audio tests. */
|
||||
|
||||
/*
|
||||
* Prototypes.
|
||||
*/
|
||||
static void print_usage( const char *name );
|
||||
static void parse_options( int argc, char *argv[] );
|
||||
|
||||
|
||||
/**
|
||||
* @brief Displays program usage.
|
||||
*/
|
||||
static void print_usage( const char *name )
|
||||
{
|
||||
printf("Usage: %s [OPTIONS]\n", name);
|
||||
printf("Options are:\n");
|
||||
printf(" -m, --manual enables tests that require user interaction\n");
|
||||
printf(" --noplatform do not run the platform tests\n");
|
||||
printf(" --norwops do not run the rwops tests\n");
|
||||
printf(" --norect do not run the rect tests\n");
|
||||
printf(" --nosurface do not run the surface tests\n");
|
||||
printf(" --norender do not run the render tests\n");
|
||||
printf(" --noaudio do not run the audio tests\n");
|
||||
printf(" -v, --verbose increases verbosity level by 1 for each -v\n");
|
||||
printf(" -q, --quiet only displays errors\n");
|
||||
printf(" -h, --help display this message and exit\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Handles the options.
|
||||
*/
|
||||
static void parse_options( int argc, char *argv[] )
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 1; i < argc; ++i) {
|
||||
const char *arg = argv[i];
|
||||
if (SDL_strcmp(arg, "-m") == 0 || SDL_strcmp(arg, "--manual") == 0) {
|
||||
run_manual = 1;
|
||||
continue;
|
||||
}
|
||||
if (SDL_strcmp(arg, "-v") == 0 || SDL_strcmp(arg, "--verbose") == 0) {
|
||||
int level;
|
||||
SDL_ATgeti( SDL_AT_VERBOSE, &level );
|
||||
SDL_ATseti( SDL_AT_VERBOSE, level+1 );
|
||||
continue;
|
||||
}
|
||||
if (SDL_strcmp(arg, "-q") == 0 || SDL_strcmp(arg, "--quiet") == 0) {
|
||||
SDL_ATseti( SDL_AT_QUIET, 1 );
|
||||
SDL_setenv("SDL_ASSERT", "abort", 0);
|
||||
continue;
|
||||
}
|
||||
if (SDL_strcmp(arg, "--noplatform") == 0) {
|
||||
run_platform = 0;
|
||||
continue;
|
||||
}
|
||||
if (SDL_strcmp(arg, "--norwops") == 0) {
|
||||
run_rwops = 0;
|
||||
continue;
|
||||
}
|
||||
if (SDL_strcmp(arg, "--norect") == 0) {
|
||||
run_rect = 0;
|
||||
continue;
|
||||
}
|
||||
if (SDL_strcmp(arg, "--nosurface") == 0) {
|
||||
run_surface = 0;
|
||||
continue;
|
||||
}
|
||||
if (SDL_strcmp(arg, "--norender") == 0) {
|
||||
run_render = 0;
|
||||
continue;
|
||||
}
|
||||
if (SDL_strcmp(arg, "--noaudio") == 0) {
|
||||
run_audio = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Print help and exit! */
|
||||
print_usage( argv[0] );
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Main entry point.
|
||||
*/
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
int failed;
|
||||
const char *rev;
|
||||
SDL_version ver;
|
||||
|
||||
/* Get options. */
|
||||
parse_options( argc, argv );
|
||||
|
||||
/* Defaults. */
|
||||
failed = 0;
|
||||
|
||||
/* Print some text if verbose. */
|
||||
SDL_GetVersion( &ver );
|
||||
rev = SDL_GetRevision();
|
||||
SDL_ATprintVerbose( 1, "Running tests with SDL %d.%d.%d revision %s\n",
|
||||
ver.major, ver.minor, ver.patch, rev );
|
||||
|
||||
/* Automatic tests. */
|
||||
if (run_platform)
|
||||
failed += test_platform();
|
||||
if (run_rwops)
|
||||
failed += test_rwops();
|
||||
if (run_rect)
|
||||
failed += test_rect();
|
||||
if (run_surface)
|
||||
failed += test_surface();
|
||||
if (run_render)
|
||||
failed += test_render();
|
||||
if (run_audio)
|
||||
failed += test_audio();
|
||||
|
||||
/* Manual tests. */
|
||||
if (run_manual) {
|
||||
}
|
||||
|
||||
/* Display more information if failed. */
|
||||
if (failed > 0) {
|
||||
SDL_ATprintErr( "Tests run with SDL %d.%d.%d revision %d\n",
|
||||
ver.major, ver.minor, ver.patch, rev );
|
||||
SDL_ATprintErr( "System is running %s and is %s endian\n",
|
||||
SDL_GetPlatform(),
|
||||
#if SDL_BYTEORDER == SDL_LIL_ENDIAN
|
||||
"little"
|
||||
#else
|
||||
"big"
|
||||
#endif
|
||||
);
|
||||
}
|
||||
|
||||
return failed;
|
||||
}
|
||||
|
|
@ -1,200 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
|
||||
/* Simple program: Loop, watching keystrokes
|
||||
Note that you need to call SDL_PollEvent() or SDL_WaitEvent() to
|
||||
pump the event loop and catch keystrokes.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "SDL.h"
|
||||
|
||||
/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
|
||||
static void
|
||||
quit(int rc)
|
||||
{
|
||||
SDL_Quit();
|
||||
exit(rc);
|
||||
}
|
||||
|
||||
static void
|
||||
print_string(char **text, size_t *maxlen, const char *fmt, ...)
|
||||
{
|
||||
int len;
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, fmt);
|
||||
len = SDL_vsnprintf(*text, *maxlen, fmt, ap);
|
||||
if (len > 0) {
|
||||
*text += len;
|
||||
if ( ((size_t) len) < *maxlen ) {
|
||||
*maxlen -= (size_t) len;
|
||||
} else {
|
||||
*maxlen = 0;
|
||||
}
|
||||
}
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
static void
|
||||
print_modifiers(char **text, size_t *maxlen)
|
||||
{
|
||||
int mod;
|
||||
print_string(text, maxlen, " modifiers:");
|
||||
mod = SDL_GetModState();
|
||||
if (!mod) {
|
||||
print_string(text, maxlen, " (none)");
|
||||
return;
|
||||
}
|
||||
if (mod & KMOD_LSHIFT)
|
||||
print_string(text, maxlen, " LSHIFT");
|
||||
if (mod & KMOD_RSHIFT)
|
||||
print_string(text, maxlen, " RSHIFT");
|
||||
if (mod & KMOD_LCTRL)
|
||||
print_string(text, maxlen, " LCTRL");
|
||||
if (mod & KMOD_RCTRL)
|
||||
print_string(text, maxlen, " RCTRL");
|
||||
if (mod & KMOD_LALT)
|
||||
print_string(text, maxlen, " LALT");
|
||||
if (mod & KMOD_RALT)
|
||||
print_string(text, maxlen, " RALT");
|
||||
if (mod & KMOD_LGUI)
|
||||
print_string(text, maxlen, " LGUI");
|
||||
if (mod & KMOD_RGUI)
|
||||
print_string(text, maxlen, " RGUI");
|
||||
if (mod & KMOD_NUM)
|
||||
print_string(text, maxlen, " NUM");
|
||||
if (mod & KMOD_CAPS)
|
||||
print_string(text, maxlen, " CAPS");
|
||||
if (mod & KMOD_MODE)
|
||||
print_string(text, maxlen, " MODE");
|
||||
}
|
||||
|
||||
static void
|
||||
PrintKey(SDL_Keysym * sym, SDL_bool pressed, SDL_bool repeat)
|
||||
{
|
||||
char message[512];
|
||||
char *spot;
|
||||
size_t left;
|
||||
|
||||
spot = message;
|
||||
left = sizeof(message);
|
||||
|
||||
/* Print the keycode, name and state */
|
||||
if (sym->sym) {
|
||||
print_string(&spot, &left,
|
||||
"Key %s: scancode %d = %s, keycode 0x%08X = %s ",
|
||||
pressed ? "pressed " : "released",
|
||||
sym->scancode,
|
||||
SDL_GetScancodeName(sym->scancode),
|
||||
sym->sym, SDL_GetKeyName(sym->sym));
|
||||
} else {
|
||||
print_string(&spot, &left,
|
||||
"Unknown Key (scancode %d = %s) %s ",
|
||||
sym->scancode,
|
||||
SDL_GetScancodeName(sym->scancode),
|
||||
pressed ? "pressed" : "released");
|
||||
}
|
||||
|
||||
/* Print the translated character, if one exists */
|
||||
if (sym->unicode) {
|
||||
/* Is it a control-character? */
|
||||
if (sym->unicode < ' ') {
|
||||
print_string(&spot, &left, " (^%c)", sym->unicode + '@');
|
||||
} else {
|
||||
#ifdef UNICODE
|
||||
print_string(&spot, &left, " (%c)", sym->unicode);
|
||||
#else
|
||||
/* This is a Latin-1 program, so only show 8-bits */
|
||||
if (!(sym->unicode & 0xFF00))
|
||||
print_string(&spot, &left, " (%c)", sym->unicode);
|
||||
else
|
||||
print_string(&spot, &left, " (0x%X)", sym->unicode);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
print_modifiers(&spot, &left);
|
||||
if (repeat) {
|
||||
print_string(&spot, &left, " (repeat)");
|
||||
}
|
||||
SDL_Log("%s", message);
|
||||
}
|
||||
|
||||
static void
|
||||
PrintText(char *text)
|
||||
{
|
||||
SDL_Log("Text: %s", text);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
SDL_Window *window;
|
||||
SDL_Event event;
|
||||
int done;
|
||||
|
||||
/* Initialize SDL */
|
||||
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
|
||||
fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
|
||||
return (1);
|
||||
}
|
||||
|
||||
/* Set 640x480 video mode */
|
||||
window = SDL_CreateWindow("CheckKeys Test",
|
||||
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
|
||||
640, 480, 0);
|
||||
if (!window) {
|
||||
fprintf(stderr, "Couldn't create 640x480 window: %s\n",
|
||||
SDL_GetError());
|
||||
quit(2);
|
||||
}
|
||||
|
||||
#if __IPHONEOS__
|
||||
/* Creating the context creates the view, which we need to show keyboard */
|
||||
SDL_GL_CreateContext(window);
|
||||
#endif
|
||||
|
||||
if (SDL_HasScreenKeyboardSupport(window)) {
|
||||
SDL_ShowScreenKeyboard(window);
|
||||
}
|
||||
|
||||
/* Watch keystrokes */
|
||||
done = 0;
|
||||
while (!done) {
|
||||
/* Check for events */
|
||||
SDL_WaitEvent(&event);
|
||||
switch (event.type) {
|
||||
case SDL_KEYDOWN:
|
||||
case SDL_KEYUP:
|
||||
PrintKey(&event.key.keysym, event.key.state, event.key.repeat);
|
||||
break;
|
||||
case SDL_TEXTINPUT:
|
||||
PrintText(event.text.text);
|
||||
break;
|
||||
case SDL_MOUSEBUTTONDOWN:
|
||||
/* Any button press quits the app... */
|
||||
case SDL_QUIT:
|
||||
done = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
SDL_Quit();
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
@ -1,92 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
|
||||
/* A simple test program framework */
|
||||
|
||||
#include "SDL.h"
|
||||
|
||||
#ifdef __NDS__
|
||||
#define DEFAULT_WINDOW_WIDTH 256
|
||||
#define DEFAULT_WINDOW_HEIGHT (2*192)
|
||||
#else
|
||||
#define DEFAULT_WINDOW_WIDTH 640
|
||||
#define DEFAULT_WINDOW_HEIGHT 480
|
||||
#endif
|
||||
|
||||
#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;
|
||||
const char *window_icon;
|
||||
Uint32 window_flags;
|
||||
int window_x;
|
||||
int window_y;
|
||||
int window_w;
|
||||
int window_h;
|
||||
int depth;
|
||||
int refresh_rate;
|
||||
int num_windows;
|
||||
SDL_Window **windows;
|
||||
|
||||
/* Renderer info */
|
||||
const char *renderdriver;
|
||||
Uint32 render_flags;
|
||||
SDL_bool skip_renderer;
|
||||
SDL_Renderer **renderers;
|
||||
|
||||
/* Audio info */
|
||||
const char *audiodriver;
|
||||
SDL_AudioSpec audiospec;
|
||||
|
||||
/* GL settings */
|
||||
int gl_red_size;
|
||||
int gl_green_size;
|
||||
int gl_blue_size;
|
||||
int gl_alpha_size;
|
||||
int gl_buffer_size;
|
||||
int gl_depth_size;
|
||||
int gl_stencil_size;
|
||||
int gl_double_buffer;
|
||||
int gl_accum_red_size;
|
||||
int gl_accum_green_size;
|
||||
int gl_accum_blue_size;
|
||||
int gl_accum_alpha_size;
|
||||
int gl_stereo;
|
||||
int gl_multisamplebuffers;
|
||||
int gl_multisamplesamples;
|
||||
int gl_retained_backing;
|
||||
int gl_accelerated;
|
||||
int gl_major_version;
|
||||
int gl_minor_version;
|
||||
} 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);
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
5057
src/SDL/test/configure
vendored
|
@ -1,164 +0,0 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_INIT(README)
|
||||
|
||||
dnl Detect the canonical build and host environments
|
||||
AC_CONFIG_AUX_DIRS($srcdir/../build-scripts)
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
dnl Check for tools
|
||||
|
||||
AC_PROG_CC
|
||||
|
||||
dnl Check for compiler environment
|
||||
|
||||
AC_C_CONST
|
||||
|
||||
dnl We only care about this for building testnative at the moment, so these
|
||||
dnl values shouldn't be considered absolute truth.
|
||||
dnl (BeOS, for example, sets none of these.)
|
||||
ISUNIX="false"
|
||||
ISWINDOWS="false"
|
||||
ISMACOSX="false"
|
||||
|
||||
dnl Figure out which math library to use
|
||||
case "$host" in
|
||||
*-*-cygwin* | *-*-mingw32*)
|
||||
ISWINDOWS="true"
|
||||
EXE=".exe"
|
||||
MATHLIB=""
|
||||
SYS_GL_LIBS="-lopengl32"
|
||||
;;
|
||||
*-*-beos* | *-*-haiku*)
|
||||
EXE=""
|
||||
MATHLIB=""
|
||||
SYS_GL_LIBS="-lGL"
|
||||
;;
|
||||
*-*-darwin* )
|
||||
ISMACOSX="true"
|
||||
EXE=""
|
||||
MATHLIB=""
|
||||
SYS_GL_LIBS="-Wl,-framework,OpenGL"
|
||||
;;
|
||||
*-*-aix*)
|
||||
ISUNIX="true"
|
||||
EXE=""
|
||||
if test x$ac_cv_prog_gcc = xyes; then
|
||||
CFLAGS="-mthreads"
|
||||
fi
|
||||
SYS_GL_LIBS=""
|
||||
;;
|
||||
*-*-mint*)
|
||||
EXE=""
|
||||
MATHLIB=""
|
||||
AC_PATH_PROG(OSMESA_CONFIG, osmesa-config, no)
|
||||
if test "x$OSMESA_CONFIG" = "xyes"; then
|
||||
OSMESA_CFLAGS=`$OSMESA_CONFIG --cflags`
|
||||
OSMESA_LIBS=`$OSMESA_CONFIG --libs`
|
||||
CFLAGS="$CFLAGS $OSMESA_CFLAGS"
|
||||
SYS_GL_LIBS="$OSMESA_LIBS"
|
||||
else
|
||||
SYS_GL_LIBS="-lOSMesa"
|
||||
fi
|
||||
;;
|
||||
*-*-qnx*)
|
||||
EXE=""
|
||||
MATHLIB=""
|
||||
SYS_GL_LIBS="-lGLES_CM"
|
||||
;;
|
||||
*)
|
||||
dnl Oh well, call it Unix...
|
||||
ISUNIX="true"
|
||||
EXE=""
|
||||
MATHLIB="-lm"
|
||||
SYS_GL_LIBS="-lGL"
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(EXE)
|
||||
AC_SUBST(MATHLIB)
|
||||
AC_SUBST(ISMACOSX)
|
||||
AC_SUBST(ISWINDOWS)
|
||||
AC_SUBST(ISUNIX)
|
||||
|
||||
dnl Check for SDL
|
||||
SDL_VERSION=2.0.0
|
||||
AM_PATH_SDL2($SDL_VERSION,
|
||||
:,
|
||||
AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!])
|
||||
)
|
||||
CFLAGS="$CFLAGS $SDL_CFLAGS"
|
||||
LIBS="$LIBS $SDL_LIBS"
|
||||
|
||||
dnl Check for X11 path, needed for OpenGL on some systems
|
||||
AC_PATH_X
|
||||
if test x$have_x = xyes; then
|
||||
if test x$ac_x_includes = xno || test x$ac_x_includes = x; then
|
||||
:
|
||||
else
|
||||
CFLAGS="$CFLAGS -I$ac_x_includes"
|
||||
fi
|
||||
if test x$ac_x_libraries = xno || test x$ac_x_libraries = x; then
|
||||
:
|
||||
else
|
||||
XPATH="-L$ac_x_libraries"
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl Check for OpenGL
|
||||
AC_MSG_CHECKING(for OpenGL support)
|
||||
have_opengl=no
|
||||
AC_TRY_COMPILE([
|
||||
#include "SDL_opengl.h"
|
||||
],[
|
||||
],[
|
||||
have_opengl=yes
|
||||
])
|
||||
AC_MSG_RESULT($have_opengl)
|
||||
|
||||
dnl Check for OpenGL ES
|
||||
AC_MSG_CHECKING(for OpenGL ES support)
|
||||
have_opengles=no
|
||||
AC_TRY_COMPILE([
|
||||
#if defined (__IPHONEOS__)
|
||||
#include <OpenGLES/ES1/gl.h>
|
||||
#else
|
||||
#include <GLES/gl.h>
|
||||
#endif /* __QNXNTO__ */
|
||||
],[
|
||||
],[
|
||||
have_opengles=yes
|
||||
])
|
||||
AC_MSG_RESULT($have_opengles)
|
||||
|
||||
GLLIB=""
|
||||
if test x$have_opengles = xyes; then
|
||||
CFLAGS="$CFLAGS -DHAVE_OPENGLES"
|
||||
GLLIB="$XPATH -lGLESv1_CM"
|
||||
elif test x$have_opengl = xyes; then
|
||||
CFLAGS="$CFLAGS -DHAVE_OPENGL"
|
||||
GLLIB="$XPATH $SYS_GL_LIBS"
|
||||
else
|
||||
GLLIB=""
|
||||
fi
|
||||
|
||||
AC_SUBST(GLLIB)
|
||||
|
||||
dnl Check for SDL_ttf
|
||||
AC_MSG_CHECKING(for SDL_ttf)
|
||||
have_SDL_ttf=no
|
||||
AC_TRY_COMPILE([
|
||||
#include "SDL_ttf.h"
|
||||
],[
|
||||
],[
|
||||
have_SDL_ttf=yes
|
||||
])
|
||||
AC_MSG_RESULT($have_SDL_ttf)
|
||||
|
||||
if test x$have_SDL_ttf = xyes; then
|
||||
CFLAGS="$CFLAGS -DHAVE_SDL_TTF"
|
||||
SDL_TTF_LIB="-lSDL_ttf"
|
||||
fi
|
||||
|
||||
AC_SUBST(SDL_TTF_LIB)
|
||||
|
||||
dnl Finally create all the generated files
|
||||
AC_OUTPUT([Makefile])
|
|
@ -1,110 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Build Universal binaries on Mac OS X, thanks Ryan!
|
||||
#
|
||||
# Usage: ./configure CC="sh gcc-fat.sh" && make && rm -rf ppc x86
|
||||
|
||||
# PowerPC compiler flags (10.2 runtime compatibility)
|
||||
GCC_COMPILE_PPC="gcc-3.3 -arch ppc \
|
||||
-DMAC_OS_X_VERSION_MIN_REQUIRED=1020 \
|
||||
-nostdinc \
|
||||
-F/Developer/SDKs/MacOSX10.2.8.sdk/System/Library/Frameworks \
|
||||
-I/Developer/SDKs/MacOSX10.2.8.sdk/usr/include/gcc/darwin/3.3 \
|
||||
-isystem /Developer/SDKs/MacOSX10.2.8.sdk/usr/include"
|
||||
|
||||
GCC_LINK_PPC="\
|
||||
-L/Developer/SDKs/MacOSX10.2.8.sdk/usr/lib/gcc/darwin/3.3 \
|
||||
-F/Developer/SDKs/MacOSX10.2.8.sdk/System/Library/Frameworks \
|
||||
-Wl,-syslibroot,/Developer/SDKs/MacOSX10.2.8.sdk"
|
||||
|
||||
# Intel compiler flags (10.4 runtime compatibility)
|
||||
GCC_COMPILE_X86="gcc-4.0 -arch i386 -mmacosx-version-min=10.4 \
|
||||
-DMAC_OS_X_VERSION_MIN_REQUIRED=1040 \
|
||||
-nostdinc \
|
||||
-F/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks \
|
||||
-I/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin8/4.0.1/include \
|
||||
-isystem /Developer/SDKs/MacOSX10.4u.sdk/usr/include"
|
||||
|
||||
GCC_LINK_X86="\
|
||||
-L/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin8/4.0.0 \
|
||||
-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
|
||||
|
||||
# Output both PowerPC and Intel object files
|
||||
args="$*"
|
||||
compile=yes
|
||||
link=yes
|
||||
while test x$1 != x; do
|
||||
case $1 in
|
||||
--version) exec gcc $1;;
|
||||
-v) exec gcc $1;;
|
||||
-V) exec gcc $1;;
|
||||
-print-prog-name=*) exec gcc $1;;
|
||||
-print-search-dirs) exec gcc $1;;
|
||||
-E) GCC_COMPILE_PPC="$GCC_COMPILE_PPC -E"
|
||||
GCC_COMPILE_X86="$GCC_COMPILE_X86 -E"
|
||||
compile=no; link=no;;
|
||||
-c) link=no;;
|
||||
-o) output=$2;;
|
||||
*.c|*.cc|*.cpp|*.S) source=$1;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
if test x$link = xyes; then
|
||||
GCC_COMPILE_PPC="$GCC_COMPILE_PPC $GCC_LINK_PPC"
|
||||
GCC_COMPILE_X86="$GCC_COMPILE_X86 $GCC_LINK_X86"
|
||||
fi
|
||||
if test x"$output" = x; then
|
||||
if test x$link = xyes; then
|
||||
output=a.out
|
||||
elif test x$compile = xyes; then
|
||||
output=`echo $source | sed -e 's|.*/||' -e 's|\(.*\)\.[^\.]*|\1|'`.o
|
||||
fi
|
||||
fi
|
||||
|
||||
if test x"$output" != x; then
|
||||
dir=ppc/`dirname $output`
|
||||
if test -d $dir; then
|
||||
:
|
||||
else
|
||||
mkdir -p $dir
|
||||
fi
|
||||
fi
|
||||
set -- $args
|
||||
while test x$1 != x; do
|
||||
if test -f "ppc/$1" && test "$1" != "$output"; then
|
||||
ppc_args="$ppc_args ppc/$1"
|
||||
else
|
||||
ppc_args="$ppc_args $1"
|
||||
fi
|
||||
shift
|
||||
done
|
||||
$GCC_COMPILE_PPC $ppc_args || exit $?
|
||||
if test x"$output" != x; then
|
||||
cp $output ppc/$output
|
||||
fi
|
||||
|
||||
if test x"$output" != x; then
|
||||
dir=x86/`dirname $output`
|
||||
if test -d $dir; then
|
||||
:
|
||||
else
|
||||
mkdir -p $dir
|
||||
fi
|
||||
fi
|
||||
set -- $args
|
||||
while test x$1 != x; do
|
||||
if test -f "x86/$1" && test "$1" != "$output"; then
|
||||
x86_args="$x86_args x86/$1"
|
||||
else
|
||||
x86_args="$x86_args $1"
|
||||
fi
|
||||
shift
|
||||
done
|
||||
$GCC_COMPILE_X86 $x86_args || exit $?
|
||||
if test x"$output" != x; then
|
||||
cp $output x86/$output
|
||||
fi
|
||||
|
||||
if test x"$output" != x; then
|
||||
lipo -create -o $output ppc/$output x86/$output
|
||||
fi
|
Before Width: | Height: | Size: 578 B |
|
@ -1,128 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
|
||||
/* Program to load a wave file and loop playing it using SDL sound */
|
||||
|
||||
/* loopwaves.c is much more robust in handling WAVE files --
|
||||
This is only for simple WAVEs
|
||||
*/
|
||||
#include "SDL_config.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#if HAVE_SIGNAL_H
|
||||
#include <signal.h>
|
||||
#endif
|
||||
|
||||
#include "SDL.h"
|
||||
#include "SDL_audio.h"
|
||||
|
||||
struct
|
||||
{
|
||||
SDL_AudioSpec spec;
|
||||
Uint8 *sound; /* Pointer to wave data */
|
||||
Uint32 soundlen; /* Length of wave data */
|
||||
int soundpos; /* Current play position */
|
||||
} wave;
|
||||
|
||||
|
||||
/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
|
||||
static void
|
||||
quit(int rc)
|
||||
{
|
||||
SDL_Quit();
|
||||
exit(rc);
|
||||
}
|
||||
|
||||
|
||||
void SDLCALL
|
||||
fillerup(void *unused, Uint8 * stream, int len)
|
||||
{
|
||||
Uint8 *waveptr;
|
||||
int waveleft;
|
||||
|
||||
/* Set up the pointers */
|
||||
waveptr = wave.sound + wave.soundpos;
|
||||
waveleft = wave.soundlen - wave.soundpos;
|
||||
|
||||
/* Go! */
|
||||
while (waveleft <= len) {
|
||||
SDL_memcpy(stream, waveptr, waveleft);
|
||||
stream += waveleft;
|
||||
len -= waveleft;
|
||||
waveptr = wave.sound;
|
||||
waveleft = wave.soundlen;
|
||||
wave.soundpos = 0;
|
||||
}
|
||||
SDL_memcpy(stream, waveptr, len);
|
||||
wave.soundpos += len;
|
||||
}
|
||||
|
||||
static int done = 0;
|
||||
void
|
||||
poked(int sig)
|
||||
{
|
||||
done = 1;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
/* Load the SDL library */
|
||||
if (SDL_Init(SDL_INIT_AUDIO) < 0) {
|
||||
fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
|
||||
return (1);
|
||||
}
|
||||
|
||||
if (argv[1] == NULL) {
|
||||
argv[1] = "sample.wav";
|
||||
}
|
||||
/* Load the wave file into memory */
|
||||
if (SDL_LoadWAV(argv[1], &wave.spec, &wave.sound, &wave.soundlen) == NULL) {
|
||||
fprintf(stderr, "Couldn't load %s: %s\n", argv[1], SDL_GetError());
|
||||
quit(1);
|
||||
}
|
||||
|
||||
wave.spec.callback = fillerup;
|
||||
#if HAVE_SIGNAL_H
|
||||
/* Set the signals */
|
||||
#ifdef SIGHUP
|
||||
signal(SIGHUP, poked);
|
||||
#endif
|
||||
signal(SIGINT, poked);
|
||||
#ifdef SIGQUIT
|
||||
signal(SIGQUIT, poked);
|
||||
#endif
|
||||
signal(SIGTERM, poked);
|
||||
#endif /* HAVE_SIGNAL_H */
|
||||
|
||||
/* Initialize fillerup() variables */
|
||||
if (SDL_OpenAudio(&wave.spec, NULL) < 0) {
|
||||
fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError());
|
||||
SDL_FreeWAV(wave.sound);
|
||||
quit(2);
|
||||
}
|
||||
|
||||
printf("Using audio driver: %s\n", SDL_GetCurrentAudioDriver());
|
||||
|
||||
/* Let the audio run */
|
||||
SDL_PauseAudio(0);
|
||||
while (!done && (SDL_GetAudioStatus() == SDL_AUDIO_PLAYING))
|
||||
SDL_Delay(1000);
|
||||
|
||||
/* Clean up on signal */
|
||||
SDL_CloseAudio();
|
||||
SDL_FreeWAV(wave.sound);
|
||||
SDL_Quit();
|
||||
return (0);
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
SUBDIRS:= $(shell ls | egrep -v '^(CVS)$$')
|
||||
|
||||
all:
|
||||
for i in $(SUBDIRS); do if test -e $$i/Makefile ; then $(MAKE) -C $$i || { exit 1;} fi; done;
|
||||
|
||||
clean:
|
||||
for i in $(SUBDIRS); do if test -e $$i/Makefile ; then $(MAKE) -C $$i clean || { exit 1;} fi; done;
|
|
@ -1,131 +0,0 @@
|
|||
#---------------------------------------------------------------------------------
|
||||
.SUFFIXES:
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
ifeq ($(strip $(DEVKITARM)),)
|
||||
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>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) $(PORTLIBS)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# 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) \
|
||||
-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
|
||||
#---------------------------------------------------------------------------------------
|
|
@ -1,89 +0,0 @@
|
|||
/*
|
||||
* Really basic sample for the NDS.
|
||||
*
|
||||
* Fills a rectangle increasingly smaller of random color every time a
|
||||
* button (a, b, x, y) is pressed.
|
||||
*
|
||||
* The behaviour whether SDL is compiled with HW support or not (see
|
||||
* USE_HW_RENDERER in Makefile.ds).
|
||||
*
|
||||
* In framebuffer mode, the old rectangles stay because the screen has
|
||||
* not been cleared.
|
||||
*
|
||||
* In accelerated mode, old the last rectangle is visible.
|
||||
*
|
||||
* No text is displayed.
|
||||
*/
|
||||
|
||||
#include <SDL/SDL.h>
|
||||
#if defined(NDS) || defined(__NDS__) || defined (__NDS)
|
||||
#include <nds.h>
|
||||
#include <fat.h>
|
||||
#else
|
||||
#define consoleDemoInit()
|
||||
#define fatInitDefault()
|
||||
#define RGB15(r,g,b) SDL_MapRGB(screen->format,((r)<<3),((g)<<3),((b)<<3))
|
||||
#endif
|
||||
|
||||
int main(void)
|
||||
{
|
||||
SDL_Window *window;
|
||||
SDL_Renderer *renderer;
|
||||
SDL_Joystick *stick;
|
||||
SDL_Event event;
|
||||
SDL_Rect rect = { 0, 0, 256, 192 };
|
||||
int i;
|
||||
|
||||
consoleDemoInit();
|
||||
puts("Hello world! Initializing FAT...");
|
||||
|
||||
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0) {
|
||||
puts("# error initializing SDL");
|
||||
puts(SDL_GetError());
|
||||
return 1;
|
||||
}
|
||||
puts("* initialized SDL");
|
||||
|
||||
if (SDL_CreateWindowAndRenderer(256, 192, SDL_RENDERER_ACCELERATED, &window, &renderer) < 0 &&
|
||||
SDL_CreateWindowAndRenderer(256, 192, SDL_RENDERER_SOFTWARE, &window, &renderer) < 0) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
stick = SDL_JoystickOpen(0);
|
||||
if (stick == NULL) {
|
||||
puts("# error opening joystick");
|
||||
puts(SDL_GetError());
|
||||
}
|
||||
puts("* opened joystick");
|
||||
|
||||
SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE);
|
||||
SDL_RenderFillRect(renderer, &rect);
|
||||
SDL_RenderPresent(renderer);
|
||||
|
||||
while (1)
|
||||
while (SDL_PollEvent(&event))
|
||||
switch (event.type) {
|
||||
case SDL_JOYBUTTONDOWN:
|
||||
|
||||
SDL_SetRenderDrawColor(renderer, rand(), rand(), rand(), SDL_ALPHA_OPAQUE);
|
||||
SDL_RenderFillRect(renderer, &rect);
|
||||
SDL_RenderPresent(renderer);
|
||||
if (rect.w > 8) {
|
||||
rect.x += 4;
|
||||
rect.y += 3;
|
||||
rect.w -= 8;
|
||||
rect.h -= 6;
|
||||
}
|
||||
/*
|
||||
printf("button %d pressed at %d ticks\n",
|
||||
event.jbutton.button, SDL_GetTicks());
|
||||
*/
|
||||
break;
|
||||
case SDL_QUIT:
|
||||
SDL_Quit();
|
||||
return 0;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
|
@ -1,147 +0,0 @@
|
|||
#---------------------------------------------------------------------------------
|
||||
.SUFFIXES:
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
ifeq ($(strip $(DEVKITARM)),)
|
||||
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>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
|
||||
# DATA is a list of directories containing binary files embedded using bin2o
|
||||
# GRAPHICS is a list of directories containing image files to be converted with grit
|
||||
#---------------------------------------------------------------------------------
|
||||
TARGET := $(shell basename $(CURDIR))
|
||||
BUILD := build
|
||||
SOURCES := source
|
||||
INCLUDES := include ../..
|
||||
DATA := data
|
||||
GRAPHICS := gfx
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# options for code generation
|
||||
#---------------------------------------------------------------------------------
|
||||
ARCH := -mthumb -mthumb-interwork -march=armv5te -mtune=arm946e-s
|
||||
|
||||
CFLAGS := -g -Wall -O2\
|
||||
-fomit-frame-pointer\
|
||||
-ffast-math \
|
||||
$(ARCH)
|
||||
|
||||
CFLAGS += $(INCLUDE) -DARM9 -D__NDS__
|
||||
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
|
||||
|
||||
ASFLAGS := -g $(ARCH)
|
||||
LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# any extra libraries we wish to link with the project (order is important)
|
||||
#---------------------------------------------------------------------------------
|
||||
LIBS := -lSDL -lfat -lnds9
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# list of directories containing libraries, this must be the top level containing
|
||||
# include and lib
|
||||
#---------------------------------------------------------------------------------
|
||||
LIBDIRS := $(LIBNDS) $(PORTLIBS)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# 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)) \
|
||||
$(foreach dir,$(GRAPHICS),$(CURDIR)/$(dir))
|
||||
|
||||
export DEPSDIR := $(CURDIR)/$(BUILD)
|
||||
|
||||
CFILES := ../../../common.c ../../../testscale.c
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# 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)) \
|
||||
$(PNGFILES:.png=.o) \
|
||||
$(BMPFILES:.bmp=.o) \
|
||||
$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
|
||||
|
||||
export INCLUDE := $(foreach dir,$(INCLUDES),-iquote $(CURDIR)/$(dir)) \
|
||||
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
|
||||
-I$(CURDIR)/$(BUILD) \
|
||||
-I$(PORTLIBS)/include/SDL
|
||||
|
||||
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
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
else
|
||||
|
||||
DEPENDS := $(OFILES:.o=.d)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# main targets
|
||||
#---------------------------------------------------------------------------------
|
||||
$(OUTPUT).nds : $(OUTPUT).elf
|
||||
$(OUTPUT).elf : $(OFILES)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.bin.o : %.bin
|
||||
#---------------------------------------------------------------------------------
|
||||
@echo $(notdir $<)
|
||||
$(bin2o)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# This rule creates assembly source files using grit
|
||||
# grit takes an image file and a .grit describing how the file is to be processed
|
||||
# add additional rules like this for each image extension
|
||||
# you use in the graphics folders
|
||||
#---------------------------------------------------------------------------------
|
||||
%.s %.h : %.bmp %.grit
|
||||
#---------------------------------------------------------------------------------
|
||||
grit $< -fts -o$*
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.s %.h : %.png %.grit
|
||||
#---------------------------------------------------------------------------------
|
||||
grit $< -fts -o$*
|
||||
|
||||
|
||||
-include $(DEPENDS)
|
||||
|
||||
#---------------------------------------------------------------------------------------
|
||||
endif
|
||||
#---------------------------------------------------------------------------------------
|
|
@ -1,152 +0,0 @@
|
|||
#---------------------------------------------------------------------------------
|
||||
.SUFFIXES:
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
ifeq ($(strip $(DEVKITARM)),)
|
||||
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>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
|
||||
# DATA is a list of directories containing binary files embedded using bin2o
|
||||
# GRAPHICS is a list of directories containing image files to be converted with grit
|
||||
#---------------------------------------------------------------------------------
|
||||
TARGET := $(shell basename $(CURDIR))
|
||||
BUILD := build
|
||||
SOURCES := source
|
||||
INCLUDES := include ../..
|
||||
DATA := data
|
||||
GRAPHICS := gfx
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# options for code generation
|
||||
#---------------------------------------------------------------------------------
|
||||
ARCH := -mthumb -mthumb-interwork -march=armv5te -mtune=arm946e-s
|
||||
|
||||
CFLAGS := -g -Wall -O2\
|
||||
-fomit-frame-pointer\
|
||||
-ffast-math \
|
||||
$(ARCH)
|
||||
|
||||
CFLAGS += $(INCLUDE) -DARM9 -D__NDS__
|
||||
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
|
||||
|
||||
ASFLAGS := -g $(ARCH)
|
||||
LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# any extra libraries we wish to link with the project (order is important)
|
||||
#---------------------------------------------------------------------------------
|
||||
LIBS := -lSDL -lfat -lnds9
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# list of directories containing libraries, this must be the top level containing
|
||||
# include and lib
|
||||
#---------------------------------------------------------------------------------
|
||||
LIBDIRS := $(LIBNDS) $(PORTLIBS)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# 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)) \
|
||||
$(foreach dir,$(GRAPHICS),$(CURDIR)/$(dir))
|
||||
|
||||
export DEPSDIR := $(CURDIR)/$(BUILD)
|
||||
|
||||
CFILES := ../../../common.c ../../../testsprite2.c
|
||||
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
|
||||
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
|
||||
PNGFILES := $(foreach dir,$(GRAPHICS),$(notdir $(wildcard $(dir)/*.png)))
|
||||
BMPFILES := $(foreach dir,$(GRAPHICS),$(notdir $(wildcard $(dir)/*.bmp)))
|
||||
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)) \
|
||||
$(PNGFILES:.png=.o) \
|
||||
$(BMPFILES:.bmp=.o) \
|
||||
$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
|
||||
|
||||
export INCLUDE := $(foreach dir,$(INCLUDES),-iquote $(CURDIR)/$(dir)) \
|
||||
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
|
||||
-I$(CURDIR)/$(BUILD) \
|
||||
-I$(PORTLIBS)/include/SDL
|
||||
|
||||
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
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
else
|
||||
|
||||
DEPENDS := $(OFILES:.o=.d)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# main targets
|
||||
#---------------------------------------------------------------------------------
|
||||
$(OUTPUT).nds : $(OUTPUT).elf
|
||||
$(OUTPUT).elf : $(OFILES)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.bin.o : %.bin
|
||||
#---------------------------------------------------------------------------------
|
||||
@echo $(notdir $<)
|
||||
$(bin2o)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# This rule creates assembly source files using grit
|
||||
# grit takes an image file and a .grit describing how the file is to be processed
|
||||
# add additional rules like this for each image extension
|
||||
# you use in the graphics folders
|
||||
#---------------------------------------------------------------------------------
|
||||
%.s %.h : %.bmp %.grit
|
||||
#---------------------------------------------------------------------------------
|
||||
grit $< -fts -o$*
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.s %.h : %.png %.grit
|
||||
#---------------------------------------------------------------------------------
|
||||
grit $< -fts -o$*
|
||||
|
||||
|
||||
-include $(DEPENDS)
|
||||
|
||||
#---------------------------------------------------------------------------------------
|
||||
endif
|
||||
#---------------------------------------------------------------------------------------
|
|
@ -1,147 +0,0 @@
|
|||
#---------------------------------------------------------------------------------
|
||||
.SUFFIXES:
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
ifeq ($(strip $(DEVKITARM)),)
|
||||
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>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
|
||||
# DATA is a list of directories containing binary files embedded using bin2o
|
||||
# GRAPHICS is a list of directories containing image files to be converted with grit
|
||||
#---------------------------------------------------------------------------------
|
||||
TARGET := $(shell basename $(CURDIR))
|
||||
BUILD := build
|
||||
SOURCES := source
|
||||
INCLUDES := include
|
||||
DATA := data
|
||||
GRAPHICS := gfx
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# options for code generation
|
||||
#---------------------------------------------------------------------------------
|
||||
ARCH := -mthumb -mthumb-interwork -march=armv5te -mtune=arm946e-s
|
||||
|
||||
CFLAGS := -g -Wall -O2\
|
||||
-fomit-frame-pointer\
|
||||
-ffast-math \
|
||||
$(ARCH)
|
||||
|
||||
CFLAGS += $(INCLUDE) -DARM9 -D__NDS__
|
||||
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
|
||||
|
||||
ASFLAGS := -g $(ARCH)
|
||||
LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# any extra libraries we wish to link with the project (order is important)
|
||||
#---------------------------------------------------------------------------------
|
||||
LIBS := -lSDL -lfat -lnds9
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# list of directories containing libraries, this must be the top level containing
|
||||
# include and lib
|
||||
#---------------------------------------------------------------------------------
|
||||
LIBDIRS := $(LIBNDS) $(PORTLIBS)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# 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)) \
|
||||
$(foreach dir,$(GRAPHICS),$(CURDIR)/$(dir))
|
||||
|
||||
export DEPSDIR := $(CURDIR)/$(BUILD)
|
||||
|
||||
CFILES := ../../../testspriteminimal.c
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# 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)) \
|
||||
$(PNGFILES:.png=.o) \
|
||||
$(BMPFILES:.bmp=.o) \
|
||||
$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
|
||||
|
||||
export INCLUDE := $(foreach dir,$(INCLUDES),-iquote $(CURDIR)/$(dir)) \
|
||||
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
|
||||
-I$(CURDIR)/$(BUILD) \
|
||||
-I$(PORTLIBS)/include/SDL
|
||||
|
||||
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
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
else
|
||||
|
||||
DEPENDS := $(OFILES:.o=.d)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# main targets
|
||||
#---------------------------------------------------------------------------------
|
||||
$(OUTPUT).nds : $(OUTPUT).elf
|
||||
$(OUTPUT).elf : $(OFILES)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.bin.o : %.bin
|
||||
#---------------------------------------------------------------------------------
|
||||
@echo $(notdir $<)
|
||||
$(bin2o)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# This rule creates assembly source files using grit
|
||||
# grit takes an image file and a .grit describing how the file is to be processed
|
||||
# add additional rules like this for each image extension
|
||||
# you use in the graphics folders
|
||||
#---------------------------------------------------------------------------------
|
||||
%.s %.h : %.bmp %.grit
|
||||
#---------------------------------------------------------------------------------
|
||||
grit $< -fts -o$*
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.s %.h : %.png %.grit
|
||||
#---------------------------------------------------------------------------------
|
||||
grit $< -fts -o$*
|
||||
|
||||
|
||||
-include $(DEPENDS)
|
||||
|
||||
#---------------------------------------------------------------------------------------
|
||||
endif
|
||||
#---------------------------------------------------------------------------------------
|
|
@ -1,14 +0,0 @@
|
|||
#define picture_width 32
|
||||
#define picture_height 32
|
||||
static char picture_bits[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x80, 0x01, 0x18,
|
||||
0x64, 0x6f, 0xf6, 0x26, 0x0a, 0x00, 0x00, 0x50, 0xf2, 0xff, 0xff, 0x4f,
|
||||
0x14, 0x04, 0x00, 0x28, 0x14, 0x0e, 0x00, 0x28, 0x10, 0x32, 0x00, 0x08,
|
||||
0x94, 0x03, 0x00, 0x08, 0xf4, 0x04, 0x00, 0x08, 0xb0, 0x08, 0x00, 0x08,
|
||||
0x34, 0x01, 0x00, 0x28, 0x34, 0x01, 0x00, 0x28, 0x12, 0x00, 0x40, 0x48,
|
||||
0x12, 0x20, 0xa6, 0x48, 0x14, 0x50, 0x11, 0x29, 0x14, 0x50, 0x48, 0x2a,
|
||||
0x10, 0x27, 0xac, 0x0e, 0xd4, 0x71, 0xe8, 0x0a, 0x74, 0x20, 0xa8, 0x0a,
|
||||
0x14, 0x20, 0x00, 0x08, 0x10, 0x50, 0x00, 0x08, 0x14, 0x00, 0x00, 0x28,
|
||||
0x14, 0x00, 0x00, 0x28, 0xf2, 0xff, 0xff, 0x4f, 0x0a, 0x00, 0x00, 0x50,
|
||||
0x64, 0x6f, 0xf6, 0x26, 0x18, 0x80, 0x01, 0x18, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 401 KiB |