This documents an old version of bs::framework. Click here to see the latest release.
RenderAPI

Description

Interface for interacting with the render API (DirectX, OpenGL, etc.).

Classes

struct  RENDER_TARGET_BLEND_STATE_DESC
 Structure that describes blend states for a single render target. More...
 
struct  BLEND_STATE_DESC
 Structure that describes render pipeline blend states. More...
 
class  BlendProperties
 Properties of a BlendState. More...
 
class  BlendState
 Render system pipeline state that allows you to modify how an object is rendered. More...
 
class  CommandSyncMask
 Mask that determines synchronization between command buffers executing on different hardware queues. More...
 
class  CommandBuffer
 Contains a list of render API commands that can be queued for execution on the GPU. More...
 
struct  DEPTH_STENCIL_STATE_DESC
 Descriptor structured used for initializing DepthStencilState. More...
 
class  DepthStencilProperties
 Properties of DepthStencilState. More...
 
class  DepthStencilState
 Render system pipeline state that allows you to modify how an object is rendered. More...
 
struct  GPU_BUFFER_DESC
 Descriptor structure used for initialization of a GpuBuffer. More...
 
class  GpuBufferProperties
 Information about a GpuBuffer. More...
 
class  GpuBuffer
 Handles a generic GPU buffer that you may use for storing any kind of sequential data you wish to be accessible to the GPU. More...
 
class  GpuParamBlockBuffer
 Represents a GPU parameter block buffer. More...
 
struct  GpuParamDataDesc
 Describes a single GPU program data (for example int, float, Vector2) parameter. More...
 
struct  GpuParamObjectDesc
 Describes a single GPU program object (for example texture, sampler state) parameter. More...
 
struct  GpuParamBlockDesc
 Describes a GPU program parameter block (collection of GPU program data parameters). More...
 
struct  GpuParamDesc
 Contains all parameter information for a GPU program, including data and object parameters, plus parameter blocks. More...
 
class  GpuParams
 Contains descriptions for all parameters in a set of programs (ones for each stage) and allows you to write and read those parameters. More...
 
struct  PIPELINE_STATE_DESC
 Descriptor structure used for initializing a GPU pipeline state. More...
 
class  GraphicsPipelineState
 Describes the state of the GPU pipeline that determines how are primitives rendered. More...
 
class  ComputePipelineState
 Describes the state of the GPU pipeline that determines how are compute programs executed. More...
 
struct  GPU_PROGRAM_DESC
 Descriptor structure used for initialization of a GpuProgram. More...
 
class  GpuProgram
 Contains a GPU program such as vertex or fragment program which gets compiled from the provided source code. More...
 
struct  GpuProgramBytecode
 A GPU program compiled to an intermediate bytecode format, as well as any relevant meta-data that could be extracted from that format. More...
 
struct  INDEX_BUFFER_DESC
 Descriptor structure used for initialization of an IndexBuffer. More...
 
class  IndexBufferProperties
 Contains information about an index buffer. More...
 
class  IndexBuffer
 Hardware buffer that hold indices that reference vertices in a vertex buffer. More...
 
class  OcclusionQuery
 Represents a query that counts number of samples rendered by the GPU while the query is active. More...
 
struct  RASTERIZER_STATE_DESC
 Structure that describes pipeline rasterizer state. More...
 
class  RasterizerProperties
 Properties of RasterizerState. More...
 
class  RasterizerState
 Render system pipeline state that allows you to modify how an object is rasterized (how are polygons converted to pixels). More...
 
class  RenderAPI
 Provides access to ct::RenderAPI from the simulation thread. More...
 
class  RenderAPIInfo
 Contains properties specific to a render API implementation. More...
 
struct  RENDER_SURFACE_DESC
 Structure that contains information about what part of the texture represents the render surface. More...
 
class  RenderTargetProperties
 Contains various properties that describe a render target. More...
 
class  RenderTarget
 Render target is a frame buffer or a texture that the render system renders the scene to. More...
 
struct  RENDER_TEXTURE_DESC
 Structure that describes a render texture color and depth/stencil surfaces. More...
 
class  RenderTextureProperties
 Contains various properties that describe a render texture. More...
 
class  RenderTexture
 Render target specialization that allows you to render into one or multiple textures. More...
 
struct  RENDER_WINDOW_DESC
 Structure that is used for initializing a render window. More...
 
