summaryrefslogtreecommitdiff
path: root/src/kernel/window.h
blob: 0a838453b8da4db9e18cd8f3d7607d22a60adad7 (plain) (blame)
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
34
35
36
#ifndef WINDOW_H
#define WINDOW_H

#include <stdint.h>

#include <winact.h>

#include "task.h"

struct window;

struct pixel {
  uint8_t r;
  uint8_t g;
  uint8_t b;
  uint8_t pad;
} __attribute__ ((__packed__));

void init_win();

struct window *new_window(uint16_t width, uint16_t height, const struct pixel *pixel_buffer);
void del_window(struct window *w);

void resize_window(struct window *w, uint16_t width, uint16_t height, const struct pixel *pixel_buffer);
void reassign_pixel_buffer(struct window *w, const struct pixel *pixel_buffer);
void push_window_paint(const struct window *w);
struct window_action next_window_action(struct window *w);
void wait_window_action();

void on_action(struct window_action packet);

void delete_any_windows_from(struct task_state *tstate);

void show_shutdown();

#endif