API

Ui, Render & Plot

Retained interfaces, rendering, presentation, and plotting.

Generated from rustdocNative Rust surface20 functions134 types45 enums15 constants & variables
This inventory is generated from public rustdoc declarations. Modules, structs, enums, traits, aliases, signatures, source comments, and source links follow the native Rust API.

oa

Types

8 members
31 members

Semantic camera value. Composes a Transform (placement) with lens parameters (projection shape). get_view_matrix derives from the transform’s position and forward direction. get_projection_matrix uses the lens parameters with Vulkan clip-space conventions (reversed-Y, depth [0, 1]). Donor: oa::Camera / oa::FnCamera.

Source
5 members
5 members
3 members
5 members

Full Standard Surface PBR material. Parameterized on Autodesk Standard Surface / OpenPBR. Maps losslessly to glTF 2.0 pbrMetallicRoughness + KHR_materials_ior, KHR_materials_clearcoat, KHR_materials_sheen, and KHR_materials_subsurface_scattering. Arnold and Cycles standard_surface import is a natural correspondence. Texture channel packing (ORM convention): orm_texture R = ambient occlusion, G = roughness, B = metalness. normal_texture stores tangent-space XY as BC5 SNORM; Z is reconstructed as sqrt(saturate(1 - dot(n.xy, n.xy))). All color values are linear at this API boundary.

Source
5 members

Packed RGBA8 texture value reusable by Render, Presenter, Image, and UI. Two backings are currently admitted: Buffer-backed: uploaded from host bytes or a Matrix; supports read_rgba8. Render-target-backed: a non-owning alias of a Renderer slot’s color image; valid only while the originating RenderFrame is live. Readback uses RenderFrame::consume_readback, not read_rgba8.

Source
5 members
5 members

Enums

Alpha blending mode for UnlitMaterial and StandardSurfaceMaterial.

Opaque · AlphaTest · Blend

Projection kind for a Camera.

Perspective · Orthographic

Semantic material value — CPU-side only, no GPU handles. Three tiers correspond to distinct shader pipelines: Material::FlatColor — flat_color shader, UI and debug. Material::Unlit — unlit shader, image/video display. Material::Standard — standard_surface shader, full PBR.

FlatColor(FlatColorMaterial) · Unlit(UnlitMaterial) · Standard(StandardSurfaceMaterial)

Functions

Deep-copy a packed Texture into independent device storage. This is the currently admitted whole-surface FnTexture::blit equivalent. Rectangle and scaled blits remain unavailable because the C++ donor also rejects them rather than silently selecting different sampling semantics. Errors Returns an error when the device copy cannot be recorded.

Return an independent packed Texture filled with one RGBA8 clear color. The result has the source extent but does not alias source storage. This is Rust’s immutable-value spelling of the C++ donor’s in-place clear. Errors Returns an error for non-finite or out-of-range color components, exhausted texture identity, or failed device allocation/upload.

Compile visible scene nodes into a merged MeshData and one SceneDrawPacket per visible node that contributes geometry. The returned mesh has world-space positions and normals; each packet records the index range within the merged buffer that belongs to that node. Draw order is deterministic (depth-first scene-node order).

Recompute and store the tight axis-aligned bounding box for mesh. Clears bounds_dirty. Empty meshes produce an all-zero Aabb. Donor: oa::FnMesh::computeBounds.

Create a 3D axis-aligned cube (12 triangles, 24 vertices, size × size × size). Each face has its own four vertices with an outward normal and per-face UVs. size must be finite and positive. Donor: oa::FnMesh::createCube. Errors Returns an error for non-finite or non-positive size.

Create a fullscreen NDC quad (2 triangles, 4 vertices) in [-1, 1] XY with top-origin image UVs. Used for post-processing passes. Donor: oa::FnMesh::createFullscreenQuad.

Create a centered quad (2 triangles, 4 vertices) with top-origin image UVs. UV V=0 is the source-image top and world +Y is the quad top. For image/video viewing, pass the pixel dimensions (e.g. 1920, 1080). width and height must be finite and positive. Donor: oa::FnMesh::createQuad. Errors Returns an error for non-finite or non-positive dimensions.

Flip all vertex UVs vertically (V ← 1 − V). Used to convert explicitly bottom-origin source content to top-origin. Never fails. Donor: oa::FnMesh::flipUvsY.

