brender-1997/ati/Devpixmp.h
2022-05-03 14:31:40 -07:00

101 lines
1.7 KiB
C

/*
* Copyright (c) 1993-1995 Argonaut Technologies Limited. All rights reserved.
*
* $Id: DEVPIXMP.H 1.1 1996/05/13 14:28:37 philip Exp PHILIP $
* $Locker: PHILIP $
*
* Private device pixelmap structure
*/
#ifndef _DEVPIXMP_H_
#define _DEVPIXMP_H_
#ifdef __cplusplus
extern "C" {
#endif
/*
* Private state of device pixelmap
*/
typedef struct br_device_pixelmap {
/*
* Dispatch table
*/
struct br_device_pixelmap_dispatch *dispatch;
/*
* Standard handle identifier
*/
char *pm_identifier;
/** Standard pixelmap members (not including identifier) **/
BR_PIXELMAP_MEMBERS
/** End of br_pixelmap fields **/
struct br_output_facility *output_facility;
struct br_device_clut *clut;
/* Type of device pixelmap */
br_uint_16 buffer;
/* Bits per pixel */
br_uint_16 pixel_bits;
/* Fullscreen flag */
br_boolean fullscreen;
/* Set if not a sub-pixelmap */
br_boolean parent;
/* Pointer to top of pixel memory */
void *bits;
/* Device context */
HDC dc;
/* Bitmap handle */
HBITMAP bitmap;
/* Pointer to DIB information */
BITMAPINFO *info;
/* Window handle */
HWND hwnd;
/* Palette handle */
HPALETTE hpal;
/* Various DirectDraw objects */
LPDIRECTDRAWSURFACE surface;
LPDIRECTDRAWCLIPPER clipper;
LPDIRECTDRAWPALETTE palette;
/* Is this surface in system or video memory */
br_boolean videomemory;
/* Offsets for sub pixelmaps from parent */
br_uint_32 sub_x_offset;
br_uint_32 sub_y_offset;
/* Cache for address to avoid unnecessary locks */
br_boolean flipped;
} br_device_pixelmap;
/*
* Device pixelmap type flags
*/
enum buffer_types {
BUFFER_SCREEN = 0x0001,
BUFFER_OFFSCREEN = 0x0002,
};
#ifdef __cplusplus
};
#endif
#endif