OGRE  2.3
Object-Oriented Graphics Rendering Engine
Resources

Classes

class  Ogre::Archive
 Archive-handling class. More...
 
class  Ogre::ArchiveFactory
 Abstract factory class, archive codec plugins can register concrete subclasses of this. More...
 
class  Ogre::ArchiveManager
 This class manages the available ArchiveFactory plugins. More...
 
struct  Ogre::BackgroundProcessResult
 Encapsulates the result of a background queue request. More...
 
class  Ogre::BarrierSolver
 
struct  Ogre::BasicBlock
 
class  Ogre::ConstBufferPool
 Maintains a pool of buffers grouped by hash ID. More...
 
class  Ogre::ConstBufferPoolUser
 
struct  Ogre::D3D11FrameBufferDescValue
 
struct  Ogre::D3D11HlmsPso
 @See HlmsPso. More...
 
class  Ogre::D3D11RenderPassDescriptor
 D3D11 will share groups of ID3D11RenderTargetView all D3D11RenderPassDescriptor that share the same RTV setup. More...
 
class  Ogre::D3D11TextureGpuManager
 
class  Ogre::DataStream
 General purpose class used for encapsulating the reading and writing of data. More...
 
class  Ogre::DefaultTextureGpuManagerListener
 This is a Default implementation of TextureGpuManagerListener based on heuristics. More...
 
struct  Ogre::DescriptorSetSampler
 Descriptor sets describe what samplers should be bound together in one place. More...
 
struct  Ogre::DescriptorSetTexture
 Descriptor sets describe what textures should be bound together in one place. More...
 
struct  Ogre::DescriptorSetTexture2
 
struct  Ogre::DescriptorSetUav
 Descriptor sets describe what uavs should be bound together in one place. More...
 
class  Ogre::EmbeddedZipArchiveFactory
 Specialisation of ZipArchiveFactory for embedded Zip files. More...
 
class  Ogre::FileHandleDataStream
 Common subclass of DataStream for handling data from C-style file handles. More...
 
struct  Ogre::FileInfo
 Information about a file/directory within the archive will be returned using a FileInfo struct. More...
 
class  Ogre::FileStreamDataStream
 Common subclass of DataStream for handling data from std::basic_istream. More...
 
class  Ogre::FileSystemArchive
 Specialisation of the Archive class to allow reading of files from filesystem folders / directories. More...
 
class  Ogre::FileSystemArchiveFactory
 Specialisation of ArchiveFactory for FileSystem files. More...
 
class  Ogre::Font
 Class representing a font in the system. More...
 
class  Ogre::FontManager
 Manages Font resources, parsing .fontdef files and generally organising them. More...
 
class  Ogre::Forward3D
 Forward3D. More...
 
class  Ogre::ForwardClustered
 Implementation of Clustered Forward Shading. More...
 
class  Ogre::ForwardPlusBase
 ForwardPlusBase. More...
 
struct  Ogre::FrameBufferDescKey
 
struct  Ogre::GL3PlusDescriptorSetTexture2
 
struct  Ogre::GL3PlusFrameBufferDescValue
 
struct  Ogre::GL3PlusHlmsPso
 @See HlmsPso. More...
 
class  Ogre::GL3PlusRenderPassDescriptor
 GL3+ will share FBO handles between all GL3PlusRenderPassDescriptor that share the same FBO setup. More...
 
class  Ogre::GL3PlusTextureGpuManager
 
struct  Ogre::GLES2HlmsPso
 @See HlmsPso. More...
 
struct  Ogre::GLES2HlmsSamplerblock
 A sampler block contains settings that go hand in hand with a texture, and thus are common to many textures. More...
 
class  Ogre::GpuProgram
 Defines a program which runs on the GPU such as a vertex or fragment program. More...
 
class  Ogre::GpuProgramManager
 
struct  Ogre::GpuTrackedResource
 
class  Ogre::HiddenAreaMeshVrGenerator
 
struct  Ogre::HiddenAreaVrSettings
 
class  Ogre::HighLevelGpuProgram
 Abstract base class representing a high-level program (a vertex or fragment program). More...
 
class  Ogre::HighLevelGpuProgramFactory
 Interface definition for factories of HighLevelGpuProgram. More...
 
class  Ogre::HighLevelGpuProgramManager
 This ResourceManager manages high-level vertex and fragment programs. More...
 
class  Ogre::Hlms
 HLMS stands for "High Level Material System". More...
 
struct  Ogre::HlmsBasePieces
 
struct  Ogre::HlmsBaseProp
 These are "default" or "Base" properties common to many implementations and thus defined here. More...
 
struct  Ogre::HlmsBits
 
struct  Ogre::HlmsBlendblock
 A blend block contains settings that rarely change, and thus are common to many materials. More...
 
struct  Ogre::HlmsCache
 
struct  Ogre::HlmsComputePso
 
class  Ogre::HlmsDatablock
 An hlms datablock contains individual information about a specific material. More...
 
class  Ogre::HlmsDiskCache
 This class allows saving the current state of an Hlms to disk: both its compiled shaders with source and the generated PSOs. More...
 
class  Ogre::HlmsJson
 HLMS stands for "High Level Material System". More...
 
class  Ogre::HlmsJsonCompute
 HLMS stands for "High Level Material System". More...
 
class  Ogre::HlmsJsonListener
 
class  Ogre::HlmsListener
 Listener that can be hooked to an Hlms implementation for extending it with custom code. More...
 