class  RenderWindowProperties
 Contains various properties that describe a render window. More...
 
class  RenderWindow
 Operating system window with a specific position, size and style. More...
 
struct  SAMPLER_STATE_DESC
 Structure used for initializing a SamplerState. More...
 
class  SamplerProperties
 Properties of SamplerState. More...
 
class  SamplerState
 Class representing the state of a texture sampler. More...
 
struct  SubMesh
 Data about a sub-mesh range and the type of primitives contained in the range. More...
 
struct  VERTEX_BUFFER_DESC
 Descriptor structure used for initialization of a VertexBuffer. More...
 
class  VertexBufferProperties
 Contains information about a vertex buffer buffer. More...
 
class  VertexBuffer
 Specialization of a hardware buffer used for holding vertex data. More...
 
class  VertexData
 Container class consisting of a set of vertex buffers and their declaration. More...
 
class  VertexElement
 Describes a single vertex element in a vertex declaration. More...
 
class  VertexDeclarationProperties
 Contains information about a vertex declaration. More...
 
class  VertexDeclaration
 Describes a set of vertex elements, used for describing contents of a vertex buffer or inputs to a vertex GPU program. More...
 
class  VideoMode
 Video mode contains information about how a render window presents its information to an output device like a monitor. More...
 
class  VideoOutputInfo
 Contains information about a video output device, including a list of all available video modes. More...
 
class  VideoModeInfo
 Contains information about available output devices (for example monitor) and their video modes. More...
 
class  Viewport
 Viewport determines to which RenderTarget should rendering be performed. More...
 

Typedefs

typedef TGpuDataParam< float, false > GpuParamFloat
 
typedef TGpuDataParam< Vector2, false > GpuParamVec2
 
typedef TGpuDataParam< Vector3, false > GpuParamVec3
 
typedef TGpuDataParam< Vector4, false > GpuParamVec4
 
typedef TGpuDataParam< int, false > GpuParamInt
 
typedef TGpuDataParam< Vector2I, false > GpuParamVec2I
 
typedef TGpuDataParam< Vector3I, false > GpuParamVec3I
 
typedef TGpuDataParam< Vector4I, false > GpuParamVec4I
 
typedef TGpuDataParam< Matrix3, false > GpuParamMat3
 
typedef TGpuDataParam< Matrix4, false > GpuParamMat4
 
typedef TGpuDataParam< Color, false > GpuParamColor
 
typedef TGpuParamStruct< false > GpuParamStruct
 
typedef TGpuParamTexture< false > GpuParamTexture
 
typedef TGpuParamBuffer< false > GpuParamBuffer
 
typedef TGpuParamSampState< false > GpuParamSampState
 
typedef TGpuParamLoadStoreTexture< false > GpuParamLoadStoreTexture
 
typedef Flags< RenderAPIFeatureFlagRenderAPIFeatures
 

Enumerations

enum  RenderAPIFeatureFlag {
  VertexColorFlip = 1 << 0, UVYAxisUp = 1 << 1, NDCYAxisDown = 1 << 2, ColumnMajorMatrices = 1 << 3,
  MultiThreadedCB = 1 << 4, MSAAImageStores = 1 << 5, TextureViews = 1 << 6, Compute = 1 << 7,
  LoadStore = 1 << 8, ByteCodeCaching = 1 << 9, RenderTargetLayers = 1 << 10
}
 Feature flags that describe which render API specific features are enabled. More...
 
enum  VertexElementSemantic {
  VES_POSITION = 1, VES_BLEND_WEIGHTS = 2, VES_BLEND_INDICES = 3, VES_NORMAL = 4,
  VES_COLOR = 5, VES_TEXCOORD = 6, VES_BITANGENT = 7, VES_TANGENT = 8,
  VES_POSITIONT = 9, VES_PSIZE = 10
}
 Semantics that are used for identifying the meaning of vertex buffer elements. More...
 
