112 lines
3.2 KiB
C
Executable File
112 lines
3.2 KiB
C
Executable File
//-----------------------------------------------------------------------------
|
|
// Torque Game Engine
|
|
// Copyright (C) GarageGames.com, Inc.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifndef _ITF_H_
|
|
#define _ITF_H_
|
|
|
|
#ifndef _TYPES_H_
|
|
#include "platform/types.h"
|
|
#endif
|
|
#ifndef _COLOR_H
|
|
#include "core/color.h"
|
|
#endif
|
|
#ifndef _MPOINT_H_
|
|
#include "math/mPoint.h"
|
|
#endif
|
|
|
|
#ifndef _INTERIOR_H_
|
|
// redecl struct here for now... interior.h brings in the whole fricking codebase.
|
|
struct ItrPaddedPoint
|
|
{
|
|
Point3F point;
|
|
union {
|
|
F32 fogCoord;
|
|
U8 fogColor[4];
|
|
};
|
|
};
|
|
#endif
|
|
|
|
struct OutputPoint
|
|
{
|
|
Point3F point;
|
|
union {
|
|
F32 fogCoord; // to match input struct cleanly..
|
|
U32 fogColors;
|
|
U8 fogColor[4];
|
|
};
|
|
Point2F texCoord;
|
|
Point2F lmCoord;
|
|
};
|
|
|
|
struct OutputPointFC_VB
|
|
{
|
|
Point3F point; //0/4/8
|
|
union {
|
|
U32 currentColors;
|
|
U8 currentColor[4];
|
|
}; //12
|
|
union {
|
|
U32 fogColors;
|
|
U8 fogColor[4];
|
|
}; //16
|
|
Point2F texCoord; //20/24
|
|
Point2F lmCoord; //28/32
|
|
};
|
|
|
|
struct OutputPointSP_FC_VB
|
|
{
|
|
Point3F point;
|
|
union {
|
|
U32 lmColors;
|
|
U8 lmColor[4];
|
|
};
|
|
union {
|
|
U32 fogColors;
|
|
U8 fogColor[4];
|
|
};
|
|
Point2F texCoord;
|
|
};
|
|
|
|
extern "C"
|
|
{
|
|
// Process Globals
|
|
extern F32 texGen0[8];
|
|
extern F32 texGen1[8];
|
|
extern Point2F *fogCoordinatePointer;
|
|
|
|
// Process Functions
|
|
void processTriFan(OutputPoint* dst,
|
|
const ItrPaddedPoint* srcPoints,
|
|
const U32* srcIndices,
|
|
const U32 numIndices);
|
|
void processTriFanSP(OutputPoint* dst,
|
|
const ItrPaddedPoint* srcPoints,
|
|
const U32* srcIndices,
|
|
const U32 numIndices,
|
|
const ColorI* srcColors);
|
|
void processTriFanVC_TF(OutputPoint* dst,
|
|
const ItrPaddedPoint* srcPoints,
|
|
const U32* srcIndices,
|
|
const U32 numIndices,
|
|
const ColorI* srcColors);
|
|
void processTriFanSP_FC(OutputPoint* dst,
|
|
const ItrPaddedPoint* srcPoints,
|
|
const U32* srcIndices,
|
|
const U32 numIndices,
|
|
const ColorI* srcColors);
|
|
void processTriFanFC_VB(OutputPointFC_VB* dst,
|
|
const ItrPaddedPoint* srcPoints,
|
|
const U32* srcIndices,
|
|
const U32 numIndices);
|
|
void processTriFanSP_FC_VB(OutputPointSP_FC_VB* dst,
|
|
const ItrPaddedPoint* srcPoints,
|
|
const U32* srcIndices,
|
|
const U32 numIndices,
|
|
const ColorI* srcColors);
|
|
|
|
}
|
|
|
|
#endif
|