input working

This commit is contained in:
David Konsumer
2025-02-16 04:33:53 -08:00
parent 560d2660e1
commit cd10bfac7f
6 changed files with 47 additions and 19 deletions

View File

@ -1,15 +1,25 @@
CFLAGS ?= -Wall -Wextra -std=c99 CFLAGS ?= -I../.. -Wall -Wextra -std=c99
# debug
# CFLAGS += -g
ifeq ($(OS),Windows_NT) ifeq ($(OS),Windows_NT)
LDFLAGS = -lgdi32 LDFLAGS = -lgdi32
TARGET_EXT = .exe
else else
UNAME_S := $(shell uname -s) 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 LDFLAGS = -framework Cocoa
else else
LDFLAGS = -lX11 LDFLAGS = -lX11 -lasound -lm
TARGET_EXT =
endif endif
endif endif
main: main.c ../../fenster.h TARGET = main$(TARGET_EXT)
$(CC) main.c -I../.. -o $@ $(CFLAGS) $(LDFLAGS)
$(TARGET): main.c
$(CC) $? -o $(TARGET) $(CFLAGS) $(LDFLAGS)

View File

@ -1,4 +1,8 @@
#ifdef EMSCRIPTEN
#include "fenster-emscripten.h"
#else
#include "fenster.h" #include "fenster.h"
#endif
#define W 320 #define W 320
#define H 240 #define H 240

View File

@ -1,15 +1,25 @@
CFLAGS ?= -Wall -Wextra -std=c99 CFLAGS ?= -I../.. -Wall -Wextra -std=c99
# debug
# CFLAGS += -g
ifeq ($(OS),Windows_NT) ifeq ($(OS),Windows_NT)
LDFLAGS = -lgdi32 LDFLAGS = -lgdi32
TARGET_EXT = .exe
else else
UNAME_S := $(shell uname -s) 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 LDFLAGS = -framework Cocoa
else else
LDFLAGS = -lX11 LDFLAGS = -lX11 -lasound -lm
TARGET_EXT =
endif endif
endif endif
main: main.c ../../fenster.h TARGET = main$(TARGET_EXT)
$(CC) main.c -I../.. -o $@ $(CFLAGS) $(LDFLAGS)
$(TARGET): main.c
$(CC) $? -o $(TARGET) $(CFLAGS) $(LDFLAGS)

View File

@ -1,4 +1,8 @@
#ifdef EMSCRIPTEN
#include "fenster-emscripten.h"
#else
#include "fenster.h" #include "fenster.h"
#endif
#define W 320 #define W 320
#define H 240 #define H 240

View File

@ -12,7 +12,7 @@ else
LDFLAGS = -lm -sASYNCIFY=1 -sSTACK_SIZE=524288 LDFLAGS = -lm -sASYNCIFY=1 -sSTACK_SIZE=524288
TARGET_EXT = .html TARGET_EXT = .html
else ifeq ($(UNAME_S),Darwin) else ifeq ($(UNAME_S),Darwin)
LDFLAGS = -framework Cocoa -framework AudioToolbox LDFLAGS = -framework Cocoa
else else
LDFLAGS = -lX11 -lasound -lm LDFLAGS = -lX11 -lasound -lm
TARGET_EXT = TARGET_EXT =

View File

@ -12,10 +12,10 @@ struct fenster { // byte 32bit
const int height; // 8 2 const int height; // 8 2
uint32_t *buf; // 12 3 uint32_t *buf; // 12 3
int keys[256]; // 16 4 int keys[256]; // 16 4
int mod; // 1040 257 int mod; // 1040 260
int x; // 1044 258 int x; // 1044 261
int y; // 1048 259 int y; // 1048 262
int mouse; // 1052 260 int mouse; // 1052 263
}; };
#define fenster_pixel(f, x, y) ((f)->buf[((y) * (f)->width) + (x)]) #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 // TODO: handle mod
Module.canvas.addEventListener('mousemove', e => { Module.canvas.addEventListener('mousemove', e => {
Module.HEAP32[p32 + 258] = e.offsetX; Module.HEAP32[p32 + 261] = e.offsetX;
Module.HEAP32[p32 + 259] = e.offsetY; Module.HEAP32[p32 + 262] = e.offsetY;
}); });
Module.canvas.addEventListener('mousedown', e => { Module.canvas.addEventListener('mousedown', e => {
Module.HEAP32[p32 + 260] = e.which; Module.HEAP32[p32 + 263] = e.which;
}); });
Module.canvas.addEventListener('mouseup', e => { Module.canvas.addEventListener('mouseup', e => {
Module.HEAP32[p32 + 260] = 0; Module.HEAP32[p32 + 263] = 0;
}); });
Module.canvas.addEventListener('keydown', e => { Module.canvas.addEventListener('keydown', e => {