Skip to content

Commit

Permalink
Makes android and wasm build properly.
Browse files Browse the repository at this point in the history
ikskuh committed May 24, 2021
1 parent d248a35 commit dabb1c8
Showing 4 changed files with 29 additions and 29 deletions.
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -33,9 +33,12 @@ Very *work in progress*. Right now it's more a proof of concept than everything
- [ ] Pixel perfect drawing of
- [x] Lines
- [x] Rectangles
- [x] Images
- [ ] TTF font rendering via [`stb_ttf`](https://github.com/nothings/stb)
- [ ] Images
- [x] Basic "copy full texture to rectangle"
- [ ] Copy portion of texture ("atlas rendering")
- [x] TTF font rendering via [`stb_ttf`](https://github.com/nothings/stb)
- [ ] Image loading via [`stb_image`](https://github.com/nothings/stb)
- [ ] Stack based/nested scissoring

## Features

9 changes: 4 additions & 5 deletions build.zig
Original file line number Diff line number Diff line change
@@ -27,7 +27,6 @@ fn initApp(app: *std.build.LibExeObjStep) void {
"-fno-sanitize=undefined",
};

// app.linkLibC();
// app.addCSourceFile("src/rendering/stb_image.c", &cflags);
app.addCSourceFile("src/rendering/stb_truetype.c", &cflags);
app.addIncludeDir("vendor/stb");
@@ -86,9 +85,10 @@ pub fn build(b: *std.build.Builder) !void {
mode,
.{
.aarch64 = true,
.arm = true,
.x86_64 = true,
.x86 = false,
// 32 bit targets are currently broken
.arm = false, // see https://github.com/ziglang/zig/issues/8885
.x86 = false, // not issued yet
},
key_store,
);
@@ -131,13 +131,12 @@ pub fn build(b: *std.build.Builder) !void {
app.linkSystemLibrary("sdl2");
},
.wasm => {
// No libc on wasm!
app.setTarget(std.zig.CrossTarget{
.cpu_arch = .wasm32,
.os_tag = .freestanding,
});

app.override_dest_dir = .{ .Custom = "../www" };

app.single_threaded = true;
},
.android => unreachable,
40 changes: 19 additions & 21 deletions src/rendering/stb_truetype.c
Original file line number Diff line number Diff line change
@@ -2,27 +2,24 @@

#include <stddef.h>

// #define NULL ((void*)0)
// typedef unsigned long long size_t;
extern int zerog_ifloor(double v);
extern int zerog_iceil(double v);
extern double zerog_sqrt(double v);
extern double zerog_pow(double a, double b);
extern double zerog_fmod(double a, double b);
extern double zerog_cos(double v);
extern double zerog_acos(double v);
extern double zerog_fabs(double v);
extern size_t zerog_strlen(char const * str);

extern void * zerog_memcpy(void * dst, void const * src, size_t num);
extern void * zerog_memset(void * ptr, int value, size_t num);

extern void zerog_panic(char const * msg);
extern void * zerog_renderer2d_alloc(void * c_void, size_t size);
extern void zerog_renderer2d_free(void * user_data, void * ptr);

void * zerog_renderer2d_alloc(void * c_void, size_t size);
void zerog_renderer2d_free(void * user_data, void * ptr);


int zerog_ifloor(double v);
int zerog_iceil(double v);
double zerog_sqrt(double v);
double zerog_pow(double a, double b);
double zerog_fmod(double a, double b);
double zerog_cos(double v);
double zerog_acos(double v);
double zerog_fabs(double v);
size_t zerog_strlen(char const * str);

void * zerog_memcpy(void * dst, void const * src, size_t num);
void * zerog_memset(void * ptr, int value, size_t num);
// Configure stb_truetype to not depend on *any* libc functions or headers:

#define STBTT_ifloor(x) zerog_ifloor(x)
#define STBTT_iceil(x) zerog_iceil(x)
@@ -33,12 +30,13 @@ void * zerog_memset(void * ptr, int value, size_t num);
#define STBTT_acos(x) zerog_acos(x)
#define STBTT_fabs(x) zerog_fabs(x)
#define STBTT_strlen(x) zerog_strlen(x)
#define STBTT_memcpy zerog_memcpy
#define STBTT_memset zerog_memset
#define STBTT_memcpy(a,b,c) zerog_memcpy(a,b,c)
#define STBTT_memset(a,b,c) zerog_memset(a,b,c)

#define STBTT_malloc(_Size, _UserData) zerog_renderer2d_alloc(_UserData, _Size)
#define STBTT_free(_Ptr, _UserData) zerog_renderer2d_free(_UserData, _Ptr)
#define STBTT_assert(_Assertion) do { if((_Assertion) == 0) zerog_panic("Assertion " #_Assertion " failed!"); } while(0)
#define STB_TRUETYPE_IMPLEMENTATION


#define STB_TRUETYPE_IMPLEMENTATION
#include <stb_truetype.h>
2 changes: 1 addition & 1 deletion vendor/ZigAndroidTemplate

0 comments on commit dabb1c8

Please sign in to comment.