Golias Engine
A C++ 20 'game engine' built with SDL3 with wide platform support.
Classes | Typedefs | Enumerations | Functions | Variables
rendering_device.h File Reference
#include "core/gstl/str.h"
#include "core/math/math.h"
#include "shader_preprocessor.h"
#include <SDL3_ttf/SDL_ttf.h>
#include <glm/gtx/string_cast.hpp>

Go to the source code of this file.

Classes

struct  Shader
 
struct  Font
 
struct  Color
 
struct  Rect
 
class  RIDAllocator
 
struct  VertexAttribute
 
struct  VertexFormat
 
struct  TextureFormat
 
struct  SamplerState
 
struct  RasterizationState
 
struct  DepthStencilState
 
struct  BlendState
 
struct  PipelineState
 
struct  Viewport
 
struct  Scissor
 
struct  ClearValue
 
struct  RenderPassAttachment
 
struct  TextureDescription
 
struct  ShaderModule
 
struct  Buffer
 
struct  Texture
 
struct  Sampler
 
struct  Framebuffer
 
struct  Pipeline
 
class  RenderingDevice
 Abstract base class for rendering devices. More...
 

Typedefs

using RID = uint32_t
 

Enumerations

enum class  DataFormat {
  R8_UNORM , R8G8_UNORM , R8G8B8_UNORM , R8G8B8A8_UNORM ,
  R16_SFLOAT , R16G16_SFLOAT , R16G16B16A16_SFLOAT , R32_SFLOAT ,
  R32G32_SFLOAT , R32G32B32_SFLOAT , R32G32B32A32_SFLOAT , R32_UINT ,
  R32G32_UINT , R32G32B32_UINT , R32G32B32A32_UINT , R32_SINT ,
  R32G32_SINT , R32G32B32_SINT , R32G32B32A32_SINT , D24_UNORM_S8_UINT ,
  D32_SFLOAT
}
 
enum class  TextureType {
  TEXTURE_TYPE_2D , TEXTURE_TYPE_2D_ARRAY , TEXTURE_TYPE_3D , TEXTURE_TYPE_CUBEMAP ,
  TEXTURE_TYPE_CUBEMAP_ARRAY
}
 
enum class  TextureFilter {
  NEAREST , LINEAR , NEAREST_MIPMAP_NEAREST , LINEAR_MIPMAP_NEAREST ,
  NEAREST_MIPMAP_LINEAR , LINEAR_MIPMAP_LINEAR
}
 
enum class  TextureWrap { REPEAT , MIRRORED_REPEAT , CLAMP_TO_EDGE , CLAMP_TO_BORDER }
 
enum class  CompareOp {
  NEVER , LESS , EQUAL , LESS_OR_EQUAL ,
  GREATER , NOT_EQUAL , GREATER_OR_EQUAL , ALWAYS
}
 
enum class  StencilOp {
  KEEP , ZERO , REPLACE , INCREMENT_AND_CLAMP ,
  DECREMENT_AND_CLAMP , INVERT , INCREMENT_AND_WRAP , DECREMENT_AND_WRAP
}
 
enum class  BlendFactor {
  ZERO , ONE , SRC_COLOR , ONE_MINUS_SRC_COLOR ,
  DST_COLOR , ONE_MINUS_DST_COLOR , SRC_ALPHA , ONE_MINUS_SRC_ALPHA ,
  DST_ALPHA , ONE_MINUS_DST_ALPHA
}
 
enum class  BlendOp {
  ADD , SUBTRACT , REVERSE_SUBTRACT , MIN ,
  MAX
}
 
enum class  CullMode { NONE , FRONT , BACK , FRONT_AND_BACK }
 
enum class  PolygonMode { FILL , LINE , POINT }
 
enum class  PrimitiveTopology {
  POINTS , LINES , LINE_STRIP , TRIANGLES ,
  TRIANGLE_STRIP , TRIANGLE_FAN
}
 
enum class  ShaderStage { VERTEX = 1 << 0 , FRAGMENT = 1 << 1 , COMPUTE = 1 << 2 }
 
enum class  BufferUsage {
  BUFFER_USAGE_VERTEX = 1 << 0 , BUFFER_USAGE_INDEX = 1 << 1 , BUFFER_USAGE_UNIFORM = 1 << 2 , BUFFER_USAGE_STORAGE = 1 << 3 ,
  BUFFER_USAGE_TRANSFER_SRC = 1 << 4 , BUFFER_USAGE_TRANSFER_DST = 1 << 5
}
 
enum class  IndexType { UINT16 , UINT32 }
 
enum class  BlendMode { NONE , ALPHA , ADD , MULTIPLY }
 
