StapleGL
Header-only C++20 OpenGL wrapper
Loading...
Searching...
No Matches
staplegl Namespace Reference

Namespaces

namespace  shader_data_type
 
namespace  util
 

Classes

class  cubemap
 Cube map texture wrapper. More...
 
class  framebuffer
 Framebuffer Object (FBO) wrapper. More...
 
class  index_buffer
 Element Buffer Object (EBO) wrapper. More...
 
class  renderbuffer
 Render Buffer Object (RBO) wrapper. More...
 
struct  resolution
 A struct that represents an image's dimensions. More...
 
struct  shader
 Individual shader struct. More...
 
class  shader_program
 Shader program class. More...
 
class  texture_2d
 2D texture wrapper. More...
 
struct  texture_antialias
 OpenGL texture details relating to the number of samples to use for the texture. More...
 
struct  texture_color
 OpenGL texture details relating to the color format and data type. More...
 
struct  texture_filter
 OpenGL texture details relating to filtering and clamping of the image. More...
 
class  uniform_buffer
 Uniform Buffer Object (UBO) wrapper. More...
 
class  vertex_array
 Vertex Array Object (VAO) wrapper. More...
 
struct  vertex_attribute
 Vertex attribute. More...
 
class  vertex_buffer
 Vertex Buffer Object (VBO) wrapper. More...
 
class  vertex_buffer_inst
 A vertex buffer object for instanced rendering. More...
 
class  vertex_buffer_layout
 Vertex buffer layout. More...
 

Concepts

concept  plain_old_data
 Concept that specifies that a type is a Plain Old Data (POD) type.
 

Enumerations

enum class  fbo_attachment : std::uint8_t { NONE = 0x00 , ATTACH_DEPTH_BUFFER = 0x01 , ATTACH_STENCIL_BUFFER = 0x02 , ATTACH_DEPTH_STENCIL_BUFFER = 0x03 }
 enum class for framebuffer attachments. More...
 
enum class  shader_type {
  vertex , fragment , tess_control , tess_eval ,
  geometry
}
 The type of the shader. More...
 
enum  tex_samples : int32_t {
  MSAA_X1 = 1 , MSAA_X2 = 2 , MSAA_X4 = 4 , MSAA_X8 = 8 ,
  MSAA_X16 = 16 , MSAA_X32 = 32
}
 An enum that represents the number of samples for a texture. More...
 
enum  driver_draw_hint { STATIC_DRAW = GL_STATIC_DRAW , DYNAMIC_DRAW = GL_DYNAMIC_DRAW , STREAM_DRAW = GL_STREAM_DRAW }
 Enum that specifies the usage hint of a buffer. More...
 
enum  driver_access_specifier { READ_ONLY = GL_READ_ONLY , WRITE_ONLY = GL_WRITE_ONLY , READ_WRITE = GL_READ_WRITE }
 Enum that specifies the access specifier of a buffer. More...
 

Functions

std::string shader_type_to_string (shader_type type) noexcept
 
static constexpr auto to_mipmap (std::int32_t filter_type) -> std::int32_t
 Convert a filter type to its mipmap counterpart.
 

Enumeration Type Documentation

◆ driver_access_specifier

Enum that specifies the access specifier of a buffer.

Warning
this is not a hint, although the spec does not require the driver to crash if the user violates the access specifier, it is still undefined behaviour and anything goes.
Enumerator
READ_ONLY 
WRITE_ONLY 
READ_WRITE 

Definition at line 64 of file vertex_buffer.hpp.

◆ driver_draw_hint

Enum that specifies the usage hint of a buffer.

The usage hint is a hint to the driver on how the buffer will be used, it is not a guarantee but setting this accordingly is likely to have positive performance implications on your application.

See also
https://www.khronos.org/opengl/wiki/Buffer_Object#Usage
Enumerator
STATIC_DRAW 
DYNAMIC_DRAW 
STREAM_DRAW 

Definition at line 51 of file vertex_buffer.hpp.

◆ fbo_attachment

enum class staplegl::fbo_attachment : std::uint8_t
strong

enum class for framebuffer attachments.

Enumerator
NONE 
ATTACH_DEPTH_BUFFER 
ATTACH_STENCIL_BUFFER 
ATTACH_DEPTH_STENCIL_BUFFER 

Definition at line 40 of file framebuffer.hpp.

◆ shader_type

enum class staplegl::shader_type
strong

The type of the shader.

used to differentiate between shader types.

Enumerator
vertex 
fragment 
tess_control 
tess_eval 
geometry 

Definition at line 38 of file shader.hpp.

◆ tex_samples

enum staplegl::tex_samples : int32_t

An enum that represents the number of samples for a texture.

Enumerator
MSAA_X1 
MSAA_X2 
MSAA_X4 
MSAA_X8 
MSAA_X16 
MSAA_X32 

Definition at line 38 of file utility.hpp.

Function Documentation

◆ shader_type_to_string()

std::string staplegl::shader_type_to_string ( shader_type  type)
inlinenoexcept

Definition at line 654 of file shader.hpp.

◆ to_mipmap()

static constexpr auto staplegl::to_mipmap ( std::int32_t  filter_type) -> std::int32_t
staticconstexpr

Convert a filter type to its mipmap counterpart.

Note
An invalid filter type will return 0.
Parameters
filter_typethe OpenGL enum value of the filter type.
Returns
constexpr std::uint32_t The OpenGL enum value of the mipmap counterpart.

Definition at line 79 of file texture.hpp.