72 lines
2.1 KiB
C
72 lines
2.1 KiB
C
/*
|
|
* Copyright (c) 1993-1995 Argonaut Technologies Limited. All rights reserved.
|
|
*
|
|
* $Id: work.h 2.1 1996/03/15 17:25:03 sam Exp $
|
|
* $Locker: $
|
|
*
|
|
* Private work area and parameters for primitives
|
|
*/
|
|
#ifndef _WORK_H_
|
|
#define _WORK_H_
|
|
|
|
#define SCREEN_FIXED 1
|
|
|
|
|
|
/*
|
|
* A description of a buffer to be used in rendering operations. Usually a
|
|
* texture map, but could also be a destination pixelmap (i.e. colour buffer
|
|
* or depth buffer)
|
|
*/
|
|
struct render_buffer
|
|
{
|
|
void *base; /* 0,0 pixel */
|
|
br_uint_16 sel; /* Optional segment */
|
|
br_uint_8 type; /* Original pixelmap type */
|
|
br_uint_8 bpp; /* Bytes per pixel */
|
|
br_uint_32 width_b; /* In bytes */
|
|
br_uint_32 width_p; /* In pixels */
|
|
br_uint_32 height; /* In scanlines */
|
|
br_uint_32 stride; /* In bytes */
|
|
br_uint_32 size; /* stride * width_bytes */
|
|
br_uint_16 mip_offset; /* Offset to mip level 1 if mipmapped */
|
|
br_boolean alpha_pixels; /* Flag to indicate if buffer contains alpha channel data */
|
|
|
|
C3D_HTX texture_handle; /* Handle if this is a texture */
|
|
br_boolean uncacheable; /* Texture cannot be cached if BR_TRUE */
|
|
C3D_HTXPAL palette_handle; /* Handle to palette if paletted texture */
|
|
|
|
LPDIRECTDRAWSURFACE surface; /* DirectDraw surface corresponding to this texture */
|
|
struct render_buffer *next_on_card; /* Pointer to next surface in texture cache */
|
|
|
|
br_boolean always_in_video_memory; /* True for hidden_buffer textures */
|
|
br_colour colour_key; /* Colour key for texture transparency */
|
|
br_boolean chroma_enable; /* Use chroma keying for this buffer */
|
|
};
|
|
|
|
|
|
|
|
/*
|
|
* Static work area for renderers
|
|
*/
|
|
struct prim_work {
|
|
/* Buffers */
|
|
// struct render_buffer colour;
|
|
br_boolean alpha_pixels;
|
|
|
|
/* Current buffer pointer so we know if the material has changed */
|
|
struct br_buffer_stored *current;
|
|
|
|
C3D_HTX texture_handle; /* Handle to the current texture */
|
|
};
|
|
|
|
extern struct prim_work BR_ASM_DATA work;
|
|
|
|
|
|
typedef struct prim_work * BR_EXPORT br_work_fn(void);
|
|
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
#endif
|
|
|
|
|