summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 12d4d2b)
raw | patch | inline | side by side (parent: 12d4d2b)
author | DeaDDooMER <deaddoomer@deadsoftware.ru> | |
Fri, 17 Apr 2020 04:35:12 +0000 (08:35 +0400) | ||
committer | DeaDDooMER <deaddoomer@deadsoftware.ru> | |
Fri, 17 Apr 2020 04:35:12 +0000 (08:35 +0400) |
src/config.c | patch | blob | history | |
src/gl/render.c | patch | blob | history | |
src/render.h | patch | blob | history |
diff --git a/src/config.c b/src/config.c
index e228309b2398b23f8a3f28d9d6dbad79157b7523..f80fd2619c1ac5662c26733e392b07a829cd5474 100644 (file)
--- a/src/config.c
+++ b/src/config.c
{"mon", &nomon, SW_OFF},
// {"gamma", &gammaa, DWORD},
{"warp", &_warp, BYTE},
- {"width", &SCRW, DWORD},
- {"height", &SCRH, DWORD},
+// {"width", &SCRW, DWORD},
+// {"height", &SCRH, DWORD},
// {"config", NULL, cfg_file, STRING},
{NULL, NULL, NONE} // end
};
// {"fullscreen", &fullscreen, SW_ON},
{"sky", &w_horiz, SW_ON},
// {"gamma", &gammaa, DWORD},
- {"screen_width", &SCRW, DWORD},
- {"screen_height", &SCRH, DWORD},
+// {"screen_width", &SCRW, DWORD},
+// {"screen_height", &SCRH, DWORD},
{"music_random", &music_random, SW_ON},
{"music_time", &music_time, DWORD},
{"music_fade", &music_fade, DWORD},
diff --git a/src/gl/render.c b/src/gl/render.c
index 22bbcd99fa87e6f298419a021677baf85b43b349..f0619ba5ccfa89b5862939bfdfe14b5fdfbc42dc 100644 (file)
--- a/src/gl/render.c
+++ b/src/gl/render.c
} image;
/* Render Specific */
-int SCRW = 320; // public
-int SCRH = 200; // public
+static int SCRW = 320;
+static int SCRH = 200;
+static int screen_width = 320;
+static int screen_height = 200;
+static float screen_scale = 1.0;
static rgb playpal[256];
static byte bright[256];
static GLuint lastTexture;
img->res = -1;
}
-static void R_gl_draw_quad (int x, int y, int w, int h) {
- glBegin(GL_QUADS);
+static void R_gl_quad_vetexes (int x, int y, int w, int h) {
glVertex2i(x + w, y);
glVertex2i(x, y);
glVertex2i(x, y + h);
glVertex2i(x + w, y + h);
+}
+
+static void R_gl_draw_quad (int x, int y, int w, int h) {
+ glBegin(GL_QUADS);
+ R_gl_quad_vetexes(x, y, w, h);
glEnd();
}
}
static void R_gl_setclip (int x, int y, int w, int h) {
- glScissor(x, SCRH - h - y, w, h);
+ glScissor(x * screen_scale, (SCRH - h - y) * screen_scale, w * screen_scale, h * screen_scale);
}
static void R_gl_setmatrix (void) {
- glScissor(0, 0, SCRW, SCRH);
- glViewport(0, 0, SCRW, SCRH);
+ SCRW = screen_width / screen_scale;
+ SCRH = screen_height / screen_scale;
+ glScissor(0, 0, screen_width, screen_height);
+ glViewport(0, 0, screen_width, screen_height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, SCRW, SCRH, 0, 0, 1);
glDisable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDisable(GL_TEXTURE_2D);
- glBegin(GL_POINTS);
+ glBegin(GL_QUADS);
for (i = 0; i < MAXDOT; i++) {
if (dot[i].t != 0) {
R_gl_set_color(dot[i].c);
- glVertex2i(dot[i].o.x, dot[i].o.y + 1);
+ R_gl_quad_vetexes(dot[i].o.x, dot[i].o.y, 1, 1);
}
}
glEnd();
static void R_draw_effects (void) {
enum {NONE, TFOG, IFOG, BUBL}; // copypasted from fx.c
int i, s;
+ glPointSize(screen_scale);
for (i = 0; i < MAXFX; ++i) {
switch (fx[i].t) {
case TFOG:
glDisable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDisable(GL_TEXTURE_2D);
- glBegin(GL_POINTS);
R_gl_set_color(0xC0 + fx[i].s);
- glVertex2i(fx[i].x >> 8, (fx[i].y >> 8) + 1);
- glEnd();
+ R_gl_draw_quad(fx[i].x >> 8, fx[i].y >> 8, 1, 1);
break;
}
}
ERR_failinit("Unable to set video mode\n");
}
}
- Y_get_videomode(&SCRW, &SCRH);
+ Y_get_videomode(&screen_width, &screen_height);
+ screen_scale = max(1, screen_width / 320);
root = R_cache_new();
assert(root);
R_alloc();
diff --git a/src/render.h b/src/render.h
index 73fa932dc9d323d076fb3c05906669449876b4fd..443b98f5e3c62758e826c711582e8658146f2ee6 100644 (file)
--- a/src/render.h
+++ b/src/render.h
#include "menu.h"
-extern int SCRW, SCRH; // from vga.c
-
const menu_t *R_menu (void);
void R_init (void);
void R_draw (void);