brender-v1.1.2/INC/ZSPROTO.H
2022-05-04 18:14:23 -07:00

106 lines
No EOL
2.5 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 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