File indexing completed on 2026-04-09 07:49:37
0001 #pragma once
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 struct SGLFW_Buffer
0015 {
0016 const char* name ;
0017 int num_bytes ;
0018 const void* data ;
0019 GLenum target ;
0020 GLenum usage ;
0021 GLuint id ;
0022
0023 SGLFW_Buffer( const char* name, int num_bytes, const void* data, GLenum target, GLenum usage );
0024
0025 void bind();
0026 void upload();
0027 void unbind();
0028 };
0029
0030 inline SGLFW_Buffer::SGLFW_Buffer( const char* _name, int num_bytes_, const void* data_ , GLenum target_, GLenum usage_ )
0031 :
0032 name( _name ? strdup(_name) : nullptr ),
0033 num_bytes(num_bytes_),
0034 data(data_),
0035 target(target_),
0036 usage(usage_),
0037 id(0)
0038 {
0039 glGenBuffers(1, &id ); SGLFW__check(__FILE__, __LINE__, name, id, "glGenBuffers/ctor");
0040 }
0041
0042 inline void SGLFW_Buffer::bind()
0043 {
0044 glBindBuffer(target, id); SGLFW__check(__FILE__, __LINE__, name, id, "glBindBuffer/bind");
0045 }
0046
0047 inline void SGLFW_Buffer::upload()
0048 {
0049 glBufferData(target, num_bytes, data, usage ); SGLFW__check(__FILE__, __LINE__, name, id, "glBufferData/uplo");
0050 }
0051
0052 inline void SGLFW_Buffer::unbind()
0053 {
0054 glBindBuffer(target, 0); SGLFW__check(__FILE__, __LINE__, name, id, "glBindBuffer/unbi");
0055 }
0056
0057