gKit2 light
Loading...
Searching...
No Matches
Buffers Struct Reference

Public Member Functions

void create (const Mesh &mesh)
void release ()

Public Attributes

GLuint vao
GLuint vertex_buffer
int vertex_count

Detailed Description

Definition at line 17 of file tuto9_buffers.cpp.

Constructor & Destructor Documentation

◆ Buffers()

Buffers::Buffers ( )
inline

Definition at line 23 of file tuto9_buffers.cpp.

23: vao(0), vertex_buffer(0), vertex_count(0) {}

Member Function Documentation

◆ create()

void Buffers::create ( const Mesh & mesh)
inline

Definition at line 25 of file tuto9_buffers.cpp.

26 {
27 if(!mesh.vertex_buffer_size()) return;
28
29 // cree et configure le vertex array object: conserve la description des attributs de sommets
30 glGenVertexArrays(1, &vao);
31 glBindVertexArray(vao);
32
33 // cree et initialise le buffer: conserve la positions des sommets
34 glGenBuffers(1, &vertex_buffer);
35 glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer);
36 glBufferData(GL_ARRAY_BUFFER, mesh.vertex_buffer_size(), mesh.vertex_buffer(), GL_STATIC_DRAW);
37
38 // attribut 0, position des sommets, declare dans le vertex shader : in vec3 position;
39 glVertexAttribPointer(0,
40 3, GL_FLOAT, // size et type, position est un vec3 dans le vertex shader
41 GL_FALSE, // pas de normalisation des valeurs
42 0, // stride 0, les valeurs sont les unes a la suite des autres
43 0 // offset 0, les valeurs sont au debut du buffer
44 );
45 glEnableVertexAttribArray(0);
46 // attention : le vertex array selectionne est un parametre implicite
47 // attention : le buffer selectionne sur GL_ARRAY_BUFFER est un parametre implicite
48
49 // conserve le nombre de sommets
50 vertex_count= mesh.vertex_count();
51 }
const float * vertex_buffer() const
renvoie l'adresse de la position du premier sommet. permet de construire les vertex buffers openGL....
Definition mesh.h:305
std::size_t vertex_buffer_size() const
renvoie la longueur (en octets) du vertex buffer.
Definition mesh.h:307
int vertex_count() const
renvoie le nombre de sommets.
Definition mesh.h:300

◆ release()

void Buffers::release ( )
inline

Definition at line 53 of file tuto9_buffers.cpp.

54 {
55 glDeleteBuffers(1, &vertex_buffer);
56 glDeleteVertexArrays(1, &vao);
57 }

Member Data Documentation

◆ vao

GLuint Buffers::vao

Definition at line 19 of file tuto9_buffers.cpp.

◆ vertex_buffer

GLuint Buffers::vertex_buffer

Definition at line 20 of file tuto9_buffers.cpp.

◆ vertex_count

int Buffers::vertex_count

Definition at line 21 of file tuto9_buffers.cpp.


The documentation for this struct was generated from the following file: