OGRE 2.1
Object-Oriented Graphics Rendering Engine
Loading...
Searching...
No Matches
Ogre::HlmsBlendblock Struct Reference

A blend block contains settings that rarely change, and thus are common to many materials. More...

#include <OgreHlmsDatablock.h>

+ Inheritance diagram for Ogre::HlmsBlendblock:

Public Types

enum  BlendChannelMasks {
  BlendChannelRed = 0x01 , BlendChannelGreen = 0x02 , BlendChannelBlue = 0x04 , BlendChannelAlpha = 0x08 ,
  BlendChannelAll
}
 

Public Member Functions

 HlmsBlendblock ()
 
void calculateSeparateBlendMode ()
 Sets mSeparateBlend to true or false based on current settings.
 
bool operator!= (const HlmsBlendblock &_r) const
 
bool operator== (const HlmsBlendblock &_r) const
 
void setBlendType (SceneBlendType blendType)
 Shortcut to set the blend factors to common blending operations.
 
void setBlendType (SceneBlendType colour, SceneBlendType alpha)
 Shortcut to set the blend factors to common blending operations.
 

Public Attributes

uint8 mAllowGlobalDefaults
 When zero, HlmsManager cannot override the block's values with enforced global settings.
 
bool mAlphaToCoverageEnabled
 
uint8 mBlendChannelMask
 Masks which colour channels will be writing to.
 
SceneBlendOperation mBlendOperation
 
SceneBlendOperation mBlendOperationAlpha
 
uint8 mBlockType
 
SceneBlendFactor mDestBlendFactor
 
SceneBlendFactor mDestBlendFactorAlpha
 
uint16 mId
 The mId is only valid while mRefCount > 0; which means mRsData may contain valid data, else it's null.
 
bool mIsTransparent
 This value calculated by HlmsManager::getBlendblock.
 
uint16 mLifetimeId
 Except for HlmsSamplerblocks, mLifetimeId is valid throghout the entire life of HlmsManager.
 
uint16 mRefCount
 Render-System specific data.
 
voidmRsData
 
bool mSeparateBlend
 Used to determine if separate alpha blending should be used for color and alpha channels.
 
SceneBlendFactor mSourceBlendFactor
 
SceneBlendFactor mSourceBlendFactorAlpha
 

Detailed Description

A blend block contains settings that rarely change, and thus are common to many materials.

The reasons this structure isn't joined with HlmsMacroblock is that: The D3D11 API makes this distinction (much higher API overhead if we change i.e. depth settings) due to D3D11_RASTERIZER_DESC. This block contains information of whether the material is transparent. Transparent materials are sorted differently than opaque ones. Up to 32 different blocks are allowed!

Member Enumeration Documentation

◆ BlendChannelMasks

Enumerator
BlendChannelRed 
BlendChannelGreen 
BlendChannelBlue 
BlendChannelAlpha 
BlendChannelAll 

Constructor & Destructor Documentation

◆ HlmsBlendblock()

Ogre::HlmsBlendblock::HlmsBlendblock ( )

Member Function Documentation

◆ calculateSeparateBlendMode()

void Ogre::HlmsBlendblock::calculateSeparateBlendMode ( )

Sets mSeparateBlend to true or false based on current settings.

◆ operator!=()

bool Ogre::HlmsBlendblock::operator!= ( const HlmsBlendblock _r) const
inline

◆ operator==()

bool Ogre::HlmsBlendblock::operator== ( const HlmsBlendblock _r) const
inline

◆ setBlendType() [1/2]

void Ogre::HlmsBlendblock::setBlendType ( SceneBlendType  blendType)

Shortcut to set the blend factors to common blending operations.

Sets both blend and alpha to the same value and mSeparateBlend is turned off.

◆ setBlendType() [2/2]

void Ogre::HlmsBlendblock::setBlendType ( SceneBlendType  colour,
SceneBlendType  alpha 
)

Shortcut to set the blend factors to common blending operations.

Sets colour and alpha individually, turns mSeparateBlend on.

Member Data Documentation

◆ mAllowGlobalDefaults

uint8 Ogre::BasicBlock::mAllowGlobalDefaults
inherited

When zero, HlmsManager cannot override the block's values with enforced global settings.

See also
HlmsBasicBlock (such as lower quality texture filtering or turning off depth checks for debugging)

◆ mAlphaToCoverageEnabled

bool Ogre::HlmsBlendblock::mAlphaToCoverageEnabled

◆ mBlendChannelMask

uint8 Ogre::HlmsBlendblock::mBlendChannelMask

Masks which colour channels will be writing to.

Default: BlendChannelAll For some advanced effects, you may wish to turn off the writing of certain colour channels, or even all of the colour channels so that only the depth buffer is updated in a rendering pass (if depth writes are on; may be you want to only update the stencil buffer).

◆ mBlendOperation

SceneBlendOperation Ogre::HlmsBlendblock::mBlendOperation

◆ mBlendOperationAlpha

SceneBlendOperation Ogre::HlmsBlendblock::mBlendOperationAlpha

◆ mBlockType

uint8 Ogre::BasicBlock::mBlockType
inherited

◆ mDestBlendFactor

SceneBlendFactor Ogre::HlmsBlendblock::mDestBlendFactor

◆ mDestBlendFactorAlpha

SceneBlendFactor Ogre::HlmsBlendblock::mDestBlendFactorAlpha

◆ mId

uint16 Ogre::BasicBlock::mId
inherited

The mId is only valid while mRefCount > 0; which means mRsData may contain valid data, else it's null.

◆ mIsTransparent

bool Ogre::HlmsBlendblock::mIsTransparent

This value calculated by HlmsManager::getBlendblock.

◆ mLifetimeId

uint16 Ogre::BasicBlock::mLifetimeId
inherited

Except for HlmsSamplerblocks, mLifetimeId is valid throghout the entire life of HlmsManager.

This guarantees HlmsMacroblock & HlmsBlendblock pointers are always valid, although they may be inactive (i.e. mId invalid, mRefCount = 0 and mRsData = 0)

◆ mRefCount

uint16 Ogre::BasicBlock::mRefCount
inherited

Render-System specific data.

◆ mRsData

void* Ogre::BasicBlock::mRsData
inherited

◆ mSeparateBlend

bool Ogre::HlmsBlendblock::mSeparateBlend

Used to determine if separate alpha blending should be used for color and alpha channels.

◆ mSourceBlendFactor

SceneBlendFactor Ogre::HlmsBlendblock::mSourceBlendFactor

◆ mSourceBlendFactorAlpha

SceneBlendFactor Ogre::HlmsBlendblock::mSourceBlendFactorAlpha

The documentation for this struct was generated from the following file: