glenda 0.2.0

An opengl utility and renderer library.
Documentation

use crate::Error;
use gl;
use gl::types::*;

pub fn create_texture(format: GLenum, size: (u32, u32), data: &[u8])
    -> Result<u32, Error>
{
    let mut texture = 0;
    unsafe {
        gl::GenTextures(1, &mut texture);
        gl::BindTexture(gl::TEXTURE_2D, texture);
        gl::TexImage2D(
            gl::TEXTURE_2D,
            0,
            format as i32,
            size.0 as i32,
            size.1 as i32,
            0,
            format,
            gl::UNSIGNED_BYTE,
            data.as_ptr() as _,
        );
    }

    Ok(texture)
}

pub fn create_texture_rgb(size: (u32, u32), data: &[u8]) -> Result<u32, Error> {
    create_texture(gl::RGB, size, data)
}

pub fn create_texture_rgba(size: (u32, u32), data: &[u8]) -> Result<u32, Error> {
    create_texture(gl::RGBA, size, data)
}