spaceshooter/game/lib/screen.h

59 lines
1.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 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