struct  Ogre::HlmsMacroblock
 A macro block contains settings that will rarely change, and thus are common to many materials. More...
 
class  Ogre::HlmsManager
 HLMS stands for "High Level Material System". More...
 
struct  Ogre::HlmsPassPso
 IT'S MEMBERS MUST BE KEPT POD (Otherwise HlmsPso needs to be modified). More...
 
class  Ogre::HlmsPbsDatablock
 Contains information needed by PBS (Physically Based Shading) for OpenGL 3+ & D3D11+. More...
 
class  Ogre::HlmsPbsMobileDatablock
 Contains information needed by PBS (Physically Based Shading) for OpenGL ES 2.0. More...
 
struct  Ogre::HlmsProperty
 
struct  Ogre::HlmsPso
 Defines a PipelineStateObject as required by Vulkan, Metal & DX12. More...
 
struct  Ogre::HlmsPsoProp
 
struct  Ogre::HlmsSamplerblock
 A sampler block contains settings that go hand in hand with a texture, and thus are common to many textures. More...
 
class  Ogre::HlmsTextureExportListener
 
class  Ogre::HlmsTextureManager
 HLMS Texture Manager manages textures in the way HLMS expects. More...
 
struct  Ogre::HlmsTexturePack
 
class  Ogre::HlmsUnlitDatablock
 Contains information needed by PBS (Physically Based Shading) for OpenGL 3+ & D3D11+. More...
 
class  Ogre::ManualResourceLoader
 Interface describing a manual resource loader. More...
 
class  Ogre::MemoryDataStream
 Common subclass of DataStream for handling data from chunks of memory. More...
 
class  Ogre::Mesh
 Resource holding data about 3D mesh. More...
 
class  Ogre::MeshManager
 Handles the management of mesh resources. More...
 
class  Ogre::MeshSerializer
 Class for serialising mesh data to/from an OGRE .mesh file. More...
 
class  Ogre::MeshSerializerImpl
 Internal implementation of Mesh reading / writing for the latest version of the .mesh format. More...
 
class  Ogre::MeshSerializerImpl_v2_1_R0
 
class  Ogre::MeshSerializerImpl_v2_1_R1
 
class  Ogre::MeshSerializerListener
 
struct  Ogre::MetalBufferRegion
 
struct  Ogre::MetalDescriptorSetTexture
 
struct  Ogre::MetalFrameBufferDescValue
 
struct  Ogre::MetalHlmsPso
 @See HlmsPso More...
 
class  Ogre::MetalRenderPassDescriptor
 
struct  Ogre::MetalTexRegion
 
class  Ogre::MetalTextureGpuManager
 
class  Ogre::NULLTextureGpu
 
class  Ogre::NULLTextureGpuManager
 
class  Ogre::NULLTextureGpuRenderTarget
 
class  Ogre::ObjCmdBuffer
 
class  Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS
 This is not a regular header, therefore it has no include guards. More...
 
class  Ogre::PsoCacheHelper
 Utility class to cache PSOs. More...
 
class  Ogre::RadialDensityMask
 
struct  Ogre::RenderPassColourTarget
 
struct  Ogre::RenderPassDepthTarget
 
class  Ogre::RenderPassDescriptor
 
struct  Ogre::RenderPassStencilTarget
 
struct  Ogre::RenderPassTargetBase
 
