selene_webgpu

Default backend for Selene game engine.

Game Engine
moon add Milky2018/selene_webgpu@0.37.1
Download zip
Author
Version
0.37.1
License
Apache-2.0
Last updated
20 days ago
Downloads
705
README

#Milky2018/selene_webgpu

WebGPU backend for Selene web builds.

#Install

moon add Milky2018/selene_webgpu

#Enable This Backend

In your web wrapper package:

options(
overrides: [
"Milky2018/selene_webgpu/platform_window",
"Milky2018/selene_webgpu/platform_input",
"Milky2018/selene_webgpu/platform_render",
"Milky2018/selene_webgpu/platform_audio",
"Milky2018/selene_webgpu/platform_asset_io",
],
)

#Build And Run

moon build --target js --release python3 -m http.server 8000

Open http://localhost:8000.

#
AudioInstance

type AudioInstance = Int

#
Audio

type Audio

#
Audio::is_ended

fn Audio::is_ended(self : Audio) -> Bool

#
Audio::is_paused

fn Audio::is_paused(self : Audio) -> Bool

#
Audio::new

fn Audio::new(path : String) -> Audio

#
Audio::pause

fn Audio::pause(self : Audio) -> Unit

#
Audio::play

fn Audio::play(self : Audio) -> Unit

#
Audio::set_current_time

fn Audio::set_current_time(self : Audio, current_time : Double) -> Unit

#
Audio::set_loop

fn Audio::set_loop(self : Audio, loop_ : Bool) -> Unit

#
Audio::set_playback_rate

fn Audio::set_playback_rate(self : Audio, playback_rate : Double) -> Unit

#
Audio::set_volume

fn Audio::set_volume(self : Audio, volume : Double) -> Unit

#
Render3DLightingMode

pub(all) enum Render3DLightingMode {
Full
Cheap
Unlit
} derive(Eq,
Debug
)

#
Render3DSubmissionStatsSnapshot

pub(all) struct Render3DSubmissionStatsSnapshot {
sections : Int
submitted_items : Int
skipped_items : Int
command_groups : Int
draw_commands : Int
lit_triangle_commands : Int
textured_triangle_commands : Int
uploaded_vertex_bytes : Int
render_bind_group_creations : Int
} derive(Eq,
Debug
)

#
WebGpuBackend

type WebGpuBackend

#
WebGpuBackend::WebGpuBackend

fn WebGpuBackend::WebGpuBackend() -> WebGpuBackend

#
WebGpuFrameTimingSnapshot

pub(all) struct WebGpuFrameTimingSnapshot {
service_before_ms : Double
game_ms : Double
render_ms : Double
service_after_ms : Double
total_work_ms : Double
} derive(Eq,
Debug
)

#
WebGpuRender3DTimingSnapshot

pub(all) struct WebGpuRender3DTimingSnapshot {
setup_ms : Double
items_ms : Double
flush_ms : Double
cleanup_ms : Double
submit_total_ms : Double
} derive(Eq,
Debug
)

#
capture_frame_png

fn capture_frame_png() -> Bytes?

#
capture_frame_png_to_file

fn capture_frame_png_to_file(_path : String) -> Bool

#
draw_gradient_rect

#
draw_image

fn draw_image(command :
ImageDrawCommand2D
, image_path : String) -> Unit

#
font_metrics_revision

fn font_metrics_revision(family : String) -> UInt

#
frame_begin

fn frame_begin(clear :
Color
) -> Unit

#
frame_end

fn frame_end() -> Unit

#
get_asset_bytes

fn get_asset_bytes(path : String) -> Bytes?

#
get_realtime_delta

fn get_realtime_delta() -> Double

#
get_time_scale

fn get_time_scale() -> Double

#
is_finished

fn is_finished(instance~ : Int) -> Bool

#
load_font

fn load_font(family : String, path : String) -> Unit

#
lock_mouse

fn lock_mouse(requested_lock_ref :
Ref
[Bool]) -> Unit

#
play_audio

fn play_audio(audio_path~ : String, volume~ : Double, speed~ : Double, loop_~ : Bool, paused~ : Bool) -> Int

#
pop_clip_rect

fn pop_clip_rect() -> Unit

#
preload_audio

fn preload_audio(audio_path : String) -> Unit

#
preload_img

fn preload_img(path : String) -> Unit

#
push_clip_rect

fn push_clip_rect(rect :
Rect
) -> Unit

#
register_key_events

fn register_key_events(pressed_keys :
Set
[
Code
]) -> Unit

#
register_mouse_events

#
release_cubemap_asset

fn release_cubemap_asset(handle :
CubemapHandle
) -> Unit

#
release_image_asset

fn release_image_asset(handle :
ImageHandle
) -> Unit

#
release_material_asset

fn release_material_asset(handle :
MaterialHandle
) -> Unit

#
release_mesh_asset

fn release_mesh_asset(handle :
MeshHandle
) -> Unit

#
render2d_end_pass

fn render2d_end_pass() -> Unit

#
render3d_last_submission_stats

fn render3d_last_submission_stats() -> Render3DSubmissionStatsSnapshot

#
render3d_submit

#
request_close

fn request_close() -> Unit

#
reset_clip_stack

fn reset_clip_stack() -> Unit

#
set_embedded_assets

fn set_embedded_assets(lookup : (String) -> Bytes?) -> Unit

#
set_loop

fn set_loop(instance~ : Int, loop_~ : Bool) -> Unit

#
set_paused

fn set_paused(instance~ : Int, paused~ : Bool) -> Unit

#
set_render3d_lighting_mode

fn set_render3d_lighting_mode(mode : Render3DLightingMode) -> Unit

#
set_speed

fn set_speed(instance~ : Int, speed~ : Double) -> Unit

#
set_time_scale

fn set_time_scale(time_scale : Double) -> Unit

#
set_volume

fn set_volume(instance~ : Int, volume~ : Double) -> Unit

#
stop

fn stop(instance~ : Int) -> Unit

#
sync_mouse_lock_state

fn sync_mouse_lock_state(lock_requested : Bool) -> Bool

#
tick_audio

fn tick_audio() -> Unit

#
webgpu_last_frame_timing

fn webgpu_last_frame_timing() -> WebGpuFrameTimingSnapshot

#
webgpu_last_render3d_timing

fn webgpu_last_render3d_timing() -> WebGpuRender3DTimingSnapshot

Powered by MoonBit

Site sourceReport issuePackagesBuild queueSkillsStatistics

© 2026 mooncakes.io