re3/rwsdk/include/d3d8/rplodatm.h

132 lines
3.7 KiB
C

/******************************************
* *
* RenderWare(TM) Graphics Library *
* *
******************************************/
/*
* This file is a product of Criterion Software Ltd.
*
* This file is provided as is with no warranties of any kind and is
* provided without any obligation on Criterion Software Ltd.
* or Canon Inc. to assist in its use or modification.
*
* Criterion Software Ltd. and Canon Inc. will not, under any
* circumstances, be liable for any lost revenue or other damages
* arising from the use of this file.
*
* Copyright (c) 1998. Criterion Software Ltd.
* All Rights Reserved.
*/
/***************************************************************************
* *
* Module : rplodatm.h *
* *
* Purpose : LODATM Geometry *
* *
**************************************************************************/
#ifndef RPLODATM_H
#define RPLODATM_H
/**
* \defgroup rplodatm RpLODAtomic
* \ingroup rpplugin
*
* Level of Detail Management Plugin for RenderWare Graphics.
*/
/****************************************************************************
Includes
*/
#include "rwcore.h"
#include "rpworld.h"
#include "rpcriter.h" /* Note: each vendor can choose their own method for
* allocation of unique ID's. This file defines
* the ID's used by Criterion.
*/
#include "rplodatm.rpe" /* automatically generated header file */
/****************************************************************************
Defines
*/
#define RPLODATOMICMAXLOD 10
/****************************************************************************
Type defs
*/
typedef RwInt32 (*RpLODAtomicLODCallBack)( RpAtomic *atomic );
/****************************************************************************
Function prototypes
*/
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
extern RwBool
RpLODAtomicPluginAttach( void );
extern RpAtomic *
RpLODAtomicSetGeometry(
RpAtomic *atomic, RwInt32 lodIdx, RpGeometry *geometry );
extern RpGeometry *
RpLODAtomicGetGeometry(
RpAtomic *atomic, RwInt32 lodIdx );
extern RpAtomic *
RpLODAtomicSetCurrentLOD(
RpAtomic *atomic, RwInt32 lodIdx );
extern RwInt32
RpLODAtomicGetCurrentLOD(
RpAtomic *atomic );
extern RpAtomic *
RpLODAtomicSetRange(
RpAtomic *atomic, RwReal farRange );
extern RwReal
RpLODAtomicGetRange(
RpAtomic *atomic );
extern void
RpLODAtomicSetCamera(
RwCamera *camera );
extern RpAtomic *
RpLODAtomicSetLODCallBack(
RpAtomic *atomic, RpLODAtomicLODCallBack callback );
extern RpAtomic *
RpLODAtomicSelectLOD(
RpAtomic *atomic );
extern RpAtomic *
RpLODAtomicForAllLODGeometries(
RpAtomic *atomic, RpGeometryCallBack callback, void *pData );
extern RpAtomic *
RpLODAtomicHookRender(
RpAtomic *atomic );
extern RpAtomic *
RpLODAtomicUnHookRender(
RpAtomic *atomic );
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* RPLODATM_H */