Struct sfml::graphics::VertexBuffer [−][src]
Define a set of one or more 2D primitives stored in graphics memory
Implementations
impl VertexBuffer
[src]
#[must_use]pub fn new(
primitive_type: PrimitiveType,
vertex_count: u32,
usage: VertexBufferUsage
) -> VertexBuffer
[src]
primitive_type: PrimitiveType,
vertex_count: u32,
usage: VertexBufferUsage
) -> VertexBuffer
Create a new initialized vertex buffer
Arguments
primitive_type
- The type of theVertexBuffer
vertex_count
- The maximal number of vertex
#[must_use]pub fn vertex_count(&self) -> u32
[src]
Return the vertex count of a vertex buffer
Return the number of vertices in the buffer
pub fn update(&mut self, vertices: &[Vertex], offset: u32) -> bool
[src]
Update a part of the buffer from an array of vertices.
offset
is specified as the number of vertices to skip from the beginning of the buffer.
If offset
is 0
and vertices.len()
is equal to the size of the currently created buffer, its
whole contents are replaced.
If offset
is 0
and vertices.len()
is greater than the size of the currently created buffer, a
new buffer is created containing the vertex data.
If offset
is 0
and vertices.len()
is less than the size of the currently created buffer, only
the corresponding region is updated.
If offset
is not 0
and offset + vertices.len()
is greater than the size of the currently
created buffer, the update fails.
No additional check is performed on the size of the vertex array, passing invalid arguments will lead to undefined behavior.
Arguments
- vertices - Array of vertices to copy in the buffer
- offset - Offset in the buffer to copy to
Return True if the update was successful
pub fn update_from_vertex_buffer(&mut self, other: &VertexBuffer) -> bool
[src]
Copy the contents of another buffer into this buffer.
Arguments
- other - Vertex buffer whose contents to copy into this vertex buffer
Return True if the update was successful
pub fn swap(&mut self, other: &mut VertexBuffer)
[src]
Swap the contents of this vertex buffer with those of another.
Arguments
- other - Instance to swap with
#[must_use]pub fn native_handle(&self) -> u32
[src]
Get the underlying OpenGL handle of the vertex buffer.
You shouldn’t need to use this function, unless you have very specific stuff to implement that SFML doesn’t support, or implement a temporary workaround until a bug is fixed.
Return OpenGL handle of the vertex buffer or 0 if not yet created
#[must_use]pub fn primitive_type(&self) -> PrimitiveType
[src]
Get the type of primitives drawn by the vertex buffer.
Return Primitive type
pub fn set_primitive_type(&mut self, primitive_type: PrimitiveType)
[src]
Set the type of primitives to draw.
This function defines how the vertices must be interpreted when it’s time to draw them.
The default primitive type is Points
.
Arguments
primitive_type
- Type of primitive
#[must_use]pub fn usage(&self) -> VertexBufferUsage
[src]
Get the usage specifier of this vertex buffer.
Return Usage specifier
pub fn set_usage(&mut self, usage: VertexBufferUsage)
[src]
Set the usage specifier of this vertex buffer.
This function provides a hint about how this vertex buffer is going to be used in terms of data update frequency.
After changing the usage specifier, the vertex buffer has to be updated with new data for the usage specifier to take effect.
The default primitive type is Stream
.
Arguments
- usage - Usage specifier
pub fn bind(vb: Option<&VertexBuffer>)
[src]
Bind a vertex buffer for rendering.
This function is not part of the graphics API, it mustn’t be used when drawing SFML entities. It must be used only if you mix sf::VertexBuffer with OpenGL code.
use sfml::graphics::{PrimitiveType, VertexBuffer, VertexBufferUsage}; let mut vb1 = VertexBuffer::new(PrimitiveType::TRIANGLES, 32, VertexBufferUsage::STATIC); let mut vb2 = VertexBuffer::new(PrimitiveType::QUADS, 12, VertexBufferUsage::DYNAMIC); // ... VertexBuffer::bind(Some(&vb1)); // draw OpenGL stuff that use vb1... VertexBuffer::bind(Some(&vb2)); // draw OpenGL stuff that use vb2... VertexBuffer::bind(None); // draw OpenGL stuff that use no vertex buffer...
Arguments
- vb - Vertex buffer to use; None to use no vertex buffer.
#[must_use]pub fn available() -> bool
[src]
Tell whether or not the system supports vertex buffers.
This function should always be called before using the vertex buffer features. If it
returns false, then any attempt to use VertexBuffer
will fail.
Return True if vertex buffers are supported, false otherwise
Trait Implementations
impl Clone for VertexBuffer
[src]
fn clone(&self) -> VertexBuffer
[src]
Return a new VertexBuffer
or panic! if the copy fails
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for VertexBuffer
[src]
impl Drawable for VertexBuffer
[src]
fn draw<'a: 'shader, 'texture, 'shader, 'shader_texture>(
&'a self,
target: &mut dyn RenderTarget,
states: &RenderStates<'texture, 'shader, 'shader_texture>
)
[src]
&'a self,
target: &mut dyn RenderTarget,
states: &RenderStates<'texture, 'shader, 'shader_texture>
)
impl Drop for VertexBuffer
[src]
Auto Trait Implementations
impl RefUnwindSafe for VertexBuffer
impl !Send for VertexBuffer
impl !Sync for VertexBuffer
impl Unpin for VertexBuffer
impl UnwindSafe for VertexBuffer
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,