Read and save one packed RGBA8 Texture using its path extension. Supported extensions are .jpg, .jpeg, .png, .webp, .bmp, and .tga. This is an explicit blocking readback and filesystem boundary. Errors Returns an error for unsupported paths, failed device observation, codec failure, or filesystem failure.

Scale all vertex positions and normals. Zero or non-finite scale components fail without modifying the mesh. Donor: oa::FnMesh::scale. Errors Returns an error when any scale component is zero or non-finite.

Convert one packed RGBA8 HWC image into an independent Texture value. The operation retains the texture/image semantic distinction and performs a device-side deep copy. Other image layouts, channel orders, and scalar representations require an explicit image conversion before this boundary. Errors Returns an error unless image is an unbatched U8 HWC RGBA image or its device copy cannot be recorded.

Upload one exact packed row-major RGBA8 host image as a Texture. Errors Returns an error for zero or overflowing dimensions, a mismatched byte count, exhausted semantic identity, or device allocation/upload failure.

Apply an affine matrix to all vertex positions and normals. The mesh is left unchanged when matrix is non-finite, singular, or produces non-finite vertex positions. On success, bounds_dirty is set. Donor: oa::FnMesh::transform. Errors Returns an error when matrix is non-finite, singular (no normal matrix), or produces non-finite vertex positions.

Translate all vertex positions in-place. Always succeeds; bounds are marked dirty. Donor: oa::FnMesh::translate.

Types

8 members
31 members

Semantic camera value. Composes a Transform (placement) with lens parameters (projection shape). get_view_matrix derives from the transform’s position and forward direction. get_projection_matrix uses the lens parameters with Vulkan clip-space conventions (reversed-Y, depth [0, 1]). Donor: oa::Camera / oa::FnCamera.

Source
5 members
5 members
4 members

Indexed triangle-list mesh snapshot. bounds and bounds_dirty mirror the OA donor fields. Constructed values from mesh::create_* have up-to-date bounds; directly assembled MeshData values start with bounds_dirty = true and bounds = Aabb::default().

Source
3 members
7 members
13 members

Engine-borrowing headless render-to-texture session. Admits multiple frame sources through the same slot-ring lifecycle. submit_frame returns a RenderFrame carrying the color Texture and exact producer Event.

Source
4 members
4 members
3 members
3 members
3 members
5 members
3 members

One hierarchy node that optionally instances a mesh. local_transform is the donor oa::Transform localTransform — a TRS semantic value, not a raw matrix. material overrides the renderer’s default material for this node. None falls back to FlatColor { color: [0.8, 0.8, 0.8, 1.0] } at draw time.

SceneNodeId
String
SceneNodeId
SceneMeshId
Option<MaterialId>
Source
5 members
5 members

Full Standard Surface PBR material. Parameterized on Autodesk Standard Surface / OpenPBR. Maps losslessly to glTF 2.0 pbrMetallicRoughness + KHR_materials_ior, KHR_materials_clearcoat, KHR_materials_sheen, and KHR_materials_subsurface_scattering. Arnold and Cycles standard_surface import is a natural correspondence. Texture channel packing (ORM convention): orm_texture R = ambient occlusion, G = roughness, B = metalness. normal_texture stores tangent-space XY as BC5 SNORM; Z is reconstructed as sqrt(saturate(1 - dot(n.xy, n.xy))). All color values are linear at this API boundary.

Source
5 members

Packed RGBA8 texture value reusable by Render, Presenter, Image, and UI. Two backings are currently admitted: Buffer-backed: uploaded from host bytes or a Matrix; supports read_rgba8. Render-target-backed: a non-owning alias of a Renderer slot’s color image; valid only while the originating RenderFrame is live. Readback uses RenderFrame::consume_readback, not read_rgba8.

Source
5 members
5 members

Enums

Alpha blending mode for UnlitMaterial and StandardSurfaceMaterial.

Opaque · AlphaTest · Blend

Projection kind for a Camera.

Perspective · Orthographic

Semantic material value — CPU-side only, no GPU handles. Three tiers correspond to distinct shader pipelines: Material::FlatColor — flat_color shader, UI and debug. Material::Unlit — unlit shader, image/video display. Material::Standard — standard_surface shader, full PBR.

FlatColor(FlatColorMaterial) · Unlit(UnlitMaterial) · Standard(StandardSurfaceMaterial)

oa

Types

4 members
9 members
3 members
8 members
3 members
3 members
1 members
4 members
72 members

GPU-retained UI compositor. Borrows one Engine for its lifetime; must be closed explicitly before the engine or any resource it references is released.

