Skip to content

Commit be56bd7

Browse files
committed
reuse the same vertex buffer on each set_verts call
Signed-off-by: Ryan1729 <[email protected]>
1 parent 86933cb commit be56bd7

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/main.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,19 @@ impl Resources {
217217
make_texture_from_png(&ctx, "images/cardBack_green.png"),
218218
];
219219

220+
let vertex_buffer = unsafe {
221+
let mut buffer = 0;
222+
223+
ctx.GenBuffers(1, &mut buffer as _);
224+
225+
buffer
226+
};
227+
220228
let mut result = Resources {
221229
ctx,
222230
vert_ranges: [(0, 0); 16],
223231
vert_ranges_len: 0,
224-
vertex_buffer: 0,
232+
vertex_buffer,
225233
colour_shader,
226234
texture_shader,
227235
textures,
@@ -236,19 +244,14 @@ impl Resources {
236244

237245
let (verts, vert_ranges, vert_ranges_len) = get_verts_and_ranges(vert_vecs);
238246

239-
let vertex_buffer = unsafe {
240-
let mut buffer = 0;
241-
242-
self.ctx.GenBuffers(1, &mut buffer as _);
243-
self.ctx.BindBuffer(gl::ARRAY_BUFFER, buffer);
247+
unsafe {
248+
self.ctx.BindBuffer(gl::ARRAY_BUFFER, self.vertex_buffer);
244249
self.ctx.BufferData(
245250
gl::ARRAY_BUFFER,
246251
(verts.len() * std::mem::size_of::<f32>()) as _,
247252
std::mem::transmute(verts.as_ptr()),
248253
gl::DYNAMIC_DRAW,
249254
);
250-
251-
buffer
252255
};
253256

254257
//TODO (assuming we don't end up manipulating this at all)
@@ -274,7 +277,6 @@ impl Resources {
274277

275278
self.vert_ranges = vert_ranges;
276279
self.vert_ranges_len = vert_ranges_len;
277-
self.vertex_buffer = vertex_buffer;
278280
}
279281
}
280282

0 commit comments

Comments
 (0)