Struct luminance_webgl::webgl2::WebGL2 [−][src]
pub struct WebGL2 { /* fields omitted */ }
Expand description
The WebGL2 backend.
Implementations
Trait Implementations
type FramebufferRepr = Framebuffer<D>
type FramebufferRepr = Framebuffer<D>
Backend representation of the framebuffer.
unsafe fn new_framebuffer<CS, DS>(
&mut self,
size: D::Size,
_: usize,
_: &Sampler
) -> Result<Self::FramebufferRepr, FramebufferError> where
CS: ColorSlot<Self, D>,
DS: DepthStencilSlot<Self, D>,
unsafe fn new_framebuffer<CS, DS>(
&mut self,
size: D::Size,
_: usize,
_: &Sampler
) -> Result<Self::FramebufferRepr, FramebufferError> where
CS: ColorSlot<Self, D>,
DS: DepthStencilSlot<Self, D>,
Create a new framebuffer on the backend. Read more
unsafe fn attach_color_texture(
framebuffer: &mut Self::FramebufferRepr,
texture: &Self::TextureRepr,
attachment_index: usize
) -> Result<(), FramebufferError>
unsafe fn attach_color_texture(
framebuffer: &mut Self::FramebufferRepr,
texture: &Self::TextureRepr,
attachment_index: usize
) -> Result<(), FramebufferError>
Attach a single color data to the framebuffer. Read more
unsafe fn attach_depth_texture(
framebuffer: &mut Self::FramebufferRepr,
texture: &Self::TextureRepr
) -> Result<(), FramebufferError>
unsafe fn attach_depth_texture(
framebuffer: &mut Self::FramebufferRepr,
texture: &Self::TextureRepr
) -> Result<(), FramebufferError>
Attach a single depth data to the framebuffer. Read more
unsafe fn validate_framebuffer(
framebuffer: Self::FramebufferRepr
) -> Result<Self::FramebufferRepr, FramebufferError>
unsafe fn validate_framebuffer(
framebuffer: Self::FramebufferRepr
) -> Result<Self::FramebufferRepr, FramebufferError>
Validate the status of the framebuffer. Read more
Get the size of the framebuffer. Read more
unsafe fn back_buffer(
&mut self,
size: <Dim2 as Dimensionable>::Size
) -> Result<Self::FramebufferRepr, FramebufferError>
unsafe fn back_buffer(
&mut self,
size: <Dim2 as Dimensionable>::Size
) -> Result<Self::FramebufferRepr, FramebufferError>
Get the back buffer from the backend. Read more
impl<'a, V, I, W> IndexSlice<'a, V, I, W, Deinterleaved> for WebGL2 where
V: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
I: 'a + TessIndex,
W: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
impl<'a, V, I, W> IndexSlice<'a, V, I, W, Deinterleaved> for WebGL2 where
V: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
I: 'a + TessIndex,
W: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
type IndexSliceRepr = BufferSlice<'a, I>
type IndexSliceRepr = BufferSlice<'a, I>
Backend representation of an immutable index slice.
type IndexSliceMutRepr = BufferSliceMut<'a, I, { WebGl2RenderingContext::ELEMENT_ARRAY_BUFFER }>
type IndexSliceMutRepr = BufferSliceMut<'a, I, { WebGl2RenderingContext::ELEMENT_ARRAY_BUFFER }>
Backend representation of a mutable index slice.
Obtain an immutable index slice. Read more
unsafe fn indices_mut(
tess: &'a mut Self::TessRepr
) -> Result<Self::IndexSliceMutRepr, TessMapError>
unsafe fn indices_mut(
tess: &'a mut Self::TessRepr
) -> Result<Self::IndexSliceMutRepr, TessMapError>
Obtain a mutable index slice.
impl<'a, V, I, W> IndexSlice<'a, V, I, W, Interleaved> for WebGL2 where
V: TessVertexData<Interleaved, Data = Vec<V>>,
I: 'a + TessIndex,
W: TessVertexData<Interleaved, Data = Vec<W>>,
impl<'a, V, I, W> IndexSlice<'a, V, I, W, Interleaved> for WebGL2 where
V: TessVertexData<Interleaved, Data = Vec<V>>,
I: 'a + TessIndex,
W: TessVertexData<Interleaved, Data = Vec<W>>,
type IndexSliceRepr = BufferSlice<'a, I>
type IndexSliceRepr = BufferSlice<'a, I>
Backend representation of an immutable index slice.
type IndexSliceMutRepr = BufferSliceMut<'a, I, { WebGl2RenderingContext::ELEMENT_ARRAY_BUFFER }>
type IndexSliceMutRepr = BufferSliceMut<'a, I, { WebGl2RenderingContext::ELEMENT_ARRAY_BUFFER }>
Backend representation of a mutable index slice.
Obtain an immutable index slice. Read more
unsafe fn indices_mut(
tess: &'a mut Self::TessRepr
) -> Result<Self::IndexSliceMutRepr, TessMapError>
unsafe fn indices_mut(
tess: &'a mut Self::TessRepr
) -> Result<Self::IndexSliceMutRepr, TessMapError>
Obtain a mutable index slice.
impl<'a, V, I, W, T> InstanceSlice<'a, V, I, W, Deinterleaved, T> for WebGL2 where
V: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
I: TessIndex,
W: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>> + Deinterleave<T>,
T: 'a,
impl<'a, V, I, W, T> InstanceSlice<'a, V, I, W, Deinterleaved, T> for WebGL2 where
V: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
I: TessIndex,
W: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>> + Deinterleave<T>,
T: 'a,
type InstanceSliceRepr = BufferSlice<'a, T>
type InstanceSliceRepr = BufferSlice<'a, T>
Backend representation of an immutable instance slice.
type InstanceSliceMutRepr = BufferSliceMut<'a, T, { WebGl2RenderingContext::ARRAY_BUFFER }>
type InstanceSliceMutRepr = BufferSliceMut<'a, T, { WebGl2RenderingContext::ARRAY_BUFFER }>
Backend representation of a mutable instance slice.
unsafe fn instances(
tess: &'a mut Self::TessRepr
) -> Result<Self::InstanceSliceRepr, TessMapError>
unsafe fn instances(
tess: &'a mut Self::TessRepr
) -> Result<Self::InstanceSliceRepr, TessMapError>
Obtain an immutable instance slice. Read more
unsafe fn instances_mut(
tess: &'a mut Self::TessRepr
) -> Result<Self::InstanceSliceMutRepr, TessMapError>
unsafe fn instances_mut(
tess: &'a mut Self::TessRepr
) -> Result<Self::InstanceSliceMutRepr, TessMapError>
Obtain a mutable instance slice.
impl<'a, V, I, W> InstanceSlice<'a, V, I, W, Interleaved, W> for WebGL2 where
V: TessVertexData<Interleaved, Data = Vec<V>>,
I: TessIndex,
W: 'a + TessVertexData<Interleaved, Data = Vec<W>>,
impl<'a, V, I, W> InstanceSlice<'a, V, I, W, Interleaved, W> for WebGL2 where
V: TessVertexData<Interleaved, Data = Vec<V>>,
I: TessIndex,
W: 'a + TessVertexData<Interleaved, Data = Vec<W>>,
type InstanceSliceRepr = BufferSlice<'a, W>
type InstanceSliceRepr = BufferSlice<'a, W>
Backend representation of an immutable instance slice.
type InstanceSliceMutRepr = BufferSliceMut<'a, W, { WebGl2RenderingContext::ARRAY_BUFFER }>
type InstanceSliceMutRepr = BufferSliceMut<'a, W, { WebGl2RenderingContext::ARRAY_BUFFER }>
Backend representation of a mutable instance slice.
unsafe fn instances(
tess: &'a mut Self::TessRepr
) -> Result<Self::InstanceSliceRepr, TessMapError>
unsafe fn instances(
tess: &'a mut Self::TessRepr
) -> Result<Self::InstanceSliceRepr, TessMapError>
Obtain an immutable instance slice. Read more
unsafe fn instances_mut(
tess: &'a mut Self::TessRepr
) -> Result<Self::InstanceSliceMutRepr, TessMapError>
unsafe fn instances_mut(
tess: &'a mut Self::TessRepr
) -> Result<Self::InstanceSliceMutRepr, TessMapError>
Obtain a mutable instance slice.
unsafe fn start_pipeline(
&mut self,
framebuffer: &Self::FramebufferRepr,
pipeline_state: &PipelineState
)
unsafe fn start_pipeline(
&mut self,
framebuffer: &Self::FramebufferRepr,
pipeline_state: &PipelineState
)
Start a pipeline that will output in the input Framebuffer
and the given PipelineState
. Read more
type PipelineRepr = Pipeline
Create a new (cached) pipeline.
impl<T> PipelineShaderData<T> for WebGL2 where
Self: ShaderData<T, ShaderDataRepr = Buffer<<ArrElem<T> as Std140>::Encoded, { WebGl2RenderingContext::UNIFORM_BUFFER }>>,
T: Std140,
impl<T> PipelineShaderData<T> for WebGL2 where
Self: ShaderData<T, ShaderDataRepr = Buffer<<ArrElem<T> as Std140>::Encoded, { WebGl2RenderingContext::UNIFORM_BUFFER }>>,
T: Std140,
type BoundShaderDataRepr = BoundShaderData<T>
type BoundShaderDataRepr = BoundShaderData<T>
Representation of a bound ShaderData
on the backend.
unsafe fn bind_shader_data(
pipeline: &Self::PipelineRepr,
shader_data: &Self::ShaderDataRepr
) -> Result<Self::BoundShaderDataRepr, PipelineError>
unsafe fn bind_shader_data(
pipeline: &Self::PipelineRepr,
shader_data: &Self::ShaderDataRepr
) -> Result<Self::BoundShaderDataRepr, PipelineError>
Bind a ShaderData
to the current Pipeline
. Read more
Get the u32
representation of the bound shader data, also known as binding.
impl<D, P> PipelineTexture<D, P> for WebGL2 where
D: Dimensionable,
P: Pixel,
P::Encoding: IntoArrayBuffer,
P::RawEncoding: IntoArrayBuffer,
impl<D, P> PipelineTexture<D, P> for WebGL2 where
D: Dimensionable,
P: Pixel,
P::Encoding: IntoArrayBuffer,
P::RawEncoding: IntoArrayBuffer,
type BoundTextureRepr = BoundTexture<D, P>
type BoundTextureRepr = BoundTexture<D, P>
Representation of a bound Texture
on the backend.
unsafe fn bind_texture(
pipeline: &Self::PipelineRepr,
texture: &Self::TextureRepr
) -> Result<Self::BoundTextureRepr, PipelineError> where
D: Dimensionable,
P: Pixel,
unsafe fn bind_texture(
pipeline: &Self::PipelineRepr,
texture: &Self::TextureRepr
) -> Result<Self::BoundTextureRepr, PipelineError> where
D: Dimensionable,
P: Pixel,
Get the u32
representation of the bound texture, also known as binding.
The implementation author, most of the time referred to as “vendor” or “company” responsible for the driver the backend uses. Read more
The backend name.
The backend version.
The shading language version supported by the backend.
The maximum number of elements a texture array can hold.
Enter the RenderGate
and share the RenderState
for all subsequent nodes in the pipeline.
type ProgramRepr = Program
type ProgramRepr = Program
Backend representation of a shader program.
type UniformBuilderRepr = UniformBuilder
type UniformBuilderRepr = UniformBuilder
Backend representation of a uniform builder.
Create a new shader stage of type StageType
.
unsafe fn new_program(
&mut self,
vertex: &Self::StageRepr,
tess: Option<TessellationStages<'_, Self::StageRepr>>,
geometry: Option<&Self::StageRepr>,
fragment: &Self::StageRepr
) -> Result<Self::ProgramRepr, ProgramError>
unsafe fn new_program(
&mut self,
vertex: &Self::StageRepr,
tess: Option<TessellationStages<'_, Self::StageRepr>>,
geometry: Option<&Self::StageRepr>,
fragment: &Self::StageRepr
) -> Result<Self::ProgramRepr, ProgramError>
Create a new shader program by combining several shader stages. Read more
unsafe fn apply_semantics<Sem>(
program: &mut Self::ProgramRepr
) -> Result<Vec<VertexAttribWarning>, ProgramError> where
Sem: Semantics,
unsafe fn apply_semantics<Sem>(
program: &mut Self::ProgramRepr
) -> Result<Vec<VertexAttribWarning>, ProgramError> where
Sem: Semantics,
Apply semantics. Read more
unsafe fn new_uniform_builder(
program: &mut Self::ProgramRepr
) -> Result<Self::UniformBuilderRepr, ProgramError>
unsafe fn new_uniform_builder(
program: &mut Self::ProgramRepr
) -> Result<Self::UniformBuilderRepr, ProgramError>
Construct a new uniform builder. Read more
unsafe fn ask_uniform<T>(
uniform_builder: &mut Self::UniformBuilderRepr,
name: &str
) -> Result<Uniform<T>, UniformWarning> where
Self: for<'a> Uniformable<'a, T>,
unsafe fn ask_uniform<T>(
uniform_builder: &mut Self::UniformBuilderRepr,
name: &str
) -> Result<Uniform<T>, UniformWarning> where
Self: for<'a> Uniformable<'a, T>,
unsafe fn unbound<T>(_: &mut Self::UniformBuilderRepr) -> Uniform<T> where
Self: for<'a> Uniformable<'a, T>,
unsafe fn unbound<T>(_: &mut Self::UniformBuilderRepr) -> Uniform<T> where
Self: for<'a> Uniformable<'a, T>,
type ShaderDataRepr = Buffer<<ArrElem<T> as Std140>::Encoded, { WebGl2RenderingContext::UNIFORM_BUFFER }>
type ShaderDataRepr = Buffer<<ArrElem<T> as Std140>::Encoded, { WebGl2RenderingContext::UNIFORM_BUFFER }>
Representation of the data by the backend.
unsafe fn new_shader_data(
&mut self,
values: impl Iterator<Item = T>
) -> Result<Self::ShaderDataRepr, ShaderDataError>
unsafe fn new_shader_data(
&mut self,
values: impl Iterator<Item = T>
) -> Result<Self::ShaderDataRepr, ShaderDataError>
Build a new shader data from some values represented via an iterator.
unsafe fn get_shader_data_at(
shader_data: &Self::ShaderDataRepr,
i: usize
) -> Result<T, ShaderDataError>
unsafe fn get_shader_data_at(
shader_data: &Self::ShaderDataRepr,
i: usize
) -> Result<T, ShaderDataError>
Access an item at index i
.
unsafe fn set_shader_data_at(
shader_data: &mut Self::ShaderDataRepr,
i: usize,
x: T
) -> Result<T, ShaderDataError>
unsafe fn set_shader_data_at(
shader_data: &mut Self::ShaderDataRepr,
i: usize,
x: T
) -> Result<T, ShaderDataError>
Set an item at index i
. Read more
unsafe fn set_shader_data_values(
shader_data: &mut Self::ShaderDataRepr,
values: impl Iterator<Item = T>
) -> Result<(), ShaderDataError>
unsafe fn set_shader_data_values(
shader_data: &mut Self::ShaderDataRepr,
values: impl Iterator<Item = T>
) -> Result<(), ShaderDataError>
Set values by providing an iterator.
Apply the shader program and make it currently in-use for subsequent pipeline nodes.
impl<V, I, W> Tess<V, I, W, Deinterleaved> for WebGL2 where
V: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
I: TessIndex,
W: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
impl<V, I, W> Tess<V, I, W, Deinterleaved> for WebGL2 where
V: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
I: TessIndex,
W: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
impl<V, I, W> Tess<V, I, W, Interleaved> for WebGL2 where
V: TessVertexData<Interleaved, Data = Vec<V>>,
I: TessIndex,
W: TessVertexData<Interleaved, Data = Vec<W>>,
impl<V, I, W> Tess<V, I, W, Interleaved> for WebGL2 where
V: TessVertexData<Interleaved, Data = Vec<V>>,
I: TessIndex,
W: TessVertexData<Interleaved, Data = Vec<W>>,
impl<V, I, W> TessGate<V, I, W, Deinterleaved> for WebGL2 where
V: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
I: TessIndex,
W: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
impl<V, I, W> TessGate<V, I, W, Deinterleaved> for WebGL2 where
V: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
I: TessIndex,
W: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
impl<V, I, W> TessGate<V, I, W, Interleaved> for WebGL2 where
V: TessVertexData<Interleaved, Data = Vec<V>>,
I: TessIndex,
W: TessVertexData<Interleaved, Data = Vec<W>>,
impl<V, I, W> TessGate<V, I, W, Interleaved> for WebGL2 where
V: TessVertexData<Interleaved, Data = Vec<V>>,
I: TessIndex,
W: TessVertexData<Interleaved, Data = Vec<W>>,
impl<D, P> Texture<D, P> for WebGL2 where
D: Dimensionable,
P: Pixel,
P::Encoding: IntoArrayBuffer,
P::RawEncoding: IntoArrayBuffer,
impl<D, P> Texture<D, P> for WebGL2 where
D: Dimensionable,
P: Pixel,
P::Encoding: IntoArrayBuffer,
P::RawEncoding: IntoArrayBuffer,
unsafe fn new_texture(
&mut self,
size: D::Size,
sampler: Sampler,
texels: TexelUpload<'_, [P::Encoding]>
) -> Result<Self::TextureRepr, TextureError>
unsafe fn new_texture(
&mut self,
size: D::Size,
sampler: Sampler,
texels: TexelUpload<'_, [P::Encoding]>
) -> Result<Self::TextureRepr, TextureError>
Create a new texture.
unsafe fn new_texture_raw(
&mut self,
size: D::Size,
sampler: Sampler,
texels: TexelUpload<'_, [P::RawEncoding]>
) -> Result<Self::TextureRepr, TextureError>
unsafe fn new_texture_raw(
&mut self,
size: D::Size,
sampler: Sampler,
texels: TexelUpload<'_, [P::RawEncoding]>
) -> Result<Self::TextureRepr, TextureError>
Create a new texture from raw texels.
Get the number of mimaps associated with the texture.
unsafe fn upload_part(
texture: &mut Self::TextureRepr,
offset: D::Offset,
size: D::Size,
texels: TexelUpload<'_, [P::Encoding]>
) -> Result<(), TextureError>
unsafe fn upload_part(
texture: &mut Self::TextureRepr,
offset: D::Offset,
size: D::Size,
texels: TexelUpload<'_, [P::Encoding]>
) -> Result<(), TextureError>
Upload texels to a part of a texture. Read more
unsafe fn upload(
texture: &mut Self::TextureRepr,
size: D::Size,
texels: TexelUpload<'_, [P::Encoding]>
) -> Result<(), TextureError>
unsafe fn upload(
texture: &mut Self::TextureRepr,
size: D::Size,
texels: TexelUpload<'_, [P::Encoding]>
) -> Result<(), TextureError>
Upload texels to a whole texture. Read more
unsafe fn upload_part_raw(
texture: &mut Self::TextureRepr,
offset: D::Offset,
size: D::Size,
texels: TexelUpload<'_, [P::RawEncoding]>
) -> Result<(), TextureError>
unsafe fn upload_part_raw(
texture: &mut Self::TextureRepr,
offset: D::Offset,
size: D::Size,
texels: TexelUpload<'_, [P::RawEncoding]>
) -> Result<(), TextureError>
Upload texels to a part of a texture. Read more
unsafe fn upload_raw(
texture: &mut Self::TextureRepr,
size: D::Size,
texels: TexelUpload<'_, [P::RawEncoding]>
) -> Result<(), TextureError>
unsafe fn upload_raw(
texture: &mut Self::TextureRepr,
size: D::Size,
texels: TexelUpload<'_, [P::RawEncoding]>
) -> Result<(), TextureError>
Upload texels to a whole texture. Read more
unsafe fn get_raw_texels(
texture: &Self::TextureRepr,
size: D::Size
) -> Result<Vec<P::RawEncoding>, TextureError> where
P::RawEncoding: Copy + Default,
unsafe fn get_raw_texels(
texture: &Self::TextureRepr,
size: D::Size
) -> Result<Vec<P::RawEncoding>, TextureError> where
P::RawEncoding: Copy + Default,
Get a copy of the raw texels stored in the texture. Read more
unsafe fn resize(
texture: &mut Self::TextureRepr,
size: D::Size,
texels: TexelUpload<'_, [P::Encoding]>
) -> Result<(), TextureError>
unsafe fn resize(
texture: &mut Self::TextureRepr,
size: D::Size,
texels: TexelUpload<'_, [P::Encoding]>
) -> Result<(), TextureError>
Resize the texture. Read more
unsafe fn resize_raw(
texture: &mut Self::TextureRepr,
size: D::Size,
texels: TexelUpload<'_, [P::RawEncoding]>
) -> Result<(), TextureError>
unsafe fn resize_raw(
texture: &mut Self::TextureRepr,
size: D::Size,
texels: TexelUpload<'_, [P::RawEncoding]>
) -> Result<(), TextureError>
Resize the texture with raw texels. Read more
type TextureRepr = Texture
type TextureRepr = Texture
Backend representation of a texture.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
type Target = ShaderDataBinding<T>
Reify the type of the uniform as a UniformType
.
impl<'a, D, S> Uniformable<'a, TextureBinding<D, S>> for WebGL2 where
D: 'a + Dimensionable,
S: 'a + SamplerType,
impl<'a, D, S> Uniformable<'a, TextureBinding<D, S>> for WebGL2 where
D: 'a + Dimensionable,
S: 'a + SamplerType,
type Target = TextureBinding<D, S>
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
Reify the type of the uniform as a UniformType
.
impl<'a, V, I, W, T> VertexSlice<'a, V, I, W, Deinterleaved, T> for WebGL2 where
V: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>> + Deinterleave<T>,
I: TessIndex,
W: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
T: 'a,
impl<'a, V, I, W, T> VertexSlice<'a, V, I, W, Deinterleaved, T> for WebGL2 where
V: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>> + Deinterleave<T>,
I: TessIndex,
W: TessVertexData<Deinterleaved, Data = Vec<DeinterleavedData>>,
T: 'a,
type VertexSliceRepr = BufferSlice<'a, T>
type VertexSliceRepr = BufferSlice<'a, T>
Backend representation of an immutable vertex slice.
type VertexSliceMutRepr = BufferSliceMut<'a, T, { WebGl2RenderingContext::ARRAY_BUFFER }>
type VertexSliceMutRepr = BufferSliceMut<'a, T, { WebGl2RenderingContext::ARRAY_BUFFER }>
Backend representation of a mutable vertex slice.
unsafe fn vertices(
tess: &'a mut Self::TessRepr
) -> Result<Self::VertexSliceRepr, TessMapError>
unsafe fn vertices(
tess: &'a mut Self::TessRepr
) -> Result<Self::VertexSliceRepr, TessMapError>
Obtain an immutable vertex slice. Read more
unsafe fn vertices_mut(
tess: &'a mut Self::TessRepr
) -> Result<Self::VertexSliceMutRepr, TessMapError>
unsafe fn vertices_mut(
tess: &'a mut Self::TessRepr
) -> Result<Self::VertexSliceMutRepr, TessMapError>
Obtain a mutable vertex slice.
impl<'a, V, I, W> VertexSlice<'a, V, I, W, Interleaved, V> for WebGL2 where
V: 'a + TessVertexData<Interleaved, Data = Vec<V>>,
I: TessIndex,
W: TessVertexData<Interleaved, Data = Vec<W>>,
impl<'a, V, I, W> VertexSlice<'a, V, I, W, Interleaved, V> for WebGL2 where
V: 'a + TessVertexData<Interleaved, Data = Vec<V>>,
I: TessIndex,
W: TessVertexData<Interleaved, Data = Vec<W>>,
type VertexSliceRepr = BufferSlice<'a, V>
type VertexSliceRepr = BufferSlice<'a, V>
Backend representation of an immutable vertex slice.
type VertexSliceMutRepr = BufferSliceMut<'a, V, { WebGl2RenderingContext::ARRAY_BUFFER }>
type VertexSliceMutRepr = BufferSliceMut<'a, V, { WebGl2RenderingContext::ARRAY_BUFFER }>
Backend representation of a mutable vertex slice.
unsafe fn vertices(
tess: &'a mut Self::TessRepr
) -> Result<Self::VertexSliceRepr, TessMapError>
unsafe fn vertices(
tess: &'a mut Self::TessRepr
) -> Result<Self::VertexSliceRepr, TessMapError>
Obtain an immutable vertex slice. Read more
unsafe fn vertices_mut(
tess: &'a mut Self::TessRepr
) -> Result<Self::VertexSliceMutRepr, TessMapError>
unsafe fn vertices_mut(
tess: &'a mut Self::TessRepr
) -> Result<Self::VertexSliceMutRepr, TessMapError>
Obtain a mutable vertex slice.