Initialise the UI layer. Creates pipelines and the compose image. width and height should match the presentation surface extent.

method

Initialise the UI layer. Creates pipelines and the compose image. width and height should match the presentation surface extent.

method
Source
4 members
11 members

Platform-neutral UI event. Donor: oa/ui/event.h UiEvent.

Source
3 members
3 members
0 members

Modifier key bitmask (matches donor UiModifier* constants).

Source
4 members
3 members
3 members
4 members
4 members
3 members
12 members

Windowed / headless media inspection session. Donor: oa::Viewer.

Open path in a new window, creating a presentation-capable engine.

static

Open path in a new window, creating a presentation-capable engine.

static
Source
3 members
3 members
6 members

Enums

Sans = 0 · Mono = 1 · SansSemibold = 2

Alignment of children along the cross-axis.

Start · Center · End · Stretch

Flow direction for a panel or row.

Column · Row

Discriminant for UiEvent. Donor: UiEventType.

None · MouseMove · MouseDown · MouseUp · MouseScroll · KeyDown · KeyUp · KeyChar · WindowResize · WindowClose · WindowFocus · WindowBlur · Pinch · TextEditing · MouseEnter · MouseLeave

Platform-neutral keyboard key identifier (SDL3 scancode values).

Unknown = 0 · A = 4 · B = 5 · C = 6 · D = 7 · E = 8 · F = 9 · G = 10 · H = 11 · I = 12 · J = 13 · K = 14 · L = 15 · M = 16 · N = 17 · O = 18 · P = 19 · Q = 20 · R = 21 · S = 22 · T = 23 · U = 24 · V = 25 · W = 26 · X = 27 · Y = 28 · Z = 29 · Num1 = 30 · Num2 = 31 · Num3 = 32 · Num4 = 33 · Num5 = 34 · Num6 = 35 · Num7 = 36 · Num8 = 37 · Num9 = 38 · Num0 = 39 · Return = 40 · Escape = 41 · Backspace = 42 · Tab = 43 · Space = 44 · Minus = 45 · Equals = 46 · Comma = 54 · Period = 55 · Slash = 56 · F1 = 58 · F2 = 59 · F3 = 60 · F4 = 61 · F5 = 62 · F6 = 63 · F7 = 64 · F8 = 65 · F9 = 66 · F10 = 67 · F11 = 68 · F12 = 69 · Home = 74 · Delete = 76 · End = 77 · Right = 79 · Left = 80 · Down = 81 · Up = 82 · KpEnter = 88 · Kp1 = 89 · Kp2 = 90 · Kp3 = 91 · Kp4 = 92 · Kp5 = 93 · Kp6 = 94 · Kp7 = 95 · Kp8 = 96 · Kp9 = 97 · Kp0 = 98

Phase of a multi-touch pinch gesture.

None · Begin · Update · End

Classified scroll gesture — maps to donor UiScrollGesture.

None · MouseWheel · TouchpadPan · PinchScroll

Sizing policy for one layout axis.

Fill · Fixed(f32) · Hug

Audio visualization mode.

Waveform · Spectrum · Mel

Canvas background style.

Dark · Gradient

Media source mode for the Viewer.

Auto · Image · Video · Audio · Live

Constants & Variables

pub const UI_MOD_ALT: UiModifiers = _; // 4u32Source
pub const UI_MOD_CTRL: UiModifiers = _; // 2u32Source
pub const UI_MOD_NONE: UiModifiers = 0;Source
pub const UI_MOD_SHIFT: UiModifiers = _; // 1u32Source
pub const UI_MOD_SUPER: UiModifiers = _; // 8u32Source

Types

21 members

One subplot inside an oa::plot::Figure.

Source
3 members
14 members
3 members
3 members
3 members
3 members

Enums

Figure color theme. Donor: oa::plot::Theme.

Dark = 0 · Light = 1

Types

21 members

One subplot inside an oa::plot::Figure.

Source
3 members
3 members
3 members
3 members

Types

4 members
14 members
3 members

Enums

Figure color theme. Donor: oa::plot::Theme.

Dark = 0 · Light = 1

Functions

Classify an SDL3 wheel event into a UiScrollGesture. Heuristic: integer_x/y non-zero → discrete wheel; ctrl held → pinch fallback; otherwise smooth trackpad pan.

Types

4 members
9 members
3 members
8 members
3 members
3 members
1 members
4 members
72 members

