aboutsummaryrefslogtreecommitdiff
path: root/src/apps/example_app.jai
blob: 2298fb7acfe1d872e1dfbeafff29d99d3203dff6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#import "Basic";
#import "Math";

Example_Data :: struct {
    timer: float;
}

init_example_widget :: (widget: *Widget_State) {
    data := New(Example_Data);
    data.timer = 0;
    widget.data = data;

    widget.init = (app: *Widget_State) {};

    widget.update = (widget: *Widget_State, dt: float) {
        data := cast(*Example_Data) widget.data;
        data.timer += dt;
    };

    widget.handle_input = (widget: *Widget_State, occluded: bool) -> (occludes: bool) {return false;};

    widget.render = (widget: *Widget_State) {
        data := cast(*Example_Data) widget.data;

        // Pulse background color to red to show it's updating and distinct from menu
        r := 0.5 + 0.5 * sin(data.timer * 2.0);
        Simp.clear_render_target(r, 0.1, 0.1, 1.0);
    };

    widget.shutdown = (widget: *Widget_State) {
        free(widget.data);
    };
}