pub struct Batch {
pub data: VertexData,
/* private fields */
}
Expand description
Batch is a core drawing method. You can append vertex data to it and then draw it to window. I made sure you can customize batch however you like. You can for example use custom fragment and vertex shader along with custom buffer and make your own rendering model so 3D is totally possible if you kow how.
Fields§
§data: VertexData
Implementations§
Source§impl Batch
impl Batch
pub fn no_texture() -> Batch
Sourcepub fn customized(
texture: Texture,
program: Program,
buffer: Option<Buffer>,
) -> Batch
pub fn customized( texture: Texture, program: Program, buffer: Option<Buffer>, ) -> Batch
from_program creates batch with custom rendering program
§Example
use rustbatch::render::program::Program;
use rustbatch::render::shader::Shader;
use rustbatch::{Batch, Texture};
let texture = Texture::new("your_texture.png", gl::NEAREST, gl::RGBA).unwrap();
let program = Program::from_shaders(&[Shader::default_vertex(), Shader::new("your_shader.frag")]).unwrap();
let batch = Batch::customized(texture, program, none);
pub fn draw<T: Target>(&self, target: &mut T)
Trait Implementations§
Source§impl Target for Batch
impl Target for Batch
Source§fn append(
&mut self,
data: &[f32],
pattern: &[u32],
vertex_size: u32,
_: Option<&Program>,
_: Option<&Texture>,
_: Option<&Buffer>,
)
fn append( &mut self, data: &[f32], pattern: &[u32], vertex_size: u32, _: Option<&Program>, _: Option<&Texture>, _: Option<&Buffer>, )
append appends vertex data to texture. pattern specifies how data is used. If you for example provide 4 vertexes you can make rectangle from it with pattern [0, 2, 3, 1, 2, 3]. If you don’t know what i mean try to draw four points on paper, index them from 0 to 3 and connect them with lines in specified order.
§Panics
If batch has custom buffer and buffers size do not corresponds to vertex_size
you will get
panic. This is mainly to prevent confusion in case of providing incorrect vertex data
structure.
Auto Trait Implementations§
impl Freeze for Batch
impl RefUnwindSafe for Batch
impl Send for Batch
impl Sync for Batch
impl Unpin for Batch
impl UnwindSafe for Batch
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more