summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2016-04-24 18:47:36 +0100
committerChris Young <chris@unsatisfactorysoftware.co.uk>2016-04-24 18:47:36 +0100
commitd5e8c438367ce189956c891421d991678861f762 (patch)
tree35a630106f95131579b2dd29ccabb337800be13e
parenta0011f684de60a4af0bf300a782a5225edd39b79 (diff)
parent28c1803b04f9bb454ddd22749ccd3dffb1255c14 (diff)
downloadtoolchains-d5e8c438367ce189956c891421d991678861f762.tar.gz
toolchains-d5e8c438367ce189956c891421d991678861f762.tar.bz2
Add guigfx and render.library includes for AmigaOS targets.
This allows us to do more efficient bitmap colour reduction, ideal for 68k/AGA Merge branch 'chris/guigfx'
-rw-r--r--m68k-unknown-amigaos/Makefile21
-rw-r--r--m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/guigfx.h224
-rw-r--r--ppc-amigaos/Makefile20
3 files changed, 263 insertions, 2 deletions
diff --git a/m68k-unknown-amigaos/Makefile b/m68k-unknown-amigaos/Makefile
index 1adc7ce..b672b60 100644
--- a/m68k-unknown-amigaos/Makefile
+++ b/m68k-unknown-amigaos/Makefile
@@ -31,6 +31,12 @@ UPSTREAM_OPENURL_VERSION := 7.16
UPSTREAM_OPENURL_TARBALL := openurl-$(UPSTREAM_OPENURL_VERSION)
UPSTREAM_OPENURL_URI := https://github.com/jens-maus/libopenurl/archive/$(UPSTREAM_OPENURL_VERSION).tar.gz
+UPSTREAM_GUIGFX_TARBALL := guigfxlib.lha
+UPSTREAM_GUIGFX_URI := http://neoscientists.org/~bifat/binarydistillery/$(UPSTREAM_GUIGFX_TARBALL)
+
+UPSTREAM_RENDER_TARBALL := renderlib.lha
+UPSTREAM_RENDER_URI := http://neoscientists.org/~bifat/binarydistillery/$(UPSTREAM_RENDER_TARBALL)
+
# need to force the auto* version in use
GCC_AUTOCONF := autoconf2.64
GCC_AUTOHEADER := autoheader2.64
@@ -90,7 +96,7 @@ $(BUILDSTEPS)/clib2.d: $(BUILDSTEPS)/bootstrap-compiler.d $(BUILDSTEPS)/ndk.d $(
# Rules to install the NDK
###
-$(BUILDSTEPS)/ndk.d: $(SOURCESDIR)/$(UPSTREAM_NDK_TARBALL) $(SOURCESDIR)/$(UPSTREAM_OPENURL_TARBALL)
+$(BUILDSTEPS)/ndk.d: $(SOURCESDIR)/$(UPSTREAM_NDK_TARBALL) $(SOURCESDIR)/$(UPSTREAM_OPENURL_TARBALL) $(SOURCESDIR)/$(UPSTREAM_GUIGFX_TARBALL) $(SOURCESDIR)/$(UPSTREAM_RENDER_TARBALL)
mkdir -p $(PREFIX)/$(TARGET_NAME)
tar -C $(PREFIX)/$(TARGET_NAME) --strip-components=2 -xjf $(SOURCESDIR)/$(UPSTREAM_NDK_TARBALL)
for p in `ls $(RECIPES)/patches/ndk/*.p` ; do patch -d $(PREFIX)/$(TARGET_NAME) -p0 <$$p ; done
@@ -99,6 +105,12 @@ $(BUILDSTEPS)/ndk.d: $(SOURCESDIR)/$(UPSTREAM_NDK_TARBALL) $(SOURCESDIR)/$(UPSTR
mkdir -p $(BUILDDIR)/openurl
cd $(BUILDDIR)/openurl && tar xaf $(SOURCESDIR)/$(UPSTREAM_OPENURL_TARBALL)
cp -r $(BUILDDIR)/openurl/libopenurl-$(UPSTREAM_OPENURL_VERSION)/include/* $(PREFIX)/$(TARGET_NAME)/sys-include/
+ mkdir -p $(BUILDDIR)/guigfxlib
+ lha xw=$(BUILDDIR)/guigfxlib $(SOURCESDIR)/$(UPSTREAM_GUIGFX_TARBALL)
+ cp -r $(BUILDDIR)/guigfxlib/include/* $(PREFIX)/$(TARGET_NAME)/sys-include/
+ mkdir -p $(BUILDDIR)/renderlib
+ lha xw=$(BUILDDIR)/renderlib $(SOURCESDIR)/$(UPSTREAM_RENDER_TARBALL)
+ cp -r $(BUILDDIR)/renderlib/renderlib/include/* $(PREFIX)/$(TARGET_NAME)/sys-include/
touch $@
###
@@ -193,6 +205,13 @@ $(SOURCESDIR)/$(UPSTREAM_NDK_TARBALL):
$(SOURCESDIR)/$(UPSTREAM_OPENURL_TARBALL):
wget -q -O $@ $(UPSTREAM_OPENURL_URI)
+$(SOURCESDIR)/$(UPSTREAM_GUIGFX_TARBALL):
+ wget -q -O $@ $(UPSTREAM_GUIGFX_URI)
+
+$(SOURCESDIR)/$(UPSTREAM_RENDER_TARBALL):
+ wget -q -O $@ $(UPSTREAM_RENDER_URI)
+
+
###
# Rule to create buildsteps dir
###
diff --git a/m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/guigfx.h b/m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/guigfx.h
new file mode 100644
index 0000000..a12650a
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/guigfx.h
@@ -0,0 +1,224 @@
+#ifndef _INLINE_GUIGFX_H
+#define _INLINE_GUIGFX_H
+
+#ifndef CLIB_GUIGFX_PROTOS_H
+#define CLIB_GUIGFX_PROTOS_H
+#endif
+
+#ifndef __INLINE_MACROS_H
+#include <inline/macros.h>
+#endif
+
+#ifndef EXEC_TYPES_H
+#include <exec/types.h>
+#endif
+
+#ifndef GUIGFX_BASE_NAME
+#define GUIGFX_BASE_NAME GuiGFXBase
+#endif
+
+#define MakePictureA(array, width, height, tags) \
+ LP4(0x1e, APTR, MakePictureA, APTR, array, a0, UWORD, width, d0, UWORD, height, d1, struct TagItem *, tags, a1, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define MakePicture(array, width, height, tags...) \
+ ({ULONG _tags[] = {tags}; MakePictureA((array), (width), (height), (struct TagItem *) _tags);})
+#endif
+
+#define LoadPictureA(filename, tags) \
+ LP2(0x24, APTR, LoadPictureA, STRPTR, filename, a0, struct TagItem *, tags, a1, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define LoadPicture(filename, tags...) \
+ ({ULONG _tags[] = {tags}; LoadPictureA((filename), (struct TagItem *) _tags);})
+#endif
+
+#define ReadPictureA(a0arg, colormap, x, y, width, height, tags) \
+ LP7(0x2a, APTR, ReadPictureA, struct RastPort *, a0arg, a0, struct ColorMap *, colormap, a1, UWORD, x, d0, UWORD, y, d1, UWORD, width, d2, UWORD, height, d3, struct TagItem *, tags, a2, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define ReadPicture(a0arg, colormap, x, y, width, height, tags...) \
+ ({ULONG _tags[] = {tags}; ReadPictureA((a0arg), (colormap), (x), (y), (width), (height), (struct TagItem *) _tags);})
+#endif
+
+#define ClonePictureA(pic, tags) \
+ LP2(0x30, APTR, ClonePictureA, APTR, pic, a0, struct TagItem *, tags, a1, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define ClonePicture(pic, tags...) \
+ ({ULONG _tags[] = {tags}; ClonePictureA((pic), (struct TagItem *) _tags);})
+#endif
+
+#define DeletePicture(pic) \
+ LP1NR(0x36, DeletePicture, APTR, pic, a0, \
+ , GUIGFX_BASE_NAME)
+
+#define AddPictureA(psm, pic, tags) \
+ LP3(0x42, APTR, AddPictureA, APTR, psm, a0, APTR, pic, a1, struct TagItem *, tags, a2, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define AddPicture(psm, pic, tags...) \
+ ({ULONG _tags[] = {tags}; AddPictureA((psm), (pic), (struct TagItem *) _tags);})
+#endif
+
+#define AddPaletteA(psm, palette, tags) \
+ LP3(0x48, APTR, AddPaletteA, APTR, psm, a0, APTR, palette, a1, struct TagItem *, tags, a2, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define AddPalette(psm, palette, tags...) \
+ ({ULONG _tags[] = {tags}; AddPaletteA((psm), (palette), (struct TagItem *) _tags);})
+#endif
+
+#define AddPixelArrayA(psm, array, width, height, tags) \
+ LP5(0x4e, APTR, AddPixelArrayA, APTR, psm, a0, APTR, array, a1, UWORD, width, d0, UWORD, height, d1, struct TagItem *, tags, a2, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define AddPixelArray(psm, array, width, height, tags...) \
+ ({ULONG _tags[] = {tags}; AddPixelArrayA((psm), (array), (width), (height), (struct TagItem *) _tags);})
+#endif
+
+#define RemColorHandle(colorhandle) \
+ LP1NR(0x54, RemColorHandle, APTR, colorhandle, a0, \
+ , GUIGFX_BASE_NAME)
+
+#define CreatePenShareMapA(tags) \
+ LP1(0x5a, APTR, CreatePenShareMapA, struct TagItem *, tags, a0, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define CreatePenShareMap(tags...) \
+ ({ULONG _tags[] = {tags}; CreatePenShareMapA((struct TagItem *) _tags);})
+#endif
+
+#define DeletePenShareMap(psm) \
+ LP1NR(0x60, DeletePenShareMap, APTR, psm, a0, \
+ , GUIGFX_BASE_NAME)
+
+#define ObtainDrawHandleA(psm, a1arg, cm, tags) \
+ LP4(0x66, APTR, ObtainDrawHandleA, APTR, psm, a0, struct RastPort *, a1arg, a1, struct ColorMap *, cm, a2, struct TagItem *, tags, a3, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define ObtainDrawHandle(psm, a1arg, cm, tags...) \
+ ({ULONG _tags[] = {tags}; ObtainDrawHandleA((psm), (a1arg), (cm), (struct TagItem *) _tags);})
+#endif
+
+#define ReleaseDrawHandle(drawhandle) \
+ LP1NR(0x6c, ReleaseDrawHandle, APTR, drawhandle, a0, \
+ , GUIGFX_BASE_NAME)
+
+#define DrawPictureA(drawhandle, pic, x, y, tags) \
+ LP5(0x72, BOOL, DrawPictureA, APTR, drawhandle, a0, APTR, pic, a1, UWORD, x, d0, UWORD, y, d1, struct TagItem *, tags, a2, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define DrawPicture(drawhandle, pic, x, y, tags...) \
+ ({ULONG _tags[] = {tags}; DrawPictureA((drawhandle), (pic), (x), (y), (struct TagItem *) _tags);})
+#endif
+
+#define MapPaletteA(drawhandle, palette, pentab, tags) \
+ LP4(0x78, BOOL, MapPaletteA, APTR, drawhandle, a0, APTR, palette, a1, UBYTE *, pentab, a2, struct TagItem *, tags, a3, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define MapPalette(drawhandle, palette, pentab, tags...) \
+ ({ULONG _tags[] = {tags}; MapPaletteA((drawhandle), (palette), (pentab), (struct TagItem *) _tags);})
+#endif
+
+#define MapPenA(drawhandle, rgb, tags) \
+ LP3(0x7e, LONG, MapPenA, APTR, drawhandle, a0, ULONG, rgb, a1, struct TagItem *, tags, a2, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define MapPen(drawhandle, rgb, tags...) \
+ ({ULONG _tags[] = {tags}; MapPenA((drawhandle), (rgb), (struct TagItem *) _tags);})
+#endif
+
+#define CreatePictureBitMapA(drawhandle, pic, tags) \
+ LP3(0x84, struct BitMap *, CreatePictureBitMapA, APTR, drawhandle, a0, APTR, pic, a1, struct TagItem *, tags, a2, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define CreatePictureBitMap(drawhandle, pic, tags...) \
+ ({ULONG _tags[] = {tags}; CreatePictureBitMapA((drawhandle), (pic), (struct TagItem *) _tags);})
+#endif
+
+#define DoPictureMethodA(pic, method, arguments) \
+ LP3(0x8a, ULONG, DoPictureMethodA, APTR, pic, a0, ULONG, method, d0, ULONG *, arguments, a1, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define DoPictureMethod(pic, method, tags...) \
+ ({ULONG _tags[] = {tags}; DoPictureMethodA((pic), (method), (ULONG *) _tags);})
+#endif
+
+#define GetPictureAttrsA(pic, tags) \
+ LP2(0x90, ULONG, GetPictureAttrsA, APTR, pic, a0, struct TagItem *, tags, a1, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define GetPictureAttrs(pic, tags...) \
+ ({ULONG _tags[] = {tags}; GetPictureAttrsA((pic), (struct TagItem *) _tags);})
+#endif
+
+#define LockPictureA(pic, mode, args) \
+ LP3(0x96, ULONG, LockPictureA, APTR, pic, a0, ULONG, mode, d0, ULONG *, args, a1, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define LockPicture(pic, mode, tags...) \
+ ({ULONG _tags[] = {tags}; LockPictureA((pic), (mode), (ULONG *) _tags);})
+#endif
+
+#define UnLockPicture(pic, mode) \
+ LP2NR(0x9c, UnLockPicture, APTR, pic, a0, ULONG, mode, d0, \
+ , GUIGFX_BASE_NAME)
+
+#define IsPictureA(filename, tags) \
+ LP2(0xa2, BOOL, IsPictureA, char *, filename, a0, struct TagItem *, tags, a1, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define IsPicture(filename, tags...) \
+ ({ULONG _tags[] = {tags}; IsPictureA((filename), (struct TagItem *) _tags);})
+#endif
+
+#define CreateDirectDrawHandleA(drawhandle, sw, sh, dw, dh, tags) \
+ LP6(0xa8, APTR, CreateDirectDrawHandleA, APTR, drawhandle, a0, UWORD, sw, d0, UWORD, sh, d1, UWORD, dw, d2, UWORD, dh, d3, struct TagItem *, tags, a1, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define CreateDirectDrawHandle(drawhandle, sw, sh, dw, dh, tags...) \
+ ({ULONG _tags[] = {tags}; CreateDirectDrawHandleA((drawhandle), (sw), (sh), (dw), (dh), (struct TagItem *) _tags);})
+#endif
+
+#define DeleteDirectDrawHandle(ddh) \
+ LP1NR(0xae, DeleteDirectDrawHandle, APTR, ddh, a0, \
+ , GUIGFX_BASE_NAME)
+
+#define DirectDrawTrueColorA(ddh, array, x, y, tags) \
+ LP5(0xb4, BOOL, DirectDrawTrueColorA, APTR, ddh, a0, ULONG *, array, a1, UWORD, x, d0, UWORD, y, d1, struct TagItem *, tags, a2, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define DirectDrawTrueColor(ddh, array, x, y, tags...) \
+ ({ULONG _tags[] = {tags}; DirectDrawTrueColorA((ddh), (array), (x), (y), (struct TagItem *) _tags);})
+#endif
+
+#define CreatePictureMaskA(pic, mask, maskwidth, tags) \
+ LP4(0xba, BOOL, CreatePictureMaskA, APTR, pic, a0, UBYTE *, mask, a1, UWORD, maskwidth, d0, struct TagItem *, tags, a2, \
+ , GUIGFX_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define CreatePictureMask(pic, mask, maskwidth, tags...) \
+ ({ULONG _tags[] = {tags}; CreatePictureMaskA((pic), (mask), (maskwidth), (struct TagItem *) _tags);})
+#endif
+
+#endif /* _INLINE_GUIGFX_H */
diff --git a/ppc-amigaos/Makefile b/ppc-amigaos/Makefile
index 51d0c87..efcc485 100644
--- a/ppc-amigaos/Makefile
+++ b/ppc-amigaos/Makefile
@@ -29,6 +29,12 @@ UPSTREAM_ONCHIPMEM_VERSION := 53.1
UPSTREAM_ONCHIPMEM_TARBALL := onchipmem_res-$(UPSTREAM_ONCHIPMEM_VERSION).lha
UPSTREAM_ONCHIPMEM_URI := http://www.acube-systems.biz/download/onchipmem_res-$(UPSTREAM_ONCHIPMEM_VERSION).lha
+UPSTREAM_GUIGFX_TARBALL := guigfxlib.lha
+UPSTREAM_GUIGFX_URI := http://neoscientists.org/~bifat/binarydistillery/$(UPSTREAM_GUIGFX_TARBALL)
+
+UPSTREAM_RENDER_TARBALL := renderlib.lha
+UPSTREAM_RENDER_URI := http://neoscientists.org/~bifat/binarydistillery/$(UPSTREAM_RENDER_TARBALL)
+
# need to force the auto* version in use
GCC_AUTOCONF := autoconf2.64
GCC_AUTOHEADER := autoheader2.64
@@ -79,7 +85,7 @@ $(BUILDSTEPS)/stage2.d: $(BUILDSTEPS)/srcdir-step3.d $(BUILDSTEPS)/binutils.d $(
# Rules to install the NDK
###
-$(BUILDSTEPS)/ndk.d: $(SOURCESDIR)/$(UPSTREAM_NDK_TARBALL) $(SOURCESDIR)/$(UPSTREAM_OPENURL_TARBALL) $(SOURCESDIR)/$(UPSTREAM_ONCHIPMEM_TARBALL)
+$(BUILDSTEPS)/ndk.d: $(SOURCESDIR)/$(UPSTREAM_NDK_TARBALL) $(SOURCESDIR)/$(UPSTREAM_OPENURL_TARBALL) $(SOURCESDIR)/$(UPSTREAM_ONCHIPMEM_TARBALL) $(SOURCESDIR)/$(UPSTREAM_GUIGFX_TARBALL) $(SOURCESDIR)/$(UPSTREAM_RENDER_TARBALL)
mkdir -p $(BUILDDIR)/ndk/tmp/
lha xw=$(BUILDDIR)/ndk $(SOURCESDIR)/$(UPSTREAM_NDK_TARBALL)
lha xw=$(BUILDDIR)/ndk/tmp $(BUILDDIR)/ndk/SDK_Install/base.lha
@@ -97,6 +103,12 @@ $(BUILDSTEPS)/ndk.d: $(SOURCESDIR)/$(UPSTREAM_NDK_TARBALL) $(SOURCESDIR)/$(UPSTR
mkdir -p $(BUILDDIR)/openurl
cd $(BUILDDIR)/openurl && tar xaf $(SOURCESDIR)/$(UPSTREAM_OPENURL_TARBALL)
cp -r $(BUILDDIR)/openurl/libopenurl-$(UPSTREAM_OPENURL_VERSION)/include/* $(PREFIX)/$(TARGET_NAME)/SDK/include/include_h/
+ mkdir -p $(BUILDDIR)/guigfxlib
+ lha xw=$(BUILDDIR)/guigfxlib $(SOURCESDIR)/$(UPSTREAM_GUIGFX_TARBALL)
+ cp -r $(BUILDDIR)/guigfxlib/include_os4/* $(PREFIX)/$(TARGET_NAME)/SDK/include/include_h/
+ mkdir -p $(BUILDDIR)/renderlib
+ lha xw=$(BUILDDIR)/renderlib $(SOURCESDIR)/$(UPSTREAM_RENDER_TARBALL)
+ cp -r $(BUILDDIR)/renderlib/renderlib/include_os4/* $(PREFIX)/$(TARGET_NAME)/SDK/include/include_h/
touch $@
###
@@ -169,6 +181,12 @@ $(SOURCESDIR)/$(UPSTREAM_OPENURL_TARBALL):
$(SOURCESDIR)/$(UPSTREAM_ONCHIPMEM_TARBALL):
wget -q -O $@ $(UPSTREAM_ONCHIPMEM_URI)
+$(SOURCESDIR)/$(UPSTREAM_GUIGFX_TARBALL):
+ wget -q -O $@ $(UPSTREAM_GUIGFX_URI)
+
+$(SOURCESDIR)/$(UPSTREAM_RENDER_TARBALL):
+ wget -q -O $@ $(UPSTREAM_RENDER_URI)
+
###
# Rule to create buildsteps dir
###