GPU-retained UI compositor. Borrows one Engine for its lifetime; must be closed explicitly before the engine or any resource it references is released.

Initialise the UI layer. Creates pipelines and the compose image. width and height should match the presentation surface extent.

method

Initialise the UI layer. Creates pipelines and the compose image. width and height should match the presentation surface extent.

method
Source
3 members
3 members
4 members
11 members

Platform-neutral UI event. Donor: oa/ui/event.h UiEvent.

Source
3 members
3 members
3 members
3 members
0 members

Modifier key bitmask (matches donor UiModifier* constants).

Source
3 members
3 members
3 members
3 members
3 members
3 members
3 members
4 members
3 members
3 members
4 members
3 members
4 members
3 members
4 members

Enums

Sans = 0 · Mono = 1 · SansSemibold = 2

Accessibility role for a widget. Donor: oa::UiAccessibilityRole.

Button · Checkbox · Slider · TextField · ComboBox · MenuItem · Tab · TreeItem · Splitter · Timeline

Alignment of children along the cross-axis.

Start · Center · End · Stretch

Direction for a chevron button. Donor: oa::UiChevronDirection.

Previous · Next

Flow direction for a panel or row.

Column · Row

Discriminant for UiEvent. Donor: UiEventType.

None · MouseMove · MouseDown · MouseUp · MouseScroll · KeyDown · KeyUp · KeyChar · WindowResize · WindowClose · WindowFocus · WindowBlur · Pinch · TextEditing · MouseEnter · MouseLeave

Named icon for icon-button widgets. Donor: oa::UiIcon.

Previous · Next · Play · Pause · Menu · Minimize · Maximize · Restore · Close · Fullscreen · ExitFullscreen · Volume · Muted · Settings

Display style for an icon button. Donor: oa::UiIconButtonStyle.

Overlay · Header · WindowControl

Platform-neutral keyboard key identifier (SDL3 scancode values).

Unknown = 0 · A = 4 · B = 5 · C = 6 · D = 7 · E = 8 · F = 9 · G = 10 · H = 11 · I = 12 · J = 13 · K = 14 · L = 15 · M = 16 · N = 17 · O = 18 · P = 19 · Q = 20 · R = 21 · S = 22 · T = 23 · U = 24 · V = 25 · W = 26 · X = 27 · Y = 28 · Z = 29 · Num1 = 30 · Num2 = 31 · Num3 = 32 · Num4 = 33 · Num5 = 34 · Num6 = 35 · Num7 = 36 · Num8 = 37 · Num9 = 38 · Num0 = 39 · Return = 40 · Escape = 41 · Backspace = 42 · Tab = 43 · Space = 44 · Minus = 45 · Equals = 46 · Comma = 54 · Period = 55 · Slash = 56 · F1 = 58 · F2 = 59 · F3 = 60 · F4 = 61 · F5 = 62 · F6 = 63 · F7 = 64 · F8 = 65 · F9 = 66 · F10 = 67 · F11 = 68 · F12 = 69 · Home = 74 · Delete = 76 · End = 77 · Right = 79 · Left = 80 · Down = 81 · Up = 82 · KpEnter = 88 · Kp1 = 89 · Kp2 = 90 · Kp3 = 91 · Kp4 = 92 · Kp5 = 93 · Kp6 = 94 · Kp7 = 95 · Kp8 = 96 · Kp9 = 97 · Kp0 = 98

Phase of a multi-touch pinch gesture.

None · Begin · Update · End

Classified scroll gesture — maps to donor UiScrollGesture.

None · MouseWheel · TouchpadPan · PinchScroll

Sizing policy for one layout axis.

Fill · Fixed(f32) · Hug

Constants & Variables

pub const UI_MOD_ALT: UiModifiers = _; // 4u32Source
pub const UI_MOD_CTRL: UiModifiers = _; // 2u32Source
pub const UI_MOD_NONE: UiModifiers = 0;Source
pub const UI_MOD_SHIFT: UiModifiers = _; // 1u32Source
pub const UI_MOD_SUPER: UiModifiers = _; // 8u32Source

Types

17 members

2-D viewport navigation session. Donor: oa::Navigation.

Source
3 members

Functions

Convert one SDL3 event into a UiEvent. pixel_scale_x / pixel_scale_y convert logical SDL coordinates to physical pixels. Obtain them with window_pixel_scale before calling this. Returns None for SDL events that have no UI representation (timers, audio device changes, etc.).

