2025-02-17 23:17:30 -06:00

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