Graphics namespace

All the graphics system: rendering, shaders, models, lighting, textures,...

This namespace includes classes related to graphics rendering in the game. Some things included are models, textures and materials.


namespace Renderer
This namespace contains most internal stuff related with rendering, such as Direct3D Device and shaders, shader data, etc.


class Animations
class cMaterialInfo
class cMaterialManager
The implementation of IMaterialManager; this should only be used for extending and detouring.
class cMITextureSet
class cModelManager
The implementation of IModelManager; this should only be used for extending and detouring.
template<typename T>
class CompiledShader
class cRenderManager
class cRenderTargetManager
class cTextureManager
The implementation of ITextureManager; this should only be used for extending and detouring.
class GmdlRenderAsset
class IGraphicsManager
class ILightingManager
This manager handles the lighting configurations in the game.
class ILightingWorld
A lighting world is a space with a specific lighting configuration.
class IMaterialManager
This manager stores the information of materials, which are used to control the visual appearance of game objects.
class IModelManager
This manager stores the model worlds in the game; for more info, check the IModelWorld class.
class IModelWorld
A model world is a space where models can be rendered in the game.
class IRenderable
This interface defines an object that can be rendered, and whose render method is called on every game loop.
class IRenderManager
This class manages the rendering process in the game.
class IRenderTargetManager
class ITextureManager
class LambdaRenderable
class LightingProperties
class Material
Represents a material that controls the visual appearance of game objects.
class MaterialShader
class Model
class ModelAsset
struct NamedShaderDataUniform
struct RenderererParams
class ShaderBuilder
struct ShaderBuilderEntry
struct ShaderDataUniform
struct ShadowMapInfo
class StandardShader
class Texture
class TextureContainer
class UnkMatManager


enum class ModelGroups: uint32_t { DeformHandle = 0x1BA53EA, DeformHandleOverdraw = 0x1BA53EB, Background = 0x223E8E0, Overdraw = 0x22FFF11, EffectsMask = 0x23008D4, TestEnv = 0x26F3933, PartsPaintEnv = 0xFE39DE0, Skin = 0xFEB8DF2, RotationRing = 0x31390732, RotationBall = 0x31390733, SocketConnector = 0x4FF4AF74, AnimatedCreature = 0x509991E6, TestMode = 0x509AA7C9, Vertebra = 0x513CDFC1, PaletteSkin = 0x71257E8B, ExcludeFromPinning = 0x900C6ADD, Palette = 0x900C6AE5, BallConnector = 0x900C6CDD, Rigblock = 0x9138FD8D, RigblockEffect = 0x4FE3913, GameBackground = 0x64AC354 }
enum (anonymous) { kRenderQueueMain = 8 }
enum class LayerIndices { ClearScene = 0, Planets = 7, PlanetRings = 8, TerrainRTT = 9, Terrain = 10, PlanetRibbons1 = 11, TerrainModels = 12, Level = 13, BlobShadows = 14, PreMain = 15, Main = 16, CreatureAnim = 17, PostMain = 18, CreatureFXAnim = 19, EffectsMask = 20, UI = 30 }
The available layer indices that can be used for adding renderers.
enum (anonymous) { kModelFlagUseColor = 0x2, kModelFlagVisible = 0x8000, kModelFlagOverrideBoundingBox = 0x10000, kModelFlagOverrideBoundingRadius = 0x20000, kModelFlagNeedsBake = 0x40000 }


using VertexShader = CompiledShader<IDirect3DVertexShader9>
using PixelShader = CompiledShader<IDirect3DPixelShader9>
using RenderTargetTexture = RenderWare::Raster
using RTT = RenderTargetTexture
using TextureVector_t = vector<intrusive_ptr<Texture>>


ASSERT_SIZE(cMaterialInfo, 0x1C)
auto Addresses(cMaterialManager) -> namespace
ASSERT_SIZE(cMITextureSet::Entry, 0x10)
ASSERT_SIZE(cMITextureSet, 0x70)
auto Addresses(CompiledShader) -> namespace
auto GetVertexShaders() -> vector<VertexShader>&
auto GetPixelShaders() -> vector<PixelShader>&
void ReadCompiledVertexShaders(IO::IStream* pStream)
void ReadCompiledPixelShaders(IO::IStream* pStream)
auto Addresses(IGraphicsManager) -> namespace
auto Addresses(ILightingManager) -> namespace
auto Addresses(IMaterialManager) -> namespace
auto Addresses(IModelManager) -> namespace
auto Addresses(IModelWorld) -> namespace
void GetMousePosition(int& mouseX, int& mouseY)
auto Addresses(IRenderManager) -> namespace
auto Addresses(IRenderTargetManager) -> namespace
auto GetMainColorRTT() -> RenderTargetTexture*
auto GetMainDepthRTT() -> RenderTargetTexture*
auto Addresses(ITextureManager) -> namespace
auto Addresses(MaterialShader) -> namespace
auto Addresses(Model) -> namespace
auto Addresses(Renderer) -> namespace
auto Addresses(ShaderBuilder) -> namespace
auto Addresses(StandardShader) -> namespace

Enum documentation

enum class Graphics::ModelGroups: uint32_t

enum class Graphics::LayerIndices

The available layer indices that can be used for adding renderers.

Most of these have been copied from Darkspore globals.lua, so they might not match for Spore.

enum Graphics::(anonymous)

Typedef documentation

typedef CompiledShader<IDirect3DVertexShader9> Graphics::VertexShader

typedef CompiledShader<IDirect3DPixelShader9> Graphics::PixelShader

typedef vector<intrusive_ptr<Texture>> Graphics::TextureVector_t

Function documentation

namespace Graphics::Addresses(IModelWorld)

void Graphics::GetMousePosition(int& mouseX, int& mouseY)

namespace Graphics::Addresses(Model)

namespace Graphics::Addresses(Renderer)