diff --git a/src/opengl.c b/src/opengl.c index 3287ae9..9a0bf70 100644 --- a/src/opengl.c +++ b/src/opengl.c @@ -1188,20 +1188,22 @@ int gl_init(void) { gl_screen.rw = SCREEN_W; gl_screen.rh = SCREEN_H; gl_screen.scale = 1.; - if((SCREEN_W < 640) && (SCREEN_W <= SCREEN_H)) { - gl_screen.scale = (double)gl_screen.w / 640.; + if((SCREEN_W < 600) && (SCREEN_W <= SCREEN_H)) { + gl_screen.scale = (double)gl_screen.w / 600.; /* Must keep the proportion the same for the screen. */ - gl_screen.w = (gl_screen.w * 640) / SCREEN_H; - gl_screen.rw = (gl_screen.rw * SCREEN_H) / 640; - gl_screen.h = 640; + gl_screen.w = (gl_screen.w * 600) / SCREEN_H; + gl_screen.rw = (gl_screen.rw * SCREEN_H) / 600; + gl_screen.h = 600; } - else if((SCREEN_W < 640) && (SCREEN_W >= SCREEN_H)) { - gl_screen.scale = (double)gl_screen.h / 640.; + else if((SCREEN_W < 600) && (SCREEN_W >= SCREEN_H)) { + gl_screen.scale = (double)gl_screen.h / 600.; /* Must keep the proportion the same for the screen. */ - gl_screen.w = (gl_screen.w * 640) / SCREEN_H; - gl_screen.rw = (gl_screen.rw * SCREEN_H) / 640; - gl_screen.h = 640; + gl_screen.w = (gl_screen.w * 600) / SCREEN_H; + gl_screen.rw = (gl_screen.rw * SCREEN_H) / 600; + gl_screen.h = 600; } + gl_screen.wscale = (double)gl_screen.w / (double)gl_screen.rw; + gl_screen.hscale = (double)gl_screen.h / (double)gl_screen.rh; /* Handle setting the default viewport. */ gl_defViewport(); @@ -1226,7 +1228,7 @@ void gl_defViewport(void) { 1.); /* Far. */ /* Take into account possible scaling. */ if(gl_screen.scale != 1.) - glScaled(gl_screen.scale, gl_screen.scale, 1.); + glScaled(gl_screen.wscale, gl_screen.hscale, 1.); } /** diff --git a/src/opengl.h b/src/opengl.h index 4a6ae6a..d38b2b4 100644 --- a/src/opengl.h +++ b/src/opengl.h @@ -41,6 +41,8 @@ typedef struct glInfo_ { int rw; /**< Real window width. */ int rh; /**< Real window height. */ double scale; /**< Scale factor. */ + double wscale; /**< Width scale factor. */ + double hscale; /**< Height scale factor. */ int depth; /**< Depth in bpp. */ int r; /**< Amount of red bits. */ int g; /**< Amount of green bits. */ @@ -60,8 +62,6 @@ extern glInfo gl_screen; /* Local structure set with gl_init etc. */ #define ACOLOUR(x,a) glColor4d((x).r, (x).g, (x).b, a) /**< Change colour and override alpha. */ /** - * @struct glTexture - * * @brief Abstraction for rendering spritesheets. * * The basic unit all the graphic rendering works with.