Trait luminance_front::context::GraphicsContext
source · [−]pub unsafe trait GraphicsContext {
type Backend;
fn backend(&mut self) -> &mut Self::Backend;
fn query(&mut self) -> Query<'_, Self::Backend>
where
Self::Backend: Query,
{ ... }
fn new_pipeline_gate(&mut self) -> PipelineGate<'_, Self::Backend> { ... }
fn new_framebuffer<D, CS, DS>(
&mut self,
size: <D as Dimensionable>::Size,
mipmaps: usize,
sampler: Sampler
) -> Result<Framebuffer<Self::Backend, D, CS, DS>, FramebufferError>
where
D: Dimensionable,
CS: ColorSlot<Self::Backend, D>,
DS: DepthStencilSlot<Self::Backend, D>,
Self::Backend: Framebuffer<D>,
{ ... }
fn new_shader_stage<R>(
&mut self,
ty: StageType,
src: R
) -> Result<Stage<Self::Backend>, StageError>
where
R: AsRef<str>,
Self::Backend: Shader,
{ ... }
fn new_shader_program<Sem, Out, Uni>(
&mut self
) -> ProgramBuilder<'_, Self, Sem, Out, Uni>
where
Sem: Semantics,
Self::Backend: Shader,
{ ... }
fn new_shader_data<T>(
&mut self,
values: impl IntoIterator<Item = T>
) -> Result<ShaderData<Self::Backend, T>, ShaderDataError>
where
Self::Backend: ShaderData<T>,
{ ... }
fn new_tess(
&mut self
) -> TessBuilder<'_, Self::Backend, (), (), (), Interleaved>
where
Self::Backend: Tess<(), (), (), Interleaved>,
{ ... }
fn new_deinterleaved_tess<V, W>(
&mut self
) -> TessBuilder<'_, Self::Backend, V, (), W, Deinterleaved>
where
V: TessVertexData<Deinterleaved>,
W: TessVertexData<Deinterleaved>,
Self::Backend: Tess<V, (), W, Deinterleaved>,
{ ... }
fn new_texture<D, P>(
&mut self,
size: <D as Dimensionable>::Size,
sampler: Sampler,
texels: TexelUpload<'_, [<P as Pixel>::Encoding]>
) -> Result<Texture<Self::Backend, D, P>, TextureError>
where
D: Dimensionable,
P: Pixel,
Self::Backend: Texture<D, P>,
{ ... }
fn new_texture_raw<D, P>(
&mut self,
size: <D as Dimensionable>::Size,
sampler: Sampler,
texels: TexelUpload<'_, [<P as Pixel>::RawEncoding]>
) -> Result<Texture<Self::Backend, D, P>, TextureError>
where
D: Dimensionable,
P: Pixel,
Self::Backend: Texture<D, P>,
{ ... }
}
Expand description
Class of graphics context.
Graphics context must implement this trait to be able to be used throughout the rest of the crate.
Associated Types
Required methods
Provided methods
Access the query API.
fn new_pipeline_gate(&mut self) -> PipelineGate<'_, Self::Backend>
fn new_pipeline_gate(&mut self) -> PipelineGate<'_, Self::Backend>
Create a new pipeline gate
fn new_framebuffer<D, CS, DS>(
&mut self,
size: <D as Dimensionable>::Size,
mipmaps: usize,
sampler: Sampler
) -> Result<Framebuffer<Self::Backend, D, CS, DS>, FramebufferError> where
D: Dimensionable,
CS: ColorSlot<Self::Backend, D>,
DS: DepthStencilSlot<Self::Backend, D>,
Self::Backend: Framebuffer<D>,
fn new_framebuffer<D, CS, DS>(
&mut self,
size: <D as Dimensionable>::Size,
mipmaps: usize,
sampler: Sampler
) -> Result<Framebuffer<Self::Backend, D, CS, DS>, FramebufferError> where
D: Dimensionable,
CS: ColorSlot<Self::Backend, D>,
DS: DepthStencilSlot<Self::Backend, D>,
Self::Backend: Framebuffer<D>,
Create a new framebuffer.
See the documentation of Framebuffer::new
for further details.
Create a new shader stage.
See the documentation of Stage::new
for further details.
fn new_shader_program<Sem, Out, Uni>(
&mut self
) -> ProgramBuilder<'_, Self, Sem, Out, Uni> where
Sem: Semantics,
Self::Backend: Shader,
fn new_shader_program<Sem, Out, Uni>(
&mut self
) -> ProgramBuilder<'_, Self, Sem, Out, Uni> where
Sem: Semantics,
Self::Backend: Shader,
Create a new shader program.
See the documentation of ProgramBuilder::new
for further details.
fn new_shader_data<T>(
&mut self,
values: impl IntoIterator<Item = T>
) -> Result<ShaderData<Self::Backend, T>, ShaderDataError> where
Self::Backend: ShaderData<T>,
fn new_shader_data<T>(
&mut self,
values: impl IntoIterator<Item = T>
) -> Result<ShaderData<Self::Backend, T>, ShaderDataError> where
Self::Backend: ShaderData<T>,
Create a new shader data.
See the documentation of ShaderData::new
for further details.
fn new_tess(
&mut self
) -> TessBuilder<'_, Self::Backend, (), (), (), Interleaved> where
Self::Backend: Tess<(), (), (), Interleaved>,
fn new_tess(
&mut self
) -> TessBuilder<'_, Self::Backend, (), (), (), Interleaved> where
Self::Backend: Tess<(), (), (), Interleaved>,
Create a TessBuilder
.
See the documentation of TessBuilder::new
for further details.
fn new_deinterleaved_tess<V, W>(
&mut self
) -> TessBuilder<'_, Self::Backend, V, (), W, Deinterleaved> where
V: TessVertexData<Deinterleaved>,
W: TessVertexData<Deinterleaved>,
Self::Backend: Tess<V, (), W, Deinterleaved>,
fn new_deinterleaved_tess<V, W>(
&mut self
) -> TessBuilder<'_, Self::Backend, V, (), W, Deinterleaved> where
V: TessVertexData<Deinterleaved>,
W: TessVertexData<Deinterleaved>,
Self::Backend: Tess<V, (), W, Deinterleaved>,
Create a TessBuilder
with deinterleaved memory.
See the documentation of TessBuilder::new
for further details.
fn new_texture<D, P>(
&mut self,
size: <D as Dimensionable>::Size,
sampler: Sampler,
texels: TexelUpload<'_, [<P as Pixel>::Encoding]>
) -> Result<Texture<Self::Backend, D, P>, TextureError> where
D: Dimensionable,
P: Pixel,
Self::Backend: Texture<D, P>,
fn new_texture<D, P>(
&mut self,
size: <D as Dimensionable>::Size,
sampler: Sampler,
texels: TexelUpload<'_, [<P as Pixel>::Encoding]>
) -> Result<Texture<Self::Backend, D, P>, TextureError> where
D: Dimensionable,
P: Pixel,
Self::Backend: Texture<D, P>,
Create a new texture from texels.
Feel free to have a look at the documentation of Texture::new
for further details.
fn new_texture_raw<D, P>(
&mut self,
size: <D as Dimensionable>::Size,
sampler: Sampler,
texels: TexelUpload<'_, [<P as Pixel>::RawEncoding]>
) -> Result<Texture<Self::Backend, D, P>, TextureError> where
D: Dimensionable,
P: Pixel,
Self::Backend: Texture<D, P>,
fn new_texture_raw<D, P>(
&mut self,
size: <D as Dimensionable>::Size,
sampler: Sampler,
texels: TexelUpload<'_, [<P as Pixel>::RawEncoding]>
) -> Result<Texture<Self::Backend, D, P>, TextureError> where
D: Dimensionable,
P: Pixel,
Self::Backend: Texture<D, P>,
Create a new texture from raw texels.
Feel free to have a look at the documentation of Texture::new_raw
for further details.