aboutsummaryrefslogtreecommitdiffstats
path: root/3d_accel.h
diff options
context:
space:
mode:
authorJaroslav Hensl <emulator@emulace.cz>2024-08-13 09:23:30 +0200
committerJaroslav Hensl <emulator@emulace.cz>2024-08-13 09:23:30 +0200
commita1812e7538bd018ffbabb6573dee9e7345c6d57a (patch)
tree5d7a7eddada953a32b6d43f3b37ae7ab2980b07a /3d_accel.h
parenta58f69cf53f7504069cfbe695cda873208ac2086 (diff)
downloadvmdisp9x-a1812e7538bd018ffbabb6573dee9e7345c6d57a.tar.gz
overlay + gamma + frame buffering (in progress)
Diffstat (limited to '3d_accel.h')
-rw-r--r--3d_accel.h26
1 files changed, 24 insertions, 2 deletions
diff --git a/3d_accel.h b/3d_accel.h
index 46f73a3..979d747 100644
--- a/3d_accel.h
+++ b/3d_accel.h
@@ -33,7 +33,7 @@ THE SOFTWARE.
#endif
#endif
-#define API_3DACCEL_VER 20240724
+#define API_3DACCEL_VER 20240808
#define ESCAPE_DRV_NT 0x1103 /* (4355) */
@@ -46,6 +46,7 @@ THE SOFTWARE.
#define OP_FBHDA_PALETTE_SET 0x1110 /* VXD, DRV, ESCAPE_DRV_NT */
#define OP_FBHDA_PALETTE_GET 0x1111 /* VXD, DRV, ESCAPE_DRV_NT */
#define OP_FBHDA_ACCESS_RECT 0x1112 /* VXD, DRV, ESCAPE_DRV_NT */
+#define OB_FBHDA_OVERLAY 0x1113 /* VXD, ESCAPE_DRV_NT */
#define OP_SVGA_VALID 0x2000 /* VXD, DRV, ESCAPE_DRV_NT */
#define OP_SVGA_SETMODE 0x2001 /* DRV */
@@ -91,6 +92,18 @@ THE SOFTWARE.
# define FBPTR *
#endif
+#define FBHA_OVERLAYS_MAX 16
+
+typedef struct FBHDA_overlay
+{
+#ifndef FBHDA_SIXTEEN
+ void *ptr;
+#else
+ DWORD ptr32;
+#endif
+ DWORD size;
+} FBHDA_overlay_t;
+
typedef struct FBHDA
{
DWORD cb;
@@ -111,6 +124,15 @@ typedef struct FBHDA
#endif
DWORD vram_size;
char vxdname[16]; /* file name or "NT" */
+ DWORD overlay;
+ FBHDA_overlay_t overlays[FBHA_OVERLAYS_MAX];
+ DWORD overlays_size;
+ DWORD gamma; // fixed decimal point, 65536 = 1.0
+ DWORD res1;
+ DWORD res2;
+ DWORD res3;
+ DWORD res4;
+ DWORD res5;
} FBHDA_t;
#define FB_SUPPORT_FLIPING 1
@@ -145,9 +167,9 @@ void FBHDA_access_end(DWORD flags);
void FBHDA_access_rect(DWORD left, DWORD top, DWORD right, DWORD bottom);
BOOL FBHDA_swap(DWORD offset);
void FBHDA_clean();
-
void FBHDA_palette_set(unsigned char index, DWORD rgb);
DWORD FBHDA_palette_get(unsigned char index);
+DWORD FBHDA_overlay(DWORD overlay, DWORD width, DWORD height, DWORD bpp);
/* mouse */
#ifdef FBHDA_SIXTEEN