use std::slice;
use glow::HasContext;
pub(super) unsafe fn buffer_upload_struct<T: Copy>(
gl: &glow::Context,
target: u32,
data: &T,
usage: u32,
) {
unsafe {
let data_ptr = data as *const T as *const u8;
let size = size_of::<T>();
let bytes = slice::from_raw_parts(data_ptr, size);
gl.buffer_data_u8_slice(target, bytes, usage);
}
}
pub(super) unsafe fn buffer_upload_array<T: Copy>(
gl: &glow::Context,
target: u32,
data: &[T],
usage: u32,
) {
unsafe {
let data_ptr = data.as_ptr() as *const u8;
let size = std::mem::size_of_val(data);
let bytes = slice::from_raw_parts(data_ptr, size);
gl.buffer_data_u8_slice(target, bytes, usage);
}
}