savoiardi/renderer

WebGL renderer creation and frame rendering controls.

The renderer API exposes a small builder for creation options and wraps the most common WebGLRenderer methods used from Gleam applications.

Types

The renderer’s canvas element.

pub type Canvas

GPU power preference hints used when creating a renderer.

pub type PowerPreference {
  DefaultPowerPreference
  LowPowerPreference
  HighPerformancePreference
}

Constructors

  • DefaultPowerPreference
  • LowPowerPreference
  • HighPerformancePreference

A WebGL renderer.

pub type Renderer

Options used to create a renderer.

pub type RendererOptions {
  RendererOptions(
    antialias: Bool,
    alpha: Bool,
    depth: Bool,
    stencil: Bool,
    premultiplied_alpha: Bool,
    preserve_drawing_buffer: Bool,
    fail_if_major_performance_caveat: Bool,
    logarithmic_depth_buffer: Bool,
    reversed_depth_buffer: Bool,
    power_preference: PowerPreference,
  )
}

Constructors

  • RendererOptions(
      antialias: Bool,
      alpha: Bool,
      depth: Bool,
      stencil: Bool,
      premultiplied_alpha: Bool,
      preserve_drawing_buffer: Bool,
      fail_if_major_performance_caveat: Bool,
      logarithmic_depth_buffer: Bool,
      reversed_depth_buffer: Bool,
      power_preference: PowerPreference,
    )

Shadow map algorithms supported by the renderer.

pub type ShadowMapType {
  BasicShadowMap
  PCFShadowMap
  PCFSoftShadowMap
  VSMShadowMap
}

Constructors

  • BasicShadowMap
  • PCFShadowMap
  • PCFSoftShadowMap
  • VSMShadowMap

Tone mapping algorithms supported by the renderer.

pub type ToneMapping {
  NoToneMapping
  LinearToneMapping
  ReinhardToneMapping
  CineonToneMapping
  ACESFilmicToneMapping
  AgXToneMapping
  NeutralToneMapping
}

Constructors

  • NoToneMapping
  • LinearToneMapping
  • ReinhardToneMapping
  • CineonToneMapping
  • ACESFilmicToneMapping
  • AgXToneMapping
  • NeutralToneMapping

Values

pub fn canvas(renderer: Renderer) -> Canvas

Returns the renderer canvas element.

pub fn clear(
  renderer: Renderer,
  color color: Bool,
  depth depth: Bool,
  stencil stencil: Bool,
) -> Renderer

Clears the selected render buffers.

pub fn clear_color(renderer: Renderer) -> Renderer

Clears the color buffer.

pub fn clear_depth(renderer: Renderer) -> Renderer

Clears the depth buffer.

pub fn clear_stencil(renderer: Renderer) -> Renderer

Clears the stencil buffer.

pub fn compile(
  renderer: Renderer,
  object: object.Object3D,
  camera: camera.Camera,
  target_scene: option.Option(scene.Scene),
) -> Nil

Compiles shaders and internal state for an object-camera pair.

pub fn compile_async(
  renderer: Renderer,
  object: object.Object3D,
  camera: camera.Camera,
  target_scene: option.Option(scene.Scene),
) -> promise.Promise(Nil)

Compiles shaders and internal state asynchronously.

pub fn dispose(renderer: Renderer) -> Nil

Disposes the renderer.

pub fn new(options options: RendererOptions) -> Renderer

Creates a renderer from the provided options.

pub fn options() -> RendererOptions

Returns the default renderer options.

pub fn render(
  renderer: Renderer,
  scene: scene.Scene,
  camera: camera.Camera,
) -> Nil

Renders a scene from a camera.

pub fn reset_state(renderer: Renderer) -> Renderer

Resets internal renderer state.

pub fn set_animation_loop(
  renderer: Renderer,
  on_frame: fn(Float) -> Nil,
) -> Renderer

Sets the animation loop callback.

pub fn set_auto_clear(
  renderer: Renderer,
  auto_clear: Bool,
) -> Renderer

Enables or disables automatic clearing before rendering.

pub fn set_auto_clear_color(
  renderer: Renderer,
  auto_clear_color: Bool,
) -> Renderer

Enables or disables automatic clearing of the color buffer.

pub fn set_auto_clear_depth(
  renderer: Renderer,
  auto_clear_depth: Bool,
) -> Renderer

Enables or disables automatic clearing of the depth buffer.

pub fn set_auto_clear_stencil(
  renderer: Renderer,
  auto_clear_stencil: Bool,
) -> Renderer

Enables or disables automatic clearing of the stencil buffer.

pub fn set_clear_alpha(
  renderer: Renderer,
  alpha: Float,
) -> Renderer

Sets the clear alpha value.

pub fn set_clear_color(
  renderer: Renderer,
  color: Int,
  alpha: Float,
) -> Renderer

Sets the clear color and alpha.

pub fn set_drawing_buffer_size(
  renderer: Renderer,
  width: Int,
  height: Int,
  pixel_ratio: Float,
) -> Renderer

Sets the drawing buffer size explicitly.

pub fn set_output_color_space(
  renderer: Renderer,
  output_color_space: texture.ColorSpace,
) -> Renderer

Sets the output color space of the renderer.

pub fn set_pixel_ratio(
  renderer: Renderer,
  pixel_ratio: Float,
) -> Renderer

Sets the pixel ratio used for rendering.

pub fn set_scissor(
  renderer: Renderer,
  x x: Int,
  y y: Int,
  width width: Int,
  height height: Int,
) -> Renderer

Sets the active scissor rectangle.

pub fn set_scissor_test(
  renderer: Renderer,
  enabled: Bool,
) -> Renderer

Enables or disables scissor testing.

pub fn set_shadow_map(
  renderer: Renderer,
  enabled: Bool,
) -> Renderer

Enables or disables renderer shadow maps.

pub fn set_shadow_map_type(
  renderer: Renderer,
  shadow_map_type: ShadowMapType,
) -> Renderer

Sets the renderer shadow map algorithm.

pub fn set_size(
  renderer: Renderer,
  width: Int,
  height: Int,
) -> Renderer

Sets the renderer output size in pixels.

pub fn set_tone_mapping(
  renderer: Renderer,
  tone_mapping: ToneMapping,
) -> Renderer

Sets the tone mapping algorithm.

pub fn set_tone_mapping_exposure(
  renderer: Renderer,
  exposure: Float,
) -> Renderer

Sets the tone mapping exposure.

pub fn set_transmission_resolution_scale(
  renderer: Renderer,
  scale: Float,
) -> Renderer

Sets the transmission render scale used for physical materials.

pub fn set_viewport(
  renderer: Renderer,
  x x: Int,
  y y: Int,
  width width: Int,
  height height: Int,
) -> Renderer

Sets the active viewport rectangle.

pub fn with_alpha(
  options: RendererOptions,
  alpha: Bool,
) -> RendererOptions

Sets whether the renderer should create an alpha channel.

pub fn with_antialias(
  options: RendererOptions,
  antialias: Bool,
) -> RendererOptions

Sets whether the renderer should use antialiasing.

pub fn with_power_preference(
  options: RendererOptions,
  power_preference: PowerPreference,
) -> RendererOptions

Sets the GPU power preference hint.

pub fn with_preserve_drawing_buffer(
  options: RendererOptions,
  preserve_drawing_buffer: Bool,
) -> RendererOptions

Sets whether the drawing buffer should be preserved between frames.

Search Document