mirror of
https://gitlab.com/dosowisko.net/libsuperderpy.git
synced 2024-12-13 04:27:59 +01:00
initial full HD support
This commit is contained in:
parent
5f56fcc1e6
commit
f17b7bf100
2 changed files with 22 additions and 15 deletions
|
@ -28,28 +28,28 @@ void Map_Draw(struct Game *game) {
|
||||||
float x=0,y=0;
|
float x=0,y=0;
|
||||||
switch (game->map.selected) {
|
switch (game->map.selected) {
|
||||||
case 1:
|
case 1:
|
||||||
x=0.175;
|
x=0.2;
|
||||||
y=0.25;
|
y=0.25;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
x=0.5;
|
x=0.495;
|
||||||
y=0.375;
|
y=0.35;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
x=0.738;
|
x=0.72;
|
||||||
y=0.4;
|
y=0.4;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
x=0.7;
|
x=0.7;
|
||||||
y=0.7625;
|
y=0.77;
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
x=0.225;
|
x=0.248;
|
||||||
y=0.75;
|
y=0.75;
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
x=0.425;
|
x=0.425;
|
||||||
y=0.65;
|
y=0.675;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
al_draw_scaled_bitmap(game->map.arrow, 0, 0, al_get_bitmap_width(game->map.arrow), al_get_bitmap_height(game->map.arrow), game->viewportWidth*x, game->viewportHeight*y + ((sin(game->map.arrowpos)+0.5)/20.0)*game->viewportHeight, game->viewportWidth*0.1, game->viewportHeight*0.16, 0);
|
al_draw_scaled_bitmap(game->map.arrow, 0, 0, al_get_bitmap_width(game->map.arrow), al_get_bitmap_height(game->map.arrow), game->viewportWidth*x, game->viewportHeight*y + ((sin(game->map.arrowpos)+0.5)/20.0)*game->viewportHeight, game->viewportWidth*0.1, game->viewportHeight*0.16, 0);
|
||||||
|
|
23
src/main.c
23
src/main.c
|
@ -71,6 +71,7 @@
|
||||||
|
|
||||||
double old_time = 0, fps;
|
double old_time = 0, fps;
|
||||||
int frames_done = 0;
|
int frames_done = 0;
|
||||||
|
bool memoryscale;
|
||||||
|
|
||||||
char* GetDataFilePath(char* filename) {
|
char* GetDataFilePath(char* filename) {
|
||||||
|
|
||||||
|
@ -351,12 +352,16 @@ ALLEGRO_BITMAP* LoadScaledBitmap(char* filename, int width, int height) {
|
||||||
al_clear_to_color(al_map_rgba(0,0,0,0));
|
al_clear_to_color(al_map_rgba(0,0,0,0));
|
||||||
char* origfn = GetDataFilePath(filename);
|
char* origfn = GetDataFilePath(filename);
|
||||||
void GenerateBitmap() {
|
void GenerateBitmap() {
|
||||||
al_set_new_bitmap_flags(ALLEGRO_MEMORY_BITMAP);
|
if (memoryscale) al_set_new_bitmap_flags(ALLEGRO_MEMORY_BITMAP);
|
||||||
|
|
||||||
source = al_load_bitmap( origfn );
|
source = al_load_bitmap( origfn );
|
||||||
al_set_new_bitmap_flags(ALLEGRO_MIN_LINEAR | ALLEGRO_MAG_LINEAR);
|
if (memoryscale) {
|
||||||
|
al_set_new_bitmap_flags(ALLEGRO_MIN_LINEAR | ALLEGRO_MAG_LINEAR);
|
||||||
ScaleBitmap(source, width, height);
|
ScaleBitmap(source, width, height);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
al_draw_scaled_bitmap(source, 0, 0, al_get_bitmap_width(source), al_get_bitmap_height(source), 0, 0, width, height, 0);
|
||||||
|
}
|
||||||
/*al_save_bitmap(cachefn, target);
|
/*al_save_bitmap(cachefn, target);
|
||||||
PrintConsole(game, "Cache bitmap %s generated.", filename);*/
|
PrintConsole(game, "Cache bitmap %s generated.", filename);*/
|
||||||
al_destroy_bitmap(source);
|
al_destroy_bitmap(source);
|
||||||
|
@ -375,11 +380,12 @@ ALLEGRO_BITMAP* LoadScaledBitmap(char* filename, int width, int height) {
|
||||||
return target;*/
|
return target;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SetupViewport(struct Game *game) {
|
void SetupViewport(struct Game *game) {
|
||||||
game->viewportWidth = al_get_display_width(game->display);
|
game->viewportWidth = al_get_display_width(game->display);
|
||||||
game->viewportHeight = al_get_display_height(game->display);
|
game->viewportHeight = al_get_display_height(game->display);
|
||||||
if (atoi(GetConfigOptionDefault("SuperDerpy", "letterbox", "1"))) {
|
if (atoi(GetConfigOptionDefault("SuperDerpy", "letterbox", "1"))) {
|
||||||
float const aspectRatio = (float)800 / (float)500;
|
float const aspectRatio = (float)1920 / (float)1080; // full HD
|
||||||
int clipWidth = game->viewportWidth, clipHeight = game->viewportWidth / aspectRatio;
|
int clipWidth = game->viewportWidth, clipHeight = game->viewportWidth / aspectRatio;
|
||||||
int clipX = 0, clipY = (game->viewportHeight - clipHeight) / 2;
|
int clipX = 0, clipY = (game->viewportHeight - clipHeight) / 2;
|
||||||
if (clipY <= 0) {
|
if (clipY <= 0) {
|
||||||
|
@ -391,7 +397,7 @@ void SetupViewport(struct Game *game) {
|
||||||
al_set_clipping_rectangle(clipX, clipY, clipWidth, clipHeight);
|
al_set_clipping_rectangle(clipX, clipY, clipWidth, clipHeight);
|
||||||
|
|
||||||
/*float scaleX = (float)clipWidth / (float)800,
|
/*float scaleX = (float)clipWidth / (float)800,
|
||||||
scaleY = (float)clipHeight / (float)500;*/
|
scaleY = (float)clipHeight / (float)450;*/
|
||||||
ALLEGRO_TRANSFORM projection;
|
ALLEGRO_TRANSFORM projection;
|
||||||
al_build_transform(&projection, clipX, clipY, 1, 1, 0.0f);
|
al_build_transform(&projection, clipX, clipY, 1, 1, 0.0f);
|
||||||
al_use_transform(&projection);
|
al_use_transform(&projection);
|
||||||
|
@ -454,8 +460,9 @@ int main(int argc, char **argv){
|
||||||
game.debug = atoi(GetConfigOptionDefault("SuperDerpy", "debug", "0"));
|
game.debug = atoi(GetConfigOptionDefault("SuperDerpy", "debug", "0"));
|
||||||
game.width = atoi(GetConfigOptionDefault("SuperDerpy", "width", "800"));
|
game.width = atoi(GetConfigOptionDefault("SuperDerpy", "width", "800"));
|
||||||
if (game.width<320) game.width=320;
|
if (game.width<320) game.width=320;
|
||||||
game.height = atoi(GetConfigOptionDefault("SuperDerpy", "height", "500"));
|
game.height = atoi(GetConfigOptionDefault("SuperDerpy", "height", "450"));
|
||||||
if (game.height<200) game.height=200;
|
if (game.height<200) game.height=180;
|
||||||
|
memoryscale = !atoi(GetConfigOptionDefault("SuperDerpy", "GPU_scaling", "1"));
|
||||||
|
|
||||||
if(!al_init_image_addon()) {
|
if(!al_init_image_addon()) {
|
||||||
fprintf(stderr, "failed to initialize image addon!\n");
|
fprintf(stderr, "failed to initialize image addon!\n");
|
||||||
|
|
Loading…
Reference in a new issue