summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/Picasso96.h171
-rw-r--r--m68k-unknown-amigaos/recipes/files/ndk/sys-include/libraries/Picasso96.h374
-rw-r--r--m68k-unknown-amigaos/recipes/files/ndk/sys-include/proto/Picasso96API.h23
3 files changed, 568 insertions, 0 deletions
diff --git a/m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/Picasso96.h b/m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/Picasso96.h
new file mode 100644
index 0000000..74443cb
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/Picasso96.h
@@ -0,0 +1,171 @@
+/* Automatically generated header! Do not edit! */
+
+#ifndef _INLINE_PICASSO96API_H
+#define _INLINE_PICASSO96API_H
+
+#ifndef __INLINE_MACROS_H
+#include <inline/macros.h>
+#endif /* !__INLINE_MACROS_H */
+
+#ifndef PICASSO96API_BASE_NAME
+#define PICASSO96API_BASE_NAME P96Base
+#endif /* !PICASSO96API_BASE_NAME */
+
+#define p96AllocBitMap(SizeX, SizeY, Depth, Flags, Friend, RGBFormat) \
+ LP6(0x1e, struct BitMap *, p96AllocBitMap, ULONG, SizeX, d0, ULONG, SizeY, d1, ULONG, Depth, d2, ULONG, Flags, d3, struct BitMap *, Friend, a0, RGBFTYPE, RGBFormat, d7, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96AllocModeListTagList(Tags) \
+ LP1(0x48, struct List *, p96AllocModeListTagList, struct TagItem *, Tags, a0, \
+ , PICASSO96API_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define p96AllocModeListTags(tags...) \
+ ({ULONG _tags[] = { tags }; p96AllocModeListTagList((struct TagItem *)_tags);})
+#endif /* !NO_INLINE_STDARG */
+
+#define p96BestModeIDTagList(Tags) \
+ LP1(0x3c, ULONG, p96BestModeIDTagList, struct TagItem *, Tags, a0, \
+ , PICASSO96API_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define p96BestModeIDTags(tags...) \
+ ({ULONG _tags[] = { tags }; p96BestModeIDTagList((struct TagItem *)_tags);})
+#endif /* !NO_INLINE_STDARG */
+
+#define p96CloseScreen(Screen_) \
+ LP1(0x60, BOOL, p96CloseScreen, struct Screen *, Screen_, a0, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96EncodeColor(RGBFormat, Color) \
+ LP2(0xc0, ULONG, p96EncodeColor, RGBFTYPE, RGBFormat, d0, ULONG, Color, d1, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96FreeBitMap(BitMap_) \
+ LP1NR(0x24, p96FreeBitMap, struct BitMap *, BitMap_, a0, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96FreeModeList(List_) \
+ LP1NR(0x4e, p96FreeModeList, struct List *, List_, a0, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96GetBitMapAttr(BitMap_, Attribute) \
+ LP2(0x2a, ULONG, p96GetBitMapAttr, struct BitMap *, BitMap_, a0, ULONG, Attribute, d0, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96GetBoardDataTagList(Board, Tags) \
+ LP2(0xba, LONG, p96GetBoardDataTagList, ULONG, Board, d0, struct TagItem *, Tags, a0, \
+ , PICASSO96API_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define p96GetBoardDataTags(a0, tags...) \
+ ({ULONG _tags[] = { tags }; p96GetBoardDataTagList((a0), (struct TagItem *)_tags);})
+#endif /* !NO_INLINE_STDARG */
+
+#define p96GetModeIDAttr(Mode, Attribute) \
+ LP2(0x54, ULONG, p96GetModeIDAttr, ULONG, Mode, d0, ULONG, Attribute, d1, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96GetRTGDataTagList(Tags) \
+ LP1(0xb4, LONG, p96GetRTGDataTagList, struct TagItem *, Tags, a0, \
+ , PICASSO96API_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define p96GetRTGDataTags(tags...) \
+ ({ULONG _tags[] = { tags }; p96GetRTGDataTagList((struct TagItem *)_tags);})
+#endif /* !NO_INLINE_STDARG */
+
+#define p96LockBitMap(BitMap_, Buffer, Size) \
+ LP3(0x30, LONG, p96LockBitMap, struct BitMap *, BitMap_, a0, UBYTE *, Buffer, a1, ULONG, Size, d0, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96OpenScreenTagList(Tags) \
+ LP1(0x5a, struct Screen *, p96OpenScreenTagList, struct TagItem *, Tags, a0, \
+ , PICASSO96API_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define p96OpenScreenTags(tags...) \
+ ({ULONG _tags[] = { tags }; p96OpenScreenTagList((struct TagItem *)_tags);})
+#endif /* !NO_INLINE_STDARG */
+
+#define p96PIP_Close(Window_) \
+ LP1(0x96, BOOL, p96PIP_Close, struct Window *, Window_, a0, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96PIP_GetIMsg(Port) \
+ LP1(0xa8, struct IntuiMessage *, p96PIP_GetIMsg, struct MsgPort *, Port, a0, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96PIP_GetTagList(Window_, Tags) \
+ LP2(0xa2, LONG, p96PIP_GetTagList, struct Window *, Window_, a0, struct TagItem *, Tags, a1, \
+ , PICASSO96API_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define p96PIP_GetTags(a0, tags...) \
+ ({ULONG _tags[] = { tags }; p96PIP_GetTagList((a0), (struct TagItem *)_tags);})
+#endif /* !NO_INLINE_STDARG */
+
+#define p96PIP_OpenTagList(Tags) \
+ LP1(0x90, struct Window *, p96PIP_OpenTagList, struct TagItem *, Tags, a0, \
+ , PICASSO96API_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define p96PIP_OpenTags(tags...) \
+ ({ULONG _tags[] = { tags }; p96PIP_OpenTagList((struct TagItem *)_tags);})
+#endif /* !NO_INLINE_STDARG */
+
+#define p96PIP_ReplyIMsg(IntuiMessage_) \
+ LP1NR(0xae, p96PIP_ReplyIMsg, struct IntuiMessage *, IntuiMessage_, a1, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96PIP_SetTagList(Window_, Tags) \
+ LP2(0x9c, LONG, p96PIP_SetTagList, struct Window *, Window_, a0, struct TagItem *, Tags, a1, \
+ , PICASSO96API_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define p96PIP_SetTags(a0, tags...) \
+ ({ULONG _tags[] = { tags }; p96PIP_SetTagList((a0), (struct TagItem *)_tags);})
+#endif /* !NO_INLINE_STDARG */
+
+#define p96ReadPixel(rp, x, y) \
+ LP3(0x78, ULONG, p96ReadPixel, struct RastPort *, rp, a1, UWORD, x, d0, UWORD, y, d1, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96ReadPixelArray(ri, DestX, DestY, rp, SrcX, SrcY, SizeX, SizeY) \
+ LP8NR(0x6c, p96ReadPixelArray, struct RenderInfo *, ri, a0, UWORD, DestX, d0, UWORD, DestY, d1, struct RastPort *, rp, a1, UWORD, SrcX, d2, UWORD, SrcY, d3, UWORD, SizeX, d4, UWORD, SizeY, d5, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96ReadTrueColorData(tci, DestX, DestY, rp, SrcX, SrcY, SizeX, SizeY) \
+ LP8NR(0x8a, p96ReadTrueColorData, struct TrueColorInfo *, tci, a0, UWORD, DestX, d0, UWORD, DestY, d1, struct RastPort *, rp, a1, UWORD, SrcX, d2, UWORD, SrcY, d3, UWORD, SizeX, d4, UWORD, SizeY, d5, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96RectFill(rp, MinX, MinY, MaxX, MaxY, color) \
+ LP6NR(0x7e, p96RectFill, struct RastPort *, rp, a1, UWORD, MinX, d0, UWORD, MinY, d1, UWORD, MaxX, d2, UWORD, MaxY, d3, ULONG, color, d4, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96RequestModeIDTagList(Tags) \
+ LP1(0x42, ULONG, p96RequestModeIDTagList, struct TagItem *, Tags, a0, \
+ , PICASSO96API_BASE_NAME)
+
+#ifndef NO_INLINE_STDARG
+#define p96RequestModeIDTags(tags...) \
+ ({ULONG _tags[] = { tags }; p96RequestModeIDTagList((struct TagItem *)_tags);})
+#endif /* !NO_INLINE_STDARG */
+
+#define p96UnlockBitMap(BitMap_, Lock) \
+ LP2NR(0x36, p96UnlockBitMap, struct BitMap *, BitMap_, a0, LONG, Lock, d0, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96WritePixel(rp, x, y, color) \
+ LP4(0x72, ULONG, p96WritePixel, struct RastPort *, rp, a1, UWORD, x, d0, UWORD, y, d1, ULONG, color, d2, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96WritePixelArray(ri, SrcX, SrcY, rp, DestX, DestY, SizeX, SizeY) \
+ LP8NR(0x66, p96WritePixelArray, struct RenderInfo *, ri, a0, UWORD, SrcX, d0, UWORD, SrcY, d1, struct RastPort *, rp, a1, UWORD, DestX, d2, UWORD, DestY, d3, UWORD, SizeX, d4, UWORD, SizeY, d5, \
+ , PICASSO96API_BASE_NAME)
+
+#define p96WriteTrueColorData(tci, SrcX, SrcY, rp, DestX, DestY, SizeX, SizeY) \
+ LP8NR(0x84, p96WriteTrueColorData, struct TrueColorInfo *, tci, a0, UWORD, SrcX, d0, UWORD, SrcY, d1, struct RastPort *, rp, a1, UWORD, DestX, d2, UWORD, DestY, d3, UWORD, SizeX, d4, UWORD, SizeY, d5, \
+ , PICASSO96API_BASE_NAME)
+
+#endif /* !_INLINE_PICASSO96API_H */
diff --git a/m68k-unknown-amigaos/recipes/files/ndk/sys-include/libraries/Picasso96.h b/m68k-unknown-amigaos/recipes/files/ndk/sys-include/libraries/Picasso96.h
new file mode 100644
index 0000000..a9fcd49
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/files/ndk/sys-include/libraries/Picasso96.h
@@ -0,0 +1,374 @@
+/* Picasso96.h -- include File
+ * (C) Copyright 1996-98 Alexander Kneer & Tobias Abt
+ * All Rights Reserved.
+ */
+/************************************************************************/
+#ifndef LIBRARIES_PICASSO96_H
+#define LIBRARIES_PICASSO96_H
+/************************************************************************/
+/* includes
+ */
+#ifndef EXEC_TYPES_H
+#include <exec/types.h>
+#endif
+
+#ifndef EXEC_NODES_H
+#include <exec/nodes.h>
+#endif
+
+#ifndef UTILITY_TAGITEM_H
+#include <utility/tagitem.h>
+#endif
+
+/************************************************************************/
+/* This is the name of the library
+ */
+#define P96NAME "Picasso96API.library"
+
+/************************************************************************/
+/* Types for RGBFormat used
+ */
+typedef enum {
+ RGBFB_NONE, /* no valid RGB format (should not happen) */
+ RGBFB_CLUT, /* palette mode, set colors when opening screen using
+ tags or use SetRGB32/LoadRGB32(...) */
+ RGBFB_R8G8B8, /* TrueColor RGB (8 bit each) */
+ RGBFB_B8G8R8, /* TrueColor BGR (8 bit each) */
+ RGBFB_R5G6B5PC, /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
+ format: gggbbbbbrrrrrggg */
+ RGBFB_R5G5B5PC, /* HiColor15 (5 bit each), format: gggbbbbb0rrrrrgg */
+ RGBFB_A8R8G8B8, /* 4 Byte TrueColor ARGB (A unused alpha channel) */
+ RGBFB_A8B8G8R8, /* 4 Byte TrueColor ABGR (A unused alpha channel) */
+ RGBFB_R8G8B8A8, /* 4 Byte TrueColor RGBA (A unused alpha channel) */
+ RGBFB_B8G8R8A8, /* 4 Byte TrueColor BGRA (A unused alpha channel) */
+ RGBFB_R5G6B5, /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
+ format: rrrrrggggggbbbbb */
+ RGBFB_R5G5B5, /* HiColor15 (5 bit each), format: 0rrrrrgggggbbbbb */
+ RGBFB_B5G6R5PC, /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
+ format: gggrrrrrbbbbbggg */
+ RGBFB_B5G5R5PC, /* HiColor15 (5 bit each), format: gggrrrrr0bbbbbbgg */
+
+ /* By now, the following formats are for use with a hardware window only
+ (bitmap operations may be implemented incompletely) */
+
+ RGBFB_Y4U2V2, /* 2 Byte TrueColor YUV (CCIR recommendation CCIR601).
+ Each two-pixel unit is stored as one longword
+ containing luminance (Y) for each of the two pixels,
+ and chrominance (U,V) for alternate pixels.
+ The missing chrominance values are generated by
+ interpolation. (Y1-U0-Y0-V0) */
+ RGBFB_Y4U1V1, /* 1 Byte TrueColor ACCUPAK. Four adjacent pixels form
+ a packet of 5 bits Y (luminance) each pixel and 6 bits
+ U and V (chrominance) shared by the four pixels */
+
+ RGBFB_MaxFormats
+ } RGBFTYPE;
+
+#define RGBFF_NONE (1<<RGBFB_NONE)
+#define RGBFF_CLUT (1<<RGBFB_CLUT)
+#define RGBFF_R8G8B8 (1<<RGBFB_R8G8B8)
+#define RGBFF_B8G8R8 (1<<RGBFB_B8G8R8)
+#define RGBFF_R5G6B5PC (1<<RGBFB_R5G6B5PC)
+#define RGBFF_R5G5B5PC (1<<RGBFB_R5G5B5PC)
+#define RGBFF_A8R8G8B8 (1<<RGBFB_A8R8G8B8)
+#define RGBFF_A8B8G8R8 (1<<RGBFB_A8B8G8R8)
+#define RGBFF_R8G8B8A8 (1<<RGBFB_R8G8B8A8)
+#define RGBFF_B8G8R8A8 (1<<RGBFB_B8G8R8A8)
+#define RGBFF_R5G6B5 (1<<RGBFB_R5G6B5)
+#define RGBFF_R5G5B5 (1<<RGBFB_R5G5B5)
+#define RGBFF_B5G6R5PC (1<<RGBFB_B5G6R5PC)
+#define RGBFF_B5G5R5PC (1<<RGBFB_B5G5R5PC)
+#define RGBFF_Y4U2V2 (1<<RGBFB_Y4U2V2)
+#define RGBFF_Y4U1V1 (1<<RGBFB_Y4U1V1)
+
+#define RGBFF_HICOLOR (RGBFF_R5G6B5PC|RGBFF_R5G5B5PC|RGBFF_R5G6B5|RGBFF_R5G5B5|RGBFF_B5G6R5PC|RGBFF_B5G5R5PC)
+#define RGBFF_TRUECOLOR (RGBFF_R8G8B8|RGBFF_B8G8R8)
+#define RGBFF_TRUEALPHA (RGBFF_A8R8G8B8|RGBFF_A8B8G8R8|RGBFF_R8G8B8A8|RGBFF_B8G8R8A8)
+
+/************************************************************************/
+/* Flags for p96AllocBitMap
+ */
+#define BMF_USERPRIVATE (0x8000) /* private user bitmap that will never
+ be put to a board, but may be used as a temporary render buffer and accessed
+ with OS blit functions, too. Bitmaps allocated with this flag do not need to
+ be locked. */
+
+/************************************************************************/
+/* Attributes for p96GetBitMapAttr
+ */
+enum {
+ P96BMA_WIDTH,
+ P96BMA_HEIGHT,
+ P96BMA_DEPTH,
+ P96BMA_MEMORY,
+ P96BMA_BYTESPERROW,
+ P96BMA_BYTESPERPIXEL,
+ P96BMA_BITSPERPIXEL,
+ P96BMA_RGBFORMAT,
+ P96BMA_ISP96,
+ P96BMA_ISONBOARD,
+ P96BMA_BOARDMEMBASE,
+ P96BMA_BOARDIOBASE,
+ P96BMA_BOARDMEMIOBASE
+};
+
+/************************************************************************/
+/* Attributes for p96GetModeIDAttr
+ */
+enum {
+ P96IDA_WIDTH,
+ P96IDA_HEIGHT,
+ P96IDA_DEPTH,
+ P96IDA_BYTESPERPIXEL,
+ P96IDA_BITSPERPIXEL,
+ P96IDA_RGBFORMAT,
+ P96IDA_ISP96,
+ P96IDA_BOARDNUMBER,
+ P96IDA_STDBYTESPERROW,
+ P96IDA_BOARDNAME,
+ P96IDA_COMPATIBLEFORMATS,
+ P96IDA_VIDEOCOMPATIBLE,
+ P96IDA_PABLOIVCOMPATIBLE,
+ P96IDA_PALOMAIVCOMPATIBLE
+};
+
+/************************************************************************/
+/* Tags for p96BestModeIDTagList
+ */
+#define P96BIDTAG_Dummy (TAG_USER + 96)
+
+#define P96BIDTAG_FormatsAllowed (P96BIDTAG_Dummy + 0x0001)
+#define P96BIDTAG_FormatsForbidden (P96BIDTAG_Dummy + 0x0002)
+#define P96BIDTAG_NominalWidth (P96BIDTAG_Dummy + 0x0003)
+#define P96BIDTAG_NominalHeight (P96BIDTAG_Dummy + 0x0004)
+#define P96BIDTAG_Depth (P96BIDTAG_Dummy + 0x0005)
+#define P96BIDTAG_VideoCompatible (P96BIDTAG_Dummy + 0x0006)
+#define P96BIDTAG_PabloIVCompatible (P96BIDTAG_Dummy + 0x0007)
+#define P96BIDTAG_PalomaIVCompatible (P96BIDTAG_Dummy + 0x0008)
+
+/************************************************************************/
+/* Tags for p96RequestModeIDTagList
+ */
+
+#define P96MA_Dummy (TAG_USER + 0x10000 + 96)
+
+#define P96MA_MinWidth (P96MA_Dummy + 0x0001)
+#define P96MA_MinHeight (P96MA_Dummy + 0x0002)
+#define P96MA_MinDepth (P96MA_Dummy + 0x0003)
+#define P96MA_MaxWidth (P96MA_Dummy + 0x0004)
+#define P96MA_MaxHeight (P96MA_Dummy + 0x0005)
+#define P96MA_MaxDepth (P96MA_Dummy + 0x0006)
+#define P96MA_DisplayID (P96MA_Dummy + 0x0007)
+#define P96MA_FormatsAllowed (P96MA_Dummy + 0x0008)
+#define P96MA_FormatsForbidden (P96MA_Dummy + 0x0009)
+#define P96MA_WindowTitle (P96MA_Dummy + 0x000a)
+#define P96MA_OKText (P96MA_Dummy + 0x000b)
+#define P96MA_CancelText (P96MA_Dummy + 0x000c)
+#define P96MA_Window (P96MA_Dummy + 0x000d)
+#define P96MA_PubScreenName (P96MA_Dummy + 0x000e)
+#define P96MA_Screen (P96MA_Dummy + 0x000f)
+#define P96MA_VideoCompatible (P96MA_Dummy + 0x0010)
+#define P96MA_PabloIVCompatible (P96MA_Dummy + 0x0011)
+#define P96MA_PalomaIVCompatible (P96MA_Dummy + 0x0012)
+
+/************************************************************************/
+/* Tags for p96OpenScreenTagList
+ */
+
+#define P96SA_Dummy (TAG_USER + 0x20000 + 96)
+#define P96SA_Left (P96SA_Dummy + 0x0001)
+#define P96SA_Top (P96SA_Dummy + 0x0002)
+#define P96SA_Width (P96SA_Dummy + 0x0003)
+#define P96SA_Height (P96SA_Dummy + 0x0004)
+#define P96SA_Depth (P96SA_Dummy + 0x0005)
+#define P96SA_DetailPen (P96SA_Dummy + 0x0006)
+#define P96SA_BlockPen (P96SA_Dummy + 0x0007)
+#define P96SA_Title (P96SA_Dummy + 0x0008)
+#define P96SA_Colors (P96SA_Dummy + 0x0009)
+#define P96SA_ErrorCode (P96SA_Dummy + 0x000a)
+#define P96SA_Font (P96SA_Dummy + 0x000b)
+#define P96SA_SysFont (P96SA_Dummy + 0x000c)
+#define P96SA_Type (P96SA_Dummy + 0x000d)
+#define P96SA_BitMap (P96SA_Dummy + 0x000e)
+#define P96SA_PubName (P96SA_Dummy + 0x000f)
+#define P96SA_PubSig (P96SA_Dummy + 0x0010)
+#define P96SA_PubTask (P96SA_Dummy + 0x0011)
+#define P96SA_DisplayID (P96SA_Dummy + 0x0012)
+#define P96SA_DClip (P96SA_Dummy + 0x0013)
+#define P96SA_ShowTitle (P96SA_Dummy + 0x0014)
+#define P96SA_Behind (P96SA_Dummy + 0x0015)
+#define P96SA_Quiet (P96SA_Dummy + 0x0016)
+#define P96SA_AutoScroll (P96SA_Dummy + 0x0017)
+#define P96SA_Pens (P96SA_Dummy + 0x0018)
+#define P96SA_SharePens (P96SA_Dummy + 0x0019)
+#define P96SA_BackFill (P96SA_Dummy + 0x001a)
+#define P96SA_Colors32 (P96SA_Dummy + 0x001b)
+#define P96SA_VideoControl (P96SA_Dummy + 0x001c)
+#define P96SA_RGBFormat (P96SA_Dummy + 0x001d)
+#define P96SA_NoSprite (P96SA_Dummy + 0x001e)
+#define P96SA_NoMemory (P96SA_Dummy + 0x001f)
+#define P96SA_RenderFunc (P96SA_Dummy + 0x0020)
+#define P96SA_SaveFunc (P96SA_Dummy + 0x0021)
+#define P96SA_UserData (P96SA_Dummy + 0x0022)
+#define P96SA_Alignment (P96SA_Dummy + 0x0023)
+#define P96SA_FixedScreen (P96SA_Dummy + 0x0024)
+#define P96SA_Exclusive (P96SA_Dummy + 0x0025)
+#define P96SA_ConstantBytesPerRow (P96SA_Dummy + 0x0026)
+
+/************************************************************************/
+/*
+ */
+
+#define MODENAMELENGTH 48
+
+struct P96Mode {
+ struct Node Node;
+ char Description[MODENAMELENGTH];
+ UWORD Width;
+ UWORD Height;
+ UWORD Depth;
+ ULONG DisplayID;
+};
+
+/************************************************************************/
+/* Structure to describe graphics data
+ *
+ * short description of the entries:
+ * Memory: pointer to graphics data
+ * BytesPerRow: distance in bytes between one pixel and its neighbour up
+ * or down.
+ * pad: private, not used.
+ * RGBFormat: RGBFormat of the data.
+ */
+
+struct RenderInfo {
+ APTR Memory;
+ WORD BytesPerRow;
+ WORD pad;
+ RGBFTYPE RGBFormat;
+};
+
+/************************************************************************/
+/* Structure for p96WriteTrueColorData() and p96ReadTrueColorData()
+ *
+ * short description of the entries:
+ * PixelDistance: distance in bytes between the red (must be the same as
+ * for the green or blue) component of one pixel and its
+ * next neighbour to the left or right.
+ * BytesPerRow: distance in bytes between the red (must be the same as
+ * for the green or blue) component of one pixel and its
+ * next neighbour up or down.
+ * RedData: pointer to the red component of the upper left pixel.
+ * GreenData, BlueData: the same as above.
+ *
+ * examples (for an array width of 640 pixels):
+ * a) separate arrays for each color:
+ * { 1, 640, red, green, blue };
+ * b) plain 24 bit RGB data:
+ * { 3, 640*3, array, array+1, array+2 };
+ * c) 24 bit data, arranged as ARGB:
+ * { 4, 640*4, array+1, array+2, array+3 };
+ */
+
+struct TrueColorInfo {
+ ULONG PixelDistance, BytesPerRow;
+ UBYTE *RedData, *GreenData, *BlueData;
+};
+
+/************************************************************************/
+/* Tags for PIPs
+ */
+
+#define P96PIP_Dummy (TAG_USER + 0x30000 + 96)
+#define P96PIP_SourceFormat (P96PIP_Dummy+1) /* RGBFTYPE (I) */
+#define P96PIP_SourceBitMap (P96PIP_Dummy+2) /* struct BitMap * (G) */
+#define P96PIP_SourceRPort (P96PIP_Dummy+3) /* struct RastPort * (G) */
+#define P96PIP_SourceWidth (P96PIP_Dummy+4) /* ULONG (I) */
+#define P96PIP_SourceHeight (P96PIP_Dummy+5) /* ULONG (I) */
+#define P96PIP_Type (P96PIP_Dummy+6) /* ULONG (I) default: PIPT_MemoryWindow */
+#define P96PIP_ErrorCode (P96PIP_Dummy+7) /* LONG* (I) */
+#define P96PIP_Brightness (P96PIP_Dummy+8) /* ULONG (IGS) default: 0 */
+#define P96PIP_Left (P96PIP_Dummy+9) /* ULONG (I) default: 0 */
+#define P96PIP_Top (P96PIP_Dummy+10) /* ULONG (I) default: 0 */
+#define P96PIP_Width (P96PIP_Dummy+11) /* ULONG (I) default: inner width of window */
+#define P96PIP_Height (P96PIP_Dummy+12) /* ULONG (I) default: inner height of window */
+#define P96PIP_Relativity (P96PIP_Dummy+13) /* ULONG (I) default: PIPRel_Width|PIPRel_Height */
+#define P96PIP_Colors (P96PIP_Dummy+14) /* struct ColorSpec * (IS)
+ * ti_Data is an array of struct ColorSpec,
+ * terminated by ColorIndex = -1. Specifies
+ * initial screen palette colors.
+ * Also see P96PIP_Colors32.
+ * This only works with CLUT PIPs on non-CLUT
+ * screens. For CLUT PIPs on CLUT screens the
+ * PIP colors share the screen palette.
+ */
+#define P96PIP_Colors32 (P96PIP_Dummy+15) /* ULONG* (IS)
+ * Tag to set the palette colors at 32 bits-per-gun.
+ * ti_Data is a pointer * to a table to be passed to
+ * the graphics.library/LoadRGB32() function.
+ * This format supports both runs of color
+ * registers and sparse registers. See the
+ * autodoc for that function for full details.
+ * Any color set here has precedence over
+ * the same register set by P96PIP_Colors.
+ * This only works with CLUT PIPs on non-CLUT
+ * screens. For CLUT PIPs on CLUT screens the
+ * PIP colors share the screen palette.
+ */
+#define P96PIP_NoMemory (P96PIP_Dummy+16)
+#define P96PIP_RenderFunc (P96PIP_Dummy+17)
+#define P96PIP_SaveFunc (P96PIP_Dummy+18)
+#define P96PIP_UserData (P96PIP_Dummy+19)
+#define P96PIP_Alignment (P96PIP_Dummy+20)
+#define P96PIP_ConstantBytesPerRow (P96PIP_Dummy+21)
+#define P96PIP_AllowCropping (P96PIP_Dummy+22)
+#define P96PIP_InitialIntScaling (P96PIP_Dummy+23)
+
+enum {
+ PIPT_MemoryWindow, /* default */
+ PIPT_VideoWindow,
+ PIPT_NUMTYPES
+};
+
+#define P96PIPT_MemoryWindow PIPT_MemoryWindow
+#define P96PIPT_VideoWindow PIPT_VideoWindow
+
+#define PIPRel_Right 1 /* P96PIP_Left is relative to the right side (negative value) */
+#define PIPRel_Bottom 2 /* P96PIP_Top is relative to the bottom (negative value) */
+#define PIPRel_Width 4 /* P96PIP_Width is amount of pixels not used by PIP at the
+ right side of the window (negative value) */
+#define PIPRel_Height 8 /* P96PIP_Height is amount of pixels not used by PIP at the
+ window bottom (negative value) */
+
+#define PIPERR_NOMEMORY (1) /* couldn't get normal memory */
+#define PIPERR_ATTACHFAIL (2) /* Failed to attach to a screen */
+#define PIPERR_NOTAVAILABLE (3) /* PIP not available for other reason */
+#define PIPERR_OUTOFPENS (4) /* couldn't get a free pen for occlusion */
+#define PIPERR_BADDIMENSIONS (5) /* type, width, height or format invalid */
+#define PIPERR_NOWINDOW (6) /* couldn't open window */
+#define PIPERR_BADALIGNMENT (7) /* specified alignment is not ok */
+#define PIPERR_CROPPED (8) /* pip would be cropped, but isn't allowed to */
+/************************************************************************/
+/* Tags for P96GetRTGDataTagList
+ */
+
+#define P96RD_Dummy (TAG_USER + 0x40000 + 96)
+#define P96RD_NumberOfBoards (P96RD_Dummy+1)
+
+/************************************************************************/
+/* Tags for P96GetBoardDataTagList
+ */
+
+#define P96BD_Dummy (TAG_USER + 0x50000 + 96)
+#define P96BD_BoardName (P96BD_Dummy+1)
+#define P96BD_ChipName (P96BD_Dummy+2)
+#define P96BD_TotalMemory (P96BD_Dummy+4)
+#define P96BD_FreeMemory (P96BD_Dummy+5)
+#define P96BD_LargestFreeMemory (P96BD_Dummy+6)
+#define P96BD_MonitorSwitch (P96BD_Dummy+7)
+#define P96BD_RGBFormats (P96BD_Dummy+8)
+#define P96BD_MemoryClock (P96BD_Dummy+9)
+
+/************************************************************************/
+#endif
+/************************************************************************/
diff --git a/m68k-unknown-amigaos/recipes/files/ndk/sys-include/proto/Picasso96API.h b/m68k-unknown-amigaos/recipes/files/ndk/sys-include/proto/Picasso96API.h
new file mode 100644
index 0000000..42665fa
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/files/ndk/sys-include/proto/Picasso96API.h
@@ -0,0 +1,23 @@
+#ifndef _PROTO_PICASSO96_H
+#define _PROTO_PICASSO96_H
+
+#ifndef EXEC_TYPES_H
+#include <exec/types.h>
+#endif
+#if !defined(CLIB_PICASSO96_PROTOS_H) && !defined(__GNUC__)
+#include <clib/picasso96_protos.h>
+#endif
+
+#ifndef __NOLIBBASE__
+extern struct Library *P96Base;
+#endif
+
+#ifdef __GNUC__
+#include <inline/Picasso96.h>
+#elif defined(__VBCC__)
+#include <inline/picasso96_protos.h>
+#else
+#include <pragma/picasso96_lib.h>
+#endif
+
+#endif /* _PROTO_PICASSO96_H */