diff options
author | Jaroslav Hensl <jara@hensl.cz> | 2024-08-02 22:50:04 +0200 |
---|---|---|
committer | Jaroslav Hensl <jara@hensl.cz> | 2024-08-02 22:50:04 +0200 |
commit | e9f344c71fa790096f499e0d82ad072c8351bee0 (patch) | |
tree | 7642705c1fa6a7298370da11597284cb921ff25a /vmdahal.h | |
parent | 3edc12d83254c04554461fdbb310dd46d284c27c (diff) | |
download | vmdisp9x-e9f344c71fa790096f499e0d82ad072c8351bee0.tar.gz |
DDHAL: build mode tables dynamically (softgpu/99)
Diffstat (limited to 'vmdahal.h')
-rw-r--r-- | vmdahal.h | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -4,6 +4,20 @@ #pragma pack(push)
#pragma pack(1)
+typedef struct DDHALMODEINFO2
+{
+ DWORD dwWidth; // width (in pixels) of mode
+ DWORD dwHeight; // height (in pixels) of mode
+ LONG lPitch; // pitch (in bytes) of mode
+ DWORD dwBPP; // bits per pixel
+ WORD wFlags; // flags
+ WORD wRefreshRate; // refresh rate
+ DWORD dwRBitMask; // red bit mask
+ DWORD dwGBitMask; // green bit mask
+ DWORD dwBBitMask; // blue bit mask
+ DWORD dwAlphaBitMask; // alpha bit mask
+} DDHALMODEINFO2_t;
+
typedef struct VMDAHALCB32
{
LPDDHAL_CREATESURFACE CreateSurface;
@@ -33,6 +47,7 @@ struct VXD_pair };
#define VXD_PAIRS_CNT 32
+#define DISP_MODES_MAX 512
typedef struct VMDAHAL
{
@@ -59,7 +74,14 @@ typedef struct VMDAHAL DWORD hDC;
struct VXD_pair vxd_table[VXD_PAIRS_CNT];
+
+ DDHALMODEINFO2_t modes[DISP_MODES_MAX];
+ DWORD modes_count;
+ DWORD custom_mode_id;
+
} VMDAHAL_t;
#pragma pack(pop)
+#define VMDAHAL_modes(_hal) ((struct DDHALMODEINFO __far *)(&(_hal->modes[0])))
+
#endif
|