Buffer(GLenum type, GLenum mode, std::vector<T>);
GLuint getBuffer() { return buffer; };
private:
protected:
GLuint buffer;
};
template<typename T>
Buffer::Buffer(GLenum type,GLenum mode, std::vector<T> data)
{
glGenBuffers(1, &buffer);
glBindBuffer(type, buffer);
glBufferData(type, sizeof(T) * data.size(), data.data(), mode);
glBindBuffer(type, 0);
}
с последнего раза ничего не поменял, но вот вопрос. как мне интегрировать темплейт в конструктор?
не слышал о таком, попробую
std::span - это по сути указатель на начало массива + длина, к нему можно преобразовать std::string, std::vector, std::array, сишный массив. Единственное неудобство - что неявное преобразование скорее всего не сработает, и вместо Buffer{GL_UNIFORM_BUFFER, GL_READ_WRITE, std::to_bytes(my_vector)} придется писать что-то вроде …, std::to_bytes(std::span{my_vector})
Обсуждают сегодня