106 lines
No EOL
2.5 KiB
C
106 lines
No EOL
2.5 KiB
C
/*
|
||
* Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.
|
||
*
|
||
* $Id: zsproto.h 1.1 1995/08/31 16:37:20 sam Exp $
|
||
* $Locker: $
|
||
*
|
||
* Function prototypes for bucket Z-sort renderer
|
||
*/
|
||
#ifndef _ZSPROTO_H_
|
||
#define _ZSPROTO_H_
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
/*
|
||
* Sort types for primitive insertion
|
||
*/
|
||
enum {
|
||
BR_ZSORT_MIN = 0x0001,
|
||
BR_ZSORT_MAX = 0x0002,
|
||
BR_ZSORT_AVERAGE = 0x0004,
|
||
};
|
||
|
||
#if 0
|
||
|
||
#define BR_BOUNDS_MIN_X 0
|
||
#define BR_BOUNDS_MIN_Y 1
|
||
#define BR_BOUNDS_MAX_X 2
|
||
#define BR_BOUNDS_MAX_Y 3
|
||
|
||
/*
|
||
* Callback function invoked when an actor is
|
||
* rendered
|
||
*/
|
||
typedef void BR_CALLBACK br_renderbounds_cbfn(
|
||
br_actor *actor,
|
||
br_model *model,
|
||
br_material *material,
|
||
void *render_data,
|
||
br_uint_8 style,
|
||
br_matrix4 *model_to_screen,
|
||
br_int_32 bounds[4]);
|
||
|
||
#endif
|
||
|
||
/*
|
||
* Callback function invoked when primitive is generated
|
||
*/
|
||
typedef void BR_CALLBACK br_primitive_cbfn(
|
||
void *primitive,
|
||
br_actor *actor,
|
||
br_model *model,
|
||
br_material *material,
|
||
br_order_table *order_table,
|
||
br_scalar z[3]);
|
||
|
||
#ifndef _NO_PROTOTYPES
|
||
|
||
void BR_PUBLIC_ENTRY BrZsBegin(br_uint_8 colour_type, void *primitive, br_uint_32 size);
|
||
void BR_PUBLIC_ENTRY BrZsEnd(void);
|
||
|
||
void BR_PUBLIC_ENTRY BrZsSceneRenderBegin(br_actor *world,
|
||
br_actor *camera,
|
||
br_pixelmap *colour_buffer,
|
||
br_uint_8 db_index,
|
||
br_uint_32 flags);
|
||
|
||
void BR_PUBLIC_ENTRY BrZsSceneRenderAdd(br_actor *tree);
|
||
void BR_PUBLIC_ENTRY BrZsSceneRenderEnd(void);
|
||
|
||
/*
|
||
* Wrapper that invokes above three calls in order
|
||
*/
|
||
void BR_PUBLIC_ENTRY BrZsSceneRender(br_actor *world,
|
||
br_actor *camera,
|
||
br_pixelmap *colour_buffer,
|
||
br_uint_8 db_index,
|
||
br_uint_32 flags);
|
||
|
||
/*
|
||
* Used within custom model callbacks to render other models
|
||
*/
|
||
void BR_PUBLIC_ENTRY BrZsModelRender(br_actor *actor,
|
||
br_model *model,
|
||
br_material *material,
|
||
br_order_table *order_table,
|
||
br_uint_8 style,
|
||
int on_screen,
|
||
int use_custom);
|
||
|
||
br_primitive_cbfn * BR_PUBLIC_ENTRY BrZsSetPrimitiveCallback(br_primitive_cbfn *new_cbfn);
|
||
|
||
br_order_table * BR_PUBLIC_ENTRY BrZsSetActorOrderTable(br_actor *actor, br_order_table *order_table);
|
||
br_order_table * BR_PUBLIC_ENTRY BrZsGetActorOrderTable(br_actor *actor);
|
||
br_order_table * BR_PUBLIC_ENTRY BrZsGetDefaultOrderTable(void);
|
||
|
||
void BR_PUBLIC_ENTRY BrZsClearOrderTable(br_order_table *order_table);
|
||
void BR_PUBLIC_ENTRY BrZsClearDefaultOrderTable(void);
|
||
|
||
#ifdef __cplusplus
|
||
};
|
||
#endif
|
||
#endif
|
||
#endif
|
||
|