scenic_driver_renderling/lib/scenic_driver_rendering/window/nif.ex
James Harton f322b7d9d8
Some checks failed
continuous-integration/drone/push Build is failing
chore: Set up tests, linting and CI.
2024-05-17 14:31:49 +12:00

54 lines
1.7 KiB
Elixir

defmodule Scenic.Driver.Renderling.Window.Nif do
@moduledoc """
Provides the NIF interface to the `scenic_window` crate.
"""
use Rustler, otp_app: :scenic_driver_renderling, crate: :scenic_window
alias Scenic.{Color, Driver.Renderling.Window.Config, Script, ViewPort.Input}
@doc """
Initialise a new window server.
The returned reference refers to the server structure in the `scenic_window`
crate. If this reference is GC'd then the server will be torn down.
"""
@spec init(Config.t()) :: reference()
def init(_config), do: :erlang.nif_error(:nif_not_loaded)
@doc """
Send an update-scene event to the server.
"""
@spec update_scene(Script.t(), Script.id(), reference) :: :ok
def update_scene(_script, _script_id, _resource), do: :erlang.nif_error(:nif_not_loaded)
@doc """
Tell the server to reset the scene.
"""
@spec reset_scene(reference) :: :ok
def reset_scene(_resource), do: :erlang.nif_error(:nif_not_loaded)
@doc """
Remove the named scripts from the scene.
"""
@spec del_scripts([Script.id()], reference) :: :ok
def del_scripts(_script_ids, _resource), do: :erlang.nif_error(:nif_not_loaded)
@doc """
Changes the background color of the scene.
"""
@spec clear_color(Color.t(), reference) :: :ok
def clear_color(_color, _resource), do: :erlang.nif_error(:nif_not_loaded)
@doc """
Tell the server that it's no longer needed.
"""
@spec terminate(reference) :: :ok
def terminate(_resource), do: :erlang.nif_error(:nif_not_loaded)
@doc """
Tell the server to filter the input events to the named classes.
"""
@spec request_input(Input.class(), reference) :: :ok
def request_input(_input_classes, _resource), do: :erlang.nif_error(:nif_not_loaded)
end