foo
authorJohn Tsiombikas <nuclear@member.fsf.org>
Mon, 2 Dec 2019 21:01:12 +0000 (23:01 +0200)
committerJohn Tsiombikas <nuclear@member.fsf.org>
Mon, 2 Dec 2019 21:01:12 +0000 (23:01 +0200)
14 files changed:
Makefile [deleted file]
libs/cgmath/cgmath.h
src/bump.c
src/demo.c
src/demo.h
src/dos/gfx.c
src/dos/main.c
src/fract.c
src/grise.c
src/plasma.c
src/sdl/main.c
src/thunder.c
src/treestor.c
src/tunnel.c

diff --git a/Makefile b/Makefile
deleted file mode 100644 (file)
index 8853b06..0000000
--- a/Makefile
+++ /dev/null
@@ -1,63 +0,0 @@
-obj = 3dgfx.obj bsptree.obj bump.obj cfgopt.obj demo.obj djdpmi.obj dynarr.obj &
-fract.obj gfx.obj gfxutil.obj greets.obj grise.obj hairball.obj infcubes.obj &
-keyb.obj logger.obj main.obj mesh.obj meshload.obj metaball.obj metasurf.obj &
-mouse.obj music.obj noise.obj plasma.obj polyclip.obj polyfill.obj polytest.obj &
-rbtree.obj sball.obj screen.obj smoketxt.obj thunder.obj tilemaze.obj timer.obj &
-tinyfps.obj treestor.obj ts_text.obj tunnel.obj util.obj vbe.obj vga.obj
-
-bin = demo.exe
-
-libs = imago.lib anim.lib
-
-def = -dM_PI=3.141592653589793
-opt = -5 -fp5 -otexan -oh -oi -ei
-dbg = -d1
-
-!ifdef __UNIX__
-incpath = -Isrc -Isrc/dos -Ilibs -Ilibs/imago/src -Ilibs/anim/src
-libpath = libpath libs/imago libpath libs/anim
-RM = rm -f
-!else
-incpath = -Isrc -Isrc\dos -Ilibs -Ilibs\imago\src -Ilibs\anim\src
-libpath = libpath libs\imago libpath libs\anim
-RM = del
-!endif
-
-AS = nasm
-CC = wcc386
-CXX = wpp386
-ASFLAGS = -fobj
-CFLAGS = $(dbg) $(opt) $(def) -zq -bt=dos $(incpath)
-CXXFLAGS = $(CFLAGS)
-LDFLAGS = option stack=16k option map $(libpath) library { $(libs) }
-LD = wlink
-
-$(bin): cflags.occ $(obj) libs/imago/imago.lib
-       %write objects.lnk $(obj)
-       %write ldflags.lnk $(LDFLAGS)
-       $(LD) debug all name $@ system dos4g file { @objects } @ldflags
-
-.c: src;src/dos
-.cc: src;src/dos
-.asm: src;src/dos
-
-cflags.occ: Makefile
-       %write $@ $(CFLAGS)
-
-cxxflags.occ: Makefile
-       %write $@ $(CXXFLAGS)
-
-.c.obj: .autodepend
-       $(CC) -fo=$@ @cflags.occ $[*
-
-.cc.obj: .autodepend
-       $(CXX) -fo=$@ @cxxflags.occ $[*
-
-.asm.obj:
-       $(AS) $(ASFLAGS) -o $@ $[*.asm
-
-clean: .symbolic
-       $(RM) *.obj
-       $(RM) *.occ
-       $(RM) *.lnk
-       $(RM) $(bin)
index e660437..8e6871d 100644 (file)
 #include <math.h>
 #include <string.h>
 
+#ifdef __WATCOMC__
+#define inline __inline
+#endif
+
 typedef struct {
        float x, y, z;
 } cgm_vec3;
index 0717aed..b82594b 100644 (file)
@@ -322,7 +322,7 @@ static void draw(void)
        animateParticles();
        renderParticles();
 
-       renderBump((unsigned short*)vmem_back);
+       renderBump((unsigned short*)fb_pixels);
 
        swap_buffers(0);
 }
index 168a544..a990d5f 100644 (file)
@@ -19,7 +19,7 @@
 int fb_width = FB_WIDTH;
 int fb_height = FB_HEIGHT;
 int fb_bpp = 16;
-uint16_t *fb_pixels, *vmem_back, *vmem_front;
+uint16_t *fb_pixels, *vmem;
 unsigned long time_msec;
 int mouse_x, mouse_y;
 unsigned int mouse_bmask;
@@ -102,7 +102,7 @@ void demo_draw(void)
        scr_update();
        scr_draw();
 
-       draw_mouse_pointer(vmem_front);
+       draw_mouse_pointer(vmem);
 
        ++nframes;
 }
index bf3eaa6..b55ad4d 100644 (file)
@@ -5,9 +5,7 @@
 
 extern int fb_width, fb_height, fb_bpp;
 extern uint16_t *fb_pixels;    /* system-RAM pixel buffer: use swap_buffers(fb_pixels) */
-/* video memory pointers. might both point to the front buffer if there is not
- * enough memory for page flipping. use swap_buffers(0) to flip. */
-extern uint16_t *vmem_back, *vmem_front;
+extern uint16_t *vmem;         /* visible video memory pointer */
 
 extern unsigned long time_msec;
 extern int mouse_x, mouse_y;
@@ -34,10 +32,7 @@ void demo_quit(void);
 unsigned long get_msec(void);
 void set_palette(int idx, int r, int g, int b);
 
-/* pass 0 to just swap vmem_back/vmem_front with page flipping
- * pass a pointer to a system-ram pixel buffer to copy it to vmem_front,
- * instead of flipping.
- */
+/* if pixels is 0, it defaults to fb_pixels */
 void swap_buffers(void *pixels);
 
 /* call each frame to get 3D viewing spherical coordinates */
index b55b4e6..b5670bf 100644 (file)
@@ -54,7 +54,7 @@ void *set_video_mode(int xsz, int ysz, int bpp)
        }
 
        mode = -1;
