mirror of
https://gitlab.com/GaryOderNichts/re3-wiiu.git
synced 2024-11-23 17:49:16 +01:00
100 lines
2.6 KiB
C
100 lines
2.6 KiB
C
|
|
/**
|
|
* \defgroup rpltmap RpLtMap
|
|
* \ingroup lighting
|
|
*
|
|
* Lightmap Plugin for RenderWare Graphics.
|
|
*/
|
|
|
|
#ifndef RPLTMAP_H
|
|
#define RPLTMAP_H
|
|
|
|
/*===========================================================================*
|
|
*--- Includes --------------------------------------------------------------*
|
|
*===========================================================================*/
|
|
|
|
#include "rwcore.h"
|
|
#include "rpworld.h"
|
|
|
|
|
|
/* Used during lightmap illumination (sliver triangles are skipped
|
|
* (their texels should be filled by dilate()), because their normals
|
|
* can't be accurately calculated) */
|
|
#define rpLTMAPDEFAULTSLIVERAREATHRESHOLD (0.001f)
|
|
|
|
/* Used during lightmap UV calculation (polySets may be
|
|
* joined on the basis of vertices with equal positions) */
|
|
#define rpLTMAPDEFAULTVERTEXWELDTHRESHOLD (0.1f)
|
|
|
|
#define rpLTMAPDEFAULTLIGHTMAPSIZE 128
|
|
#define rpLTMAPMINLIGHTMAPSIZE 16
|
|
#define rpLTMAPMAXLIGHTMAPSIZE 512/*?? any better way of determining this ??*/
|
|
|
|
#define rpLTMAPMAXPREFIXSTRINGLENGTH 4
|
|
|
|
#define rpLTMAPDEFAULTMAXAREALIGHTSAMPLESPERMESH 256
|
|
/* The default tolerance for errors induced by area light ROIs is 1
|
|
* (being the smallest difference in lightmap colour values) */
|
|
#define rpLTMAPDEFAULTAREALIGHTROICUTOFF (1.0f)
|
|
|
|
|
|
/**
|
|
* \ingroup rpltmap
|
|
* \ref RpLtMapStyle
|
|
* Flags specifying the rendering style of the lightmap plugin.
|
|
*
|
|
* \see RpLtMapGetRenderStyle
|
|
* \see RpLtMapSetRenderStyle
|
|
*/
|
|
enum RpLtMapStyle
|
|
{
|
|
rpLTMAPSTYLENASTYLE = 0x0,
|
|
|
|
rpLTMAPSTYLERENDERBASE = 0x1, /**< The base texture should be rendered */
|
|
rpLTMAPSTYLERENDERLIGHTMAP = 0x2, /**< The lightmap should be rendered */
|
|
rpLTMAPSTYLEPOINTSAMPLE = 0x4, /**< The lightmap should be point-sampled */
|
|
|
|
rpLTMAPSTYLEFORCEENUMSIZEINT = 0x7FFFFFFF
|
|
};
|
|
typedef enum RpLtMapStyle RpLtMapStyle;
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
extern RwBool
|
|
RpLtMapPluginAttach(void);
|
|
|
|
extern RxPipeline *
|
|
RpLtMapGetPlatformAtomicPipeline(void);
|
|
extern RxPipeline *
|
|
RpLtMapGetPlatformWorldSectorPipeline(void);
|
|
|
|
extern RwBool
|
|
RpLtMapSetRenderStyle(RpLtMapStyle style, RpWorld *world);
|
|
extern RpLtMapStyle
|
|
RpLtMapGetRenderStyle(void);
|
|
|
|
extern RwUInt32
|
|
RpLtMapWorldLightMapsQuery(RpWorld *world);
|
|
|
|
extern RwTexture *
|
|
RpLtMapWorldSectorGetLightMap(RpWorldSector *sector);
|
|
extern RpWorldSector *
|
|
RpLtMapWorldSectorSetLightMap(RpWorldSector *sector, RwTexture *lightMap);
|
|
extern RwTexture *
|
|
RpLtMapAtomicGetLightMap(RpAtomic *atomic);
|
|
extern RpAtomic *
|
|
RpLtMapAtomicSetLightMap(RpAtomic *atomic, RwTexture *lightMap);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* RPLTMAP_H */
|
|
|
|
|