Struct sfml::graphics::VertexBuffer

source ·
pub struct VertexBuffer { /* private fields */ }
Expand description

Define a set of one or more 2D primitives stored in graphics memory

Implementations§

Create a new initialized vertex buffer

Arguments
  • primitive_type - The type of the VertexBuffer
  • vertex_count - The maximal number of vertex

Return the vertex count of a vertex buffer

Return the number of vertices in the buffer

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

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

Swap the contents of this vertex buffer with those of another.

Arguments
  • other - Instance to swap with

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

Get the type of primitives drawn by the vertex buffer.

Return Primitive type

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

Get the usage specifier of this vertex buffer.

Return Usage specifier

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

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.

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§

Return a new VertexBuffer or panic! if the copy fails

Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Draws into target with RenderStates states.
Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.