diff options
author | qwx <qwx@sciops.net> | 2022-08-22 22:04:44 +0000 |
---|---|---|
committer | qwx <qwx@sciops.net> | 2022-08-22 22:04:44 +0000 |
commit | 846debd082dcb0ac7b0297c6d68a0aa382f95de5 (patch) | |
tree | 87dd8c5d415876448fa7b756c78cea6c753a5340 /sys/src/games | |
parent | ec8d7cdf024949d73c5f887f23f060cd33c1df28 (diff) |
games/doom: raise max scale factor for 4k
side-bonus: fullscreen 1920x1200 working perfectly on t61p :)
Diffstat (limited to 'sys/src/games')
-rw-r--r-- | sys/src/games/doom/i_video.c | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/sys/src/games/doom/i_video.c b/sys/src/games/doom/i_video.c index 0d1cddea9..752686086 100644 --- a/sys/src/games/doom/i_video.c +++ b/sys/src/games/doom/i_video.c @@ -92,7 +92,7 @@ void I_FinishUpdate(void) Rectangle r; int y, scale; uchar *s, *e, *d, *m; - uchar buf[SCREENWIDTH*3*4]; + uchar buf[SCREENWIDTH*3*12]; if(resized){ resized = 0; @@ -109,8 +109,8 @@ void I_FinishUpdate(void) scale = Dx(screen->r)/SCREENWIDTH; if(scale <= 0) scale = 1; - else if(scale > 4) - scale = 4; + else if(scale > 12) + scale = 12; /* where to draw the scaled row */ r = rectsubpt(rectaddpt(Rect(0, 0, scale*SCREENWIDTH, scale), center), @@ -128,6 +128,38 @@ void I_FinishUpdate(void) for(; s < e; s++){ m = &cmap[*s * 3]; switch(scale){ + case 12: + *d++ = m[2]; + *d++ = m[1]; + *d++ = m[0]; + case 11: + *d++ = m[2]; + *d++ = m[1]; + *d++ = m[0]; + case 10: + *d++ = m[2]; + *d++ = m[1]; + *d++ = m[0]; + case 9: + *d++ = m[2]; + *d++ = m[1]; + *d++ = m[0]; + case 8: + *d++ = m[2]; + *d++ = m[1]; + *d++ = m[0]; + case 7: + *d++ = m[2]; + *d++ = m[1]; + *d++ = m[0]; + case 6: + *d++ = m[2]; + *d++ = m[1]; + *d++ = m[0]; + case 5: + *d++ = m[2]; + *d++ = m[1]; + *d++ = m[0]; case 4: *d++ = m[2]; *d++ = m[1]; |