Compute logical→physical pixel scale for one window. Returns (scale_x, scale_y). Both default to 1.0 when the window is zero-size or the query fails.

Functions

Classify an SDL3 wheel event into a UiScrollGesture. Heuristic: integer_x/y non-zero → discrete wheel; ctrl held → pinch fallback; otherwise smooth trackpad pan.

Types

9 members
3 members
8 members
3 members
3 members
4 members
11 members

Platform-neutral UI event. Donor: oa/ui/event.h UiEvent.

Source
3 members
3 members
3 members
3 members
0 members

Modifier key bitmask (matches donor UiModifier* constants).

Source
3 members
3 members
3 members
3 members
3 members
3 members
3 members
4 members
3 members
3 members
4 members
3 members
4 members
3 members
4 members

Enums

Accessibility role for a widget. Donor: oa::UiAccessibilityRole.

Button · Checkbox · Slider · TextField · ComboBox · MenuItem · Tab · TreeItem · Splitter · Timeline

Alignment of children along the cross-axis.

Start · Center · End · Stretch

Direction for a chevron button. Donor: oa::UiChevronDirection.

Previous · Next

Flow direction for a panel or row.

Column · Row

Discriminant for UiEvent. Donor: UiEventType.

None · MouseMove · MouseDown · MouseUp · MouseScroll · KeyDown · KeyUp · KeyChar · WindowResize · WindowClose · WindowFocus · WindowBlur · Pinch · TextEditing · MouseEnter · MouseLeave

Named icon for icon-button widgets. Donor: oa::UiIcon.

Previous · Next · Play · Pause · Menu · Minimize · Maximize · Restore · Close · Fullscreen · ExitFullscreen · Volume · Muted · Settings

Display style for an icon button. Donor: oa::UiIconButtonStyle.

Overlay · Header · WindowControl

Platform-neutral keyboard key identifier (SDL3 scancode values).

Unknown = 0 · A = 4 · B = 5 · C = 6 · D = 7 · E = 8 · F = 9 · G = 10 · H = 11 · I = 12 · J = 13 · K = 14 · L = 15 · M = 16 · N = 17 · O = 18 · P = 19 · Q = 20 · R = 21 · S = 22 · T = 23 · U = 24 · V = 25 · W = 26 · X = 27 · Y = 28 · Z = 29 · Num1 = 30 · Num2 = 31 · Num3 = 32 · Num4 = 33 · Num5 = 34 · Num6 = 35 · Num7 = 36 · Num8 = 37 · Num9 = 38 · Num0 = 39 · Return = 40 · Escape = 41 · Backspace = 42 · Tab = 43 · Space = 44 · Minus = 45 · Equals = 46 · Comma = 54 · Period = 55 · Slash = 56 · F1 = 58 · F2 = 59 · F3 = 60 · F4 = 61 · F5 = 62 · F6 = 63 · F7 = 64 · F8 = 65 · F9 = 66 · F10 = 67 · F11 = 68 · F12 = 69 · Home = 74 · Delete = 76 · End = 77 · Right = 79 · Left = 80 · Down = 81 · Up = 82 · KpEnter = 88 · Kp1 = 89 · Kp2 = 90 · Kp3 = 91 · Kp4 = 92 · Kp5 = 93 · Kp6 = 94 · Kp7 = 95 · Kp8 = 96 · Kp9 = 97 · Kp0 = 98

Phase of a multi-touch pinch gesture.

None · Begin · Update · End

Classified scroll gesture — maps to donor UiScrollGesture.

None · MouseWheel · TouchpadPan · PinchScroll

Sizing policy for one layout axis.

Fill · Fixed(f32) · Hug

Constants & Variables

pub const UI_MOD_ALT: UiModifiers = _; // 4u32Source
pub const UI_MOD_CTRL: UiModifiers = _; // 2u32Source
pub const UI_MOD_SHIFT: UiModifiers = _; // 1u32Source
pub const UI_MOD_SUPER: UiModifiers = _; // 8u32Source

Types

12 members

Windowed / headless media inspection session. Donor: oa::Viewer.

Open path in a new window, creating a presentation-capable engine.

static

Open path in a new window, creating a presentation-capable engine.

static
Source
3 members
3 members
6 members

Enums

Audio visualization mode.

Waveform · Spectrum · Mel

Canvas background style.

Dark · Gradient

Media source mode for the Viewer.

Auto · Image · Video · Audio · Live