OGRE  2.2.4
Object-Oriented Graphics Rendering Engine
Resources

Namespaces

 Ogre::CommonTextureTypes
 
 Ogre::CubemapSide
 
 Ogre::DefaultMipmapGen
 
 Ogre::LoadAction
 
 Ogre::PbsBrdf
 
 Ogre::ReadBarrier
 
 Ogre::ResourceAccess
 
 Ogre::ResourceLayout
 
 Ogre::StoreAction
 
 Ogre::TextureFilter
 
 Ogre::TextureFlags
 
 Ogre::TextureSourceType
 
 Ogre::TextureTypes
 
 Ogre::WriteBarrier
 

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...
 
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
 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
 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
 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
 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::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...
 
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 *, ResourceAccess::ResourceAccessOgre::ResourceAccessMap
 
typedef StdMap< GpuTrackedResource *, ResourceLayout::LayoutOgre::ResourceLayoutMap
 
typedef vector< StagingTexture * >::type Ogre::StagingTextureVec
 
typedef list< TexturePool >::type Ogre::TexturePoolList
 

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::OperationType {
  Ogre::OT_POINT_LIST = 1, Ogre::OT_LINE_LIST = 2, Ogre::OT_LINE_STRIP = 3, Ogre::OT_TRIANGLE_LIST = 4,
  Ogre::OT_TRIANGLE_STRIP = 5, Ogre::OT_TRIANGLE_FAN = 6, Ogre::OT_PATCH_1_CONTROL_POINT = 7, Ogre::OT_PATCH_2_CONTROL_POINT = 8,
  Ogre::OT_PATCH_3_CONTROL_POINT = 9, Ogre::OT_PATCH_4_CONTROL_POINT = 10, Ogre::OT_PATCH_5_CONTROL_POINT = 11, Ogre::OT_PATCH_6_CONTROL_POINT = 12,
  Ogre::OT_PATCH_7_CONTROL_POINT = 13, Ogre::OT_PATCH_8_CONTROL_POINT = 14, Ogre::OT_PATCH_9_CONTROL_POINT = 15, Ogre::OT_PATCH_10_CONTROL_POINT = 16,
  Ogre::OT_PATCH_11_CONTROL_POINT = 17, Ogre::OT_PATCH_12_CONTROL_POINT = 18, Ogre::OT_PATCH_13_CONTROL_POINT = 19, Ogre::OT_PATCH_14_CONTROL_POINT = 20,
  Ogre::OT_PATCH_15_CONTROL_POINT = 21, Ogre::OT_PATCH_16_CONTROL_POINT = 22, Ogre::OT_PATCH_17_CONTROL_POINT = 23, Ogre::OT_PATCH_18_CONTROL_POINT = 24,
  Ogre::OT_PATCH_19_CONTROL_POINT = 25, Ogre::OT_PATCH_20_CONTROL_POINT = 26, Ogre::OT_PATCH_21_CONTROL_POINT = 27, Ogre::OT_PATCH_22_CONTROL_POINT = 28,
  Ogre::OT_PATCH_23_CONTROL_POINT = 29, Ogre::OT_PATCH_24_CONTROL_POINT = 30, Ogre::OT_PATCH_25_CONTROL_POINT = 31, Ogre::OT_PATCH_26_CONTROL_POINT = 32,
  Ogre::OT_PATCH_27_CONTROL_POINT = 33, Ogre::OT_PATCH_28_CONTROL_POINT = 34, Ogre::OT_PATCH_29_CONTROL_POINT = 35, Ogre::OT_PATCH_30_CONTROL_POINT = 36,
  Ogre::OT_PATCH_31_CONTROL_POINT = 37, Ogre::OT_PATCH_32_CONTROL_POINT = 38
}
 
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

◆ ResourceAccessMap

◆ ResourceLayoutMap

◆ StagingTextureVec

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

◆ TexturePoolList

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

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 

◆ OperationType

Enumerator
OT_POINT_LIST 

A list of points, 1 vertex per point.

OT_LINE_LIST 

A list of lines, 2 vertices per line.

OT_LINE_STRIP 

A strip of connected lines, 1 vertex per line plus 1 start vertex.

OT_TRIANGLE_LIST 

A list of triangles, 3 vertices per triangle.

OT_TRIANGLE_STRIP 

A strip of triangles, 3 vertices for the first triangle, and 1 per triangle after that.

OT_TRIANGLE_FAN 

A fan of triangles, 3 vertices for the first triangle, and 1 per triangle after that.

OT_PATCH_1_CONTROL_POINT 

Patch control point operations, used with tessellation stages.

OT_PATCH_2_CONTROL_POINT 
OT_PATCH_3_CONTROL_POINT 
OT_PATCH_4_CONTROL_POINT 
OT_PATCH_5_CONTROL_POINT 
OT_PATCH_6_CONTROL_POINT 
OT_PATCH_7_CONTROL_POINT 
OT_PATCH_8_CONTROL_POINT 
OT_PATCH_9_CONTROL_POINT 
OT_PATCH_10_CONTROL_POINT 
OT_PATCH_11_CONTROL_POINT 
OT_PATCH_12_CONTROL_POINT 
OT_PATCH_13_CONTROL_POINT 
OT_PATCH_14_CONTROL_POINT 
OT_PATCH_15_CONTROL_POINT 
OT_PATCH_16_CONTROL_POINT 
OT_PATCH_17_CONTROL_POINT 
OT_PATCH_18_CONTROL_POINT 
OT_PATCH_19_CONTROL_POINT 
OT_PATCH_20_CONTROL_POINT 
OT_PATCH_21_CONTROL_POINT 
OT_PATCH_22_CONTROL_POINT 
OT_PATCH_23_CONTROL_POINT 
OT_PATCH_24_CONTROL_POINT 
OT_PATCH_25_CONTROL_POINT 
OT_PATCH_26_CONTROL_POINT 
OT_PATCH_27_CONTROL_POINT 
OT_PATCH_28_CONTROL_POINT 
OT_PATCH_29_CONTROL_POINT 
OT_PATCH_30_CONTROL_POINT 
OT_PATCH_31_CONTROL_POINT 
OT_PATCH_32_CONTROL_POINT 

◆ 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