diff --git a/examples/drawing-c/Makefile b/examples/drawing-c/Makefile index 6e25281..7317211 100644 --- a/examples/drawing-c/Makefile +++ b/examples/drawing-c/Makefile @@ -1,15 +1,25 @@ -CFLAGS ?= -Wall -Wextra -std=c99 +CFLAGS ?= -I../.. -Wall -Wextra -std=c99 + +# debug +# CFLAGS += -g ifeq ($(OS),Windows_NT) LDFLAGS = -lgdi32 + TARGET_EXT = .exe else UNAME_S := $(shell uname -s) - ifeq ($(UNAME_S),Darwin) + ifneq (,$(findstring emcc,$(CC))) + LDFLAGS = -lm -sASYNCIFY=1 -sSTACK_SIZE=524288 + TARGET_EXT = .html + else ifeq ($(UNAME_S),Darwin) LDFLAGS = -framework Cocoa else - LDFLAGS = -lX11 + LDFLAGS = -lX11 -lasound -lm + TARGET_EXT = endif endif -main: main.c ../../fenster.h - $(CC) main.c -I../.. -o $@ $(CFLAGS) $(LDFLAGS) +TARGET = main$(TARGET_EXT) + +$(TARGET): main.c + $(CC) $? -o $(TARGET) $(CFLAGS) $(LDFLAGS) diff --git a/examples/drawing-c/main.c b/examples/drawing-c/main.c index 5e091e0..a8fed9b 100644 --- a/examples/drawing-c/main.c +++ b/examples/drawing-c/main.c @@ -1,4 +1,8 @@ +#ifdef EMSCRIPTEN +#include "fenster-emscripten.h" +#else #include "fenster.h" +#endif #define W 320 #define H 240 diff --git a/examples/input-c/Makefile b/examples/input-c/Makefile index 6e25281..7317211 100644 --- a/examples/input-c/Makefile +++ b/examples/input-c/Makefile @@ -1,15 +1,25 @@ -CFLAGS ?= -Wall -Wextra -std=c99 +CFLAGS ?= -I../.. -Wall -Wextra -std=c99 + +# debug +# CFLAGS += -g ifeq ($(OS),Windows_NT) LDFLAGS = -lgdi32 + TARGET_EXT = .exe else UNAME_S := $(shell uname -s) - ifeq ($(UNAME_S),Darwin) + ifneq (,$(findstring emcc,$(CC))) + LDFLAGS = -lm -sASYNCIFY=1 -sSTACK_SIZE=524288 + TARGET_EXT = .html + else ifeq ($(UNAME_S),Darwin) LDFLAGS = -framework Cocoa else - LDFLAGS = -lX11 + LDFLAGS = -lX11 -lasound -lm + TARGET_EXT = endif endif -main: main.c ../../fenster.h - $(CC) main.c -I../.. -o $@ $(CFLAGS) $(LDFLAGS) +TARGET = main$(TARGET_EXT) + +$(TARGET): main.c + $(CC) $? -o $(TARGET) $(CFLAGS) $(LDFLAGS) diff --git a/examples/input-c/main.c b/examples/input-c/main.c index 255ce51..f6839ee 100644 --- a/examples/input-c/main.c +++ b/examples/input-c/main.c @@ -1,4 +1,8 @@ +#ifdef EMSCRIPTEN +#include "fenster-emscripten.h" +#else #include "fenster.h" +#endif #define W 320 #define H 240 diff --git a/examples/minimal-c/Makefile b/examples/minimal-c/Makefile index 70678f2..7317211 100644 --- a/examples/minimal-c/Makefile +++ b/examples/minimal-c/Makefile @@ -12,7 +12,7 @@ else LDFLAGS = -lm -sASYNCIFY=1 -sSTACK_SIZE=524288 TARGET_EXT = .html else ifeq ($(UNAME_S),Darwin) - LDFLAGS = -framework Cocoa -framework AudioToolbox + LDFLAGS = -framework Cocoa else LDFLAGS = -lX11 -lasound -lm TARGET_EXT = diff --git a/fenster-emscripten.h b/fenster-emscripten.h index 78e2925..3d8f39c 100644 --- a/fenster-emscripten.h +++ b/fenster-emscripten.h @@ -12,10 +12,10 @@ struct fenster { // byte 32bit const int height; // 8 2 uint32_t *buf; // 12 3 int keys[256]; // 16 4 - int mod; // 1040 257 - int x; // 1044 258 - int y; // 1048 259 - int mouse; // 1052 260 + int mod; // 1040 260 + int x; // 1044 261 + int y; // 1048 262 + int mouse; // 1052 263 }; #define fenster_pixel(f, x, y) ((f)->buf[((y) * (f)->width) + (x)]) @@ -42,16 +42,16 @@ EM_JS(int, fenster_open, (struct fenster *f), { // TODO: handle mod Module.canvas.addEventListener('mousemove', e => { - Module.HEAP32[p32 + 258] = e.offsetX; - Module.HEAP32[p32 + 259] = e.offsetY; + Module.HEAP32[p32 + 261] = e.offsetX; + Module.HEAP32[p32 + 262] = e.offsetY; }); Module.canvas.addEventListener('mousedown', e => { - Module.HEAP32[p32 + 260] = e.which; + Module.HEAP32[p32 + 263] = e.which; }); Module.canvas.addEventListener('mouseup', e => { - Module.HEAP32[p32 + 260] = 0; + Module.HEAP32[p32 + 263] = 0; }); Module.canvas.addEventListener('keydown', e => {