Initial commit

This commit is contained in:
Eagle517
2026-01-14 10:27:57 -06:00
commit c1576fee30
11290 changed files with 1552799 additions and 0 deletions

View File

@@ -0,0 +1,92 @@
//-----------------------------------------------------------------------------
// Torque Game Engine
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------
#ifndef _INTERIORLMMANAGER_H_
#define _INTERIORLMMANAGER_H_
#ifndef _PLATFORM_H_
#include "platform/platform.h"
#endif
#ifndef _TVECTOR_H_
#include "core/tVector.h"
#endif
class TextureHandle;
class GBitmap;
class Interior;
class InteriorInstance;
typedef U32 LM_HANDLE;
class InteriorLMManager
{
private:
struct InstanceLMInfo
{
InteriorInstance * mInstance;
LM_HANDLE * mHandlePtr;
Vector<TextureHandle*> mLightmapHandles;
};
struct InteriorLMInfo
{
Interior * mInterior;
LM_HANDLE * mHandlePtr;
U32 mNumLightmaps;
LM_HANDLE mBaseInstanceHandle;
Vector<InstanceLMInfo*> mInstances;
};
Vector<InteriorLMInfo*> mInteriors;
static S32 smMTVertexBuffer;
static S32 smFTVertexBuffer;
static S32 smFMTVertexBuffer;
public:
static U32 smTextureCallbackKey;
InteriorLMManager();
~InteriorLMManager();
static void init();
static void destroy();
void processTextureEvent(U32 eventCode);
void destroyBitmaps();
void destroyTextures();
void purgeGLTextures();
void downloadGLTextures();
void downloadGLTextures(LM_HANDLE interiorHandle);
bool loadBaseLightmaps(LM_HANDLE interiorHandle, LM_HANDLE instanceHandle);
void addInterior(LM_HANDLE & interiorHandle, U32 numLightmaps, Interior * interior);
void removeInterior(LM_HANDLE interiorHandle);
void addInstance(LM_HANDLE interiorHandle, LM_HANDLE & instanceHandle, InteriorInstance * instance);
void removeInstance(LM_HANDLE interiorHandle, LM_HANDLE instanceHandle);
void useBaseTextures(LM_HANDLE interiorHandle, LM_HANDLE instanceHandle);
U32 getNumLightmaps(LM_HANDLE interiorHandle);
void deleteLightmap(LM_HANDLE interiorHandle, LM_HANDLE instanceHandle, U32 index);
void clearLightmaps(LM_HANDLE interiorHandle, LM_HANDLE instanceHandle);
TextureHandle * getHandle(LM_HANDLE interiorHandle, LM_HANDLE instanceHandle, U32 index);
Vector<TextureHandle*> & getHandles(LM_HANDLE interiorHandle, LM_HANDLE instanceHandle);
// helper's
TextureHandle * duplicateBaseLightmap(LM_HANDLE interiorHandle, LM_HANDLE instanceHandle, U32 index);
GBitmap * getBitmap(LM_HANDLE interiorHandle, LM_HANDLE instanceHandle, U32 index);
S32 getVertexBuffer(S32 format);
};
extern InteriorLMManager gInteriorLMManager;
#endif