spaceshooter/game/lib/screen.h

59 lines
1.4 KiB
C
Raw Normal View History

2023-04-30 20:49:25 +00:00
/*
* File: screen.h
* Author: Alexander Zhirov
* Connection with me (telegram messenger): @alexanderzhirov
*
* Created on 27 мая 2020 г., 17:17
*/
#ifndef client_screen
#define client_screen
#include <allegro5/allegro5.h>
#include <stdbool.h>
typedef struct cl_screen
{
ALLEGRO_DISPLAY* display;
ALLEGRO_BITMAP* buffer;
int monitor_width;
int monitor_height;
int display_width;
int display_height;
int buffer_width;
int buffer_height;
int width; // main width (== buffer width)
int height; // main height (== buffer height)
float display_diagonal;
float buffer_diagonal;
bool own_diagonal; // use own diagonal (if own diagonal >)
float scale_factor;
float scale_factor_x;
float scale_factor_y;
int FPS;
bool fullscreen;
int pos_x; // display output buffer position x
int pos_y; // display output buffer position y
} CLIENT_SCREEN;
typedef struct cl_adapter
{
int width;
int height;
} CLIENT_ADAPTER;
CLIENT_SCREEN* cl_create_screen(CLIENT_SCREEN* screen, float scale_factor, bool fullscreen, bool resolution, int w, int h, int FPS, int num_adapter);
static CLIENT_ADAPTER cl_get_info_adapter(int num_adapter);
void cl_free_screen(CLIENT_SCREEN* screen);
void cl_destroy_screen(CLIENT_SCREEN* screen);
void cl_pre_draw();
void cl_post_draw();
CLIENT_SCREEN cl_get_screen(CLIENT_SCREEN* screen);
#endif