-
+       nmodes = vbe_num_modes(&vbe);
        for(i=0; i<nmodes; i++) {
                vbe_mode_info(vbe.modes[i], &minf);
                if(minf.xres != xsz || minf.yres != ysz) continue;
index 0f8abf5..6d83027 100644 (file)
@@ -51,15 +51,9 @@ int main(int argc, char **argv)
                return 1;
        }
 
-       if(!(vmem_back = set_video_mode(fb_width, fb_height, fb_bpp))) {
+       if(!(vmem = set_video_mode(fb_width, fb_height, fb_bpp))) {
                return 1;
        }
-       if(!(vmem_front = page_flip(FLIP_NOW))) {
-               fprintf(stderr, "page flipping not supported. falling back to double buffering\n");
-               vmem_front = vmem_back;
-       } else {
-               assert(vmem_back != vmem_front);
-       }
 
        if(demo_init(argc, argv) == -1) {
                set_text_mode();
@@ -119,32 +113,16 @@ void demo_quit(void)
 
 void swap_buffers(void *pixels)
 {
-       if(pixels) {
-               /* just memcpy to the front buffer */
-               if(opt.vsync) {
-                       wait_vsync();
-               }
-               drawFps(pixels);
-               memcpy(vmem_front, pixels, fbsize);
-
-       } else {
-               /* attempt page flipping */
-               void *next;
-
-               drawFps(vmem_back);
-               if((next = page_flip(opt.vsync ? FLIP_VBLANK : FLIP_NOW))) {
-                       assert(next == vmem_back);
-                       vmem_back = vmem_front;
-                       vmem_front = next;
-               } else {
-                       /* failed to page flip, assume we drew in the front buffer then
-                        * and just wait for vsync if necessary
-                        */
-                       if(opt.vsync) {
-                               wait_vsync();
-                       }
-               }
+       if(!pixels) {
+               pixels = fb_pixels;
+       }
+
+       /* just memcpy to the front buffer */
+       if(opt.vsync) {
+               wait_vsync();
        }
+       drawFps(pixels);
+       memcpy(vmem, pixels, fbsize);
 }
 
 
index e082620..6eeb678 100644 (file)
@@ -46,7 +46,7 @@ static void destroy(void)
 static void draw(void)
 {
        int i, j;
-       unsigned short *pixels = vmem_back;
+       unsigned short *pixels = fb_pixels;
 
        cx = mouse_x;
        cy = mouse_y;
@@ -58,9 +58,9 @@ static void draw(void)
                }
        }
 
-       pixels = vmem_back;
+       pixels = fb_pixels;
        pixels[mouse_y * fb_width + mouse_x] = 0xffe;
-       swap_buffers(vmem_back);
+       swap_buffers(0);
 }
 
 static long normalize_coord(long x, long range)
index 7179511..94e3850 100644 (file)
@@ -220,7 +220,7 @@ static void draw(void)
 
        /* Blit effect to framebuffer */
        src = backBuffer + PIXEL_PADDING;
-       dst = vmem_back;
+       dst = fb_pixels;
        for (scanline = 0; scanline < fb_height; scanline++) {
                memcpy(dst, src, fb_width * 2);
                src += BB_SIZE;
index c20ff63..5caf4f4 100644 (file)
@@ -90,7 +90,7 @@ static void draw(void)
        int t2 = sin(0.2f * dt) * 248 + 248;
        int t3 = sin(0.5f * dt) * 380 + 380;
 
-       unsigned int *vram32 = (unsigned int*)vmem_back;
+       unsigned int *vram32 = (unsigned int*)fb_pixels;
        unsigned int p0, p1;
        for (y = 0; y < fb_height; y++)
        {
index b9ed604..6a52021 100644 (file)
@@ -48,7 +48,7 @@ int main(int argc, char **argv)
                fprintf(stderr, "failed to allocate virtual framebuffer\n");
                return 1;
        }
-       vmem_front = vmem_back = fb_pixels;
+       vmem = fb_pixels;
 
        SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_NOPARACHUTE);
        if(!(fbsurf = SDL_SetVideoMode(xsz, ysz, fb_bpp, sdl_flags))) {
index d8c3211..cacb7b5 100644 (file)
@@ -186,7 +186,7 @@ void applyBlur() {
 }
 
 void blitEffect() {
-       unsigned int *dst1 = (unsigned int*) vmem_back;
+       unsigned int *dst1 = (unsigned int*) fb_pixels;
        unsigned int *dst2 = dst1 + 160; /* We're writing two pixels at once */
        unsigned char *src1 = blurBuffer + BLUR_BUFFER_WIDTH + 1;
        unsigned char *src2 = src1 + BLUR_BUFFER_WIDTH;
index 43c99ac..91adfec 100644 (file)
@@ -105,7 +105,7 @@ fail:
        { \
                static char scrap[128]; \
                char *str; \
-               int sz = snprintf(scrap, sizeof scrap, fmt, x); \
+               int sz = sprintf(scrap, fmt, x); \
                if(!(str = malloc(sz + 1))) return 0; \
                sprintf(str, fmt, x); \
                return str; \
index 56d0793..9071b74 100644 (file)
@@ -183,9 +183,9 @@ static void draw(void)
                int starty = i * num_lines;
                int resty = starty + draw_lines;
                int rest_lines = num_lines - draw_lines;
-               draw_tunnel_range(vmem_back, xoffs, yoffs, starty, draw_lines, time_msec);
+               draw_tunnel_range(fb_pixels, xoffs, yoffs, starty, draw_lines, time_msec);
                if(rest_lines) {
-                       memset(vmem_back + resty * fb_width, 0, rest_lines * fb_width * 2);
+                       memset(fb_pixels + resty * fb_width, 0, rest_lines * fb_width * 2);
                }
        }