Trait gfx::traits::Factory []

pub trait Factory<R> where R: Resources {
    type CommandBuffer: CommandBuffer<R>;
    type Mapper: Raw + Clone;
    fn get_capabilities(&'a self) -> &'a Capabilities;
    fn create_command_buffer(&mut self) -> Self::CommandBuffer;
    fn create_buffer_raw(&mut self, size: usize, BufferRole, BufferUsage) -> RawBuffer<R>;
    fn create_buffer_static_raw(&mut self, data: &[u8], BufferRole) -> RawBuffer<R>;
    fn create_pipeline_state_raw(&mut self, &Program<R>, &Descriptor) -> Result<RawPipelineState<R>, CreationError>;
    fn create_program(&mut self, shader_set: &ShaderSet<R>) -> Result<Program<R>, String>;
    fn create_shader(&mut self, stage: Stage, code: &[u8]) -> Result<Shader<R>, CreateShaderError>;
    fn create_sampler(&mut self, SamplerInfo) -> Sampler<R>;
    fn update_buffer_raw(&mut self, buf: &RawBuffer<R>, data: &[u8], offset_bytes: usize) -> Result<()BufferUpdateError>;
    fn map_buffer_raw(&mut self, &RawBuffer<R>, MapAccess) -> Self::Mapper;
    fn unmap_buffer_raw(&mut self, Self::Mapper);
    fn map_buffer_readable<T>(&mut self, &Buffer<R, T>) -> Readable<T, R, Self> where T: Copy;
    fn map_buffer_writable<T>(&mut self, &Buffer<R, T>) -> Writable<T, R, Self> where T: Copy;
    fn map_buffer_rw<T>(&mut self, &Buffer<R, T>) -> RW<T, R, Self> where T: Copy;
    fn update_texture_raw(&mut self, &RawTexture<R>, &ImageInfoCommon<Format>, &[u8], Option<CubeFace>) -> Result<()Error>;
    fn generate_mipmap_raw(&mut self, &RawTexture<R>);
    fn create_texture_raw(&mut self, Descriptor, Option<ChannelType>) -> Result<RawTexture<R>, Error>;
    fn view_buffer_as_shader_resource_raw(&mut self, &RawBuffer<R>) -> Result<RawShaderResourceView<R>, ResourceViewError>;
    fn view_buffer_as_unordered_access_raw(&mut self, &RawBuffer<R>) -> Result<RawUnorderedAccessView<R>, ResourceViewError>;
    fn view_texture_as_shader_resource_raw(&mut self, &RawTexture<R>, ViewDesc) -> Result<RawShaderResourceView<R>, ResourceViewError>;
    fn view_texture_as_unordered_access_raw(&mut self, &RawTexture<R>) -> Result<RawUnorderedAccessView<R>, ResourceViewError>;
    fn view_texture_as_render_target_raw(&mut self, &RawTexture<R>, u8, Option<u16>) -> Result<RawRenderTargetView<R>, TargetViewError>;
    fn view_texture_as_depth_stencil_raw(&mut self, &RawTexture<R>, Option<u16>) -> Result<RawDepthStencilView<R>, TargetViewError>;

    fn create_buffer_static<T>(&mut self, data: &[T], role: BufferRole) -> Buffer<R, T> where T: Copy { ... }
    fn create_buffer_dynamic<T>(&mut self, num: usize, role: BufferRole) -> Buffer<R, T> { ... }
    fn create_shader_vertex(&mut self, code: &[u8]) -> Result<VertexShader<R>, CreateShaderError> { ... }
    fn create_shader_geometry(&mut self, code: &[u8]) -> Result<GeometryShader<R>, CreateShaderError> { ... }
    fn create_shader_pixel(&mut self, code: &[u8]) -> Result<PixelShader<R>, CreateShaderError> { ... }
    fn update_buffer<T>(&mut self, buf: &Buffer<R, T>, data: &[T], offset_elements: usize) -> Result<()BufferUpdateError> where T: Copy { ... }
    fn update_texture<T>(&mut self, tex: &Texture<R, T::Surface>, image: &ImageInfoCommon<()>, data: &[T::Surface::DataType], face: Option<CubeFace>) -> Result<()Error> where T: Formatted { ... }
    fn create_texture_with_data(&mut self, desc: Descriptor, channel: ChannelType, data: &[u8]) -> Result<RawTexture<R>, Error> { ... }
    fn create_texture<S>(&mut self, kind: Kind, levels: u8, bind: Bind, channel_hint: Option<ChannelType>) -> Result<Texture<R, S>, Error> where S: SurfaceTyped { ... }
    fn view_buffer_as_shader_resource<T>(&mut self, buf: &Buffer<R, T>) -> Result<ShaderResourceView<R, T>, ResourceViewError> { ... }
    fn view_buffer_as_unordered_access<T>(&mut self, buf: &Buffer<R, T>) -> Result<UnorderedAccessView<R, T>, ResourceViewError> { ... }
    fn view_texture_as_shader_resource<T>(&mut self, tex: &Texture<R, T::Surface>, levels: (u8, u8), swizzle: Swizzle) -> Result<ShaderResourceView<R, T::View>, ResourceViewError> where T: TextureFormat { ... }
    fn view_texture_as_unordered_access<T>(&mut self, tex: &Texture<R, T::Surface>) -> Result<UnorderedAccessView<R, T::View>, ResourceViewError> where T: TextureFormat { ... }
    fn view_texture_as_render_target<T>(&mut self, tex: &Texture<R, T::Surface>, level: u8, layer: Option<u16>) -> Result<RenderTargetView<R, T>, TargetViewError> where T: RenderFormat { ... }
    fn view_texture_as_depth_stencil<T>(&mut self, tex: &Texture<R, T::Surface>, layer: Option<u16>) -> Result<DepthStencilView<R, T>, TargetViewError> where T: DepthFormat { ... }
    fn create_texture_const<T>(&mut self, kind: Kind, data: &[T::Surface::DataType], mipmap: bool) -> Result<(Texture<R, T::Surface>, ShaderResourceView<R, T::View>)CombinedError> where T: TextureFormat { ... }
    fn create_render_target<T>(&mut self, width: u16, height: u16, allocate_mipmap: bool) -> Result<(Texture<R, T::Surface>, ShaderResourceView<R, T::View>, RenderTargetView<R, T>)CombinedError> where T: TextureFormat + RenderFormat { ... }
    fn create_depth_stencil<T>(&mut self, width: u16, height: u16) -> Result<(Texture<R, T::Surface>, ShaderResourceView<R, T::View>, DepthStencilView<R, T>)CombinedError> where T: DepthFormat + TextureFormat { ... }
}

Associated Types

type CommandBuffer: CommandBuffer<R>

Associated command buffer type

type Mapper: Raw + Clone

Associated mapper type

Required Methods

fn get_capabilities(&'a self) -> &'a Capabilities

Returns the capabilities available to the specific API implementation

fn create_command_buffer(&mut self) -> Self::CommandBuffer

fn create_buffer_raw(&mut self, size: usize, BufferRole, BufferUsage) -> RawBuffer<R>

fn create_buffer_static_raw(&mut self, data: &[u8], BufferRole) -> RawBuffer<R>

fn create_pipeline_state_raw(&mut self, &Program<R>, &Descriptor) -> Result<RawPipelineState<R>, CreationError>

fn create_program(&mut self, shader_set: &ShaderSet<R>) -> Result<Program<R>, String>

fn create_shader(&mut self, stage: Stage, code: &[u8]) -> Result<Shader<R>, CreateShaderError>

fn create_sampler(&mut self, SamplerInfo) -> Sampler<R>

fn update_buffer_raw(&mut self, buf: &RawBuffer<R>, data: &[u8], offset_bytes: usize) -> Result<()BufferUpdateError>

Update the information stored in a specific buffer

fn map_buffer_raw(&mut self, &RawBuffer<R>, MapAccess) -> Self::Mapper

fn unmap_buffer_raw(&mut self, Self::Mapper)

fn map_buffer_readable<T>(&mut self, &Buffer<R, T>) -> Readable<T, R, Self> where T: Copy

fn map_buffer_writable<T>(&mut self, &Buffer<R, T>) -> Writable<T, R, Self> where T: Copy

fn map_buffer_rw<T>(&mut self, &Buffer<R, T>) -> RW<T, R, Self> where T: Copy

fn update_texture_raw(&mut self, &RawTexture<R>, &ImageInfoCommon<Format>, &[u8], Option<CubeFace>) -> Result<()Error>

fn generate_mipmap_raw(&mut self, &RawTexture<R>)

fn create_texture_raw(&mut self, Descriptor, Option<ChannelType>) -> Result<RawTexture<R>, Error>

fn view_buffer_as_shader_resource_raw(&mut self, &RawBuffer<R>) -> Result<RawShaderResourceView<R>, ResourceViewError>

fn view_buffer_as_unordered_access_raw(&mut self, &RawBuffer<R>) -> Result<RawUnorderedAccessView<R>, ResourceViewError>

fn view_texture_as_shader_resource_raw(&mut self, &RawTexture<R>, ViewDesc) -> Result<RawShaderResourceView<R>, ResourceViewError>

fn view_texture_as_unordered_access_raw(&mut self, &RawTexture<R>) -> Result<RawUnorderedAccessView<R>, ResourceViewError>

fn view_texture_as_render_target_raw(&mut self, &RawTexture<R>, u8, Option<u16>) -> Result<RawRenderTargetView<R>, TargetViewError>

fn view_texture_as_depth_stencil_raw(&mut self, &RawTexture<R>, Option<u16>) -> Result<RawDepthStencilView<R>, TargetViewError>

Provided Methods

fn create_buffer_static<T>(&mut self, data: &[T], role: BufferRole) -> Buffer<R, T> where T: Copy

fn create_buffer_dynamic<T>(&mut self, num: usize, role: BufferRole) -> Buffer<R, T>

fn create_shader_vertex(&mut self, code: &[u8]) -> Result<VertexShader<R>, CreateShaderError>

fn create_shader_geometry(&mut self, code: &[u8]) -> Result<GeometryShader<R>, CreateShaderError>

fn create_shader_pixel(&mut self, code: &[u8]) -> Result<PixelShader<R>, CreateShaderError>

fn update_buffer<T>(&mut self, buf: &Buffer<R, T>, data: &[T], offset_elements: usize) -> Result<()BufferUpdateError> where T: Copy

fn update_texture<T>(&mut self, tex: &Texture<R, T::Surface>, image: &ImageInfoCommon<()>, data: &[T::Surface::DataType], face: Option<CubeFace>) -> Result<()Error> where T: Formatted

fn create_texture_with_data(&mut self, desc: Descriptor, channel: ChannelType, data: &[u8]) -> Result<RawTexture<R>, Error>

fn create_texture<S>(&mut self, kind: Kind, levels: u8, bind: Bind, channel_hint: Option<ChannelType>) -> Result<Texture<R, S>, Error> where S: SurfaceTyped

fn view_buffer_as_shader_resource<T>(&mut self, buf: &Buffer<R, T>) -> Result<ShaderResourceView<R, T>, ResourceViewError>

fn view_buffer_as_unordered_access<T>(&mut self, buf: &Buffer<R, T>) -> Result<UnorderedAccessView<R, T>, ResourceViewError>

fn view_texture_as_shader_resource<T>(&mut self, tex: &Texture<R, T::Surface>, levels: (u8, u8), swizzle: Swizzle) -> Result<ShaderResourceView<R, T::View>, ResourceViewError> where T: TextureFormat

fn view_texture_as_unordered_access<T>(&mut self, tex: &Texture<R, T::Surface>) -> Result<UnorderedAccessView<R, T::View>, ResourceViewError> where T: TextureFormat

fn view_texture_as_render_target<T>(&mut self, tex: &Texture<R, T::Surface>, level: u8, layer: Option<u16>) -> Result<RenderTargetView<R, T>, TargetViewError> where T: RenderFormat

fn view_texture_as_depth_stencil<T>(&mut self, tex: &Texture<R, T::Surface>, layer: Option<u16>) -> Result<DepthStencilView<R, T>, TargetViewError> where T: DepthFormat

fn create_texture_const<T>(&mut self, kind: Kind, data: &[T::Surface::DataType], mipmap: bool) -> Result<(Texture<R, T::Surface>, ShaderResourceView<R, T::View>)CombinedError> where T: TextureFormat

fn create_render_target<T>(&mut self, width: u16, height: u16, allocate_mipmap: bool) -> Result<(Texture<R, T::Surface>, ShaderResourceView<R, T::View>, RenderTargetView<R, T>)CombinedError> where T: TextureFormat + RenderFormat

fn create_depth_stencil<T>(&mut self, width: u16, height: u16) -> Result<(Texture<R, T::Surface>, ShaderResourceView<R, T::View>, DepthStencilView<R, T>)CombinedError> where T: DepthFormat + TextureFormat

Implementors