debian/0000755000000000000000000000000011755150675007202 5ustar debian/amoeba.10000644000000000000000000000504311370370313010474 0ustar .TH AMOEBA 1 .SH NAME amoeba \- Fast-paced, polished OpenGL demonstration by Excess .SH SYNOPSIS .B amoeba .I "[options]" .SH DESCRIPTION .B amoeba is a fast-paced, cross-platform OpenGL demonstration by Excess, showing effects using your 3D card in perfect sync with Ogg Vorbis music. It features a full XML-scripted GPLed demo engine, several object manipulations, lots of graphics and a pumping soundtrack by Satcom101. Amoeba won first price in the demo competition at Underscore 02, a sceneparty held in J\[:o]nk\[:o]ping, Sweden (http://www.underscore.sh/) .SH OPTIONS If you start .B amoeba without any command line options, it will try to launch a GTK+-based configuration interface, if GTK+ is installed on your system. If not, it will start using default parameters (640x480, 32bpp, fullscreen with sound). All options start with a single dash (`\-'). A summary of options are included below. Note that if conflicting options are specified, the last one will take precedence. .TP .B \-fullscreen Run in full screen (default). .TP .B \-windowed Run in a window. Note that resizing the problem may cause problems, and is not fully supported. .TP .B \-640x480, \-800x600, \-1024x768, \-1280x960, \-1280x1024, \-1400x1050, \-1600x1200 Run in the specified resolution (if using full-screen mode), or open a window of the specified size (if using windowed mode). The default is 640x480. .TP .B \-16, \-32 Run in the specified bit depth. 32bpp looks better and is usually faster on modern cards, but not all cards can handle 16bpp. Note that 16bpp may cause problems on many cards that do not support stencil visuals with 16bpp. The default is 32bpp. .TP .B \-z16, \-z24, \-z32 Run with a Z-buffer of the specified bit depth. Higher bit depths usually results in slightly better quality, but many cards only support 16bpp, and there might be a performance penalty. The default is 16bpp. .TP .B \-nosound Do not play sound. The default is to play sound, unless no sound card can be detected. .SH "SEE ALSO" /usr/share/doc/amoeba/readme.txt .SH AUTHOR Amoeba was made by the group Excess. This manual page was made by Steinar H. Gunderson (aka Sesse/Excess) for the Debian GNU/Linux project (but may be used by others). Individual credits: .TP .B gloom design, music, graphics .TP .B Sesse code .TP .B neuromancer graphics .TP .B kusma graphics, code .TP .B Tick 3D modelling .TP .B Satcom101 music debian/rules0000755000000000000000000000141111370372340010243 0ustar #!/usr/bin/make -f # Sample debian/rules that uses debhelper. # GNU copyright 1997 to 1999 by Joey Hess. # Uncomment this to turn on verbose mode. # export DH_VERBOSE=1 build: build-stamp build-stamp: dh_testdir $(MAKE) touch build-stamp clean: dh_testdir dh_testroot rm -f build-stamp [ ! -f Makefile ] || $(MAKE) clean dh_clean install: build dh_testdir dh_testroot dh_clean -k dh_installdirs $(MAKE) install DESTDIR=$(CURDIR)/debian/amoeba binary-arch: build install dh_testdir dh_testroot dh_installdocs dh_installexamples dh_installman dh_installchangelogs dh_strip dh_compress dh_fixperms dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary-indep: binary: binary-arch .PHONY: build clean binary-arch binary install debian/source/0000755000000000000000000000000011370372211010463 5ustar debian/source/format0000644000000000000000000000001411370372211011671 0ustar 3.0 (quilt) debian/dirs0000644000000000000000000000002111370370313010041 0ustar usr/bin usr/sbin debian/stamp-patched0000644000000000000000000000000011370371562011636 0ustar debian/manpages0000644000000000000000000000002011370370313010672 0ustar debian/amoeba.1 debian/copyright0000644000000000000000000000114011370374263011123 0ustar This package was retrieved from http://www.scene.org/file.php?file=/parties/2002/underscore02/demo/e_amoeba-final.zip and was repackaged to .tar.gz. Everything but the src/ tree and readme.txt was removed, since demo.dat in particular was not free. You are free to distribute this software under the terms of the GNU General Public License, version 2. On Debian systems, the complete text of the GNU General Public License can be found in the file `/usr/share/common-licenses/GPL-2'. Note that only the demo engine is under the GPL -- the demo data (which resides in the package amoeba-data) is not. debian/docs0000644000000000000000000000004311370370313010034 0ustar readme.txt gpldemo.txt file_id.diz debian/compat0000644000000000000000000000000211370370313010362 0ustar 5 debian/control0000644000000000000000000000201211663255656010603 0ustar Source: amoeba Section: contrib/x11 Priority: optional Maintainer: Steinar H. Gunderson Build-Depends: debhelper (>> 5.0.0), libpng-dev, zlib1g-dev, libjpeg-dev, libexpat1-dev, libvorbis-dev, libogg-dev, libfreetype6-dev, libx11-dev, libxext-dev, libxxf86vm-dev, libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev, libgtk2.0-dev Standards-Version: 3.9.1 Package: amoeba Architecture: any Depends: ${shlibs:Depends}, amoeba-data Recommends: libgtk2.0-0 Conflicts: mesag3 Description: fast-paced, polished OpenGL demonstration by Excess Amoeba is a fast-paced, cross-platform OpenGL demonstration by Excess, showing realtime graphics effects in perfect sync with music. It features a full customizable demo engine, several visual effects, lots of graphics and a pumping soundtrack. . Amoeba won first prize in the demo competition at Underscore 02, a demoscene party held in Gothenburg, Sweden. . Note that this is only the demo engine -- to watch the demo itself, you will also need the package amoeba-data. debian/patches/0000755000000000000000000000000011755150542010622 5ustar debian/patches/01-debian-policy-cflags.diff0000644000000000000000000000100111370370313015627 0ustar Index: amoeba-1.1/Makefile =================================================================== --- amoeba-1.1.orig/Makefile +++ amoeba-1.1/Makefile @@ -1,7 +1,7 @@ include config.mak -CFLAGS=-Wall -O6 -march=pentiumpro -ffast-math -I. -fstrict-aliasing -CXXFLAGS=-Wall -O6 -march=pentiumpro -ffast-math -I. -fstrict-aliasing -fexceptions +CFLAGS=-Wall -O2 -ffast-math -fstrict-aliasing -g +CXXFLAGS=-Wall -O2 -ffast-math -fstrict-aliasing -fexceptions -g CPPFLAGS=-I. #CFLAGS=-Wall -I. #CXXFLAGS=-Wall -I. debian/patches/16-pakfile-debian-location.diff0000644000000000000000000000065111370370313016334 0ustar Index: amoeba-1.1/packer/pakfile.cpp =================================================================== --- amoeba-1.1.orig/packer/pakfile.cpp +++ amoeba-1.1/packer/pakfile.cpp @@ -39,7 +39,7 @@ PakFile::PakFile(char *filename) unsigned int i; #if __linux__ - int fd = open("demo.dat", O_RDONLY); + int fd = open("/usr/share/amoeba/demo.dat", O_RDONLY); #else int fd = open("demo.dat", O_RDONLY | O_BINARY); #endif debian/patches/21-dont-link-uselessly.diff0000644000000000000000000000211211370374605015616 0ustar Index: amoeba-1.1/Makefile =================================================================== --- amoeba-1.1.orig/Makefile +++ amoeba-1.1/Makefile @@ -72,7 +72,7 @@ clean: ifeq ($(DESTPLATFORM),linux) $(EXE): $(SUBLIBS) exception.o test-demolib.o # $(CXX) $(LDFLAGS) -o test-demolib test-demolib.o exception.o $(SUBLIBS) -lm -lGL -lGLU /usr/lib/libexpat.a /usr/local/lib/tinylib/libpng.a /usr/local/lib/tinylib/libz.a -L/usr/X11R6/lib/ -lXxf86vm -lX11 -lXext /usr/local/lib/tinylib/libjpeg.a /usr/local/lib/tinylib/libfreetype.a /usr/local/lib/tinylib/libvorbisfile.a /usr/local/lib/tinylib/libvorbis.a /usr/local/lib/tinylib/libogg.a $(EXTRALIBS) - $(CXX) $(LDFLAGS) -o $(EXE) test-demolib.o exception.o $(SUBLIBS) -lm -lGL -lGLU -lexpat -lpng -lz -L/usr/X11R6/lib/ -lXxf86vm -lX11 -lXext -ljpeg `freetype-config --libs` -lvorbisfile -lvorbis -logg $(EXTRALIBS) + $(CXX) $(LDFLAGS) -o $(EXE) test-demolib.o exception.o $(SUBLIBS) -lm -lGL -lGLU -lexpat -lpng -lz -L/usr/X11R6/lib/ -lXxf86vm -lX11 -ljpeg `freetype-config --libs` -lvorbisfile $(EXTRALIBS) else %.o: %.rc $(WINDRES) $< $@ debian/patches/15-fix-pakfile-endianness.diff0000644000000000000000000000233311370370313016215 0ustar Index: amoeba-1.1/packer/pakfile.cpp =================================================================== --- amoeba-1.1.orig/packer/pakfile.cpp +++ amoeba-1.1/packer/pakfile.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include "demolib_prefs.h" #include "file.h" @@ -23,7 +24,7 @@ #if DEMOLIB_DATA_PAKFILE -#ifndef __i386__ +#if __BYTE_ORDER != __LITTLE_ENDIAN #define fixendianl(x) \ ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \ (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24)) Index: amoeba-1.1/packer/zfile.cpp =================================================================== --- amoeba-1.1.orig/packer/zfile.cpp +++ amoeba-1.1/packer/zfile.cpp @@ -14,10 +14,11 @@ ZFile::ZFile(File *basefile) { z_stream zs; - char *file_data = basefile->get_data(); + unsigned char *file_data = (unsigned char *)(basefile->get_data()); /* read the file length first */ - this->length = *((unsigned int *)file_data); + this->length = file_data[0] | ((int)(file_data[1]) << 8) | + ((int)(file_data[2]) << 16) | ((int)(file_data[3]) << 24); this->data = (char *)(malloc(this->length)); if (this->data == NULL) { debian/patches/series0000644000000000000000000000131211754234465012042 0ustar 01-debian-policy-cflags.diff 02-executable-filename.diff 03-shell-in-makefile.diff 04-install-target.diff 05-nudge-texcoords.diff 06-proper-curve-cleaning.diff 07-drop-compiled-vertex-arrays.diff 08-single-point-spline.diff 09-set-c-locale.diff 10-xopendisplay.diff 11-friendly-error-messages.diff 12-i386-asm.diff 13-libpng-64-bit-fixes.diff 14-properly-delete-vfcache.diff 15-fix-pakfile-endianness.diff 16-pakfile-debian-location.diff 17-fix-audio-endianness.diff 18-declare-glxgetprocaddressarb.diff 19-update-config-interface-to-gtk2.diff 20-fix-invalid-conversion.diff 21-dont-link-uselessly.diff 22-tighten-up-non-const-chars.diff 23-link-with-libdl.diff 24-build-on-kfreebsd.diff 25-libpng-1.5-fixes.diff debian/patches/18-declare-glxgetprocaddressarb.diff0000644000000000000000000000056611370370313017510 0ustar Index: amoeba-1.1/opengl/extensions.cpp =================================================================== --- amoeba-1.1.orig/opengl/extensions.cpp +++ amoeba-1.1/opengl/extensions.cpp @@ -14,6 +14,9 @@ #if __linux__ #include +extern "C" { + void (*glXGetProcAddressARB(const GLubyte *procName))(); +} #endif bool GLExtensions::has_ext(const char *ext) debian/patches/06-proper-curve-cleaning.diff0000644000000000000000000000340511370370313016101 0ustar Index: amoeba-1.1/main/event.cpp =================================================================== --- amoeba-1.1.orig/main/event.cpp +++ amoeba-1.1/main/event.cpp @@ -49,7 +49,7 @@ Event::Event(MainLoop *ml, const char *t throw new FatalException(elem, "No curve type specified."); } - this->curves = new Hashtable(); + this->curves = new Hashtable(true); /* now create a set of attribute curves */ char *cn = strdup(curvenames); Index: amoeba-1.1/util/hashtable.h =================================================================== --- amoeba-1.1.orig/util/hashtable.h +++ amoeba-1.1/util/hashtable.h @@ -21,9 +21,10 @@ protected: struct linked_list *next; }; linked_list *buckets[NUM_BUCKETS]; + bool curves; public: - Hashtable(); + Hashtable(bool curves = false); Hashtable(Hashtable *h); ~Hashtable(); Index: amoeba-1.1/util/hashtable.cpp =================================================================== --- amoeba-1.1.orig/util/hashtable.cpp +++ amoeba-1.1/util/hashtable.cpp @@ -37,11 +37,12 @@ unsigned int Hashtable::string_hash(cons return hash; } -Hashtable::Hashtable() +Hashtable::Hashtable(bool curves) { for (int i = 0; i < NUM_BUCKETS; i++) { this->buckets[i] = NULL; } + this->curves = curves; } /* all the linked lists will be in reverse order ;-) */ @@ -63,6 +64,7 @@ Hashtable::Hashtable(Hashtable *h) ptr = ptr->next; } } + this->curves = h->curves; } Hashtable::~Hashtable() @@ -206,7 +208,11 @@ void Hashtable::destroy_values() for (int i = 0; i < NUM_BUCKETS; i++) { struct linked_list *ptr = buckets[i]; while (ptr) { - free(ptr->obj); + // bit of an ugly hack + if (curves) + delete (Curve *)(ptr->obj); + else + free(ptr->obj); ptr->obj = NULL; ptr = ptr->next; } debian/patches/23-link-with-libdl.diff0000644000000000000000000000207111530334305014660 0ustar Index: amoeba-1.1/Makefile =================================================================== --- amoeba-1.1.orig/Makefile +++ amoeba-1.1/Makefile @@ -72,7 +72,7 @@ clean: ifeq ($(DESTPLATFORM),linux) $(EXE): $(SUBLIBS) exception.o test-demolib.o # $(CXX) $(LDFLAGS) -o test-demolib test-demolib.o exception.o $(SUBLIBS) -lm -lGL -lGLU /usr/lib/libexpat.a /usr/local/lib/tinylib/libpng.a /usr/local/lib/tinylib/libz.a -L/usr/X11R6/lib/ -lXxf86vm -lX11 -lXext /usr/local/lib/tinylib/libjpeg.a /usr/local/lib/tinylib/libfreetype.a /usr/local/lib/tinylib/libvorbisfile.a /usr/local/lib/tinylib/libvorbis.a /usr/local/lib/tinylib/libogg.a $(EXTRALIBS) - $(CXX) $(LDFLAGS) -o $(EXE) test-demolib.o exception.o $(SUBLIBS) -lm -lGL -lGLU -lexpat -lpng -lz -L/usr/X11R6/lib/ -lXxf86vm -lX11 -ljpeg `freetype-config --libs` -lvorbisfile $(EXTRALIBS) + $(CXX) $(LDFLAGS) -o $(EXE) test-demolib.o exception.o $(SUBLIBS) -lm -lGL -lGLU -lexpat -lpng -lz -L/usr/X11R6/lib/ -lXxf86vm -lX11 -ljpeg `freetype-config --libs` -lvorbisfile -ldl $(EXTRALIBS) else %.o: %.rc $(WINDRES) $< $@ debian/patches/02-executable-filename.diff0000644000000000000000000000266111370370313015570 0ustar Index: amoeba-1.1/Makefile =================================================================== --- amoeba-1.1.orig/Makefile +++ amoeba-1.1/Makefile @@ -55,7 +55,7 @@ override CPPFLAGS += $(patsubst %,-I%,$( .PHONY: clean ifeq ($(DESTPLATFORM),linux) -EXE=test-demolib +EXE=amoeba else EXE=test-demolib.exe endif @@ -67,12 +67,12 @@ include $(patsubst %,%/Makefile,$(SUBDIR include Makefile.dep clean: - rm -f test-demolib $(OBJS) $(SUBLIBS) $(DEPS) + rm -f $(EXE) $(OBJS) $(SUBLIBS) $(DEPS) ifeq ($(DESTPLATFORM),linux) $(EXE): $(SUBLIBS) exception.o test-demolib.o # $(CXX) $(LDFLAGS) -o test-demolib test-demolib.o exception.o $(SUBLIBS) -lm -lGL -lGLU /usr/lib/libexpat.a /usr/local/lib/tinylib/libpng.a /usr/local/lib/tinylib/libz.a -L/usr/X11R6/lib/ -lXxf86vm -lX11 -lXext /usr/local/lib/tinylib/libjpeg.a /usr/local/lib/tinylib/libfreetype.a /usr/local/lib/tinylib/libvorbisfile.a /usr/local/lib/tinylib/libvorbis.a /usr/local/lib/tinylib/libogg.a $(EXTRALIBS) - $(CXX) $(LDFLAGS) -o test-demolib test-demolib.o exception.o $(SUBLIBS) -lm -lGL -lGLU -lexpat -lpng -lz -L/usr/X11R6/lib/ -lXxf86vm -lX11 -lXext -ljpeg `freetype-config --libs` -lvorbisfile -lvorbis -logg $(EXTRALIBS) + $(CXX) $(LDFLAGS) -o $(EXE) test-demolib.o exception.o $(SUBLIBS) -lm -lGL -lGLU -lexpat -lpng -lz -L/usr/X11R6/lib/ -lXxf86vm -lX11 -lXext -ljpeg `freetype-config --libs` -lvorbisfile -lvorbis -logg $(EXTRALIBS) else %.o: %.rc $(WINDRES) $< $@ debian/patches/04-install-target.diff0000644000000000000000000000102111370370313014612 0ustar Index: amoeba-1.1/Makefile =================================================================== --- amoeba-1.1.orig/Makefile +++ amoeba-1.1/Makefile @@ -80,3 +80,6 @@ else $(EXE): $(SUBLIBS) exception.o test-demolib.o main/win32-config/dialog.o $(CXX) $(CXXFLAGS) -static -o test-demolib.exe test-demolib.o exception.o main/win32-config/dialog.o $(SUBLIBS) -lm -lpng -ljpeg -lz -lopengl32 -lglu32 -lgdi32 -lexpat -lvorbisfile -lvorbis -logg -lfreetype endif + +install: $(EXE) + /usr/bin/install -s $(EXE) $(DESTDIR)/usr/bin/ debian/patches/20-fix-invalid-conversion.diff0000644000000000000000000000112211370371530016257 0ustar Index: amoeba-1.1/image/load_image.cpp =================================================================== --- amoeba-1.1.orig/image/load_image.cpp +++ amoeba-1.1/image/load_image.cpp @@ -24,10 +24,9 @@ Image *load_image(const char * const fil * a syntax of "image:alpha" indicates that the image data and the alpha data * is in separate files */ - char *ptr = strchr(filename, ':'); - if (ptr != NULL) { + if (strchr(filename, ':') != NULL) { char *fn = strdup(filename); - ptr = strchr(fn, ':'); + char *ptr = strchr(fn, ':'); ptr[0] = 0; Image *rgb = load_image(fn); debian/patches/12-i386-asm.diff0000644000000000000000000000226011370370313013134 0ustar Index: amoeba-1.1/main/heightmaptunnelhandler.cpp =================================================================== --- amoeba-1.1.orig/main/heightmaptunnelhandler.cpp +++ amoeba-1.1/main/heightmaptunnelhandler.cpp @@ -105,7 +105,7 @@ void HeightmapTunnelHandler::draw_scene( for (int y = 0; y < ylod; y++, yf += yscale, yfs += yscale2) { /* copied more or less directly from interferenceheightmaphandler.cpp :-) */ const float dist = hypot(xwrap, yf); -#if __GNUC__ +#if __GNUC__ && defined(__i386__) float sin_v, cos_v; __asm__("fsincos" : "=t" (cos_v), "=u" (sin_v) : "0" (dist * freqcirc + progress * speedcirc)); Index: amoeba-1.1/main/interferenceheightmaphandler.cpp =================================================================== --- amoeba-1.1.orig/main/interferenceheightmaphandler.cpp +++ amoeba-1.1/main/interferenceheightmaphandler.cpp @@ -98,7 +98,7 @@ void InterferenceHeightmapHandler::draw_ * it's for the sake of speed :-) */ const float dist = hypot(xf, yf); -#if __GNUC__ +#if __GNUC__ && defined(__i386__) float sin_v, cos_v; __asm__("fsincos" : "=t" (cos_v), "=u" (sin_v) : "0" (dist * freqcirc + progress * speedcirc)); debian/patches/10-xopendisplay.diff0000644000000000000000000000207111370373441014407 0ustar Index: amoeba-1.1/main/linux-config/linux-config.cpp =================================================================== --- amoeba-1.1.orig/main/linux-config/linux-config.cpp +++ amoeba-1.1/main/linux-config/linux-config.cpp @@ -127,7 +127,9 @@ void LinuxConfig::show(int *argc, char * * (code duplication from glwindow.cpp, not good) */ XF86VidModeModeInfo **modes; - Display *dpy = XOpenDisplay(0); + Display *dpy = XOpenDisplay(NULL); + if (dpy == NULL) + throw new FatalException("Can't connect to X server!"); int screen = DefaultScreen(dpy); (*_gtk_set_locale) (); Index: amoeba-1.1/opengl/glwindow.cpp =================================================================== --- amoeba-1.1.orig/opengl/glwindow.cpp +++ amoeba-1.1/opengl/glwindow.cpp @@ -145,7 +145,9 @@ GLWindow::GLWindow(char *title, int widt bestMode = 0; /* get a connection */ - this->dpy = XOpenDisplay(0); + this->dpy = XOpenDisplay(NULL); + if (dpy == NULL) + throw new FatalException("Can't connect to X server!"); this->screen = DefaultScreen(this->dpy); if (fullscreen) { debian/patches/08-single-point-spline.diff0000644000000000000000000000206611370370313015576 0ustar Index: amoeba-1.1/main/autosplinecurve.cpp =================================================================== --- amoeba-1.1.orig/main/autosplinecurve.cpp +++ amoeba-1.1/main/autosplinecurve.cpp @@ -54,17 +54,21 @@ void AutoSplineCurve::end_curvepoints(fl } } - const int e = this->num_points - 1; + if (this->num_points == 1) { + deriv[0] = 0.0f; + } else { + const int e = this->num_points - 1; + + /* now find the derivatives */ + for (i = 1; i < e; i++) { + const int p = i - 1, n = i + 1; + deriv[i] = (y[n] - y[p]) / (x[n] - x[p]); + } - /* now find the derivatives */ - for (i = 1; i < e; i++) { - const int p = i - 1, n = i + 1; - deriv[i] = (y[n] - y[p]) / (x[n] - x[p]); + /* the edges are a bit special */ + deriv[0] = deriv[e] = + ((y[1] - y[e-1]) - (y[0] - y[e])) / ((x[e] - x[e-1]) + (x[1] - x[0])); } - - /* the edges are a bit special */ - deriv[0] = deriv[e] = - ((y[1] - y[e-1]) - (y[0] - y[e])) / ((x[e] - x[e-1]) + (x[1] - x[0])); } float AutoSplineCurve::get_value(float x) { if (this->num_points == 1) return this->y[0]; debian/patches/17-fix-audio-endianness.diff0000644000000000000000000000322311370370313015704 0ustar Index: amoeba-1.1/audio/linux_oss.cpp =================================================================== --- amoeba-1.1.orig/audio/linux_oss.cpp +++ amoeba-1.1/audio/linux_oss.cpp @@ -17,14 +17,15 @@ #include #include #include +#include OSSAudioDriver::OSSAudioDriver(AudioProvider *prv, float jump, MainLoop *lp) { this->prov = prv; - this->oss_fd = open("/dev/sound/dsp", O_RDWR); + this->oss_fd = open("/dev/sound/dsp", O_WRONLY); if (this->oss_fd == -1) { - this->oss_fd = open("/dev/dsp", O_RDWR); + this->oss_fd = open("/dev/dsp", O_WRONLY); if (this->oss_fd == -1) throw new FatalException("/dev/dsp", strerror(errno)); } @@ -32,7 +33,7 @@ OSSAudioDriver::OSSAudioDriver(AudioProv this->set_ioctl(SNDCTL_DSP_RESET, 1); this->set_ioctl(SOUND_PCM_WRITE_RATE, 44100); this->set_ioctl(SOUND_PCM_WRITE_CHANNELS, 2); - this->set_ioctl(SNDCTL_DSP_SETFMT, AFMT_S16_LE); + this->set_ioctl(SNDCTL_DSP_SETFMT, AFMT_S16_NE); this->set_ioctl(SNDCTL_DSP_NONBLOCK, 1); this->set_ioctl(SNDCTL_DSP_SETFRAGMENT, 0x7fff000c); Index: amoeba-1.1/audio/vorbis.cpp =================================================================== --- amoeba-1.1.orig/audio/vorbis.cpp +++ amoeba-1.1/audio/vorbis.cpp @@ -74,7 +74,11 @@ OggVorbisAudioProvider::~OggVorbisAudioP int OggVorbisAudioProvider::fill_buf(char *buf, int bytes) { int junk, ret; +#if __BYTE_ORDER == __LITTLE_ENDIAN ret = ov_read(this->vf, buf, bytes, 0, 2, 1, &junk); +#else + ret = ov_read(this->vf, buf, bytes, 1, 2, 1, &junk); +#endif if (ret < 0) throw new FatalException("Ogg Vorbis stream error!"); debian/patches/25-libpng-1.5-fixes.diff0000644000000000000000000000344111754235706014577 0ustar Two fixes for compatibility with libpng 1.5 and higher: - Use png_jmpbuf(png_ptr) instead of png_ptr->jmpbuf. - Remove unused code for sRGB intent (none of the PNG files in Amoeba have sRGB chunks), since the API has changed. Simplified the gamma code a bit while we're at it (there's no point in asking for conversion with screen gamma 2.2 and image gamma 1/2.2). Compatibility with older libpng remains unchanged. Index: amoeba-1.1/image/png_image.cpp =================================================================== --- amoeba-1.1.orig/image/png_image.cpp +++ amoeba-1.1/image/png_image.cpp @@ -28,7 +28,6 @@ PNGImage::PNGImage(File *file) // png_color_16 my_background, *image_background; png_info intent; png_bytep *row_pointers; - float screen_gamma; unsigned int row; png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); @@ -44,7 +43,7 @@ PNGImage::PNGImage(File *file) } /* Set up error handling. */ - if (setjmp(png_ptr->jmpbuf)) { + if (setjmp(png_jmpbuf(png_ptr))) { png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); throw new FatalException("PNG decompression failed"); } @@ -101,15 +100,10 @@ PNGImage::PNGImage(File *file) png_set_background(png_ptr, &my_background, PNG_BACKGROUND_GAMMA_SCREEN, 0, 1.0); */ - screen_gamma = 2.2; - if (png_get_sRGB(png_ptr, info_ptr, (int *)(&intent))) { - png_set_sRGB(png_ptr, &intent, 0); - } else { - double image_gamma; - if (png_get_gAMA(png_ptr, info_ptr, &image_gamma)) - png_set_gamma(png_ptr, screen_gamma, image_gamma); - else - png_set_gamma(png_ptr, screen_gamma, 0.45455); + double screen_gamma = 2.2; + double image_gamma; + if (png_get_gAMA(png_ptr, info_ptr, &image_gamma)) { + png_set_gamma(png_ptr, screen_gamma, image_gamma); } // png_set_bgr(png_ptr); debian/patches/13-libpng-64-bit-fixes.diff0000644000000000000000000000174011370370313015262 0ustar Index: amoeba-1.1/image/png_image.cpp =================================================================== --- amoeba-1.1.orig/image/png_image.cpp +++ amoeba-1.1/image/png_image.cpp @@ -14,7 +14,7 @@ /* ugly, but works (unless there is corrupted data :-D) */ char *curr_png_ptr = NULL; -void read_mem(png_structp png_ptr, png_bytep data, unsigned int length) +void read_mem(png_structp png_ptr, png_bytep data, png_size_t length) { memcpy(data, curr_png_ptr, length); curr_png_ptr += length; @@ -53,11 +53,15 @@ PNGImage::PNGImage(File *file) curr_png_ptr = file->get_data(); png_set_read_fn(png_ptr, NULL, read_mem); + png_uint_32 width, height; png_read_info(png_ptr, info_ptr); png_get_IHDR(png_ptr, info_ptr, - (png_uint_32 *)(&this->width), (png_uint_32 *)(&this->height), + &width, &height, &bit_depth, &color_type, &interlace_type, NULL, NULL); + this->width = width; + this->height = height; + if (color_type == PNG_COLOR_TYPE_GRAY) { this->bpp = 8; } debian/patches/19-update-config-interface-to-gtk2.diff0000644000000000000000000002736111370370313017655 0ustar Index: amoeba-1.1/main/linux-config/linux-config.cpp =================================================================== --- amoeba-1.1.orig/main/linux-config/linux-config.cpp +++ amoeba-1.1/main/linux-config/linux-config.cpp @@ -15,7 +15,9 @@ * FIXME: Should we support command line options even with GTK+? */ -#define GTK_NO_CHECK_CASTS +#ifndef G_DISABLE_CAST_CHECKS +#define G_DISABLE_CAST_CHECKS +#endif #include #include @@ -52,13 +54,13 @@ int modeline_compare(const void *a, cons LinuxConfig::LinuxConfig() { - void *gdkh = dlopen("libgdk-1.2.so.0", RTLD_GLOBAL | RTLD_NOW); + void *gdkh = dlopen("libgdk-x11-2.0.so.0", RTLD_GLOBAL | RTLD_NOW); if (gdkh == NULL) - throw new NonFatalException("libgdk-1.2.so.0", strerror(errno)); + throw new NonFatalException("libgdk-x11-2.0.so.0", strerror(errno)); - void *gtkh = dlopen("libgtk-1.2.so.0", RTLD_NOW); + void *gtkh = dlopen("libgtk-x11-2.0.so.0", RTLD_NOW); if (gtkh == NULL) - throw new NonFatalException("libgtk-1.2.so.0", strerror(errno)); + throw new NonFatalException("libgtk-x11-2.0.so.0", strerror(errno)); /* now we go through and load all the symbols we need, error-checking as we go */ #define LOAD_SYMBOL(lib, x, cast) { \ @@ -66,7 +68,7 @@ LinuxConfig::LinuxConfig() if (this->_ ## x == NULL) throw new NonFatalException(#x, strerror(errno)); \ } LOAD_SYMBOL(gdk, gdk_pixmap_new, GdkPixmap* (*)(GdkWindow*, gint, gint, gint)); - LOAD_SYMBOL(gdk, gdk_pixmap_unref, void (*)(GdkPixmap*)); + LOAD_SYMBOL(gdk, gdk_drawable_unref, void (*)(GdkPixmap*)); LOAD_SYMBOL(gdk, gdk_gc_new, GdkGC* (*)(GdkDrawable*)); LOAD_SYMBOL(gdk, gdk_gc_unref, void (*)(GdkGC*)); LOAD_SYMBOL(gdk, gdk_rgb_init, void (*)(void)); @@ -83,8 +85,9 @@ LinuxConfig::LinuxConfig() LOAD_SYMBOL(gtk, gtk_label_new, GtkWidget* (*)(const gchar*)); LOAD_SYMBOL(gtk, gtk_label_set_justify, void (*)(GtkLabel*, GtkJustification)); LOAD_SYMBOL(gtk, gtk_main_iteration_do, int (*)(gboolean)); + LOAD_SYMBOL(gtk, gtk_events_pending, gboolean (*)(void)); LOAD_SYMBOL(gtk, gtk_main_quit, void (*)(void)); - LOAD_SYMBOL(gtk, gtk_menu_append, void (*)(GtkMenu*, GtkWidget*)); + LOAD_SYMBOL(gtk, gtk_menu_shell_append, void (*)(GtkMenu*, GtkWidget*)); LOAD_SYMBOL(gtk, gtk_menu_get_active, GtkWidget* (*)(GtkMenu*)); LOAD_SYMBOL(gtk, gtk_menu_item_new_with_label, GtkWidget* (*)(const gchar*)); LOAD_SYMBOL(gtk, gtk_menu_new, GtkWidget* (*)(void)); @@ -96,8 +99,8 @@ LinuxConfig::LinuxConfig() LOAD_SYMBOL(gtk, gtk_option_menu_set_history, void (*)(GtkOptionMenu*, guint)); LOAD_SYMBOL(gtk, gtk_option_menu_set_menu, void (*)(GtkOptionMenu*, GtkWidget*)); LOAD_SYMBOL(gtk, gtk_pixmap_new, GtkWidget* (*)(GdkPixmap*, GdkPixmap*)); - LOAD_SYMBOL(gtk, gtk_signal_connect, guint (*)(GtkObject*, const gchar*, GtkSignalFunc, gpointer)); - LOAD_SYMBOL(gtk, gtk_signal_disconnect, void (*)(GtkObject*, guint)); + LOAD_SYMBOL(gtk, gtk_signal_connect_full, guint(*)(GtkObject*, const gchar*, GtkSignalFunc, GtkCallbackMarshal, gpointer, GtkDestroyNotify, gint, gint)); + LOAD_SYMBOL(gtk, g_signal_handler_disconnect, void (*)(GtkObject*, guint)); LOAD_SYMBOL(gtk, gtk_table_attach, void (*)(GtkTable*, GtkWidget*, guint, guint, guint, guint, GtkAttachOptions, GtkAttachOptions, guint, guint)); LOAD_SYMBOL(gtk, gtk_table_new, GtkWidget* (*)(guint, guint, gboolean)); LOAD_SYMBOL(gtk, gtk_table_set_col_spacings, void (*)(GtkTable*, guint)); @@ -116,7 +119,6 @@ LinuxConfig::LinuxConfig() LOAD_SYMBOL(gtk, gtk_init, void (*)(int*, char ***)); LOAD_SYMBOL(gtk, gtk_main, void (*)(void)); - LOAD_SYMBOL(gtk, gtk_set_locale, void (*)(void)); } /* this is largely GLADE-generated code, but modified for the dl */ @@ -132,7 +134,6 @@ void LinuxConfig::show(int *argc, char * throw new FatalException("Can't connect to X server!"); int screen = DefaultScreen(dpy); - (*_gtk_set_locale) (); (*_gtk_init) (argc, argv); GtkWidget *config; @@ -164,7 +165,7 @@ void LinuxConfig::show(int *argc, char * unsigned char *ptr; GdkGC *gc; - config = (*_gtk_window_new) (GTK_WINDOW_DIALOG); + config = (*_gtk_window_new) (GTK_WINDOW_TOPLEVEL); (*_gtk_object_set_data) (GTK_OBJECT (config), "config", config); (*_gtk_window_set_title) (GTK_WINDOW (config), "Excess demo configuration (GLX/X11)"); (*_gtk_window_set_position) (GTK_WINDOW (config), GTK_WIN_POS_CENTER); @@ -212,7 +213,7 @@ void LinuxConfig::show(int *argc, char * pixmap1 = (*_gtk_pixmap_new) (gdkpixmap, NULL); (*_gdk_gc_unref) (gc); - (*_gdk_pixmap_unref) (gdkpixmap); + (*_gdk_drawable_unref) (gdkpixmap); delete logo; @@ -278,7 +279,7 @@ void LinuxConfig::show(int *argc, char * sprintf(buf, "%ux%u", modes[i]->hdisplay, modes[i]->vdisplay); glade_menuitem = (*_gtk_menu_item_new_with_label) (buf); (*_gtk_widget_show) (glade_menuitem); - (*_gtk_menu_append) (GTK_MENU (res_menu_menu), glade_menuitem); + (*_gtk_menu_shell_append) (GTK_MENU (res_menu_menu), glade_menuitem); sprintf(buf, "%u", modes[i]->hdisplay); (*_gtk_object_set_data) (GTK_OBJECT (glade_menuitem), strdup("xres"), @@ -311,12 +312,12 @@ void LinuxConfig::show(int *argc, char * glade_menuitem = (*_gtk_menu_item_new_with_label) ("Fullscreen"); (*_gtk_object_set_data) (GTK_OBJECT (glade_menuitem), strdup("fullscreen"), strdup("yes")); (*_gtk_widget_show) (glade_menuitem); - (*_gtk_menu_append) (GTK_MENU (fullscreenmenu_menu), glade_menuitem); + (*_gtk_menu_shell_append) (GTK_MENU (fullscreenmenu_menu), glade_menuitem); glade_menuitem = (*_gtk_menu_item_new_with_label) ("Windowed"); (*_gtk_object_set_data) (GTK_OBJECT (glade_menuitem), strdup("fullscreen"), strdup("no")); (*_gtk_widget_show) (glade_menuitem); - (*_gtk_menu_append) (GTK_MENU (fullscreenmenu_menu), glade_menuitem); + (*_gtk_menu_shell_append) (GTK_MENU (fullscreenmenu_menu), glade_menuitem); (*_gtk_option_menu_set_menu) (GTK_OPTION_MENU (fullscreenmenu), fullscreenmenu_menu); (*_gtk_option_menu_set_history) (GTK_OPTION_MENU (fullscreenmenu), 0); @@ -405,7 +406,7 @@ void LinuxConfig::show(int *argc, char * glade_menuitem = (*_gtk_menu_item_new_with_label) (buf); (*_gtk_widget_show) (glade_menuitem); - (*_gtk_menu_append) (GTK_MENU (visualmenu_menu), glade_menuitem); + (*_gtk_menu_shell_append) (GTK_MENU (visualmenu_menu), glade_menuitem); sprintf(buf, "%lu", xvi[i].visualid); (*_gtk_object_set_data) (GTK_OBJECT (glade_menuitem), strdup("visual_id"), strdup(buf)); @@ -451,13 +452,13 @@ void LinuxConfig::show(int *argc, char * glade_menuitem = (*_gtk_menu_item_new_with_label) ("Yes"); (*_gtk_object_set_data) (GTK_OBJECT (glade_menuitem), strdup("sound"), strdup("yes")); (*_gtk_widget_show) (glade_menuitem); - (*_gtk_menu_append) (GTK_MENU (soundmenu_menu), glade_menuitem); + (*_gtk_menu_shell_append) (GTK_MENU (soundmenu_menu), glade_menuitem); } glade_menuitem = (*_gtk_menu_item_new_with_label) ("No"); (*_gtk_object_set_data) (GTK_OBJECT (glade_menuitem), strdup("sound"), strdup("no")); (*_gtk_widget_show) (glade_menuitem); - (*_gtk_menu_append) (GTK_MENU (soundmenu_menu), glade_menuitem); + (*_gtk_menu_shell_append) (GTK_MENU (soundmenu_menu), glade_menuitem); (*_gtk_option_menu_set_menu) (GTK_OPTION_MENU (soundmenu), soundmenu_menu); res_label = (*_gtk_label_new) ("Screen resolution:"); @@ -503,12 +504,12 @@ void LinuxConfig::show(int *argc, char * (*_gtk_widget_ref) (ok); (*_gtk_object_set_data_full) (GTK_OBJECT (config), "ok", ok, (GtkDestroyNotify) (*_gtk_widget_unref)); - (*_gtk_signal_connect) (GTK_OBJECT (ok), "clicked", GTK_SIGNAL_FUNC (*_gtk_main_quit), NULL); + (*_gtk_signal_connect_full) (GTK_OBJECT (ok), "clicked", GTK_SIGNAL_FUNC (*_gtk_main_quit), NULL, NULL, NULL, 0, 0); (*_gtk_widget_show) (ok); (*_gtk_box_pack_start) (GTK_BOX (hbox4), ok, TRUE, TRUE, 1); - int dest_signal = (*_gtk_signal_connect) (GTK_OBJECT (config), "destroy", GTK_SIGNAL_FUNC (*_gtk_exit), NULL); + int dest_signal = (*_gtk_signal_connect_full) (GTK_OBJECT (config), "destroy", GTK_SIGNAL_FUNC (*_gtk_exit), NULL, NULL, NULL, 0, 0); (*_gtk_widget_show)(config); (*_gtk_main) (); @@ -518,19 +519,21 @@ void LinuxConfig::show(int *argc, char * attr_hash->insert("xres", (*_gtk_object_get_data) (resolution, "xres")); attr_hash->insert("yres", (*_gtk_object_get_data) (resolution, "yres")); - GtkObject *fullscreen = GTK_OBJECT ((*_gtk_menu_get_active) (GTK_MENU (fullscreenmenu_menu))); + GtkObject *fullscreen = GTK_OBJECT ((*_gtk_menu_get_active) (GTK_MENU (fullscreenmenu_menu))); attr_hash->insert("fullscreen", (*_gtk_object_get_data) (fullscreen, "fullscreen")); - GtkObject *visid = GTK_OBJECT ((*_gtk_menu_get_active) (GTK_MENU (visualmenu_menu))); + GtkObject *visid = GTK_OBJECT ((*_gtk_menu_get_active) (GTK_MENU (visualmenu_menu))); attr_hash->insert("visual_id", (*_gtk_object_get_data) (visid, "visual_id")); GtkObject *sound = GTK_OBJECT ((*_gtk_menu_get_active) (GTK_MENU (soundmenu_menu))); attr_hash->insert("sound", (*_gtk_object_get_data) (sound, "sound")); - (*_gtk_signal_disconnect) (GTK_OBJECT (config), dest_signal); + (*_g_signal_handler_disconnect) (GTK_OBJECT (config), dest_signal); (*_gtk_widget_hide) (config); (*_gtk_widget_destroy) (config); - (*_gtk_main_iteration_do) (false); + + while ((*_gtk_events_pending) ()) + (*_gtk_main_iteration_do) (false); setlocale(LC_ALL, "C"); } Index: amoeba-1.1/main/linux-config/linux-config.h =================================================================== --- amoeba-1.1.orig/main/linux-config/linux-config.h +++ amoeba-1.1/main/linux-config/linux-config.h @@ -14,7 +14,7 @@ public: private: GdkPixmap* (*_gdk_pixmap_new)(GdkWindow*, gint, gint, gint); - void (*_gdk_pixmap_unref)(GdkPixmap*); + void (*_gdk_drawable_unref)(GdkPixmap*); GdkGC* (*_gdk_gc_new)(GdkDrawable*); void (*_gdk_gc_unref)(GdkGC*); void (*_gdk_rgb_init)(void); @@ -29,8 +29,9 @@ private: GtkWidget* (*_gtk_label_new)(const gchar*); void (*_gtk_label_set_justify)(GtkLabel*, GtkJustification); gint (*_gtk_main_iteration_do)(gboolean); + gboolean (*_gtk_events_pending)(void); void (*_gtk_main_quit)(void); - void (*_gtk_menu_append)(GtkMenu*, GtkWidget*); + void (*_gtk_menu_shell_append)(GtkMenu*, GtkWidget*); GtkWidget* (*_gtk_menu_get_active)(GtkMenu*); GtkWidget* (*_gtk_menu_item_new_with_label)(const gchar*); GtkWidget* (*_gtk_menu_new)(void); @@ -42,8 +43,8 @@ private: void (*_gtk_option_menu_set_history)(GtkOptionMenu*, guint); void (*_gtk_option_menu_set_menu)(GtkOptionMenu*, GtkWidget*); GtkWidget* (*_gtk_pixmap_new)(GdkPixmap*, GdkBitmap*); - guint (*_gtk_signal_connect)(GtkObject*, const gchar*, GtkSignalFunc, gpointer); - void (*_gtk_signal_disconnect)(GtkObject*, guint); + guint (*_gtk_signal_connect_full)(GtkObject*, const gchar*, GtkSignalFunc, GtkCallbackMarshal, gpointer, GtkDestroyNotify, gint, gint); + void (*_g_signal_handler_disconnect)(GtkObject*, guint); void (*_gtk_table_attach)(GtkTable*, GtkWidget*, guint, guint, guint, guint, GtkAttachOptions, GtkAttachOptions, guint, guint); GtkWidget* (*_gtk_table_new)(guint, guint, gboolean); void (*_gtk_table_set_col_spacings)(GtkTable*, guint); @@ -62,7 +63,6 @@ private: void (*_gtk_init)(int*, char ***); void (*_gtk_main)(void); - void (*_gtk_set_locale)(void); void (*_gtk_exit)(gint); }; #endif /* !defined(_LINUX_CONFIG_H) */ Index: amoeba-1.1/Makefile =================================================================== --- amoeba-1.1.orig/Makefile +++ amoeba-1.1/Makefile @@ -23,7 +23,7 @@ ifeq ($(PLATFORM),linux) EXTRALIBS= #EXTRALIBS=-lefence #EXTRALIBS=/usr/src/dmalloc-4.6.0/libdmallocth.a /usr/src/dmalloc-4.6.0/dmallocc.o - CPPFLAGS += $(shell freetype-config --cflags) $(shell gtk-config --cflags) + CPPFLAGS += $(shell freetype-config --cflags) $(shell pkg-config --cflags gtk+-2.0) ifeq ($(LINUXVARIANT),gcc) CC=gcc CXX=g++ debian/patches/03-shell-in-makefile.diff0000644000000000000000000000101711370370313015152 0ustar Index: amoeba-1.1/Makefile =================================================================== --- amoeba-1.1.orig/Makefile +++ amoeba-1.1/Makefile @@ -23,7 +23,7 @@ ifeq ($(PLATFORM),linux) EXTRALIBS= #EXTRALIBS=-lefence #EXTRALIBS=/usr/src/dmalloc-4.6.0/libdmallocth.a /usr/src/dmalloc-4.6.0/dmallocc.o - CPPFLAGS += `freetype-config --cflags` `gtk-config --cflags` + CPPFLAGS += $(shell freetype-config --cflags) $(shell gtk-config --cflags) ifeq ($(LINUXVARIANT),gcc) CC=gcc CXX=g++ debian/patches/09-set-c-locale.diff0000644000000000000000000000111011370370313014134 0ustar Index: amoeba-1.1/main/linux-config/linux-config.cpp =================================================================== --- amoeba-1.1.orig/main/linux-config/linux-config.cpp +++ amoeba-1.1/main/linux-config/linux-config.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -528,4 +529,6 @@ void LinuxConfig::show(int *argc, char * (*_gtk_widget_hide) (config); (*_gtk_widget_destroy) (config); (*_gtk_main_iteration_do) (false); + + setlocale(LC_ALL, "C"); } debian/patches/07-drop-compiled-vertex-arrays.diff0000644000000000000000000000132411370370313017241 0ustar Index: amoeba-1.1/main/twisthandler.cpp =================================================================== --- amoeba-1.1.orig/main/twisthandler.cpp +++ amoeba-1.1/main/twisthandler.cpp @@ -335,13 +335,7 @@ void TwistHandler::draw_scene(float prog glEnableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); - if (this->has_compiled_vertex_array) - (*this->glLockArraysEXT)(0, this->vertices.num_elems() * 4); - glDrawArrays(GL_QUADS, 0, this->vertices.num_elems() * 4); - - if (this->has_compiled_vertex_array) - (*this->glUnlockArraysEXT)(); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); debian/patches/11-friendly-error-messages.diff0000644000000000000000000000236311370372661016450 0ustar Index: amoeba-1.1/main/linux-config/linux-config.cpp =================================================================== --- amoeba-1.1.orig/main/linux-config/linux-config.cpp +++ amoeba-1.1/main/linux-config/linux-config.cpp @@ -419,7 +419,7 @@ void LinuxConfig::show(int *argc, char * usable++; } if (usable == 0) - throw new FatalException("No usable visuals!"); + throw new FatalException("No usable visuals! (Try 32bpp mode if you are not already)"); (*_gtk_option_menu_set_menu) (GTK_OPTION_MENU (visualmenu), visualmenu_menu); (*_gtk_option_menu_set_history) (GTK_OPTION_MENU (fullscreenmenu), bestid); } Index: amoeba-1.1/opengl/glwindow.cpp =================================================================== --- amoeba-1.1.orig/opengl/glwindow.cpp +++ amoeba-1.1/opengl/glwindow.cpp @@ -333,7 +333,7 @@ GLWindow::GLWindow(char *title, int widt XGetGeometry(this->dpy, this->win, &winDummy, &this->x, &this->y, &this->width, &this->height, &borderDummy, &this->bpp); if (!glXIsDirect(this->dpy, this->ctx)) { - throw new FatalException("No direct rendering (hardware acceleration) available!"); + throw new FatalException("No direct rendering (hardware acceleration) available! (Check libGL.so.* symlinks)"); } nice(-7); debian/patches/22-tighten-up-non-const-chars.diff0000644000000000000000000000666111742264554017011 0ustar Index: amoeba-1.1/main/factory.h =================================================================== --- amoeba-1.1.orig/main/factory.h +++ amoeba-1.1/main/factory.h @@ -27,19 +27,19 @@ private: char *elem, *longdesc, *mainparm; public: - HandlerFactory(char *element) + HandlerFactory(const char *element) { this->elem = strdup(element); this->longdesc = NULL; this->mainparm = NULL; } - HandlerFactory(char *element, char *longdesc) + HandlerFactory(const char *element, const char *longdesc) { this->elem = strdup(element); this->longdesc = strdup(longdesc); this->mainparm = NULL; } - HandlerFactory(char *element, char *longdesc, char *mainparm) + HandlerFactory(const char *element, const char *longdesc, const char *mainparm) { this->elem = strdup(element); this->longdesc = strdup(longdesc); Index: amoeba-1.1/util/hashtable.cpp =================================================================== --- amoeba-1.1.orig/util/hashtable.cpp +++ amoeba-1.1/util/hashtable.cpp @@ -99,9 +99,9 @@ void Hashtable::insert(const char * cons this->buckets[partial_hash] = ptr; } -void Hashtable::insert(const char * const key, char * const str) +void Hashtable::insert(const char * const key, const char * const str) { - this->insert(key, (void * const)str); + this->insert(key, (void *)strdup(str)); } /* makes no error if it doesn't exist (make it return a bool?) */ Index: amoeba-1.1/util/hashtable.h =================================================================== --- amoeba-1.1.orig/util/hashtable.h +++ amoeba-1.1/util/hashtable.h @@ -29,7 +29,7 @@ public: ~Hashtable(); void insert(const char * const key, void * const obj); - void insert(const char * const key, char * const str); + void insert(const char * const key, const char * const str); void remove(const char * const key); void *lookup(const char * const key) const; void destroy_values(); Index: amoeba-1.1/main/event.cpp =================================================================== --- amoeba-1.1.orig/main/event.cpp +++ amoeba-1.1/main/event.cpp @@ -12,7 +12,7 @@ #if DEMOLIB_MAINLOOP -Event::Event(MainLoop *ml, const char *title, const char *elem, Hashtable *attr, char *curvenames) +Event::Event(MainLoop *ml, const char *title, const char *elem, Hashtable *attr, const char *curvenames) { int curve_type = CURVE_NONE; @@ -158,7 +158,7 @@ void Event::start_effect() {} void Event::draw_scene(float progress) {} void Event::end_effect() {} -float Event::get_val(char *attr_name, float progress) +float Event::get_val(const char *attr_name, float progress) { if (this->curves == NULL) { throw new FatalException(attr_name, "No curves defined in effect!"); Index: amoeba-1.1/main/event.h =================================================================== --- amoeba-1.1.orig/main/event.h +++ amoeba-1.1/main/event.h @@ -11,14 +11,14 @@ class TimewalkHandler; class Event { public: - Event(MainLoop *ml, const char *title, const char *elem, Hashtable *attr, char *curvenames); + Event(MainLoop *ml, const char *title, const char *elem, Hashtable *attr, const char *curvenames); virtual ~Event(); /* these are typically provided by the base class */ void add_curvepoint(Hashtable *markers, const char *element, const char **attr); void end_curvedata(); - float get_val(char *attr_name, float progress); + float get_val(const char *attr_name, float progress); /* these are typically overloaded */ virtual void start_effect(); debian/patches/14-properly-delete-vfcache.diff0000644000000000000000000000055511370370313016405 0ustar Index: amoeba-1.1/main/shadowhandler.cpp =================================================================== --- amoeba-1.1.orig/main/shadowhandler.cpp +++ amoeba-1.1/main/shadowhandler.cpp @@ -115,7 +115,7 @@ ShadowHandler::ShadowHandler(MainLoop *m } } } - delete vfcache; + delete[] vfcache; this->shadowvol = new GLfloat[evi.num_elems() * 16]; } debian/patches/24-build-on-kfreebsd.diff0000644000000000000000000002155211755150542015200 0ustar Index: amoeba-1.1/audio/musichandler.cpp =================================================================== --- amoeba-1.1.orig/audio/musichandler.cpp 2002-06-14 16:35:12.000000000 +0000 +++ amoeba-1.1/audio/musichandler.cpp 2012-05-14 18:31:06.000000000 +0000 @@ -18,7 +18,7 @@ #define DEMOLIB_SOUND_PROVIDER OggVorbisAudioProvider -#if __linux__ +#if __unix__ #include "audio/linux_oss.h" #define DEMOLIB_SOUND_DRIVER OSSAudioDriver #else Index: amoeba-1.1/main/demohandler.cpp =================================================================== --- amoeba-1.1.orig/main/demohandler.cpp 2002-06-02 13:48:34.000000000 +0000 +++ amoeba-1.1/main/demohandler.cpp 2012-05-14 18:31:06.000000000 +0000 @@ -2,7 +2,7 @@ #include #include -#ifdef __linux__ +#ifdef __unix__ #include #endif @@ -56,7 +56,7 @@ glDepthFunc(GL_LESS); while (this->active) { -#ifdef __linux__ +#ifdef __unix__ /* * Linux doesn't use a message queue like Win32, so we'll * handle X events here :-) Index: amoeba-1.1/main/mainloop.cpp =================================================================== --- amoeba-1.1.orig/main/mainloop.cpp 2002-06-14 13:48:00.000000000 +0000 +++ amoeba-1.1/main/mainloop.cpp 2012-05-14 18:31:06.000000000 +0000 @@ -212,21 +212,21 @@ int i = 0; #if !DEMOLIB_SILENT static bool init_timer = false; -#if __linux__ +#if __unix__ static struct timeval first_lpp, now; #else static DWORD first_lpp, now; #endif if (!init_timer) { -#if __linux__ +#if __unix__ gettimeofday(&first_lpp, NULL); #else first_lpp = GetTickCount(); #endif init_timer = true; } -#if __linux__ +#if __unix__ gettimeofday(&now, NULL); printf("LPP: [%6.3f]\n", (now.tv_sec - first_lpp.tv_sec) + @@ -322,7 +322,7 @@ * and should be rewritten someday. */ if (this->num_events == 0) { -#if __linux__ +#if __unix__ /* attempt to use the colorful GTK+ interface first =) */ try { /* Index: amoeba-1.1/main/piprecalc.cpp =================================================================== --- amoeba-1.1.orig/main/piprecalc.cpp 2002-06-14 17:32:06.000000000 +0000 +++ amoeba-1.1/main/piprecalc.cpp 2012-05-14 18:31:06.000000000 +0000 @@ -13,7 +13,7 @@ #define PI_STRING "3.14159265358979323846264338327950288" /* ahem ;-) */ -#ifndef __linux__ +#ifndef __unix__ #define usleep(x) Sleep(x) #endif Index: amoeba-1.1/opengl/extensions.cpp =================================================================== --- amoeba-1.1.orig/opengl/extensions.cpp 2012-05-14 18:31:06.000000000 +0000 +++ amoeba-1.1/opengl/extensions.cpp 2012-05-14 18:31:06.000000000 +0000 @@ -12,7 +12,7 @@ #include -#if __linux__ +#if __unix__ #include extern "C" { void (*glXGetProcAddressARB(const GLubyte *procName))(); @@ -52,7 +52,7 @@ void *GLExtensions::func_ptr(const char *function) { -#if __linux__ +#if __unix__ void *ptr = (void *)glXGetProcAddressARB((GLubyte *)function); #else void *ptr = (void *)wglGetProcAddress(function); @@ -72,7 +72,7 @@ (strcmp(suffix, "EXT") == 0 || strcmp(suffix, "ARB") == 0)) { char *tmp = strdup(function); tmp[strlen(tmp) - 3] = '\0'; -#if __linux__ +#if __unix__ ptr = (void *)glXGetProcAddressARB((GLubyte *)tmp); #else ptr = (void *)wglGetProcAddress(tmp); Index: amoeba-1.1/opengl/glwindow.cpp =================================================================== --- amoeba-1.1.orig/opengl/glwindow.cpp 2012-05-14 18:31:06.000000000 +0000 +++ amoeba-1.1/opengl/glwindow.cpp 2012-05-14 18:31:06.000000000 +0000 @@ -9,7 +9,7 @@ #include #endif -#ifdef __linux__ +#ifdef __unix__ #include #include #include @@ -56,7 +56,7 @@ glMatrixMode(GL_MODELVIEW); glLoadIdentity(); -#ifdef __linux__ +#ifdef __unix__ // XClearWindow(this->dpy, this->win); #endif } @@ -92,7 +92,7 @@ WindowRect.bottom = (long)height; #endif /* WIN32 */ -#ifdef __linux__ +#ifdef __unix__ XVisualInfo *vi; int dpyWidth = 0, dpyHeight = 0; int i; @@ -113,7 +113,7 @@ GLX_STENCIL_SIZE, 4, None }; -#endif /* __linux__ */ +#endif /* __unix__ */ this->x = 0; this->y = 0; @@ -140,7 +140,7 @@ if( !RegisterClass(&wc) ) throw new FatalException("Couldn't register Window Class"); #endif /* WIN32 */ -#ifdef __linux__ +#ifdef __unix__ /* set best mode to current */ bestMode = 0; @@ -210,7 +210,7 @@ } this->attr.border_pixel = 0; -#endif /* __linux__ */ +#endif /* __unix__ */ /* change screen mode */ if (fullscreen) { @@ -219,13 +219,13 @@ throw new FatalException("Couldn't set requested screen mode."); } #endif /* WIN32 */ -#ifdef __linux__ +#ifdef __unix__ XF86VidModeSwitchToMode(this->dpy, this->screen, modes[bestMode]); XF86VidModeSetViewPort(this->dpy, this->screen, 0, 0); dpyWidth = modes[bestMode]->hdisplay; dpyHeight = modes[bestMode]->vdisplay; XFree(modes); -#endif /* __linux__ */ +#endif /* __unix__ */ } /* create the window */ @@ -256,7 +256,7 @@ throw new FatalException("Could not change screenmode"); } #endif -#ifdef __linux__ +#ifdef __unix__ this->attr.background_pixel = 0; if (fullscreen) { @@ -290,7 +290,7 @@ title, None, NULL, 0, NULL); XMapRaised(this->dpy, this->win); } -#endif /* __linux__ */ +#endif /* __unix__ */ #ifdef WIN32 static PIXELFORMATDESCRIPTOR pfd = { @@ -326,7 +326,7 @@ SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS); #endif /* WIN32 */ -#ifdef __linux__ +#ifdef __unix__ /* connect the glx-context to the window */ glXMakeCurrent(this->dpy, this->win, this->ctx); XClearWindow(this->dpy, this->win); @@ -337,14 +337,14 @@ } nice(-7); -#endif /* __linux__ */ +#endif /* __unix__ */ this->resize(0, 0, this->width, this->height); } GLWindow::~GLWindow() { -#ifdef __linux__ +#ifdef __unix__ if (this->ctx) { if (!glXMakeCurrent(this->dpy, None, NULL)) { throw new FatalException("Could not release drawing context."); @@ -355,7 +355,7 @@ #endif if (fullscreen) { -#ifdef __linux__ +#ifdef __unix__ XF86VidModeSwitchToMode(this->dpy, this->screen, &this->deskMode); XF86VidModeSetViewPort(this->dpy, this->screen, 0, 0); #endif @@ -365,7 +365,7 @@ #endif } -#ifdef __linux__ +#ifdef __unix__ XCloseDisplay(this->dpy); #endif @@ -396,7 +396,7 @@ } SwapBuffers(this->hDC); #endif -#ifdef __linux__ +#ifdef __unix__ glXSwapBuffers(this->dpy, this->win); #endif } Index: amoeba-1.1/packer/pakfile.cpp =================================================================== --- amoeba-1.1.orig/packer/pakfile.cpp 2012-05-14 18:31:06.000000000 +0000 +++ amoeba-1.1/packer/pakfile.cpp 2012-05-14 18:31:06.000000000 +0000 @@ -5,7 +5,7 @@ #include #include #include -#ifdef __linux__ +#ifdef __unix__ #include #else #include @@ -38,7 +38,7 @@ int err, dirpos, dirsize; unsigned int i; -#if __linux__ +#if __unix__ int fd = open("/usr/share/amoeba/demo.dat", O_RDONLY); #else int fd = open("demo.dat", O_RDONLY | O_BINARY); Index: amoeba-1.1/test-demolib.cpp =================================================================== --- amoeba-1.1.orig/test-demolib.cpp 2002-06-14 16:49:02.000000000 +0000 +++ amoeba-1.1/test-demolib.cpp 2012-05-14 18:31:06.000000000 +0000 @@ -106,7 +106,7 @@ demo->run(); delete demo; } catch (Exception *e) { -#if __linux__ +#if __unix__ fprintf(stderr, "Unhandled exception: %s\n", e->get_error()); #else MessageBox(NULL, e->get_error(), "Unhandled exception!", 0); Index: amoeba-1.1/util/hashtable.cpp =================================================================== --- amoeba-1.1.orig/util/hashtable.cpp 2012-05-14 18:31:06.000000000 +0000 +++ amoeba-1.1/util/hashtable.cpp 2012-05-14 18:31:06.000000000 +0000 @@ -11,7 +11,7 @@ #include "exception.h" #include "demolib_prefs.h" -#ifndef __linux__ +#ifndef __unix__ #define strcasecmp stricmp #endif Index: amoeba-1.1/audio/linux_oss.cpp =================================================================== --- amoeba-1.1.orig/audio/linux_oss.cpp 2012-05-14 18:31:06.000000000 +0000 +++ amoeba-1.1/audio/linux_oss.cpp 2012-05-14 18:31:06.000000000 +0000 @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include #include Index: amoeba-1.1/opengl/glwindow.h =================================================================== --- amoeba-1.1.orig/opengl/glwindow.h 2002-05-09 16:40:20.000000000 +0000 +++ amoeba-1.1/opengl/glwindow.h 2012-05-17 10:22:24.625414541 +0000 @@ -5,7 +5,7 @@ #include #endif -#ifdef __linux__ +#ifdef __unix__ #include #include #include @@ -32,7 +32,7 @@ HWND hWnd; HINSTANCE hInstance; #endif -#ifdef __linux__ +#ifdef __unix__ Display *dpy; int screen; Window win; debian/patches/05-nudge-texcoords.diff0000644000000000000000000000635111370370313015006 0ustar Index: amoeba-1.1/main/backgroundhandler.cpp =================================================================== --- amoeba-1.1.orig/main/backgroundhandler.cpp +++ amoeba-1.1/main/backgroundhandler.cpp @@ -206,22 +206,17 @@ void BackgroundHandler::draw_scene(float for (int k = 0; k < xpartbits[xbit]; k++) { glBindTexture(GL_TEXTURE_2D, this->textures[texnum++]); - /* - * the +0.01 part is to fix some cracks on broken - * (e.g. Matrox G450/G550 -- ATI Rage128 has the - * same problem but this fix doesn't help) OpenGL - * drivers -- hopefully it shouldn't matter for - * properly behaving drivers :-) - */ - + float w_nudge = 0.5f / (float)w; + float h_nudge = 0.5f / (float)h; + glBegin(GL_QUADS); - glTexCoord2f(0.0f, 0.0f); + glTexCoord2f(w_nudge, h_nudge); glVertex3f((float)(xoffs ), (float)(yoffs ), 0.0f); - glTexCoord2f(0.0f, 1.0f); + glTexCoord2f(w_nudge, 1.0f - h_nudge); glVertex3f((float)(xoffs ), (float)(yoffs + h) + 0.01f, 0.0f); - glTexCoord2f(1.0f, 1.0f); + glTexCoord2f(1.0f - w_nudge, 1.0f - h_nudge); glVertex3f((float)(xoffs + w) + 0.01f, (float)(yoffs + h) + 0.01f, 0.0f); - glTexCoord2f(1.0f, 0.0f); + glTexCoord2f(1.0f - w_nudge, h_nudge); glVertex3f((float)(xoffs + w) + 0.01f, (float)(yoffs ), 0.0f); glEnd(); Index: amoeba-1.1/main/imagehandler.cpp =================================================================== --- amoeba-1.1.orig/main/imagehandler.cpp +++ amoeba-1.1/main/imagehandler.cpp @@ -66,18 +66,21 @@ void ImageHandler::draw_scene(float prog glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); + float w_nudge = 0.5f / (float)tex->get_width(); + float h_nudge = 0.5f / (float)tex->get_height(); + glBegin(GL_QUADS); - glTexCoord2f(0.0f, 0.0f); + glTexCoord2f(w_nudge, h_nudge); glVertex3f(xpos, ypos, 0.0f); - glTexCoord2f(0.0f, 1.0f); + glTexCoord2f(w_nudge, 1.0f - h_nudge); glVertex3f(xpos, ypos + ysize, 0.0f); - glTexCoord2f(1.0f, 1.0f); + glTexCoord2f(1.0f - w_nudge, 1.0f - h_nudge); glVertex3f(xpos + xsize, ypos + ysize, 0.0f); - glTexCoord2f(1.0f, 0.0f); + glTexCoord2f(1.0f - w_nudge, h_nudge); glVertex3f(xpos + xsize, ypos, 0.0f); glEnd(); Index: amoeba-1.1/opengl/texture.cpp =================================================================== --- amoeba-1.1.orig/opengl/texture.cpp +++ amoeba-1.1/opengl/texture.cpp @@ -180,6 +180,9 @@ Texture::Texture(Image *img) glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); free(pixdata); + + this->width = w; + this->height = h; } Texture::~Texture() Index: amoeba-1.1/opengl/texture.h =================================================================== --- amoeba-1.1.orig/opengl/texture.h +++ amoeba-1.1/opengl/texture.h @@ -12,12 +12,15 @@ public: Texture(Image *img); ~Texture(); + int get_width() { return width; } + int get_height() { return height; } void bind(); /* ick :-) */ int refcount; protected: + int width, height; GLuint texnum; void add_mipmap(GLenum ifmt, GLenum fmt, int bpp, int w, int h, debian/changelog0000644000000000000000000003475711755150671011070 0ustar amoeba (1.1-26) unstable; urgency=low * 24-build-on-kfreebsd.diff: Added missing __linux__ -> __unix__ replacements in opengl/glwindow.h; should fix building on non-Linux platforms. (Closes: #673201) -- Steinar H. Gunderson Thu, 17 May 2012 10:22:37 +0000 amoeba (1.1-25) unstable; urgency=low * debian/patches/25-libpng-1.5-fixes.diff: New patch, fixes compilation with libpng 1.5 or newer. (Closes: #650593) -- Steinar H. Gunderson Mon, 14 May 2012 19:07:31 +0200 amoeba (1.1-24) unstable; urgency=low * Remove obsolete file debian/patches/debian-changes-1.1-21 (see changelog for 1.1-22). * 24-build-on-kfreebsd.diff: New patch, based on work by Christoph Egger; should make Amoeba compile and work on kFreeBSD. -- Steinar H. Gunderson Sat, 14 Apr 2012 14:11:44 +0200 amoeba (1.1-23) unstable; urgency=low * Build-Depend on libjpeg-dev instead of libjpeg62-dev. (Closes: #649760) -- Steinar H. Gunderson Wed, 23 Nov 2011 21:46:16 +0100 amoeba (1.1-22) unstable; urgency=low * Remove URL to Underscore from the description, as the domain no longer exists. (Closes: #556401) * 23-link-with-libdl.diff: Link with -ldl to avoid FTBFS with GNU gold. Patch from Ubuntu. (Closes: #556751) * Fold debian-changes-1.1-21 into 22-tighten-up-non-const-chars.diff, where it was meant to be all along. * Update Standards-Version to 3.9.1 (no changes needed). -- Steinar H. Gunderson Mon, 21 Feb 2011 02:04:59 +0100 amoeba (1.1-21) unstable; urgency=low * Switch to dpkg-source 3.0 (quilt) format. * Add debian/source/format file. * Remove everything related to quilt from debian/rules file. * Remove quilt build-dependency. * Refer explicitly to GPL-2 in the debian/copyright file. * Update Standards-Version to 3.8.4 (no changes needed). * 20-fix-invalid-conversion.diff: Don't write to a char* returned by strchr() on a const char *. Based on a patch from Ubuntu. * 21-dont-link-uselessly.diff: Don't add -lXext -lvorbis -logg explicitly during linking, as we don't need any of their symbols directly. * 22-tighten-up-non-const-chars.diff: Tighten up the use of non-const char pointers in prototypes, so that we don't make any assumptions that string literals can be used as (non-const) char*. Removes a slew of warnings, and probably FTBFS at some future point. -- Steinar H. Gunderson Thu, 06 May 2010 01:56:22 +0200 amoeba (1.1-20) unstable; urgency=low * Reinstate the GUI. * Remove 19-disable-gtk-config-interface.diff. * 19-update-config-interface-to-gtk2.diff: New patch, port GUI to GTK+ 2. (Closes: #511953) * 09-dont-set-gtk-locale.diff: Change to setting C locale explicitly, since GTK+ 2 sets locale unconditionally. Rename to 09-set-c-locale.diff. * Build-depend on libgtk2.0-dev. * Add Recommends on libgtk2.0-0. * Change build-dependency from outdated package from xlibmesa-gl-dev to libgl1-mesa-dev. -- Steinar H. Gunderson Wed, 15 Jul 2009 00:39:47 +0200 amoeba (1.1-19.1) unstable; urgency=low * Non-maintainer upload. * Disable GUI configuration interface, based on GTK 1.2, which is scheduled for removal. The configuration settings can still be set on the command line. (Closes: 511953) -- Moritz Muehlenhoff Sun, 22 Feb 2009 12:09:22 +0100 amoeba (1.1-19) unstable; urgency=low * Update Standards-Version to 3.7.2 (no changes needed). * Update to debhelper compatibility mode version 5 (no changes needed). * Update versioned build-dependency on debhelper. * Don't ignore all make clean errors; use "[ ! -f Makefile ] ||" instead of the hyphen. * Make empty binary-indep target, to make lintian happy. * Remove obsolete DEB_BUILD_OPTIONS checking; we always build with -g anyway, and INSTALL_PROGRAM isn't ever used. * Use nroff escape \[:o] instead of verbatim ISO-8859-1 character ö in the man page. * Switch to quilt for managing patches. * Build-depend on quilt (>= 0.40). * Make debian/patches/ directory. * Include /usr/share/quilt/quilt.make in debian/rules, and depend on patch and unpatch targets. Split clean into a dummy clean and a real-clean, as unpatch fiddles with the Makefile and we thus want unpatch to run after make clean. (Actually, clean needs to patch first, then clean, then unpatch. Yes, it's kind of silly.) * Split monolithic diff into smaller diffs (and clean up some of them): * 01-debian-policy-cflags.diff: Policy-compliant CFLAGS/CXXFLAGS. * 02-executable-filename.diff: Call output executable "amoeba". * 03-shell-in-makefile.diff: Use $(shell foo) instead of `foo`. * 04-install-target.diff: Add an install target to the Makefile. * 05-nudge-texcoords.diff: Various "nudges" to texture coordinates to avoid gaps. (Note: I've since found out that the notion of "nudging" is all wrong and will probably cause some smearing of the texture. However, there are so many broken drivers out there, and the problem in backgroundhandler.cpp will probably require border texels and other ugliness, so I'm leaving it as-is for now.) [minor tidying done] * 06-proper-curve-cleaning.diff: Handle the special case "hashtable of curves", so that the destructors are called properly. [minor tidying done] * 07-drop-compiled-vertex-arrays.diff: Don't use compiled vertex arrays in twisthandler; I believe this was done in its time to work around a bug in the ATI FireGL drivers. Probably fixed now, but I don't have the opportunity to check right now, so it's staying for now. [minor tidying done] * 08-single-point-spline.diff: Handle the special case of a single-point spline correctly, without causing Valgrind hits. [minor tidying done] * 09-dont-set-gtk-locale.diff: Don't set the (GTK) locale, as it causes problems reading the object files depending on LC_CTYPE. * 10-xopendisplay.diff: Give NULL instead of 0 to XOpenDisplay (as it expects a char *; it's only cosmetic, though), and give a proper error message if it fails, instead of crashing. [minor tidying done] * 11-friendly-error-messages.diff: Give slightly friendlier messages in common, fatal error situations. [minor tidying done] * 12-i386-asm.diff: Don't try to use i386 assembler on non-i386 platforms. * 13-libpng-64-bit-fixes.diff: Fix PNG loading issues on systems where sizeof(png_uint_32) > sizeof(unsigned int). * 14-properly-delete-vfcache.diff: Use delete[] instead of delete on vfcache, as it was allocated using new[]. * 15-fix-pakfile-endianness.diff: Make the packer work regardless of system endianness. * 16-pakfile-debian-location.diff: Make the packer look for the pakfile where the amoeba-data package puts it, instead of in the local directory. * 17-fix-audio-endianness.diff: Make the audio system work properly regardless of system endianness. * 18-declare-glxgetprocaddressarb.diff: Manually declare glXGetProcAddressARB, as not all OpenGL headers do. [minor tidying done] * Two patches were dropped from the monolithic diff: * The first change caused wglGetProcAddressARB() to be used instead of wglGetProcAddress() on Windows, which is irrelevant for Debian. * The other change used "static struct" instead of "struct" in the global texture array, without any apparent reason. -- Steinar H. Gunderson Fri, 29 Jun 2007 12:02:25 +0200 amoeba (1.1-18) unstable; urgency=low * Fix a few typos in the man page; patch from A Costa. (Closes: #351003) -- Steinar H. Gunderson Sun, 20 May 2007 11:51:25 +0200 amoeba (1.1-17) unstable; urgency=low * Yet another GLU transition; build-depend on libglu1-mesa-dev this time. -- Steinar H. Gunderson Tue, 4 Jul 2006 20:47:28 +0200 amoeba (1.1-16) unstable; urgency=low * Correct typo in Build-dependency, messing up the x.org/gcc4 transition that was supposed to go into -15. (Closes: #318945) -- Steinar H. Gunderson Mon, 18 Jul 2005 22:12:01 +0200 amoeba (1.1-15) unstable; urgency=low * Rebuild for X.org transition. * Updated GLU Build-dependency to "libglu1-xorg-dev | libglu-dev". * Changed the Build-dependency on xlibs-static-dev to libxxf86vm-dev. * Update Standard-Version to 3.6.2 (no changes needed). * Change from `foo-config` to $(shell foo-config) style in Makefile. -- Steinar H. Gunderson Sun, 17 Jul 2005 10:26:15 +0200 amoeba (1.1-14) unstable; urgency=low * Rebuilt using g++ 4.0, as per the Debian GCC 4.0 Transition plan. -- Steinar H. Gunderson Wed, 6 Jul 2005 00:48:12 +0200 amoeba (1.1-13) unstable; urgency=low * Rebuild in a clean sid chroot (using pbuilder), to avoid dependency on gcc-4.0 libgcc. (Closes: #292093) -- Steinar H. Gunderson Wed, 26 Jan 2005 23:03:51 +0100 amoeba (1.1-12) unstable; urgency=low * Stop using anonymous types for non-local variables, to make amoeba compile with gcc-4.0. Patch from Andreas Jochens, thanks. :-) (Closes: #289836) * Don't Build-Depend on libstdc++, as it's already build-essential. (Closes: #268599) * De-capitalize first letter of synopsis (fixes lintian warning). -- Steinar H. Gunderson Mon, 24 Jan 2005 05:18:49 +0100 amoeba (1.1-11) unstable; urgency=high * Use temporary variables for width and height in image/png_image.cpp, which should fix the loading problems for systems where sizeof(png_uint_32) is not 32 bits (!). -- Steinar H. Gunderson Sun, 14 Nov 2004 16:13:27 +0100 amoeba (1.1-10) unstable; urgency=low * Changed _back_ to glXGetProcAddressARB, as nVidia's drivers can't handle glXGetProcAddress and nVidia refuses to fix it. (Closes: #244197) -- Steinar H. Gunderson Wed, 5 May 2004 01:39:19 +0200 amoeba (1.1-9) unstable; urgency=low * Replaced xlibmesa3-dev and xlibmesa3-glu-dev with the correct XFree 4.3 -dev packages. (Closes: #235009) -- Steinar H. Gunderson Fri, 27 Feb 2004 02:16:17 +0100 amoeba (1.1-8) unstable; urgency=low * Changed maintainer field to match my new e-mail address (and remove the quotes around my real name, which should never have been there in the first place). * Removed DH_COMPAT from debian/rules; moved it into debian/compat instead. Upped the value to 4 and made the required changes to debian/control, as well as upped the version number of the dependency. * Split xlibs-dev build-dependency into smaller dependencies, as per the new X (4.3.0) -dev packaging system. * Renamed glXGetProcAddressARB calls to glXGetProcAddress, as most of the GLX build headers seem to have made the change now. This should make the package build from source again. Updated the Build-Depends: from xlibmesa-dev to libgl-dev accordingly. * Added "preferred alternatives" to the libgl-dev and libglu-dev dependencies, so pbuilder won't pick conflicting providers for them. -- Steinar H. Gunderson Thu, 26 Feb 2004 02:42:52 +0100 amoeba (1.1-7) unstable; urgency=low * Work around a bug in ATIs FireGL drivers, causing a segfault on ATI cards. (Closes: #224005) * Fix a bug causing dark lines in certain resolutions on certain graphics cards. * Build with optimization again. * Minor cleanups in debian/rules. * Reworded package description. * Upgraded the Standards-version to 3.6.1: * Converted the changelog to UTF-8. * Change build-dependencies to avoid FTBFS with newer mesag-dev. * Edited debian/copyright a bit to specify more clearly that amoeba is licensed under the GPL _v2_, not just any version. (This does not change the license; it has been GPL v2 all along, debian/copyright just was not clear enough.) -- Steinar H. Gunderson Mon, 15 Dec 2003 17:45:57 +0100 amoeba (1.1-6) unstable; urgency=low * Fixed a typo in debian/control. * Cleaned up the build scripts a bit. * Corrected the partyplace in debian/control (Underscore is in Gothenburg, not Jonköping). * Rebuilt using g++ 3.2, as per the Debian GCC 3.2 Transition plan. This also makes sure amoeba depends on the correct Ogg Vorbis libraries. * Made some of the OpenGL error messages give hints about what might be wrong, to make it easier for users with broken OpenGL setups. * Added package conflict on mesag3, since the executable already checks for direct rendering, and Mesa cannot provide that. * Upgraded the Standards-Version to 3.5.8 (no changes needed). * amoeba is now Valgrind-clean. -- Steinar H. Gunderson Wed, 09 Apr 2003 22:28:18 +0200 amoeba (1.1-5) unstable; urgency=medium * 1.1-4 broke compressed file loading on x86 (argh) -- fixed it again. (Closes: #173207) -- Steinar H. Gunderson Sun, 15 Dec 2002 13:52:37 +0100 amoeba (1.1-4) unstable; urgency=medium * The sound device is now no longer opened for read/write, which caused problems on some sound cards. (Closes: #170640) * Sound should now _really_ not be garbled on big-endian systems -- Vorbis audio was always read as little endian, causing problems on big-endian systems. Also, compressed file loading should no longer fail on big-endian systems. (Closes: #170614) * Now compiling without -fomit-frame-pointer, so exception handling works properly. * Also compiling with -g, to follow Debian policy better. * Failure to open a connection the X server is now handled correctly with an exception instead of a segmentation fault. -- Steinar H. Gunderson Mon, 25 Nov 2002 13:09:48 +0100 amoeba (1.1-3) unstable; urgency=medium * Should now compile on 64-bit platforms. (Closes: #168895) -- Steinar H. Gunderson Thu, 14 Nov 2002 02:21:07 +0100 amoeba (1.1-2) unstable; urgency=medium * Do not include x86-specific assembler in non-x86 ports. (Closes: #167892) * Sound should no longer be garbled on big-endian systems. -- Steinar H. Gunderson Tue, 05 Nov 2002 17:10:08 +0100 amoeba (1.1-1) unstable; urgency=low * Initial release for Debian. -- Steinar H. Gunderson Sat, 26 Oct 2002 02:07:23 +0200