Skip to main content

OpenGLEnumMapper.ixx File

Maps engine rendering enums to OpenGL GLenum constants. More...

Included Headers

#include <algorithm> #include <glad/gl.h> #include <helios.engine.rendering.mesh.types.VertexAttributeType> #include <helios.engine.rendering.mesh.types.PrimitiveType>

Namespaces Index

namespacehelios
namespaceopengl
namespaceOpenGLEnumMapper

Description

Maps engine rendering enums to OpenGL GLenum constants.

File Listing

The file content with the documentation metadata removed is:

1
5module;
6
7#include <algorithm>
8#include <glad/gl.h>
9
10export module helios.opengl.OpenGLEnumMapper;
11
12import helios.engine.rendering.mesh.types.PrimitiveType;
13import helios.engine.rendering.mesh.types.VertexAttributeType;
14
15using namespace helios::engine::rendering::mesh::types;
17
24 [[nodiscard]] GLenum toOpenGL(const PrimitiveType primitiveType) noexcept {
25 switch (primitiveType) {
26 case PrimitiveType::Points:
27 return GL_POINTS;
28 case PrimitiveType::Lines:
29 return GL_LINES;
30 case PrimitiveType::LineLoop:
31 return GL_LINE_LOOP;
32 case PrimitiveType::LineStrip:
33 return GL_LINE_STRIP;
34 case PrimitiveType::Triangles:
35 return GL_TRIANGLES;
36 case PrimitiveType::TriangleStrip:
37 return GL_TRIANGLE_STRIP;
38 case PrimitiveType::TriangleFan:
39 return GL_TRIANGLE_FAN;
40 default:
41 return GL_TRIANGLES;
42 }
43 }
44
51 [[nodiscard]] GLenum toOpenGLBaseType(const VertexAttributeType attributeType) noexcept {
52 switch (attributeType) {
53 case VertexAttributeType::Float:
54 case VertexAttributeType::Vec3f:
55 case VertexAttributeType::Vec4f:
56 case VertexAttributeType::Mat4f:
57 return GL_FLOAT;
58 default:
59 std::unreachable();
60 }
61 }
62}

Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.