enum  VertexElementType {
  VET_FLOAT1 = 0, VET_FLOAT2 = 1, VET_FLOAT3 = 2, VET_FLOAT4 = 3,
  VET_COLOR = 4, VET_SHORT1 = 5, VET_SHORT2 = 6, VET_SHORT4 = 8,
  VET_UBYTE4 = 9, VET_COLOR_ARGB = 10, VET_COLOR_ABGR = 11, VET_UINT4 = 12,
  VET_INT4 = 13, VET_USHORT1 = 14, VET_USHORT2 = 15, VET_USHORT4 = 17,
  VET_INT1 = 18, VET_INT2 = 19, VET_INT3 = 20, VET_UINT1 = 21,
  VET_UINT2 = 22, VET_UINT3 = 23, VET_UBYTE4_NORM = 24, VET_COUNT,
  VET_UNKNOWN = 0xffff
}
 Types used to identify base types of vertex element contents. More...
 

Functions

BS_CORE_EXPORT String toString (const VertexElementSemantic &val)
 Converts a vertex semantic enum to a readable name. More...
 

Enumeration Type Documentation

◆ RenderAPIFeatureFlag

enum RenderAPIFeatureFlag
strong

Feature flags that describe which render API specific features are enabled.

Enumerator
VertexColorFlip 

If set, vertex color order will be reversed before being sent to the shader.

UVYAxisUp 

If set, the Y axis in texture (UV) coordinates is assumed to be pointing up, instead of down (which is the default).

NDCYAxisDown 

If set, the Y axis in normalized device coordinates (NDC) is assumed to be pointing down, instead of up (which is the default).

ColumnMajorMatrices 

If set, the matrices used by shaders are in column major order, instead of in row major (which is the default).

MultiThreadedCB 

If set, the render API has native support for multi-threaded command buffer generation.

Otherwise it is emulated and using command buffers might not be beneficial.

MSAAImageStores 

If set, the render API supports unordered stores to a texture with more than one sample.

TextureViews 

If set, the render API supports binds of parts of a texture (e.g.

a single mip level, or a single element of a texture array). This only applies to texture reads and individual mip levels or layers can still be bound as render texture targets regardless of this flag.

Compute 

If set, the render API supports compute shaders.

LoadStore 

If set, the render API supports load-store textures or buffers (AKA unordered access (UAV).

ByteCodeCaching 

If set, GpuPrograms can cache shader bytecode for faster future compilation.

RenderTargetLayers 

If set, the render API support rendering to multiple layers of a render texture at once (via a geometry shader).

◆ VertexElementSemantic

Semantics that are used for identifying the meaning of vertex buffer elements.

Enumerator
VES_POSITION 

Position.

VES_BLEND_WEIGHTS 

Blend weights.

VES_BLEND_INDICES 

Blend indices.

VES_NORMAL 

Normal.

VES_COLOR 

Color.

VES_TEXCOORD 

UV coordinate.

VES_BITANGENT 

Bitangent.

VES_TANGENT 

Tangent.

VES_POSITIONT 

Transformed position.

VES_PSIZE 

Point size.

◆ VertexElementType

Types used to identify base types of vertex element contents.

Enumerator
VET_FLOAT1 

1D floating point value

VET_FLOAT2 

2D floating point value

VET_FLOAT3 

3D floating point value

VET_FLOAT4 

4D floating point value

VET_COLOR 

Color encoded in 32-bits (8-bits per channel).

VET_SHORT1 

1D 16-bit signed integer value

VET_SHORT2 

2D 16-bit signed integer value

VET_SHORT4 

4D 16-bit signed integer value

VET_UBYTE4 

4D 8-bit unsigned integer value

VET_COLOR_ARGB 

Color encoded in 32-bits (8-bits per channel) in ARGB order)

VET_COLOR_ABGR 

Color encoded in 32-bits (8-bits per channel) in ABGR order)

VET_UINT4 

4D 32-bit unsigned integer value

VET_INT4 

4D 32-bit signed integer value

VET_USHORT1 

1D 16-bit unsigned integer value

VET_USHORT2 

2D 16-bit unsigned integer value

VET_USHORT4 

4D 16-bit unsigned integer value

VET_INT1 

1D 32-bit signed integer value

VET_INT2 

2D 32-bit signed integer value

VET_INT3 

3D 32-bit signed integer value

VET_UINT1 

1D 32-bit signed integer value

VET_UINT2 

2D 32-bit signed integer value

VET_UINT3 

3D 32-bit signed integer value

VET_UBYTE4_NORM 

4D 8-bit unsigned integer interpreted as a normalized value in [0, 1] range.

Function Documentation

◆ toString()

BS_CORE_EXPORT String bs::toString ( const VertexElementSemantic val)

Converts a vertex semantic enum to a readable name.