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)
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)

View File

@ -1,4 +1,8 @@
#ifdef EMSCRIPTEN
#include "fenster-emscripten.h"
#else
#include "fenster.h"
#endif
#define W 320
#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)
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)

View File

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

View File

@ -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 =

View File

@ -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 => {