Header menu logo Mibo

HeadlessProgram Module

Extension functions for projecting a HeadlessProgram onto a LoopCore.

Functions and values

Function or value Description

mkHeadless init update

Full Usage: mkHeadless init update

Parameters:
    init : GameContext -> 'Model * Cmd<'Msg>
    update : 'Msg -> 'Model -> 'Model * Cmd<'Msg>

Returns: HeadlessProgram<'Model, 'Msg>

Creates a new headless program with the given init and update functions.

init : GameContext -> 'Model * Cmd<'Msg>
update : 'Msg -> 'Model -> 'Model * Cmd<'Msg>
Returns: HeadlessProgram<'Model, 'Msg>

observe onNext

Full Usage: observe onNext

Parameters:
    onNext : 'T -> unit

Returns: IObserver<'T>
Modifiers: inline
Type parameters: 'T

Creates a System.IObserver from an onNext callback, hiding the OnError and OnCompleted boilerplate.

onNext : 'T -> unit
Returns: IObserver<'T>

toLoopCore program

Full Usage: toLoopCore program

Parameters:
Returns: LoopCore<'Model, 'Msg>

Projects a HeadlessProgram to a LoopCore.

program : HeadlessProgram<'Model, 'Msg>
Returns: LoopCore<'Model, 'Msg>

withDispatchMode mode program

Full Usage: withDispatchMode mode program

Parameters:
Returns: HeadlessProgram<'Model, 'Msg>

Sets the dispatch mode controlling when messages become eligible for processing.

mode : DispatchMode

Immediate processes in-frame; FrameBounded defers to the next step.

program : HeadlessProgram<'Model, 'Msg>
Returns: HeadlessProgram<'Model, 'Msg>

withFixedStep cfg program

Full Usage: withFixedStep cfg program

Parameters:
    cfg : FixedStepConfig<'Msg> - Fixed step configuration (step size, max steps per frame, max frame budget, message mapper).
    program : HeadlessProgram<'Model, 'Msg>

Returns: HeadlessProgram<'Model, 'Msg>

Enables a framework-managed fixed timestep that dispatches a message at a constant rate, independent of variable frame timing.

cfg : FixedStepConfig<'Msg>

Fixed step configuration (step size, max steps per frame, max frame budget, message mapper).

program : HeadlessProgram<'Model, 'Msg>
Returns: HeadlessProgram<'Model, 'Msg>
ArgumentException Thrown when StepSeconds ≤ 0 or MaxStepsPerFrame ≤ 0.

withObserver factory program

Full Usage: withObserver factory program

Parameters:
Returns: HeadlessProgram<'Model, 'Msg>
factory : unit -> IObserver<GameContext * 'Model * GameTime>
program : HeadlessProgram<'Model, 'Msg>
Returns: HeadlessProgram<'Model, 'Msg>

withSubscribe subscribe program

Full Usage: withSubscribe subscribe program

Parameters:
Returns: HeadlessProgram<'Model, 'Msg>

Adds a subscription function to the program.

subscribe : GameContext -> 'Model -> Sub<'Msg>
program : HeadlessProgram<'Model, 'Msg>
Returns: HeadlessProgram<'Model, 'Msg>

withTick map program

Full Usage: withTick map program

Parameters:
    map : GameTime -> 'Msg - Function that converts the current game time into a message dispatched each frame.
    program : HeadlessProgram<'Model, 'Msg>

Returns: HeadlessProgram<'Model, 'Msg>

Adds a per-frame tick message generated from the current GameTime.

map : GameTime -> 'Msg

Function that converts the current game time into a message dispatched each frame.

program : HeadlessProgram<'Model, 'Msg>
Returns: HeadlessProgram<'Model, 'Msg>

Type something to start searching.