os2: remove dependency to gradd.h from IBM's ddk which is non-free: Add a minimal my_gradd.h containing structures and constants only used by SDL_os2vman.c -- based on public knowledge from around the internet including pages from http://www.osfree.org and http://www.edm2.com .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
diff --git a/src/video/os2/SDL_os2vman.c b/src/video/os2/SDL_os2vman.c
index cb2df9d..3fc90e2 100644
--- a/src/video/os2/SDL_os2vman.c
+++ b/src/video/os2/SDL_os2vman.c
@@ -20,6 +20,7 @@
*/
#include "../../SDL_internal.h"
#include "../SDL_sysvideo.h"
+
#define INCL_DOSERRORS
#define INCL_DOSPROCESS
#define INCL_DOSMODULEMGR
@@ -27,15 +28,11 @@
#define INCL_GPI
#define INCL_GPIBITMAPS /* GPI bit map functions */
#include <os2.h>
-#include <gradd.h>
-#if 0 /* not used */
-#define INCL_GRE_DEVICE
-#define INCL_GRE_DEVMISC
-#include <pmddi.h>
-#endif
#include "SDL_os2output.h"
#include "SDL_os2video.h"
+#include "my_gradd.h"
+
typedef struct _VODATA {
PVOID pBuffer;
HRGN hrgnVisible;
diff --git a/src/video/os2/my_gradd.h b/src/video/os2/my_gradd.h
new file mode 100644
index 0000000..026fd71
--- /dev/null
+++ b/src/video/os2/my_gradd.h
@@ -0,0 +1,105 @@
+/*
+gradd.h structures and constants -- only the ones used by SDL_os2vman.c.
+
+Based on public knowledge from around the internet including pages from
+http://www.osfree.org and http://www.edm2.com
+*/
+
+#ifndef my_gradd_h_
+#define my_gradd_h_
+
+typedef struct _INITPROCOUT {
+ ULONG ulLength; /* Length of the INITPROCOUT data structure, in bytes. */
+ ULONG ulVRAMVirt; /* 32-bit virtual address of VRAM. */
+} INITPROCOUT;
+typedef INITPROCOUT *PINITPROCOUT;
+
+#define RC_SUCCESS 0
+
+typedef ULONG GID;
+typedef ULONG (_System FNVMIENTRY) (
+ GID gid, ULONG ulFunction,
+ PVOID pIn,
+ PVOID pOut /* PINITPROCOUT */
+);
+
+#define VMI_CMD_INITPROC 1
+#define VMI_CMD_TERMPROC 3
+#define VMI_CMD_BITBLT 8
+#define VMI_CMD_REQUESTHW 14
+#define VMI_CMD_QUERYCURRENTMODE 0x1001
+
+typedef struct _BMAPINFO {
+ ULONG ulLength; /* Length of the BMAPINFO data structure, in bytes. */
+ ULONG ulType; /* Description of the Blt. */
+ ULONG ulWidth; /* Width in pels of the bit map. */
+ ULONG ulHeight; /* Height in pels of the bit map. */
+ ULONG ulBpp; /* Number of bits per pel/color depth. */
+ ULONG ulBytesPerLine; /* Number of aligned bytes per line. */
+ PBYTE pBits; /* Pointer to bit-map bits. */
+} BMAPINFO;
+typedef BMAPINFO *PBMAPINFO;
+
+#define BMAP_VRAM 0
+#define BMAP_MEMORY 1
+
+typedef struct _BLTRECT {
+ ULONG ulXOrg; /* X origin of the destination Blt. */
+ ULONG ulYOrg; /* Y origin of the destination Blt. */
+ ULONG ulXExt; /* X extent of the BitBlt. */
+ ULONG ulYExt; /* Y extent of the BitBlt. */
+} BLTRECT;
+typedef BLTRECT *PBLTRECT;
+
+typedef struct _BITBLTINFO {
+ ULONG ulLength; /* Length of the BITBLTINFO data structure, in bytes. */
+ ULONG ulBltFlags; /* Flags for rendering of rasterized data. */
+ ULONG cBlits; /* Count of Blts to be performed. */
+ ULONG ulROP; /* Raster operation. */
+ ULONG ulMonoBackROP; /* Background mix if B_APPLY_BACK_ROP is set. */
+ ULONG ulSrcFGColor; /* Monochrome source Foreground color. */
+ ULONG ulSrcBGColor; /* Monochrome source Background color and transparent color. */
+ ULONG ulPatFGColor; /* Monochrome pattern Foreground color. */
+ ULONG ulPatBGColor; /* Monochrome pattern Background color. */
+ PBYTE abColors; /* Pointer to color translation table. */
+ PBMAPINFO pSrcBmapInfo; /* Pointer to source bit map (BMAPINFO) */
+ PBMAPINFO pDstBmapInfo; /* Pointer to destination bit map (BMAPINFO). */
+ PBMAPINFO pPatBmapInfo; /* Pointer to pattern bit map (BMAPINFO). */
+ PPOINTL aptlSrcOrg; /* Pointer to array of source origin POINTLs. */
+ PPOINTL aptlPatOrg; /* Pointer to array of pattern origin POINTLs. */
+ PBLTRECT abrDst; /* Pointer to array of Blt rects. */
+ PRECTL prclSrcBounds; /* Pointer to source bounding rect of source Blts. */
+ PRECTL prclDstBounds; /* Pointer to destination bounding rect of destination Blts. */
+} BITBLTINFO;
+typedef BITBLTINFO *PBITBLTINFO;
+
+#define BF_DEFAULT_STATE 0x0
+#define BF_ROP_INCL_SRC (0x01 << 2)
+#define BF_PAT_HOLLOW (0x01 << 8)
+
+typedef struct _GDDMODEINFO {
+ ULONG ulLength; /* Size of the GDDMODEINFO data structure, in bytes. */
+ ULONG ulModeId; /* ID used to make SETMODE request. */
+ ULONG ulBpp; /* Number of colors (bpp). */
+ ULONG ulHorizResolution;/* Number of horizontal pels. */
+ ULONG ulVertResolution; /* Number of vertical scan lines. */
+ ULONG ulRefreshRate; /* Refresh rate in Hz. */
+ PBYTE pbVRAMPhys; /* Physical address of VRAM. */
+ ULONG ulApertureSize; /* Size of VRAM, in bytes. */
+ ULONG ulScanLineSize; /* Size of one scan line, in bytes. */
+
+ ULONG fccColorEncoding, ulTotalVRAMSize, cColors;
+} GDDMODEINFO;
+typedef GDDMODEINFO *PGDDMODEINFO;
+
+typedef struct _HWREQIN {
+ ULONG ulLength; /* Size of the HWREQIN data structure, in bytes. */
+ ULONG ulFlags; /* Request option flags. */
+ ULONG cScrChangeRects; /* Count of screen rectangles affected by HWREQIN. */
+ PRECTL arectlScreen; /* Array of screen rectangles affected by HWREQIN. */
+} HWREQIN;
+typedef HWREQIN *PHWREQIN;
+
+#define REQUEST_HW 0x01
+
+#endif /* my_gradd_h_ */