libdonut  2.3.2
Application framework for cross-platform game development in C++20
Classes | Namespaces | Enumerations | Variables
Mesh.hpp File Reference
#include <donut/graphics/Buffer.hpp>
#include <donut/graphics/Handle.hpp>
#include <donut/graphics/VertexArray.hpp>
#include <donut/math.hpp>
#include <donut/reflection.hpp>
#include <cstddef>
#include <cstdint>
#include <memory>
#include <span>
#include <stdexcept>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

struct  donut::graphics::NoIndex
 Tag type for specifying that a Mesh does not have an index buffer. More...
 
struct  donut::graphics::NoInstance
 Tag type for specifying that a Mesh does not have an instance buffer. More...
 
class  donut::graphics::Mesh< Vertex, Index, Instance >
 Generic abstraction of a GPU vertex array object and its associated buffers. More...
 

Namespaces

 donut
 
 donut::graphics
 

Enumerations

enum class  donut::graphics::MeshBufferUsage : std::uint32_t {
  donut::graphics::STATIC_COPY , donut::graphics::STATIC_DRAW , donut::graphics::STATIC_READ , donut::graphics::DYNAMIC_COPY ,
  donut::graphics::DYNAMIC_DRAW , donut::graphics::DYNAMIC_READ , donut::graphics::STREAM_COPY , donut::graphics::STREAM_DRAW ,
  donut::graphics::STREAM_READ
}
 Hint to the graphics driver implementation regarding the intended access pattern of a particular GPU memory buffer in a Mesh, for optimization purposes. More...
 
enum class  donut::graphics::MeshPrimitiveType : std::uint32_t {
  donut::graphics::POINTS , donut::graphics::LINES , donut::graphics::LINE_LOOP , donut::graphics::LINE_STRIP ,
  donut::graphics::TRIANGLES , donut::graphics::TRIANGLE_STRIP
}
 Specification of which kind of graphical primitive is defined by an associated sequence of vertices in a Mesh. More...
 
enum class  donut::graphics::MeshIndexType : std::uint32_t { donut::graphics::U8 , donut::graphics::U16 , donut::graphics::U32 }
 Specification of which type of indices is used in the index buffer of a particular Mesh. More...
 

Variables

template<typename T >
concept donut::graphics::vertex_attribute
 Concept that checks if a type is a valid vertex attribute. More...
 
template<typename T >
concept donut::graphics::mesh_vertex
 Concept that checks if a type is a valid vertex type. More...
 
template<typename T >
concept donut::graphics::mesh_index
 Concept that checks if a type is a valid index type. More...
 
template<typename T >
concept donut::graphics::mesh_instance
 Concept that checks if a type is a valid instance type. More...