mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
patches: optimize doomgeneric patch
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
diff -ruN doomgeneric/doomgeneric/doomgeneric_astral.c Astral/sources/doomgeneric/doomgeneric/doomgeneric_astral.c
|
||||
--- doomgeneric/doomgeneric/doomgeneric_astral.c 1969-12-31 21:00:00.000000000 -0300
|
||||
+++ Astral/sources/doomgeneric/doomgeneric/doomgeneric_astral.c 2022-10-08 22:09:58.026611370 -0300
|
||||
@@ -0,0 +1,191 @@
|
||||
+++ Astral/sources/doomgeneric/doomgeneric/doomgeneric_astral.c 2022-10-14 18:57:20.269819323 -0300
|
||||
@@ -0,0 +1,194 @@
|
||||
+#include "doomkeys.h"
|
||||
+
|
||||
+#include "doomgeneric.h"
|
||||
@@ -84,19 +84,11 @@ diff -ruN doomgeneric/doomgeneric/doomgeneric_astral.c Astral/sources/doomgeneri
|
||||
+
|
||||
+ ioctlordie(fbfd, FBIOGET_VSCREENINFO, &fbvs);
|
||||
+ ioctlordie(fbfd, FBIOGET_FSCREENINFO, &fbfs);
|
||||
+
|
||||
+ // clear fb
|
||||
+
|
||||
+ frame = malloc(fbfs.smem_len);
|
||||
+ if(!frame){
|
||||
+ printf("doomgeneric: %s", strerror(ENOMEM));
|
||||
+ exit(ENOMEM);
|
||||
+ }
|
||||
+ memset(frame, 0, fbfs.smem_len);
|
||||
+ writeordie(fbfd, frame, fbfs.smem_len);
|
||||
+ struct termios tty;
|
||||
+
|
||||
+
|
||||
+ // make tty raw and nonblocking
|
||||
+
|
||||
+ struct termios tty;
|
||||
+
|
||||
+ tcgetattr(1, &tty);
|
||||
+ ttysave = tty;
|
||||
@@ -112,15 +104,14 @@ diff -ruN doomgeneric/doomgeneric/doomgeneric_astral.c Astral/sources/doomgeneri
|
||||
+
|
||||
+ // TODO handle bpp stuff
|
||||
+
|
||||
+ seekordie(fbfd, 0, SEEK_SET);
|
||||
+
|
||||
+ off_t moffset = fbfs.line_length * (fbvs.yres / 2 - DOOMGENERIC_RESY/2) + (fbvs.xres / 2 - DOOMGENERIC_RESX / 2) * (fbvs.bits_per_pixel / 8);
|
||||
+
|
||||
+ for(uintmax_t y = 0; y < DOOMGENERIC_RESY; ++y){
|
||||
+ uintptr_t foffset = 0;
|
||||
+ foffset = fbfs.line_length * y;
|
||||
+ memcpy(frame + foffset, DG_ScreenBuffer + DOOMGENERIC_RESX*y, DOOMGENERIC_RESX*4);
|
||||
+ seekordie(fbfd, moffset + fbfs.line_length * y, SEEK_SET);
|
||||
+ writeordie(fbfd, DG_ScreenBuffer + DOOMGENERIC_RESX*y, DOOMGENERIC_RESX*4);
|
||||
+ }
|
||||
+
|
||||
+ writeordie(fbfd, frame, fbfs.smem_len);
|
||||
+
|
||||
+}
|
||||
+
|
||||
@@ -191,11 +182,23 @@ diff -ruN doomgeneric/doomgeneric/doomgeneric_astral.c Astral/sources/doomgeneri
|
||||
+
|
||||
+void DG_SleepMs(uint32_t ms){}
|
||||
+static int aa = 0;
|
||||
+uint32_t DG_GetTicksMs(){return aa++;}
|
||||
+
|
||||
+// I need gettimeanddate() already
|
||||
+
|
||||
+uint32_t DG_GetTicksMs(){
|
||||
+ static int w = 0;
|
||||
+ if(w++ == 40000){
|
||||
+ w = 0;
|
||||
+ return aa++;
|
||||
+ }
|
||||
+ else {
|
||||
+ return aa;
|
||||
+ }
|
||||
+}
|
||||
+void DG_SetWindowTitle(const char* title){}
|
||||
diff -ruN doomgeneric/doomgeneric/Makefile Astral/sources/doomgeneric/doomgeneric/Makefile
|
||||
--- doomgeneric/doomgeneric/Makefile 2022-10-08 20:18:58.119998127 -0300
|
||||
+++ Astral/sources/doomgeneric/doomgeneric/Makefile 2022-10-08 20:23:06.036662797 -0300
|
||||
+++ Astral/sources/doomgeneric/doomgeneric/Makefile 2022-10-14 17:10:52.856538703 -0300
|
||||
@@ -12,17 +12,17 @@
|
||||
endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user