Skip to content

Commit c9c011c

Browse files
committed
reuse the same index buffer too
Signed-off-by: Ryan1729 <[email protected]>
1 parent 0d0d7e7 commit c9c011c

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/main.rs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ type Textures = [gl::types::GLuint; 2];
126126
struct Resources {
127127
ctx: gl::Gl,
128128
vertex_buffer: gl::types::GLuint,
129+
index_buffer: gl::types::GLuint,
129130
vert_ranges_len: usize,
130131
vert_ranges: Ranges,
131132
textures: Textures,
@@ -227,11 +228,20 @@ impl Resources {
227228
buffer
228229
};
229230

231+
let index_buffer = unsafe {
232+
let mut buffer = 0;
233+
234+
ctx.GenBuffers(1, &mut buffer as _);
235+
236+
buffer
237+
};
238+
230239
let mut result = Resources {
231240
ctx,
232241
vert_ranges: [(0, 0); 16],
233242
vert_ranges_len: 0,
234243
vertex_buffer,
244+
index_buffer,
235245
colour_shader,
236246
texture_shader,
237247
textures,
@@ -263,18 +273,17 @@ impl Resources {
263273
(0..verts.len()).map(|x| x as gl::types::GLushort).collect();
264274

265275
unsafe {
266-
let mut buffer = 0;
267-
268-
self.ctx.GenBuffers(1, &mut buffer as _);
269-
self.ctx.BindBuffer(gl::ELEMENT_ARRAY_BUFFER, buffer);
276+
self.ctx.BindBuffer(
277+
gl::ELEMENT_ARRAY_BUFFER,
278+
self.index_buffer,
279+
);
270280
self.ctx.BufferData(
271281
gl::ELEMENT_ARRAY_BUFFER,
272282
(indices.len() * std::mem::size_of::<gl::types::GLushort>()) as _,
273283
std::mem::transmute(indices.as_ptr()),
274284
gl::DYNAMIC_DRAW,
275285
);
276286

277-
buffer
278287
};
279288

280289
self.vert_ranges = vert_ranges;

0 commit comments

Comments
 (0)