brender-1997/3dfx/Drv_ip.h

113 lines
2.9 KiB
C
Raw Permalink Normal View History

2022-05-03 16:30:35 -05:00
/*
* Copyright (c) 1993-1995 Argonaut Technologies Limited. All rights reserved.
*
* Prototypes for functions internal to driver
*/
#ifndef _DRV_IP_H_
#define _DRV_IP_H_
#ifndef NO_PROTOTYPES
#ifdef __cplusplus
extern "C" {
#endif
/*
* device.c
*/
br_error Device3DfxInitialise(br_device * dev);
extern br_device DriverDevice3Dfx;
char * BR_CMETHOD_DECL(br_object_3dfx, identifier)( br_object *self);
br_device * BR_CMETHOD_DECL(br_object_3dfx, device)( br_object *self);
/*
* outfcty.c
*/
br_uint_32 OutputFacility3DfxInitialise(br_device *dev, br_primitive_library *prim_lib);
/*
* devpixmp.c
*/
br_error DevicePixelmap3DfxAllocateMode(br_device *dev, br_output_facility *type,
br_device_pixelmap **newpm, br_token_value *tv);
/*
* plib.c
*/
extern br_token PrimParts3DFXTokens[];
br_error PrimitiveLibrary3DfxInitialise(struct br_primitive_library * self, struct br_device *dev);
/*
* pstate.c
*/
struct br_primitive_state * PrimitiveState3DfxAllocate(struct br_primitive_library *plib);
/*
* sbuffer.c
*/
void SetupRenderBuffer(struct render_buffer *rb, br_device_pixelmap *pm);
struct br_buffer_stored * BufferStored3DfxAllocate(struct br_primitive_library *plib,
br_token use, struct br_device_pixelmap *pm, br_token_value *tv);
/*
* match.c
*/
br_error BR_CMETHOD_DECL(br_primitive_state_3dfx, renderBegin)(
struct br_primitive_state *self,
struct brp_block **rpb,
br_boolean *block_changed,
br_boolean *ranges_changed,
br_boolean no_render,
br_token prim_type);
br_error BR_CMETHOD_DECL(br_primitive_state_3dfx, renderEnd)(
struct br_primitive_state *self,
struct brp_block *pb);
br_error BR_CMETHOD_DECL(br_primitive_state_3dfx, rangesQueryF)(
struct br_primitive_state *self,
br_float *offset,
br_float *scale,
br_int_32 max_comp);
br_error BR_CMETHOD_DECL(br_primitive_state_3dfx, rangesQueryX)(
struct br_primitive_state *self,
br_fixed_ls *offset,
br_fixed_ls *scale,
br_int_32 max_comp);
void Clear3DfxStateCache(void);
void initConstantRanges(struct br_primitive_state *self);
/*
* rendfunc.c
*/
void BR_ASM_CALL PointRender(brp_block *block, brp_vertex *v0);
void BR_ASM_CALL LineRender_Smooth(brp_block *block, brp_vertex *v0,brp_vertex *v1);
void BR_ASM_CALL LineRender_Flat(brp_block *block, brp_vertex *v0,brp_vertex *v1);
void BR_ASM_CALL TriangleRender_Smooth(brp_block *block, brp_vertex *a,brp_vertex *b,brp_vertex *c);
void BR_ASM_CALL TriangleRender_Flat(brp_block *block, brp_vertex *a,brp_vertex *b,brp_vertex *c);
void BR_ASM_CALL TriangleRender_UnlitTextured(brp_block *block, brp_vertex *a,brp_vertex *b,brp_vertex *c);
void BR_ASM_CALL TriangleRender_FlatTextured(brp_block *block, brp_vertex *a,brp_vertex *b,brp_vertex *c);
void BR_ASM_CALL TriangleRender_SmoothTextured(brp_block *block, brp_vertex *a,brp_vertex *b,brp_vertex *c);
/*
* devclut.c
*/
struct br_device_clut * DeviceClut3DfxAllocate(br_device *dev, char *identifier);
#ifdef __cplusplus
};
#endif
#endif
#endif