![]() |
OGRE 2.3.1
Object-Oriented Graphics Rendering Engine
|
Namespaces | |
namespace | Ogre::CommonTextureTypes |
namespace | Ogre::CopyEncTransitionMode |
namespace | Ogre::CubemapSide |
namespace | Ogre::DefaultMipmapGen |
namespace | Ogre::LoadAction |
namespace | Ogre::PbsBrdf |
namespace | Ogre::PrefabRootLayout |
namespace | Ogre::ResidencyMask |
namespace | Ogre::ResourceAccess |
namespace | Ogre::ResourceLayout |
namespace | Ogre::StoreAction |
namespace | Ogre::TextureFilter |
namespace | Ogre::TextureFlags |
namespace | Ogre::TextureSourceType |
namespace | Ogre::TextureTypes |
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 |
#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 |
typedef vector< Archive * >::type Ogre::ArchiveVec |
Identifier of a background process.
List of DataStream items.
Shared pointer to list of DataStream items.
typedef vector<FileInfo>::type Ogre::FileInfoList |
typedef vector<HlmsCache*>::type Ogre::HlmsCacheVec |
typedef vector<std::pair<IdString,String>>::type Ogre::HlmsParamVec |
typedef map<IdString,String>::type Ogre::PiecesMap |
typedef list<TexturePool>::type Ogre::TexturePoolList |
typedef map<VulkanFrameBufferDescKey,VulkanFrameBufferDescValue>::type Ogre::VulkanFrameBufferDescMap |
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. |
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 |
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.
Enum identifying special mipmap numbers.
Enumerator | |
---|---|
MIP_UNLIMITED | Generate mipmaps up to 1x1. |
MIP_DEFAULT | Use TextureManager default. |
Enum identifying the texture type.
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 |
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 |
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.
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.
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
This function has O( log N ) complexity, but O(1) if the texture was not set.
const HlmsSamplerblock * Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::getSamplerblock | ( | uint8 | texType | ) | const |
TextureGpu * Ogre::OGRE_HLMS_TEXTURE_BASE_CLASS::getTexture | ( | uint8 | texType | ) | const |
|
virtual |
Called when a TextureGpu changed in a way that affects how it is displayed:
Implements Ogre::TextureGpuListener.
|
inline |
|
inline |
|
inline |
Tells datablock to start loading all of its textures (if not loaded already) and any other resource it may need.
Useful to cut loading times by anticipating what the user will do.
Do not call this function aggressively (e.g. for lots of material every frame)
Reimplemented from Ogre::HlmsDatablock.
|
virtual |
folderPath | Folder 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. |
saveOitd | When 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. |
saveOriginal | When 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.
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
texType | Texture unit. Must be in range [0; OGRE_HLMS_TEXTURE_BASE_MAX_TEX) |
params | The sampler block to use as reference. |
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.
texType | Texture unit. Must be in range [0; OGRE_HLMS_TEXTURE_BASE_MAX_TEX) |
texture | Texture to change to. If it is null and previously wasn't (or viceversa), will trigger HlmsDatablock::flushRenderables. |
refParams | Optional. 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) |
sliceIdx | Optional. 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. |
|
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.