Renderer

Struct Renderer 

Source
pub struct Renderer<VertexShaderId: Id, FragmentShaderId: Id, ProgramId: Id, UniformId: Id + IdName, BufferId: Id, AttributeId: Id + IdName, TextureId: Id, FramebufferId: Id, TransformFeedbackId: Id, VertexArrayObjectId: Id, UserCtx: Clone + 'static> { /* private fields */ }
Expand description

The Renderer struct takes ownership of the RendererData, enabling it to perform more complex operations than would otherwise be possible, such as animating renders over time or recording canvas output.

Implementations§

Source§

impl<VertexShaderId: 'static + Id, FragmentShaderId: 'static + Id, ProgramId: 'static + Id, UniformId: 'static + Id + IdName, BufferId: 'static + Id, AttributeId: 'static + Id + IdName, TextureId: 'static + Id, FramebufferId: 'static + Id, TransformFeedbackId: 'static + Id, VertexArrayObjectId: 'static + Id, UserCtx: Clone + 'static> Renderer<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

Source

pub fn initialize_recorder(&mut self)

Must be called before starting to record.

This prevents unexpected initialization of a MediaRecorder, when the user wasn’t expecting to need one from the handle.

Source

pub fn start_animating(&self)

Source

pub fn stop_animating(&self)

Source

pub fn set_animation_callback( &mut self, animation_callback: Option<impl Into<AnimationCallback<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>>>, )

Source

pub fn start_recording(&mut self)

Source

pub fn stop_recording(&self)

Source

pub fn clear_recorded_data(&self)

Source

pub fn recorder_initialized(&self) -> bool

Source

pub fn is_animating(&self) -> bool

Source

pub fn is_recording(&self) -> bool

Source§

impl<VertexShaderId: Id, FragmentShaderId: Id, ProgramId: Id, UniformId: Id + IdName, BufferId: Id, AttributeId: Id + IdName, TextureId: Id, FramebufferId: Id, TransformFeedbackId: Id, VertexArrayObjectId: Id, UserCtx: Clone> Renderer<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

Source

pub fn builder() -> RendererDataBuilder<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

Source

pub fn canvas(&self) -> HtmlCanvasElement

Source

pub fn gl(&self) -> WebGl2RenderingContext

Source

pub fn fragment_shader( &self, fragment_shader_id: &FragmentShaderId, ) -> Option<WebGlShader>

Source

pub fn vertex_shader( &self, vertex_shader_id: &VertexShaderId, ) -> Option<WebGlShader>

Source

pub fn program(&self, program_id: &ProgramId) -> Option<WebGlProgram>

Source

pub fn uniform( &self, uniform_id: &UniformId, ) -> Option<Uniform<ProgramId, UniformId>>

Source

pub fn buffer(&self, buffer_id: &BufferId) -> Option<Buffer<BufferId>>

Source

pub fn attribute( &self, attribute_id: &AttributeId, ) -> Option<Attribute<VertexArrayObjectId, BufferId, AttributeId>>

Source

pub fn texture(&self, texture_id: &TextureId) -> Option<Texture<TextureId>>

Source

pub fn framebuffer( &self, framebuffer_id: &FramebufferId, ) -> Option<Framebuffer<FramebufferId>>

Source

pub fn transform_feedback( &self, transform_feedback_id: &TransformFeedbackId, ) -> Option<WebGlTransformFeedback>

Source

pub fn vao( &self, vao_id: &VertexArrayObjectId, ) -> Option<WebGlVertexArrayObject>

Source

pub fn user_ctx(&self) -> Option<UserCtx>

Source

pub fn use_program(&self, program_id: &ProgramId) -> &Self

Source

pub fn use_vao(&self, vao_id: &VertexArrayObjectId) -> &Self

Source

pub fn update_uniform(&self, uniform_id: &UniformId) -> &Self

Source

pub fn update_uniforms(&self) -> &Self

Source

pub fn render(&self) -> &Self

Source

pub fn save_image(&self)

Source

pub fn render_callback( &self, ) -> RenderCallback<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

Trait Implementations§

Source§

impl<VertexShaderId: Debug + Id, FragmentShaderId: Debug + Id, ProgramId: Debug + Id, UniformId: Debug + Id + IdName, BufferId: Debug + Id, AttributeId: Debug + Id + IdName, TextureId: Debug + Id, FramebufferId: Debug + Id, TransformFeedbackId: Debug + Id, VertexArrayObjectId: Debug + Id, UserCtx: Debug + Clone + 'static> Debug for Renderer<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<VertexShaderId: Id, FragmentShaderId: Id, ProgramId: Id, UniformId: Id + IdName, BufferId: Id, AttributeId: Id + IdName, TextureId: Id, FramebufferId: Id, TransformFeedbackId: Id, VertexArrayObjectId: Id, UserCtx: Clone> Deref for Renderer<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

Source§

type Target = Rc<RefCell<RendererData<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>>>

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<VertexShaderId: Id, FragmentShaderId: Id, ProgramId: Id, UniformId: Id + IdName, BufferId: Id, AttributeId: Id + IdName, TextureId: Id, FramebufferId: Id, TransformFeedbackId: Id, VertexArrayObjectId: Id, UserCtx: Clone> Drop for Renderer<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<VertexShaderId: Id, FragmentShaderId: Id, ProgramId: Id, UniformId: Id + IdName, BufferId: Id, AttributeId: Id + IdName, TextureId: Id, FramebufferId: Id, TransformFeedbackId: Id, VertexArrayObjectId: Id, UserCtx: Clone> From<Rc<RefCell<RendererData<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>>>> for Renderer<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

Source§

fn from( renderer_data: Rc<RefCell<RendererData<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>>>, ) -> Self

Converts to this type from the input type.
Source§

impl From<Renderer<String, String, String, String, String, String, String, String, String, String, Object>> for JsValue

Source§

fn from(js_renderer_handle_inner: RendererJsInner) -> Self

Converts to this type from the input type.
Source§

impl From<Renderer<String, String, String, String, String, String, String, String, String, String, Object>> for RendererJs

Source§

fn from(js_renderer_handle_inner: RendererJsInner) -> Self

Converts to this type from the input type.
Source§

impl<VertexShaderId: Id, FragmentShaderId: Id, ProgramId: Id, UniformId: Id + IdName, BufferId: Id, AttributeId: Id + IdName, TextureId: Id, FramebufferId: Id, TransformFeedbackId: Id, VertexArrayObjectId: Id, UserCtx: Clone> From<RendererData<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>> for Renderer<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

Source§

fn from( renderer_data: RendererData<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>, ) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx> Freeze for Renderer<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

§

impl<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx> !RefUnwindSafe for Renderer<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

§

impl<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx> !Send for Renderer<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

§

impl<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx> !Sync for Renderer<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

§

impl<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx> Unpin for Renderer<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

§

impl<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx> !UnwindSafe for Renderer<VertexShaderId, FragmentShaderId, ProgramId, UniformId, BufferId, AttributeId, TextureId, FramebufferId, TransformFeedbackId, VertexArrayObjectId, UserCtx>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.