#pragma once // OpenGL #include #include // Duck Tape #include "DGL_FundamentalTypes.hpp" // Non-Standard C++ #include "Cpp_Alias.hpp" namespace DGL { namespace Generic { template using Vector3 = glm::tvec3; } using DataPtr = ptr; template using ID = gUInt; // ID Reference Types class VertexBuffer ; class NormalBuffer ; class Vec3 ; class Matrix ; class Shader ; class ShaderProgram; class VertexArray ; class ElementBuffer; using Matrix4x4 = glm::mat4; using Vector2 = glm::vec2; using Vector3 = glm::vec3; using Vector4 = glm::vec4; struct LinearColor { gFloatClamped Red, Green, Blue, Alpha; LinearColor(gFloatClamped _red, gFloatClamped _green, gFloatClamped _blue, gFloatClamped _alpha) : Red(_red), Green(_green), Blue(_blue), Alpha(_alpha) {}; sfn Vector() -> Vector3 { return Vector3(Red, Green, Blue); } }; }