enum class  ScaleMode { NONE , KEEP , EXPAND }
 

Functions

bool operator& (uint32_t lhs, BufferUsage rhs)
 

Variables

constexpr RID INVALID_RID = -1
 

Typedef Documentation

◆ RID

using RID = uint32_t

Enumeration Type Documentation

◆ BlendFactor

enum BlendFactor
strong
Enumerator
ZERO 
ONE 
SRC_COLOR 
ONE_MINUS_SRC_COLOR 
DST_COLOR 
ONE_MINUS_DST_COLOR 
SRC_ALPHA 
ONE_MINUS_SRC_ALPHA 
DST_ALPHA 
ONE_MINUS_DST_ALPHA 

◆ BlendMode

enum BlendMode
strong
Enumerator
NONE 
ALPHA 
ADD 
MULTIPLY 

◆ BlendOp

enum BlendOp
strong
Enumerator
ADD 
SUBTRACT 
REVERSE_SUBTRACT 
MIN 
MAX 

◆ BufferUsage

enum BufferUsage
strong
Enumerator
BUFFER_USAGE_VERTEX 
BUFFER_USAGE_INDEX 
BUFFER_USAGE_UNIFORM 
BUFFER_USAGE_STORAGE 
BUFFER_USAGE_TRANSFER_SRC 
BUFFER_USAGE_TRANSFER_DST 

◆ CompareOp

enum CompareOp
strong
Enumerator
NEVER 
LESS 
EQUAL 
LESS_OR_EQUAL 
GREATER 
NOT_EQUAL 
GREATER_OR_EQUAL 
ALWAYS 

◆ CullMode

enum CullMode
strong
Enumerator
NONE 
FRONT 
BACK 
FRONT_AND_BACK 

◆ DataFormat

enum DataFormat
strong
Enumerator
R8_UNORM 
R8G8_UNORM 
R8G8B8_UNORM 
R8G8B8A8_UNORM 
R16_SFLOAT 
R16G16_SFLOAT 
R16G16B16A16_SFLOAT 
R32_SFLOAT 
R32G32_SFLOAT 
R32G32B32_SFLOAT 
R32G32B32A32_SFLOAT 
R32_UINT 
R32G32_UINT 
R32G32B32_UINT 
R32G32B32A32_UINT 
R32_SINT 
R32G32_SINT 
R32G32B32_SINT 
R32G32B32A32_SINT 
D24_UNORM_S8_UINT 
D32_SFLOAT 

◆ IndexType

enum IndexType
strong
Enumerator
UINT16 
UINT32 

◆ PolygonMode

enum PolygonMode
strong
Enumerator
FILL 
LINE 
POINT 

◆ PrimitiveTopology

enum PrimitiveTopology
strong
Enumerator
POINTS 
LINES 
LINE_STRIP 
TRIANGLES 
TRIANGLE_STRIP 
TRIANGLE_FAN 

◆ ScaleMode

enum ScaleMode
strong
Enumerator
NONE 
KEEP 

No scaling - stretch to fit.

EXPAND 

Keep aspect ratio - letterbox/pillarbox.

Expand to fill window - may stretch

◆ ShaderStage

enum ShaderStage
strong
Enumerator
VERTEX 
FRAGMENT 
COMPUTE 

◆ StencilOp

enum StencilOp
strong
Enumerator
KEEP 
ZERO 
REPLACE 
INCREMENT_AND_CLAMP 
DECREMENT_AND_CLAMP 
INVERT 
INCREMENT_AND_WRAP 
DECREMENT_AND_WRAP 

◆ TextureFilter

enum TextureFilter
strong
Enumerator
NEAREST 
LINEAR 
NEAREST_MIPMAP_NEAREST 
LINEAR_MIPMAP_NEAREST 
NEAREST_MIPMAP_LINEAR 
LINEAR_MIPMAP_LINEAR 

◆ TextureType

enum TextureType
strong
Enumerator
TEXTURE_TYPE_2D 
TEXTURE_TYPE_2D_ARRAY 
TEXTURE_TYPE_3D 
TEXTURE_TYPE_CUBEMAP 
TEXTURE_TYPE_CUBEMAP_ARRAY 

◆ TextureWrap

enum TextureWrap
strong
Enumerator
REPEAT 
MIRRORED_REPEAT 
CLAMP_TO_EDGE 
CLAMP_TO_BORDER 

Function Documentation

◆ operator&()

bool operator& ( uint32_t  lhs,
BufferUsage  rhs 
)

Variable Documentation

◆ INVALID_RID

constexpr RID INVALID_RID = -1
constexpr