#pragma once // GLEW #include // DGL #include "DGL_FundamentalTypes.hpp" #include "DGL_MiscTypes.hpp" #include "DGL_Enum.hpp" // Non-Standard C++ #include "Cpp_Alias.hpp" namespace GL { sfn ClearBuffer() { glClear(GL_COLOR_BUFFER_BIT); return; } sfn BindBuffer(EBufferTarget _targetType, ID _buffer) { glBindBuffer(GLenum(_targetType), _buffer); return; } sfn BindVertexArray(ptr _referenceToTrackArray) { glBindVertexArray(Dref(_referenceToTrackArray)); return; } template sfn BufferData(ptr _data, EBufferTarget _targetType, EBufferUsage _usageType) { glBufferData(GLenum(_targetType), sizeof(TypeOfData), _data, GLenum(_usageType)); return; } template sfn FormatVertexAttributes ( gUInt _attributeIndex , EDataType _vertexComponenetType , ptr _firstVertexComponentLocation, gInt _numberOfVertexComponents , EBool _shouldNormalize ) { glVertexAttribPointer ( _attributeIndex , _numberOfVertexComponents , GLenum(_vertexComponenetType), GLenum(_shouldNormalize ), sizeof(VertType ), _firstVertexComponentLocation ); } sfn GenerateBuffers(ptr _bufferReferencer, uInt64 _numberOfBuffersToReserve) { glGenBuffers(_numberOfBuffersToReserve, _bufferReferencer); return; } sfn GenerateVertexBuffers(ptr __referenceRetainerToBuffer, uInt64 _numOfObjectsToReserveFor) { glGenVertexArrays(_numOfObjectsToReserveFor, __referenceRetainerToBuffer); return; } }