Fixup makefile for docker builds
This commit is contained in:
parent
6897f09e59
commit
7d1f19bbf5
13
.gitignore
vendored
13
.gitignore
vendored
|
@ -4,10 +4,21 @@ bin/
|
||||||
build/
|
build/
|
||||||
*.o
|
*.o
|
||||||
*.a
|
*.a
|
||||||
|
*.d
|
||||||
tags
|
tags
|
||||||
Jenkinsfile
|
Jenkinsfile
|
||||||
*~
|
*~
|
||||||
*.log
|
*.log
|
||||||
*.gz
|
*.gz
|
||||||
*.tar
|
*.tar
|
||||||
|
.nova/
|
||||||
|
packer
|
||||||
|
primum
|
||||||
|
sokol-shdc
|
||||||
|
source/shaders/*.h
|
||||||
|
core.cdb
|
||||||
|
primum.exe
|
||||||
|
core.cdb.h
|
||||||
|
jsc
|
||||||
|
.DS_Store
|
||||||
|
primum.html
|
49
Makefile
49
Makefile
|
@ -1,7 +1,6 @@
|
||||||
MAKEFLAGS = --jobs=4
|
MAKEFLAGS = --jobs=4
|
||||||
UNAME != uname
|
UNAME != uname
|
||||||
MAKEDIR != pwd
|
MAKEDIR != pwd
|
||||||
|
|
||||||
# Options
|
# Options
|
||||||
# DBG --- build with debugging symbols and logging
|
# DBG --- build with debugging symbols and logging
|
||||||
|
|
||||||
|
@ -92,6 +91,8 @@ endif
|
||||||
|
|
||||||
CPPFLAGS += -DHAVE_CEIL -DCP_USE_CGTYPES=0 -DCP_USE_DOUBLES=0 -DHAVE_FLOOR -DHAVE_FMOD -DHAVE_LRINT -DHAVE_LRINTF $(includeflag) -MD $(WARNING_FLAGS) -I. -DVER=\"$(VER)\" -DCOM=\"$(COM)\" -DINFO=\"$(INFO)\" #-DENABLE_SINC_MEDIUM_CONVERTER -DENABLE_SINC_FAST_CONVERTER -DCP_COLLISION_TYPE_TYPE=uintptr_t -DCP_BITMASK_TYPE=uintptr_t
|
CPPFLAGS += -DHAVE_CEIL -DCP_USE_CGTYPES=0 -DCP_USE_DOUBLES=0 -DHAVE_FLOOR -DHAVE_FMOD -DHAVE_LRINT -DHAVE_LRINTF $(includeflag) -MD $(WARNING_FLAGS) -I. -DVER=\"$(VER)\" -DCOM=\"$(COM)\" -DINFO=\"$(INFO)\" #-DENABLE_SINC_MEDIUM_CONVERTER -DENABLE_SINC_FAST_CONVERTER -DCP_COLLISION_TYPE_TYPE=uintptr_t -DCP_BITMASK_TYPE=uintptr_t
|
||||||
|
|
||||||
|
CPPFLAGS += -D_FILE_OFFSET_BITS=64 # for tinycdb
|
||||||
|
|
||||||
# ENABLE_SINC_[BEST|FAST|MEDIUM]_CONVERTER
|
# ENABLE_SINC_[BEST|FAST|MEDIUM]_CONVERTER
|
||||||
# default, fast and medium available in game at runtime; best available in editor
|
# default, fast and medium available in game at runtime; best available in editor
|
||||||
|
|
||||||
|
@ -120,7 +121,7 @@ endif
|
||||||
ifeq ($(OS), Windows_NT)
|
ifeq ($(OS), Windows_NT)
|
||||||
LDFLAGS += -mwin32 -static
|
LDFLAGS += -mwin32 -static
|
||||||
CPPFLAGS += -mwin32
|
CPPFLAGS += -mwin32
|
||||||
LDLIBS += mingw32 kernel32 d3d11 user32 shell32 dxgi gdi32 ws2_32 ole32 winmm setupapi m
|
LDLIBS += mingw32 kernel32 d3d11 user32 shell32 dxgi gdi32 ws2_32 ole32 winmm setupapi m pthread
|
||||||
EXT = .exe
|
EXT = .exe
|
||||||
ARCH := x86_64
|
ARCH := x86_64
|
||||||
PKGCMD = cd $(BIN); zip -q -r $(MAKEDIR)/$(DISTDIR)/$(DIST) . -x \*.a ./obj/\*
|
PKGCMD = cd $(BIN); zip -q -r $(MAKEDIR)/$(DISTDIR)/$(DIST) . -x \*.a ./obj/\*
|
||||||
|
@ -158,8 +159,8 @@ endif
|
||||||
OBJDIR = $(BIN)/obj
|
OBJDIR = $(BIN)/obj
|
||||||
|
|
||||||
# All other sources
|
# All other sources
|
||||||
OBJS != find source/engine -type f -name '*.c' | grep -vE 'test|tool|example'
|
OBJS != find source/engine -type f -name '*.c' | grep -vE 'test|tool|example|fuzz|main'
|
||||||
CPPOBJS != find source/engine -type f -name '*.cpp' | grep -vE 'test|tool|example'
|
CPPOBJS != find source/engine -type f -name '*.cpp' | grep -vE 'test|tool|example|fuzz|main'
|
||||||
OBJS += $(CPPOBJS)
|
OBJS += $(CPPOBJS)
|
||||||
OBJS += $(shell find source/engine -type f -name '*.m')
|
OBJS += $(shell find source/engine -type f -name '*.m')
|
||||||
OBJS := $(patsubst %.cpp, %.o, $(OBJS))
|
OBJS := $(patsubst %.cpp, %.o, $(OBJS))
|
||||||
|
@ -220,19 +221,17 @@ $(DISTDIR)/$(DIST): $(BIN)/$(NAME)
|
||||||
@mkdir -p $(DISTDIR)
|
@mkdir -p $(DISTDIR)
|
||||||
@$(PKGCMD)
|
@$(PKGCMD)
|
||||||
|
|
||||||
$(BIN)/libengine.a: source/engine/core.cdb.h $(OBJS)
|
$(BIN)/libengine.a: $(OBJS)
|
||||||
@$(AR) rcs $@ $(OBJS)
|
@$(AR) rcs $@ $(OBJS)
|
||||||
|
|
||||||
$(BIN)/libcdb.a:
|
CDB_C != find $(CDB) -name *.c
|
||||||
mkdir -p $(BIN)
|
CDB_O := $(patsubst %.c, %.o, $(CDB_C))
|
||||||
|
$(CDB)/libcdb.a:
|
||||||
rm -f $(CDB)/libcdb.a
|
rm -f $(CDB)/libcdb.a
|
||||||
make -C $(CDB) CC=$(CC) AR=$(AR) libcdb.a
|
|
||||||
cp $(CDB)/libcdb.a $(BIN)
|
|
||||||
|
|
||||||
tools/libcdb.a:
|
|
||||||
make -C $(CDB) libcdb.a
|
make -C $(CDB) libcdb.a
|
||||||
mv $(CDB)/libcdb.a tools
|
|
||||||
|
|
||||||
|
tools/libcdb.a: $(CDB)/libcdb.a
|
||||||
|
cp $(CDB)/libcdb.a tools
|
||||||
|
|
||||||
DOCOS = Sound gameobject Game Window physics Profile Time Player Mouse IO Log ColorMap sprite SpriteAnim Render Geometry
|
DOCOS = Sound gameobject Game Window physics Profile Time Player Mouse IO Log ColorMap sprite SpriteAnim Render Geometry
|
||||||
DOCHTML := $(addsuffix .api.html, $(DOCOS))
|
DOCHTML := $(addsuffix .api.html, $(DOCOS))
|
||||||
|
@ -257,20 +256,20 @@ input.md: $(INPUTMD)
|
||||||
@echo Printing api for $*
|
@echo Printing api for $*
|
||||||
@./primum -d $* > $@
|
@./primum -d $* > $@
|
||||||
|
|
||||||
$(BIN)/libquickjs.a: $(QUICKJS_O)
|
$(BIN)/libquickjs.a:
|
||||||
make -C quickjs clean
|
make -C quickjs clean
|
||||||
make -C quickjs SYSRT=$(SYSRT) TTARGET=$(TTARGET) ARCH=$(ARCH) DBG=$(DBG) OPT=$(OPT) AR=$(AR) OS=$(OS) libquickjs.a HOST_CC=$(CC) LEAK=$(LEAK)
|
make -C quickjs SYSRT=$(SYSRT) TTARGET=$(TTARGET) ARCH=$(ARCH) DBG=$(DBG) OPT=$(OPT) AR=$(AR) OS=$(OS) libquickjs.a HOST_CC=$(CC) LEAK=$(LEAK)
|
||||||
@mkdir -p $(BIN)
|
@mkdir -p $(BIN)
|
||||||
cp -rf quickjs/libquickjs.* $(BIN)
|
cp -rf quickjs/libquickjs.* $(BIN)
|
||||||
|
|
||||||
$(OBJDIR)/%.o: %.c
|
$(OBJDIR)/%.o: %.c source/engine/core.cdb.h $(SHADERS)
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@echo Making C object $@
|
@echo Making C object $@
|
||||||
@$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
|
@$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
|
||||||
|
|
||||||
$(OBJDIR)/%.o: %.cpp
|
$(OBJDIR)/%.o: %.cpp
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@echo Making C++ object $@ with $(CXX)
|
@echo Making C++ object $@
|
||||||
@$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
|
@$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
|
||||||
|
|
||||||
$(OBJDIR)/%.o: %.m
|
$(OBJDIR)/%.o: %.m
|
||||||
|
@ -301,22 +300,20 @@ core.cdb: packer $(CORE)
|
||||||
chmod 644 out.cdb
|
chmod 644 out.cdb
|
||||||
mv out.cdb core.cdb
|
mv out.cdb core.cdb
|
||||||
|
|
||||||
CDB_C != find $(CDB) -name *.c
|
|
||||||
packer: tools/packer.c tools/libcdb.a
|
packer: tools/packer.c tools/libcdb.a
|
||||||
cc $^ -I$(CDB) -o packer
|
cc $^ -I$(CDB) -o packer
|
||||||
|
|
||||||
jsc: tools/jso.c tools/libquickjs.a
|
jsc: tools/jso.c tools/libquickjs.a
|
||||||
$(CC) $^ -lm -Iquickjs -o $@
|
$(CC) $^ -lm -Iquickjs -o $@
|
||||||
|
|
||||||
tools/libquickjs.a:
|
tools/libquickjs.a: $(BIN)/libquickjs.a
|
||||||
make -C quickjs clean
|
cp -f $(BIN)/libquickjs.a tools
|
||||||
make -C quickjs OPT=$(OPT) AR=$(AR) libquickjs.a
|
|
||||||
cp -f quickjs/libquickjs.a tools
|
|
||||||
|
|
||||||
WINCC = x86_64-w64-mingw32-gcc
|
WINCC = x86_64-w64-mingw32-gcc
|
||||||
#WINCC = i686-w64-mingw32-g++
|
#WINCC = i686-w64-mingw32-g++
|
||||||
.PHONY: crosswin
|
.PHONY: crosswin
|
||||||
crosswin:
|
crosswin:
|
||||||
|
make packer
|
||||||
make CC=$(WINCC) OS=Windows_NT
|
make CC=$(WINCC) OS=Windows_NT
|
||||||
|
|
||||||
crossmac:
|
crossmac:
|
||||||
|
@ -326,16 +323,24 @@ crossmac:
|
||||||
mv primum primum_x86_64
|
mv primum primum_x86_64
|
||||||
lipo primum_arm64 primum_x86_64 -create -output primum
|
lipo primum_arm64 primum_x86_64 -create -output primum
|
||||||
|
|
||||||
|
crossweb:
|
||||||
|
make packer
|
||||||
|
make CC=emcc
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@echo Cleaning project
|
@echo Cleaning project
|
||||||
@rm -rf bin dist
|
rm -rf bin dist
|
||||||
@rm -f shaders/*.sglsl.h shaders/*.metal core.cdb jso cdb packer TAGS
|
rm -f source/shaders/*.h core.cdb jso cdb packer TAGS source/engine/core.cdb.h tools/libcdb.a $(CDB)/libcdb.a
|
||||||
|
rm -f $(CDB)/*.o
|
||||||
@make -C quickjs clean
|
@make -C quickjs clean
|
||||||
|
|
||||||
docs: doc/prosperon.org
|
docs: doc/prosperon.org
|
||||||
make -C doc
|
make -C doc
|
||||||
mv doc/html .
|
mv doc/html .
|
||||||
|
|
||||||
|
test:
|
||||||
|
@echo No tests yet ...
|
||||||
|
|
||||||
TAGINC != find . -name "*.[chj]"
|
TAGINC != find . -name "*.[chj]"
|
||||||
tags: $(TAGINC)
|
tags: $(TAGINC)
|
||||||
@echo Making tags.
|
@echo Making tags.
|
||||||
|
|
|
@ -106,7 +106,7 @@ Run ~prosperon~. You will see "Hello world!" in the console, and it shuts down.
|
||||||
Using ~config.js~ and ~game.js~, you can write an entire game, without reaching any further. When you want to populate a world with independent actors, entities are what you will reach for.
|
Using ~config.js~ and ~game.js~, you can write an entire game, without reaching any further. When you want to populate a world with independent actors, entities are what you will reach for.
|
||||||
|
|
||||||
** Actors
|
** Actors
|
||||||
The fundamental tool for building in Prosperon is the actor system. Actors run independently from each other. Actors are defined by a combination of code and data. All actors have a *master*[fn::I am aware of the ongoing controversy surrounding the use of this term. That is precisely why I have used it: there are a plethora of similar relationships in video games, and by using a term most teams would rather not used, I have saved left the field of avaialable ones wide open] which controls certain properties of the actor.
|
The fundamental tool for building in Prosperon is the actor system. Actors run independently from each other. Actors are defined by a combination of code and data. All actors have a *master* which controls certain properties of the actor.
|
||||||
|
|
||||||
The most masterful actor is the *Empyrean*. The first actor you create will have the Empyrean as its master. Subsequent actors can use any other actor as its master.
|
The most masterful actor is the *Empyrean*. The first actor you create will have the Empyrean as its master. Subsequent actors can use any other actor as its master.
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ The most masterful actor is the *Empyrean*. The first actor you create will have
|
||||||
| delay(fn, seconds) | Calls 'fn' after 'seconds' with the context of the actor |
|
| delay(fn, seconds) | Calls 'fn' after 'seconds' with the context of the actor |
|
||||||
|
|
||||||
*** Actor Lifetime
|
*** Actor Lifetime
|
||||||
When an actor dies, all of the actors that have it as their master[fn::What a mouthful!] will die as well.
|
When an actor dies, all of the actors that have it as their master will die as well.
|
||||||
|
|
||||||
*** Turns
|
*** Turns
|
||||||
Actors get fragments of time called a *turn*. Actors which belong to different systems can have different lengths of turns.
|
Actors get fragments of time called a *turn*. Actors which belong to different systems can have different lengths of turns.
|
||||||
|
|
|
@ -527,6 +527,8 @@ component.edge2d = Object.copy(collider2d, {
|
||||||
|
|
||||||
sample() {
|
sample() {
|
||||||
var spoints = this.spoints();
|
var spoints = this.spoints();
|
||||||
|
if (spoints.length === 0) return [];
|
||||||
|
|
||||||
if (this.type === -1) {
|
if (this.type === -1) {
|
||||||
if (this.looped) spoints.push(spoints[0]);
|
if (this.looped) spoints.push(spoints[0]);
|
||||||
return spoints;
|
return spoints;
|
||||||
|
|
|
@ -383,13 +383,15 @@ var Window = {
|
||||||
dimensions() { return cmd(265); },
|
dimensions() { return cmd(265); },
|
||||||
get width() { return this.dimensions().x; },
|
get width() { return this.dimensions().x; },
|
||||||
get height() { return this.dimensions().y; },
|
get height() { return this.dimensions().y; },
|
||||||
|
set width(x) { cmd(266, x); },
|
||||||
|
set height(x) { cmd(267,x); },
|
||||||
mode: {
|
mode: {
|
||||||
stretch: 0,
|
stretch: 0, // stretch to fill window
|
||||||
keep: 1,
|
keep: 1, // keep exact dimensions
|
||||||
width: 2,
|
width: 2, // keep width
|
||||||
height: 3,
|
height: 3, // keep height
|
||||||
expand: 4,
|
expand: 4, // expand width or height
|
||||||
full: 5
|
full: 5 // expand out beyond window
|
||||||
},
|
},
|
||||||
aspect(x) { cmd(264, x); },
|
aspect(x) { cmd(264, x); },
|
||||||
title(str) { cmd(134, str); },
|
title(str) { cmd(134, str); },
|
||||||
|
|
|
@ -234,6 +234,7 @@ var gameobject = {
|
||||||
},
|
},
|
||||||
|
|
||||||
cry(file) {
|
cry(file) {
|
||||||
|
return;
|
||||||
this.crying = audio.sound.play(file, audio.sound.bus.sfx);
|
this.crying = audio.sound.play(file, audio.sound.bus.sfx);
|
||||||
var killfn = () => {this.crying = undefined; console.warn("killed"); }
|
var killfn = () => {this.crying = undefined; console.warn("killed"); }
|
||||||
this.crying.hook = killfn;
|
this.crying.hook = killfn;
|
||||||
|
@ -301,7 +302,8 @@ var gameobject = {
|
||||||
|
|
||||||
Object.mixin(ent,gameobject_impl);
|
Object.mixin(ent,gameobject_impl);
|
||||||
ent.body = make_gameobject();
|
ent.body = make_gameobject();
|
||||||
|
ent.warp_layer = [true];
|
||||||
|
ent.phys = 2;
|
||||||
ent.components = {};
|
ent.components = {};
|
||||||
ent.objects = {};
|
ent.objects = {};
|
||||||
ent.timers = [];
|
ent.timers = [];
|
||||||
|
@ -673,7 +675,7 @@ gameobject.doc = {
|
||||||
elasticity: `When two objects collide, their elasticities are multiplied together. Their velocities are then multiplied by this value to find their resultant velocities.`,
|
elasticity: `When two objects collide, their elasticities are multiplied together. Their velocities are then multiplied by this value to find their resultant velocities.`,
|
||||||
friction: `When one object touches another, friction slows them down.`,
|
friction: `When one object touches another, friction slows them down.`,
|
||||||
mass: `The higher the mass of the object, the less forces will affect it.`,
|
mass: `The higher the mass of the object, the less forces will affect it.`,
|
||||||
phys: `Set to 0, 1, or 2, representing static, kinematic, and dynamic.`,
|
phys: `Set to 0, 1, or 2, representing dynamic, kinematic, and static.`,
|
||||||
worldpos: `Function returns the world position of the object.`,
|
worldpos: `Function returns the world position of the object.`,
|
||||||
set_worldpos: `Function to set the position of the object in world coordinates.`,
|
set_worldpos: `Function to set the position of the object in world coordinates.`,
|
||||||
worldangle: `Function to get the angle of the entity in the world.`,
|
worldangle: `Function to get the angle of the entity in the world.`,
|
||||||
|
@ -737,6 +739,7 @@ ur {
|
||||||
/* u is given as */
|
/* u is given as */
|
||||||
function apply_ur(u, e)
|
function apply_ur(u, e)
|
||||||
{
|
{
|
||||||
|
say(`applying ur ${u}`);
|
||||||
if (typeof u !== 'string') {
|
if (typeof u !== 'string') {
|
||||||
console.warn("Must give u as a string.");
|
console.warn("Must give u as a string.");
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -70,7 +70,10 @@ physics.warp.gravity = function() { return cmd(253); }
|
||||||
physics.warp.damp = function() { return cmd(254); }
|
physics.warp.damp = function() { return cmd(254); }
|
||||||
|
|
||||||
physics.gravity = physics.warp.gravity();
|
physics.gravity = physics.warp.gravity();
|
||||||
|
physics.gravity.mask = [true];
|
||||||
|
physics.gravity.strength = 500;
|
||||||
physics.damp = physics.warp.damp();
|
physics.damp = physics.warp.damp();
|
||||||
|
physics.damp.mask = [true];
|
||||||
|
|
||||||
return {
|
return {
|
||||||
physics
|
physics
|
||||||
|
|
|
@ -51,12 +51,15 @@ Spline.catmull_loop = function(cp)
|
||||||
|
|
||||||
Spline.catmull_caps = function(cp)
|
Spline.catmull_caps = function(cp)
|
||||||
{
|
{
|
||||||
|
if (cp.length < 2) return;
|
||||||
cp = cp.slice();
|
cp = cp.slice();
|
||||||
cp.unshift(cp[0].sub(cp[1]).add(cp[0]));
|
cp.unshift(cp[0].sub(cp[1]).add(cp[0]));
|
||||||
cp.push(cp.last().sub(cp.at(-2).add(cp.last())));
|
cp.push(cp.last().sub(cp.at(-2).add(cp.last())));
|
||||||
return cp;
|
return cp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Spline.catmull_caps.doc = "Given a set of control points cp, return the necessary caps added to the spline.";
|
||||||
|
|
||||||
Spline.catmull2bezier.doc = "Given a set of control points C for a camtull-rom type curve, return a set of cubic bezier points to give the same curve."
|
Spline.catmull2bezier.doc = "Given a set of control points C for a camtull-rom type curve, return a set of cubic bezier points to give the same curve."
|
||||||
|
|
||||||
Spline.type = {
|
Spline.type = {
|
||||||
|
|
|
@ -1458,10 +1458,17 @@ JSValue duk_cmd(JSContext *js, JSValueConst this, int argc, JSValueConst *argv)
|
||||||
break;
|
break;
|
||||||
case 264:
|
case 264:
|
||||||
aspect_mode = js2int(argv[1]);
|
aspect_mode = js2int(argv[1]);
|
||||||
|
window_resize(0,0);
|
||||||
break;
|
break;
|
||||||
case 265:
|
case 265:
|
||||||
ret = vec2js((HMM_Vec2){mainwin.width, mainwin.height});
|
ret = vec2js((HMM_Vec2){mainwin.width, mainwin.height});
|
||||||
break;
|
break;
|
||||||
|
case 266:
|
||||||
|
mainwin.width = js2number(argv[1]);
|
||||||
|
break;
|
||||||
|
case 267:
|
||||||
|
mainwin.height = js2number(argv[1]);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (str) JS_FreeCString(js, str);
|
if (str) JS_FreeCString(js, str);
|
||||||
|
|
|
@ -284,7 +284,7 @@ SCHED_API void scheduler_stop(struct scheduler*, int doWait);
|
||||||
/* windows requires Windows.h even if you use mingw */
|
/* windows requires Windows.h even if you use mingw */
|
||||||
#if defined(_WIN32) || (defined(__MINGW32__) || defined(__MINGW64__))
|
#if defined(_WIN32) || (defined(__MINGW32__) || defined(__MINGW64__))
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <Windows.h>
|
#include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* make sure atomic and pointer types have correct size */
|
/* make sure atomic and pointer types have correct size */
|
||||||
|
|
2
source/engine/thirdparty/tinycdb/Makefile
vendored
2
source/engine/thirdparty/tinycdb/Makefile
vendored
|
@ -18,7 +18,7 @@ NSSCDB_DIR = $(sysconfdir)
|
||||||
DESTDIR=
|
DESTDIR=
|
||||||
|
|
||||||
CC = cc
|
CC = cc
|
||||||
CFLAGS = -O
|
CFLAGS = -O2
|
||||||
CDEFS = -D_FILE_OFFSET_BITS=64
|
CDEFS = -D_FILE_OFFSET_BITS=64
|
||||||
LD = $(CC)
|
LD = $(CC)
|
||||||
LDFLAGS =
|
LDFLAGS =
|
||||||
|
|
|
@ -23,6 +23,8 @@ struct Texture *icon = NULL;
|
||||||
|
|
||||||
void window_resize(int width, int height)
|
void window_resize(int width, int height)
|
||||||
{
|
{
|
||||||
|
width = sapp_width();
|
||||||
|
height = sapp_height();
|
||||||
mainwin.dpi = sapp_dpi_scale();
|
mainwin.dpi = sapp_dpi_scale();
|
||||||
mainwin.width = sapp_width();
|
mainwin.width = sapp_width();
|
||||||
mainwin.height = sapp_height();
|
mainwin.height = sapp_height();
|
||||||
|
|
Loading…
Reference in a new issue