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
GPU power preference hints used when creating a renderer.
pub type PowerPreference {
DefaultPowerPreference
LowPowerPreference
HighPerformancePreference
}
Constructors
-
DefaultPowerPreference -
LowPowerPreference -
HighPerformancePreference
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 clear(
renderer: Renderer,
color color: Bool,
depth depth: Bool,
stencil stencil: Bool,
) -> Renderer
Clears the selected render buffers.
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 new(options options: RendererOptions) -> Renderer
Creates a renderer from the provided options.
pub fn render(
renderer: Renderer,
scene: scene.Scene,
camera: camera.Camera,
) -> Nil
Renders a scene from a camera.
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_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.