2022-10-23 03:00:51 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <SDL2/SDL.h>
|
|
|
|
|
|
|
|
struct Screen;
|
|
|
|
|
2022-10-23 03:50:51 +02:00
|
|
|
typedef void (*ScreenDrawF)(struct Screen *screen);
|
|
|
|
typedef void (*ScreenKeyPressedF)(struct Screen *screen, int sdlscancode);
|
|
|
|
typedef void (*ScreenKeyReleasedF)(struct Screen *screen, int sdlscancode);
|
|
|
|
typedef void (*ScreenMousePressedF)(struct Screen *screen, int button);
|
|
|
|
typedef void (*ScreenMouseReleasedF)(struct Screen *screen, int button);
|
|
|
|
typedef void (*ScreenMouseMovedF)(struct Screen *screen, int dx, int dy);
|
2022-10-23 03:00:51 +02:00
|
|
|
|
|
|
|
struct Screen {
|
|
|
|
int Width;
|
|
|
|
int Height;
|
|
|
|
void *Context1;
|
|
|
|
void *Context2;
|
|
|
|
char *Title;
|
|
|
|
SDL_Texture *Texture;
|
|
|
|
|
|
|
|
ScreenDrawF Draw;
|
|
|
|
ScreenKeyPressedF KeyPressed;
|
|
|
|
ScreenKeyReleasedF KeyReleased;
|
|
|
|
ScreenMousePressedF MousePressed;
|
|
|
|
ScreenMouseReleasedF MouseReleased;
|
|
|
|
ScreenMouseMovedF MouseMoved;
|
|
|
|
};
|
|
|
|
|
|
|
|
void ScreenInit();
|
|
|
|
|
|
|
|
void ScreenDraw();
|
|
|
|
|
|
|
|
int ScreenProcessEvents();
|
|
|
|
|
2022-10-23 03:50:51 +02:00
|
|
|
struct SDL_Texture *ScreenGetTexture(struct Screen *screen);
|
2022-10-23 03:00:51 +02:00
|
|
|
|
|
|
|
struct Screen ScreenCreate(
|
|
|
|
int w, int h, char *title,
|
|
|
|
ScreenDrawF draw,
|
|
|
|
ScreenKeyPressedF keypressed,
|
|
|
|
ScreenKeyReleasedF keyreleased,
|
|
|
|
ScreenMousePressedF mousepressed,
|
|
|
|
ScreenMouseReleasedF mousereleased,
|
|
|
|
ScreenMouseMovedF mousemoved
|
|
|
|
);
|