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 15 of file tuto9_buffers.cpp.

Constructor & Destructor Documentation

◆ Buffers()

Buffers::Buffers ( )
inline

Definition at line 21 of file tuto9_buffers.cpp.

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

Member Function Documentation

◆ create()

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

Definition at line 23 of file tuto9_buffers.cpp.

24 {
25 if(!mesh.vertex_buffer_size()) return;
26
27 // cree et configure le vertex array object: conserve la description des attributs de sommets
28 glGenVertexArrays(1, &vao);
29 glBindVertexArray(vao);
30
31 // cree et initialise le buffer: conserve la positions des sommets
32 glGenBuffers(1, &vertex_buffer);
33 glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer);
34 glBufferData(GL_ARRAY_BUFFER, mesh.vertex_buffer_size(), mesh.vertex_buffer(), GL_STATIC_DRAW);
35
36 // attribut 0, position des sommets, declare dans le vertex shader : in vec3 position;
37 glVertexAttribPointer(0,
38 3, GL_FLOAT, // size et type, position est un vec3 dans le vertex shader
39 GL_FALSE, // pas de normalisation des valeurs
40 0, // stride 0, les valeurs sont les unes a la suite des autres
41 0 // offset 0, les valeurs sont au debut du buffer
42 );
43 glEnableVertexAttribArray(0);
44 // attention : le vertex array selectionne est un parametre implicite
45 // attention : le buffer selectionne sur GL_ARRAY_BUFFER est un parametre implicite
46
47 // conserve le nombre de sommets
48 vertex_count= mesh.vertex_count();
49 }
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 51 of file tuto9_buffers.cpp.

52 {
53 glDeleteBuffers(1, &vertex_buffer);
54 glDeleteVertexArrays(1, &vao);
55 }

Member Data Documentation

◆ vao

GLuint Buffers::vao

Definition at line 17 of file tuto9_buffers.cpp.

◆ vertex_buffer

GLuint Buffers::vertex_buffer

Definition at line 18 of file tuto9_buffers.cpp.

◆ vertex_count

int Buffers::vertex_count

Definition at line 19 of file tuto9_buffers.cpp.


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