class  Ogre::Resource
 Abstract class representing a loadable resource (e.g. More...
 
class  Ogre::ResourceBackgroundQueue
 This class is used to perform Resource operations in a background thread. More...
 
class  Ogre::ResourceGroupListener
 This abstract class defines an interface which is called back during resource group loading to indicate the progress of the load. More...
 
class  Ogre::ResourceGroupManager
 This singleton class manages the list of resource groups, and notifying the various resource managers of their obligations to load / unload resources in a group. More...
 
class  Ogre::ResourceLoadingListener
 
class  Ogre::ResourceManager
 Defines a generic resource handler. More...
 
struct  Ogre::ResourceStatus
 
struct  Ogre::ResourceTransition
 
class  Ogre::StagingTexture
 A StagingTexture is an intermediate texture that can be read and be written from both CPU & GPU. More...
 
class  Ogre::StagingTextureBufferImpl
 This implementation can be used by all RenderSystem APIs except D3D11, which is why this implementation is part of OgreMain. More...
 
class  Ogre::StreamSerialiser
 Utility class providing helper methods for reading / writing structured data held in a DataStream. More...
 
class  Ogre::SubMesh
 Defines a part of a complete mesh. More...
 
class  Ogre::SubStringRef
 
class  Ogre::Texture
 Abstract class representing a Texture resource. More...
 
class  Ogre::TextureGpu
 
class  Ogre::TextureGpuListener
 
class  Ogre::TextureGpuManager
 This class manages all textures (i.e. More...
 
class  Ogre::TextureGpuManagerListener
 
class  Ogre::TextureManager
 Class for loading & managing textures. More...
 
struct  Ogre::TexturePool
 
class  Ogre::UnifiedHighLevelGpuProgram
 Specialisation of HighLevelGpuProgram which just delegates its implementation to one other high level program, allowing a single program definition to represent one supported program from a number of options. More...
 
class  Ogre::UnifiedHighLevelGpuProgramFactory
 Factory class for Unified programs. More...
 
class  Ogre::v1::Mesh
 Resource holding data about 3D mesh. More...
 
struct  Ogre::v1::MeshLodUsage
 A way of recording the way each LODs is recorded this Mesh. More...
 
class  Ogre::v1::MeshManager
 Handles the management of mesh resources. More...
 
class  Ogre::v1::MeshSerializer
 Class for serialising mesh data to/from an OGRE .mesh file. More...
 
class  Ogre::v1::MeshSerializerImpl
 Internal implementation of Mesh reading / writing for the latest version of the .mesh format. More...
 
class  Ogre::v1::MeshSerializerImpl_v1_1
 Class for providing backwards-compatibility for loading version 1.1 of the .mesh format. More...
 
class  Ogre::v1::MeshSerializerImpl_v1_10
 Class for providing backwards-compatibility for loading version 1.10 of the .mesh format. More...
 
class  Ogre::v1::MeshSerializerImpl_v1_2
 Class for providing backwards-compatibility for loading version 1.2 of the .mesh format. More...
 
class  Ogre::v1::MeshSerializerImpl_v1_3
 Class for providing backwards-compatibility for loading version 1.3 of the .mesh format. More...
 
class  Ogre::v1::MeshSerializerImpl_v1_4
 Class for providing backwards-compatibility for loading version 1.4 of the .mesh format. More...
 
class  Ogre::v1::MeshSerializerImpl_v1_41
 Class for providing backwards-compatibility for loading version 1.41 of the .mesh format. More...
 
class  Ogre::v1::MeshSerializerImpl_v1_8
 Class for providing backwards-compatibility for loading version 1.8 of the .mesh format. More...
 
class  Ogre::v1::MeshSerializerListener
 
class  Ogre::v1::PrefabFactory
 A factory class that can create various mesh prefabs. More...
 
class  Ogre::v1::SubMesh
 Defines a part of a complete mesh. More...
 
class  Ogre::VertexBufferDownloadHelper
 Ogre currently does not support deinterleaved vertex buffers. More...
 
struct  Ogre::VulkanFlushOnlyDescValue
 
struct  Ogre::VulkanFrameBufferDescKey
 
struct  Ogre::VulkanFrameBufferDescValue
 
struct  Ogre::VulkanHlmsPso
 
class  Ogre::VulkanRenderPassDescriptor
 
class  Ogre::VulkanTextureGpu
 
class  Ogre::VulkanTextureGpuManager
 
class  Ogre::VulkanTextureGpuRenderTarget
 
class  Ogre::Window
 
class  Ogre::ZipArchive
 Specialisation of the Archive class to allow reading of files from a zip format source archive. More...
 
class  Ogre::ZipArchiveFactory
 Specialisation of ArchiveFactory for Zip files. More...
 
class  Ogre::ZipDataStream
 Specialisation of DataStream to handle streaming data from zip archives. More...
 
class  RadialDensityMaskVrGenerator
 Manages a full screen stereo rectangle that masks rectangles in the periphery and then reconstruct these blocks. More...
 

Macros

#define OGRE_EXTRACT_HLMS_TYPE_FROM_CACHE_HASH(x)   (x >> 29)
 
#define OGRE_HLMS_MAX_BASIC_BLOCKS   OGRE_HLMS_NUM_SAMPLERBLOCKS
 
#define OGRE_HLMS_MAX_LIFETIME_BLENDBLOCKS   4096
 
#define OGRE_HLMS_MAX_LIFETIME_MACROBLOCKS   4096
 
#define OGRE_HLMS_NUM_BLENDBLOCKS   32
 
#define OGRE_HLMS_NUM_MACROBLOCKS   32
 
#define OGRE_HLMS_NUM_SAMPLERBLOCKS   64
 

Typedefs

typedef vector< Archive * >::type Ogre::ArchiveVec
 
typedef WorkQueue::RequestID Ogre::BackgroundProcessTicket
 Identifier of a background process. More...
 
typedef map< FrameBufferDescKey, D3D11FrameBufferDescValue >::type Ogre::D3D11FrameBufferDescMap
 
typedef StdList< DataStreamPtrOgre::DataStreamList
 List of DataStream items. More...
 
typedef SharedPtr< DataStreamListOgre::DataStreamListPtr
 Shared pointer to list of DataStream items. More...
 
typedef vector< FileInfo >::type Ogre::FileInfoList
 
typedef SharedPtr< FileInfoListOgre::FileInfoListPtr
 
typedef FastArray< TextureFilter::FilterBase * > Ogre::FilterBaseArray
 
typedef map< FrameBufferDescKey, GL3PlusFrameBufferDescValue >::type Ogre::GL3PlusFrameBufferDescMap
 
typedef vector< HlmsCache * >::type Ogre::HlmsCacheVec
 
typedef vector< std::pair< IdString, String > >::type Ogre::HlmsParamVec
 
typedef vector< HlmsProperty >::type Ogre::HlmsPropertyVec
 
typedef map< FrameBufferDescKey, MetalFrameBufferDescValue >::type Ogre::MetalFrameBufferDescMap
 
typedef map< IdString, String >::type Ogre::PiecesMap
 
typedef StdMap< GpuTrackedResource *, ResourceStatusOgre::ResourceStatusMap
 
typedef FastArray< ResourceTransitionOgre::ResourceTransitionArray
 
typedef vector< StagingTexture * >::type Ogre::StagingTextureVec
 
typedef list< TexturePool >::type Ogre::TexturePoolList
 
typedef map< FrameBufferDescKey, VulkanFlushOnlyDescValue >::type Ogre::VulkanFlushOnlyDescMap
 
typedef map< VulkanFrameBufferDescKey, VulkanFrameBufferDescValue >::type Ogre::VulkanFrameBufferDescMap
 

Enumerations

enum  Ogre::FontType { Ogre::FT_TRUETYPE = 1 , Ogre::FT_IMAGE = 2 }
 Enumerates the types of Font usable in the engine. More...
 
enum  Ogre::GpuProgramType {
  Ogre::GPT_VERTEX_PROGRAM , Ogre::GPT_FRAGMENT_PROGRAM , Ogre::GPT_GEOMETRY_PROGRAM , Ogre::GPT_HULL_PROGRAM ,
  Ogre::GPT_DOMAIN_PROGRAM , Ogre::GPT_COMPUTE_PROGRAM
}
 Enumerates the types of programs which can run on the GPU. More...
 
enum  Ogre::HlmsBasicBlock { Ogre::BLOCK_MACRO , Ogre::BLOCK_BLEND , Ogre::BLOCK_SAMPLER , Ogre::NUM_BASIC_BLOCKS }
 
enum  Ogre::HlmsTypes {
  Ogre::HLMS_LOW_LEVEL , Ogre::HLMS_PBS , Ogre::HLMS_TOON , Ogre::HLMS_UNLIT ,
  Ogre::HLMS_USER0 , Ogre::HLMS_USER1 , Ogre::HLMS_USER2 , Ogre::HLMS_USER3 ,
  Ogre::HLMS_MAX = 8 , Ogre::HLMS_COMPUTE
}
 Up to 8 different HLMS generator types are allowed. More...
 
enum  Ogre::MeshChunkID {
  Ogre::M_HEADER = 0x1000 , Ogre::M_MESH = 0x3000 , Ogre::M_SUBMESH = 0x4000 , Ogre::M_SUBMESH_TEXTURE_ALIAS = 0x4200 ,
  Ogre::M_SUBMESH_LOD = 0x4300 , Ogre::M_SUBMESH_LOD_OPERATION = 0x4310 , Ogre::M_SUBMESH_INDEX_BUFFFER = 0x4320 , Ogre::M_SUBMESH_M_GEOMETRY = 0x4330 ,
  Ogre::M_SUBMESH_M_GEOMETRY_VERTEX_DECLARATION = 0x4331 , Ogre::M_SUBMESH_M_GEOMETRY_VERTEX_BUFFER = 0x4332 , Ogre::M_SUBMESH_M_GEOMETRY_EXTERNAL_SOURCE = 0x4340 , Ogre::M_MESH_SKELETON_LINK = 0x6000 ,
  Ogre::M_MESH_BOUNDS = 0x9000 , Ogre::M_SUBMESH_NAME_TABLE = 0xA000 , Ogre::M_SUBMESH_NAME_TABLE_ELEMENT = 0xA100 , Ogre::M_EDGE_LISTS = 0xB000 ,
  Ogre::M_EDGE_LIST_LOD = 0xB100 , Ogre::M_EDGE_GROUP = 0xB110 , Ogre::M_POSES = 0xC000 , Ogre::M_POSE = 0xC100 ,
  Ogre::M_POSE_VERTEX = 0xC111 , Ogre::M_ANIMATIONS = 0xD000 , Ogre::M_ANIMATION = 0xD100 , Ogre::M_ANIMATION_BASEINFO = 0xD105 ,
  Ogre::M_ANIMATION_TRACK = 0xD110 , Ogre::M_ANIMATION_MORPH_KEYFRAME = 0xD111 , Ogre::M_ANIMATION_POSE_KEYFRAME = 0xD112 , Ogre::M_ANIMATION_POSE_REF = 0xD113 ,
  Ogre::M_SUBMESH_OPERATION = 0x4010 , Ogre::M_SUBMESH_BONE_ASSIGNMENT = 0x4100 , Ogre::M_GEOMETRY = 0x5000 , Ogre::M_GEOMETRY_VERTEX_DECLARATION = 0x5100 ,
  Ogre::M_GEOMETRY_VERTEX_ELEMENT = 0x5110 , Ogre::M_GEOMETRY_VERTEX_BUFFER = 0x5200 , Ogre::M_GEOMETRY_VERTEX_BUFFER_DATA = 0x5210 , Ogre::M_MESH_BONE_ASSIGNMENT = 0x7000 ,
  Ogre::M_MESH_LOD_LEVEL = 0x8000 , Ogre::M_MESH_LOD_USAGE = 0x8100 , Ogre::M_MESH_LOD_MANUAL = 0x8110 , Ogre::M_MESH_LOD_GENERATED = 0x8120 ,
  Ogre::M_TABLE_EXTREMES = 0xE000 , Ogre::M_GEOMETRY_NORMALS = 0x5100 , Ogre::M_GEOMETRY_COLOURS = 0x5200 , Ogre::M_GEOMETRY_TEXCOORDS = 0x5300
}
 Definition of the OGRE .mesh file format. More...
 
enum  Ogre::TextureAddressingMode {
  Ogre::TAM_WRAP , Ogre::TAM_MIRROR , Ogre::TAM_CLAMP , Ogre::TAM_BORDER ,
  Ogre::TAM_UNKNOWN = 99
}
 
enum  Ogre::TextureMipmap { Ogre::MIP_UNLIMITED = 0x7FFFFFFF , Ogre::MIP_DEFAULT = -1 }
 Enum identifying special mipmap numbers. More...
 
enum  Ogre::TextureType {
  Ogre::TEX_TYPE_1D = 1 , Ogre::TEX_TYPE_2D = 2 , Ogre::TEX_TYPE_3D = 3 , Ogre::TEX_TYPE_CUBE_MAP = 4 ,
  Ogre::TEX_TYPE_2D_ARRAY = 5 , Ogre::TEX_TYPE_2D_RECT = 6
}
 Enum identifying the texture type. More...
 
enum  Ogre::TextureUsage {
  Ogre::TU_STATIC = v1::HardwareBuffer::HBU_STATIC , Ogre::TU_DYNAMIC = v1::HardwareBuffer::HBU_DYNAMIC , Ogre::TU_WRITE_ONLY = v1::HardwareBuffer::HBU_WRITE_ONLY , Ogre::TU_STATIC_WRITE_ONLY = v1::HardwareBuffer::HBU_STATIC_WRITE_ONLY ,
  Ogre::TU_DYNAMIC_WRITE_ONLY = v1::HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY , Ogre::TU_DYNAMIC_WRITE_ONLY_DISCARDABLE = v1::HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE , Ogre::TU_AUTOMIPMAP = 0x10 , Ogre::TU_RENDERTARGET = 0x20 ,
  Ogre::TU_NOT_SRV = 0x40 , Ogre::TU_UAV = 0x80 , Ogre::TU_UAV_NOT_SRV = TU_UAV | TU_NOT_SRV , Ogre::TU_AUTOMIPMAP_AUTO = 0x100 ,
  Ogre::TU_DEFAULT = TU_AUTOMIPMAP | TU_STATIC_WRITE_ONLY , Ogre::TU_NOT_TEXTURE = TU_NOT_SRV , Ogre::TU_UAV_NOT_TEXTURE = TU_UAV | TU_NOT_SRV
}
 Enum identifying the texture usage. More...
 

Functions

 Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::OGRE_HLMS_TEXTURE_BASE_CLASS (IdString name, Hlms *creator, const HlmsMacroblock *macroblock, const HlmsBlendblock *blendblock, const HlmsParamVec &params)
 
virtual Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::~OGRE_HLMS_TEXTURE_BASE_CLASS ()
 
void Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::_setSamplerblock (uint8 texType, const HlmsSamplerblock *samplerblockPtr)
 Same as setSamplerblock, but samplerblockPtr is a raw samplerblock retrieved from HlmsManager, and is assumed to have its reference count already be incremented for us. More...
 
void Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::_setTexture (uint8 texType, TextureGpu *texture, const HlmsSamplerblock *samplerblockPtr=0, uint16 sliceIdx=std::numeric_limits< uint16 >::max())
 Same as setTexture, but samplerblockPtr is a raw samplerblock retrieved from HlmsManager, and is assumed to have its reference count already be incremented for us (note HlmsManager::getSamplerblock() already increments the ref. More...
 
uint8 Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::getIndexToDescriptorSampler (uint8 texType)
 Do not call this function if RSC_SEPARATE_SAMPLERS_FROM_TEXTURES is not set. More...
 
uint8 Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::getIndexToDescriptorTexture (uint8 texType)
 This function has O( log N ) complexity, but O(1) if the texture was not set. More...
 
const HlmsSamplerblockOgre::OGRE_HLMS_TEXTURE_BASE_CLASS::getSamplerblock (uint8 texType) const
 
TextureGpuOgre::OGRE_HLMS_TEXTURE_BASE_CLASS::getTexture (uint8 texType) const
 
void Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::loadAllTextures (void)
 
virtual void Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::notifyTextureChanged (TextureGpu *texture, TextureGpuListener::Reason reason, void *extraData)
 Called when a TextureGpu changed in a way that affects how it is displayed: More...
 
bool Ogre::OrderCacheByHash (const HlmsCache *_left, const HlmsCache *_right)
 
bool Ogre::OrderConstBufferPoolUserByPoolThenSlot (const ConstBufferPoolUser *_l, const ConstBufferPoolUser *_r)
 
bool Ogre::OrderParamVecByKey (const std::pair< IdString, String > &_left, const std::pair< IdString, String > &_right)
 
bool Ogre::OrderPropertyByIdString (const HlmsProperty &_left, const HlmsProperty &_right)
 
virtual void Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::saveTextures (const String &folderPath, set< String >::type &savedTextures, bool saveOitd, bool saveOriginal, HlmsTextureExportListener *listener)
 
void Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::setSamplerblock (uint8 texType, const HlmsSamplerblock &params)
 Sets a new sampler block to be associated with the texture (i.e. More...
 
void Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::setTexture (uint8 texType, TextureGpu *texture, const HlmsSamplerblock *refParams=0, uint16 sliceIdx=std::numeric_limits< uint16 >::max())
 Sets a new texture for rendering. More...
 
virtual bool Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::shouldStayLoaded (TextureGpu *texture)
 Return true if this TextureGpu should likely stay loaded or else graphical changes could occur. More...
 

Variables

static const size_t Ogre::c_ForwardPlusNumFloat4PerCubemapProbe = 8u
 
static const size_t Ogre::c_ForwardPlusNumFloat4PerDecal = 4u
 
static const size_t Ogre::c_ForwardPlusNumFloat4PerLight = 6u
 

Detailed Description

Macro Definition Documentation

◆ OGRE_EXTRACT_HLMS_TYPE_FROM_CACHE_HASH

#define OGRE_EXTRACT_HLMS_TYPE_FROM_CACHE_HASH (   x)    (x >> 29)

◆ OGRE_HLMS_MAX_BASIC_BLOCKS

#define OGRE_HLMS_MAX_BASIC_BLOCKS   OGRE_HLMS_NUM_SAMPLERBLOCKS

◆ OGRE_HLMS_MAX_LIFETIME_BLENDBLOCKS

#define OGRE_HLMS_MAX_LIFETIME_BLENDBLOCKS   4096

◆ OGRE_HLMS_MAX_LIFETIME_MACROBLOCKS

#define OGRE_HLMS_MAX_LIFETIME_MACROBLOCKS   4096

◆ OGRE_HLMS_NUM_BLENDBLOCKS

#define OGRE_HLMS_NUM_BLENDBLOCKS   32

◆ OGRE_HLMS_NUM_MACROBLOCKS

#define OGRE_HLMS_NUM_MACROBLOCKS   32

◆ OGRE_HLMS_NUM_SAMPLERBLOCKS

#define OGRE_HLMS_NUM_SAMPLERBLOCKS   64

Typedef Documentation

◆ ArchiveVec

typedef vector< Archive * >::type Ogre::ArchiveVec

◆ BackgroundProcessTicket

Identifier of a background process.

◆ D3D11FrameBufferDescMap

◆ DataStreamList

◆ DataStreamListPtr

Shared pointer to list of DataStream items.

◆ FileInfoList

typedef vector<FileInfo>::type Ogre::FileInfoList

◆ FileInfoListPtr

◆ FilterBaseArray

◆ GL3PlusFrameBufferDescMap

◆ HlmsCacheVec

typedef vector<HlmsCache*>::type Ogre::HlmsCacheVec

◆ HlmsParamVec

typedef vector< std::pair<IdString, String> >::type Ogre::HlmsParamVec

◆ HlmsPropertyVec

typedef vector<HlmsProperty>::type Ogre::HlmsPropertyVec

◆ MetalFrameBufferDescMap

◆ PiecesMap

typedef map<IdString, String>::type Ogre::PiecesMap

◆ ResourceStatusMap

◆ ResourceTransitionArray

◆ StagingTextureVec

typedef vector<StagingTexture*>::type Ogre::StagingTextureVec

◆ TexturePoolList

typedef list<TexturePool>::type Ogre::TexturePoolList

◆ VulkanFlushOnlyDescMap

◆ VulkanFrameBufferDescMap

Enumeration Type Documentation

◆ FontType

Enumerates the types of Font usable in the engine.

Enumerator
FT_TRUETYPE 

Generated from a truetype (.ttf) font.

FT_IMAGE 

Loaded from an image created by an artist.

◆ GpuProgramType

Enumerates the types of programs which can run on the GPU.

Enumerator
GPT_VERTEX_PROGRAM 
GPT_FRAGMENT_PROGRAM 
GPT_GEOMETRY_PROGRAM 
GPT_HULL_PROGRAM 
GPT_DOMAIN_PROGRAM 
GPT_COMPUTE_PROGRAM 

◆ HlmsBasicBlock

Enumerator
BLOCK_MACRO 
BLOCK_BLEND 
BLOCK_SAMPLER 
NUM_BASIC_BLOCKS 

◆ HlmsTypes

Up to 8 different HLMS generator types are allowed.

The maximum values must be in sync with ShaderBits in RenderQueue.cpp (the higher 3 bits)

Enumerator
HLMS_LOW_LEVEL 
HLMS_PBS 

Proxy that redirects to a regular Material.

HLMS_TOON 

Physically Based Shader Generator.

HLMS_UNLIT 

Toon shading / Cel shading.

HLMS_USER0 

Made for GUIs, overlays, particle FXs, self-iluminating billboards.

HLMS_USER1 
HLMS_USER2 
HLMS_USER3 
HLMS_MAX 
HLMS_COMPUTE 

◆ MeshChunkID

Definition of the OGRE .mesh file format.

.mesh files are binary files (for read efficiency at runtime) and are arranged into chunks of data, very like 3D Studio's format. A chunk always consists of: unsigned short CHUNK_ID : one of the following chunk ids identifying the chunk unsigned long LENGTH : length of the chunk in bytes, including this header void* DATA : the data, which may contain other sub-chunks (various data types)

A .mesh file can contain both the definition of the Mesh itself, and optionally the definitions of the materials is uses (although these can be omitted, if so the Mesh assumes that at runtime the Materials referred to by name in the Mesh are loaded/created from another source)

A .mesh file only contains a single mesh, which can itself have multiple submeshes.

Enumerator
M_HEADER 
M_MESH 
M_SUBMESH 
M_SUBMESH_TEXTURE_ALIAS 
M_SUBMESH_LOD 
M_SUBMESH_LOD_OPERATION 
M_SUBMESH_INDEX_BUFFFER 
M_SUBMESH_M_GEOMETRY 
M_SUBMESH_M_GEOMETRY_VERTEX_DECLARATION 
M_SUBMESH_M_GEOMETRY_VERTEX_BUFFER 
M_SUBMESH_M_GEOMETRY_EXTERNAL_SOURCE 
M_MESH_SKELETON_LINK 
M_MESH_BOUNDS 
M_SUBMESH_NAME_TABLE 
M_SUBMESH_NAME_TABLE_ELEMENT 
M_EDGE_LISTS 
M_EDGE_LIST_LOD 
M_EDGE_GROUP 
M_POSES 
M_POSE 
M_POSE_VERTEX 
M_ANIMATIONS 
M_ANIMATION 
M_ANIMATION_BASEINFO 
M_ANIMATION_TRACK 
M_ANIMATION_MORPH_KEYFRAME 
M_ANIMATION_POSE_KEYFRAME 
M_ANIMATION_POSE_REF 
M_SUBMESH_OPERATION 
M_SUBMESH_BONE_ASSIGNMENT 
M_GEOMETRY 
M_GEOMETRY_VERTEX_DECLARATION 
M_GEOMETRY_VERTEX_ELEMENT 
M_GEOMETRY_VERTEX_BUFFER 
M_GEOMETRY_VERTEX_BUFFER_DATA 
M_MESH_BONE_ASSIGNMENT 
M_MESH_LOD_LEVEL 
M_MESH_LOD_USAGE 
M_MESH_LOD_MANUAL 
M_MESH_LOD_GENERATED 
M_TABLE_EXTREMES 
M_GEOMETRY_NORMALS 
M_GEOMETRY_COLOURS 
M_GEOMETRY_TEXCOORDS 

◆ TextureAddressingMode

Enumerator
TAM_WRAP 

Texture wraps at values over 1.0.

TAM_MIRROR 

Texture mirrors (flips) at joins over 1.0.

TAM_CLAMP 

Texture clamps at 1.0.

TAM_BORDER 

Texture coordinates outside the range [0.0, 1.0] are set to the border colour.

TAM_UNKNOWN 

Unknown.

◆ TextureMipmap

Enum identifying special mipmap numbers.

Enumerator
MIP_UNLIMITED 

Generate mipmaps up to 1x1.

MIP_DEFAULT 

Use TextureManager default.

◆ TextureType

Enum identifying the texture type.

Enumerator
TEX_TYPE_1D 

1D texture, used in combination with 1D texture coordinates

TEX_TYPE_2D 

2D texture, used in combination with 2D texture coordinates (default)

TEX_TYPE_3D 

3D volume texture, used in combination with 3D texture coordinates

TEX_TYPE_CUBE_MAP 

3D cube map, used in combination with 3D texture coordinates

TEX_TYPE_2D_ARRAY 

2D texture array

TEX_TYPE_2D_RECT 

2D non-square texture, used in combination with 2D texture coordinates

◆ TextureUsage

Enum identifying the texture usage.

Enumerator
TU_STATIC 

same as HardwareBuffer::HBU_STATIC

TU_DYNAMIC 

same as HardwareBuffer::HBU_DYNAMIC

TU_WRITE_ONLY 

same as HardwareBuffer::HBU_WRITE_ONLY

TU_STATIC_WRITE_ONLY 

same as HardwareBuffer::HBU_STATIC_WRITE_ONLY

TU_DYNAMIC_WRITE_ONLY 

same as HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY

TU_DYNAMIC_WRITE_ONLY_DISCARDABLE 

same as HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE

TU_AUTOMIPMAP 

Mipmaps will be automatically generated for this texture.

TU_RENDERTARGET 

This texture will be a render target, i.e.

used as a target for render to texture setting this flag will ignore all other texture usages except TU_AUTOMIPMAP, TU_UAV, TU_NOT_SRV

TU_NOT_SRV 

Texture would not be used as Shader Resource View, i.e.

as regular texture. That flag could be combined with TU_RENDERTARGET or TU_UAV to remove possible limitations on some hardware

TU_UAV 

Texture can be bound as an Unordered Access View (imageStore/imageRead/glBindImageTexture in GL jargon)

TU_UAV_NOT_SRV 

Texture can be used as an UAV, but not as a regular texture.

TU_AUTOMIPMAP_AUTO 

Must be used with TU_AUTOMIPMAP.

When this flag is present, writing to a RenderTexture will automatically call _autogenerateMipmaps when it's used as a Texture again.

TU_DEFAULT 

Default to automatic mipmap generation static textures.

TU_NOT_TEXTURE 
TU_UAV_NOT_TEXTURE 

Function Documentation

◆ OGRE_HLMS_TEXTURE_BASE_CLASS()

Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::OGRE_HLMS_TEXTURE_BASE_CLASS ( IdString  name,
Hlms creator,
const HlmsMacroblock macroblock,
const HlmsBlendblock blendblock,
const HlmsParamVec params 
)

◆ ~OGRE_HLMS_TEXTURE_BASE_CLASS()

virtual Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::~OGRE_HLMS_TEXTURE_BASE_CLASS ( )
virtual

◆ _setSamplerblock()

void Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::_setSamplerblock ( uint8  texType,
const HlmsSamplerblock samplerblockPtr 
)

Same as setSamplerblock, but samplerblockPtr is a raw samplerblock retrieved from HlmsManager, and is assumed to have its reference count already be incremented for us.

See _setTexture.

◆ _setTexture()

void Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::_setTexture ( uint8  texType,
TextureGpu texture,
const HlmsSamplerblock samplerblockPtr = 0,
uint16  sliceIdx = std::numeric_limits< uint16 >::max() 
)

Same as setTexture, but samplerblockPtr is a raw samplerblock retrieved from HlmsManager, and is assumed to have its reference count already be incremented for us (note HlmsManager::getSamplerblock() already increments the ref.

count). Mostly for internal use, but can speed up loading if you already manage samplerblocks manually and have the raw ptr.

◆ getIndexToDescriptorSampler()

uint8 Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::getIndexToDescriptorSampler ( uint8  texType)

Do not call this function if RSC_SEPARATE_SAMPLERS_FROM_TEXTURES is not set.

If not set, then just the result value from getIndexToDescriptorTexture instead. Same complexity as getIndexToDescriptorTexture

◆ getIndexToDescriptorTexture()

uint8 Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::getIndexToDescriptorTexture ( uint8  texType)

This function has O( log N ) complexity, but O(1) if the texture was not set.

◆ getSamplerblock()

const HlmsSamplerblock* Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::getSamplerblock ( uint8  texType) const

◆ getTexture()

TextureGpu* Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::getTexture ( uint8  texType) const

◆ loadAllTextures()

void Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::loadAllTextures ( void  )

◆ notifyTextureChanged()

virtual void Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::notifyTextureChanged ( TextureGpu texture,
TextureGpuListener::Reason  reason,
void *  extraData 
)
virtual

Called when a TextureGpu changed in a way that affects how it is displayed:

  1. TextureGpu::notifyDataIsReady got called (texture is ready to be displayed)
  2. Texture changed residency status.
  3. Texture is being deleted. It won't be a valid pointer after this call.

Implements Ogre::TextureGpuListener.

◆ OrderCacheByHash()

bool Ogre::OrderCacheByHash ( const HlmsCache _left,
const HlmsCache _right 
)
inline

References Ogre::HlmsCache::hash.

◆ OrderConstBufferPoolUserByPoolThenSlot()

bool Ogre::OrderConstBufferPoolUserByPoolThenSlot ( const ConstBufferPoolUser _l,
const ConstBufferPoolUser _r 
)
inline

◆ OrderParamVecByKey()

bool Ogre::OrderParamVecByKey ( const std::pair< IdString, String > &  _left,
const std::pair< IdString, String > &  _right 
)
inline

◆ OrderPropertyByIdString()

bool Ogre::OrderPropertyByIdString ( const HlmsProperty _left,
const HlmsProperty _right 
)
inline

◆ saveTextures()

virtual void Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::saveTextures ( const String folderPath,
set< String >::type &  savedTextures,
bool  saveOitd,
bool  saveOriginal,
HlmsTextureExportListener listener 
)
virtual
Remarks
It's possible to set both saveOitd & saveOriginal to true, but will likely double storage requirements (2x as many textures). Setting both to true is useful for troubleshooting obscure Ogre bugs.
Parameters
folderPathFolder where to dump the textures.
savedTextures[in/out] Set of texture names. Textures whose name is already in the set won't be saved again. Textures that were saved will be inserted into the set.
saveOitdWhen true, we will download the texture from GPU and save it in OITD format. OITD is faster to load as it's stored in Ogre's native format it understands, but it cannot be opened by traditional image editors; also OITD is not backwards compatible with older versions of Ogre.
saveOriginalWhen true, we will attempt to read the raw filestream of the original texture and save it (i.e. copy the original png/dds/etc file).

Reimplemented from Ogre::HlmsDatablock.

◆ setSamplerblock()

void Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::setSamplerblock ( uint8  texType,
const HlmsSamplerblock params 
)

Sets a new sampler block to be associated with the texture (i.e.

filtering mode, addressing modes, etc). If the samplerblock changes, this function will always trigger a HlmsDatablock::flushRenderables

Parameters
texTypeTexture unit. Must be in range [0; OGRE_HLMS_TEXTURE_BASE_MAX_TEX)
paramsThe sampler block to use as reference.

◆ setTexture()

void Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::setTexture ( uint8  texType,
TextureGpu texture,
const HlmsSamplerblock refParams = 0,
uint16  sliceIdx = std::numeric_limits< uint16 >::max() 
)

Sets a new texture for rendering.

Calling this function may trigger an HlmsDatablock::flushRenderables if the texture or the samplerblock changes. Might not be called if old and new texture belong to the same TexturePool.

Parameters
texTypeTexture unit. Must be in range [0; OGRE_HLMS_TEXTURE_BASE_MAX_TEX)
textureTexture to change to. If it is null and previously wasn't (or viceversa), will trigger HlmsDatablock::flushRenderables.
refParamsOptional. We'll create (or retrieve an existing) samplerblock based on the input parameters. When null, we leave the previously set samplerblock (if a texture is being set, and if no samplerblock was set, we'll create a default one)
sliceIdxOptional. When not set to 0xFFFF, it means you want to explicitly set the texture array index, instead of relying on texture->getInternalSliceStart(). Only useful if texture is TextureTypes::Type2DArray. For advanced users.

◆ shouldStayLoaded()

virtual bool Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::shouldStayLoaded ( TextureGpu texture)
virtual

Return true if this TextureGpu should likely stay loaded or else graphical changes could occur.

Return false if it is certainly safe to unload.

Reimplemented from Ogre::TextureGpuListener.

Variable Documentation

◆ c_ForwardPlusNumFloat4PerCubemapProbe

const size_t Ogre::c_ForwardPlusNumFloat4PerCubemapProbe = 8u
static

◆ c_ForwardPlusNumFloat4PerDecal

const size_t Ogre::c_ForwardPlusNumFloat4PerDecal = 4u
static

◆ c_ForwardPlusNumFloat4PerLight

const size_t Ogre::c_ForwardPlusNumFloat4PerLight = 6u
static