message: add getters for canvas state
diff: @@ -136,6 +136,11 @@ impl Canvas {
  self.state.shader = shader;
  }
  + /// Returns the current shader being used when drawing meshes.
  + pub fn shader(&self) -> Shader {
  + self.state.shader.clone()
  + }
  +
  /// Sets the shader parameters to use when drawing meshes.
  ///
  /// **Bound to bind group 3 for non-instanced draws, and 4 for instanced draws.**
  @@ -148,6 +153,11 @@ impl Canvas {
  self.state.text_shader = shader;
  }
  + /// Returns the current text shader being used when drawing text.
  + pub fn text_shader(&self) -> Shader {
  + self.state.text_shader.clone()
  + }
  +
  /// Sets the shader parameters to use when drawing text.
  ///
  /// **Bound to bind group 3.**
  @@ -170,6 +180,11 @@ impl Canvas {
  self.state.sampler = sampler;
  }
  + /// Returns the currently active sampler used to sample images.
  + pub fn sampler(&self) -> Sampler {
  + self.state.sampler
  + }
  +
  /// Resets the active sampler to the default.
  ///
  /// This is equivalent to `set_sampler(Sampler::linear_clamp())`.
  @@ -182,6 +197,11 @@ impl Canvas {
  self.state.blend_mode = blend_mode;
  }
  + /// Returns the currently active blend mode used when drawing images.
  + pub fn blend_mode(&self) -> BlendMode {
  + self.state.blend_mode
  + }
  +
  /// Selects whether text will be drawn with [`BlendMode::PREMULTIPLIED`] when the current blend
  /// mode is [`BlendMode::ALPHA`]. This is `true` by default.
  pub fn set_premultiplied_text(&mut self, premultiplied_text: bool) {
  