mirror of
https://github.com/k4zmu2a/SpaceCadetPinball.git
synced 2024-11-01 17:20:20 +01:00
32 lines
1.2 KiB
C++
32 lines
1.2 KiB
C++
#pragma once
|
|
#include "gdrv.h"
|
|
|
|
#pragma pack(push, 1)
|
|
struct __declspec(align(1)) zmap_header_type
|
|
{
|
|
__int16 Width;
|
|
__int16 Height;
|
|
__int16 Stride;
|
|
unsigned __int16* ZPtr1;
|
|
unsigned __int16* ZPtr2;
|
|
unsigned __int16 ZBuffer[1];
|
|
};
|
|
|
|
#pragma pack(pop)
|
|
|
|
static_assert(sizeof(zmap_header_type) == 16, "Wrong size of zmap_header_type");
|
|
|
|
class zdrv
|
|
{
|
|
public:
|
|
static int pad(int width);
|
|
static int create_zmap(zmap_header_type* zmap, int width, int height);
|
|
static int destroy_zmap(zmap_header_type* zmap);
|
|
static void fill(zmap_header_type* zmap, int width, int height, int xOff, int yOff, unsigned __int16 fillChar);
|
|
static void paint(int width, int height, gdrv_bitmap8* dstBmp, int dstBmpXOff, int dstBmpYOff,
|
|
zmap_header_type* dstZMap, int dstZMapXOff, int dstZMapYOff, gdrv_bitmap8* srcBmp, int srcBmpXOff,
|
|
int srcBmpYOff, zmap_header_type* srcZMap, int srcZMapXOff, int srcZMapYOff);
|
|
static void paint_flat(int width, int height, gdrv_bitmap8* dstBmp, int dstBmpXOff, int dstBmpYOff,
|
|
zmap_header_type* zMap, int dstZMapXOff, int dstZMapYOff, gdrv_bitmap8* srcBmp,
|
|
int srcBmpXOff, int srcBmpYOff, unsigned __int16 depth);
|
|
};
|