Berserk
Classes | Enumerations | Functions
RHIDefs.hpp File Reference
#include <core/Config.hpp>
#include <core/Typedefs.hpp>
#include <core/string/String.hpp>
Include dependency graph for RHIDefs.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  RHILimits
 RHI common device limits. More...
 
struct  RHIDeviceCaps
 RHI device capabilities. More...
 

Enumerations

enum class  RHIType : uint8 { OpenGL , Vulkan , Unknown }
 
enum class  RHIBufferUsage : uint8 { Static , Dynamic }
 
enum class  RHIIndexType : uint8 { Uint32 , Uint16 , Unknown }
 
enum class  RHIVertexFrequency : uint8 { PerVertex = 0 , PerInstance }
 
enum class  RHIVertexElementType : uint8 {
  Float1 = 0 , Float2 , Float3 , Float4 ,
  Int1 , Int2 , Int3 , Int4 ,
  Unknown
}
 
enum class  RHIShaderDataType : uint8 {
  Float1 , Float2 , Float3 , Float4 ,
  Int1 , Int2 , Int3 , Int4 ,
  Uint1 , Uint2 , Uint3 , Uint4 ,
  Bool1 , Bool2 , Bool3 , Bool4 ,
  Mat2 , Mat3 , Mat4 , Unknown
}
 
enum class  RHIShaderParamType : uint8 {
  Sampler2d , Sampler2dArray , Sampler3d , SamplerCube ,
  Unknown
}
 
enum class  RHITextureType : uint8 {
  Texture2d , Texture2dArray , Texture3d , TextureCube ,
  Unknown
}
 
enum class  RHIShaderType : uint8 { Vertex = 0 , Fragment = 1 }
 
enum class  RHIShaderLanguage : uint8 { GLSL410GL = 1 , GLSL450GL = 2 , GLSL450VK = 3 , Unknown }
 
enum class  RHITextureFormat : uint8 {
  R8 , R8_SNORM , R16 , R16_SNORM ,
  RG8 , RG8_SNORM , RG16 , RG16_SNORM ,
  RGB8 , RGB8_SNORM , RGB16_SNORM , RGBA8 ,
  RGBA8_SNORM , RGBA16 , SRGB8 , SRGB8_ALPHA8 ,
  R16F , RG16F , RGB16F , RGBA16F ,
  R32F , RG32F , RGB32F , RGBA32F ,
  DEPTH32F , DEPTH32F_STENCIL8 , DEPTH24_STENCIL8 , Unknown
}
 
enum class  RHITextureUsage : uint8 { Sampling = 1 , ColorAttachment = 2 , DepthAttachment = 3 , DepthStencilAttachment = 4 }
 
enum class  RHITextureCubemapFace : uint8 {
  PositiveX = 0 , NegativeX = 1 , PositiveY = 2 , NegativeY = 3 ,
  PositiveZ = 4 , NegativeZ = 5
}
 
enum class  RHISamplerMagFilter : uint8 { Nearest , Linear }
 
enum class  RHISamplerMinFilter : uint8 {
  Nearest , Linear , NearestMipmapNearest , LinearMipmapNearest ,
  NearestMipmapLinear , LinearMipmapLinear
}
 
enum class  RHISamplerRepeatMode : uint8 {
  Repeat , MirroredRepeat , ClampToEdge , ClampToBorder ,
  MirrorClamToEdge
}
 
enum class  RHISamplerBorderColor : uint8 { Black , White }
 
enum class  RHIPrimitivesType : uint8 { Triangles , Lines , Points }
 
enum class  RHIPolygonMode : uint8 { Fill , Line , Point }
 
enum class  RHIPolygonCullMode : uint8 { Disabled , Front , Back , FrontAndBack }
 
enum class  RHIPolygonFrontFace : uint8 { Clockwise , CounterClockwise }
 
enum class  RHICompareFunction : uint8 {
  Never , Less , Equal , LessEqual ,
  Greater , GreaterEqual , NotEqual , Always
}
 
enum class  RHIOperation : uint8 {
  Keep , Zero , Replace , Increment ,
  Decrement , Invert
}
 
enum class  RHIBlendFactor : uint8 {
  Zero , One , SrcColor , OneMinusSrcColor ,
  DstColor , OneMinusDstColor , SrcAlpha , OneMinusSrcAlpha ,
  DstAlpha , OneMinusDstAlpha
}
 
enum class  RHIBlendOperation : uint8 {
  Add , Subtract , ReverseSubtract , Min ,
  Max
}
 
enum class  RHIRenderTargetOption : uint8 {
  ClearStore , ClearDiscard , LoadStore , LoadDiscard ,
  DiscardStore , DiscardDiscard
}
 

Functions

uint32 GetRHIShaderDataTypeSize (RHIShaderDataType type)
 
const char * RHIGetShaderDataIdGLSL (RHIShaderDataType type)
 
const char * RHIGetShaderParamIdGLSL (RHIShaderParamType type)
 
bool RHIIsIntegralBaseType (RHIShaderDataType type)
 
bool RHIIsFloatBaseType (RHIShaderDataType type)
 
bool RHIIsIntegralBaseSignedType (RHIShaderDataType type)
 
bool RHIIsVectorType (RHIShaderDataType type)
 
uint32 RHIGetVectorComponentsCount (RHIShaderDataType type)
 
uint32 RHIGetBaseElementsCount (RHIShaderDataType type)
 
void RHIGetMatrixSize (RHIShaderDataType type, uint32 &rows, uint32 &cols)
 
RHIShaderLanguage RHIParseShaderLanguage (const char *language)
 
uint32 RHIGetIndexSize (RHIIndexType type)