Torque3D/Engine/source/T3D/systems/render/meshRenderSystem.h
Areloch 600859bd63 Force proper update of box probe when attenuation changes
Fixed multiple case sensitivity issues
Adds GL ARB check for cubemap arrays for certain cases where the driver only supports the extension, not as core
Fixes undeeded namespace declaration in an inline operator function
Cleaned up/reordered some modules default in the data dir
WIP of Das Boot test map
Begun refactoring visualizer tools
Added default cloud and water textures to core/rendering so water and cloud objects work correctly
Added default Fog_Cube mesh so volumetric fog works correctly
2019-08-19 01:14:34 -05:00

63 lines
1.5 KiB
C++

#pragma once
#include "scene/sceneRenderState.h"
#include "core/util/systemInterfaceList.h"
#include "ts/tsShape.h"
#include "ts/tsShapeInstance.h"
#include "T3D/assets/ShapeAsset.h"
#include "T3D/assets/MaterialAsset.h"
#ifndef _GFXVERTEXBUFFER_H_
#include "gfx/gfxVertexBuffer.h"
#endif
#ifndef _GFXPRIMITIVEBUFFER_H_
#include "gfx/gfxPrimitiveBuffer.h"
#endif
#ifndef _OPTIMIZEDPOLYLIST_H_
#include "collision/optimizedPolyList.h"
#endif
class MeshRenderSystemInterface : public SystemInterface<MeshRenderSystemInterface>
{
public:
TSShapeInstance * mShapeInstance;
MatrixF mTransform;
Point3F mScale;
Box3F mBounds;
SphereF mSphere;
bool mIsClient;
struct matMap
{
//MaterialAsset* matAsset;
String assetId;
U32 slot;
};
Vector<matMap> mChangingMaterials;
Vector<matMap> mMaterials;
MeshRenderSystemInterface() : SystemInterface(), mShapeInstance(nullptr), mTransform(MatrixF::Identity), mScale(Point3F::One), mIsClient(false)
{
mBounds = Box3F(1);
mSphere = SphereF();
}
~MeshRenderSystemInterface()
{
//SAFE_DELETE(mShape);
SAFE_DELETE(mShapeInstance);
}
};
class MeshRenderSystem
{
public:
//Core render function, which does all the real work
static void render(SceneManager *sceneManager, SceneRenderState* state);
//Render our particular interface's data
static void renderInterface(U32 interfaceIndex, SceneRenderState* state);
};