Graphics and memory stuff for stb_image
This commit is contained in:
parent
bc03887148
commit
bcf84e0b80
6
build.sh
6
build.sh
|
@ -1,5 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
DEBUG_FLAGS="-g -DDEBUG -DLOG_COMPILE_DEBUG"
|
DEBUG_FLAGS="-g -DDEBUG -DLOG_COMPILE_DEBUG"
|
||||||
#DEBUG_FLAGS="-O3"
|
#DEBUG_FLAGS="-O3"
|
||||||
|
|
||||||
|
@ -26,6 +28,8 @@ if [ $OS = "Darwin" ] ; then
|
||||||
SYS_LIBS=''
|
SYS_LIBS=''
|
||||||
FLAGS="-mmacos-version-min=10.15.4 -maes"
|
FLAGS="-mmacos-version-min=10.15.4 -maes"
|
||||||
CFLAGS="-std=c11"
|
CFLAGS="-std=c11"
|
||||||
|
SDKDIR=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
|
||||||
|
LDFLAGS="-L$SDKDIR/usr/lib -F$SDKDIR/System/Library/Frameworks/"
|
||||||
|
|
||||||
elif [ $OS = "Linux" ] ; then
|
elif [ $OS = "Linux" ] ; then
|
||||||
echo "Error: Linux is not supported yet"
|
echo "Error: Linux is not supported yet"
|
||||||
|
@ -69,7 +73,7 @@ if [ $target = 'lib' ] ; then
|
||||||
$CC $DEBUG_FLAGS -c -o $BINDIR/milepost_objc.o $FLAGS $INCLUDES $SRCDIR/milepost.m
|
$CC $DEBUG_FLAGS -c -o $BINDIR/milepost_objc.o $FLAGS $INCLUDES $SRCDIR/milepost.m
|
||||||
|
|
||||||
# build dynamic library
|
# build dynamic library
|
||||||
ld -dylib -o $BINDIR/libmilepost.dylib $BINDIR/milepost_c.o $BINDIR/milepost_objc.o -lc -framework Carbon -framework Cocoa -framework Metal -framework QuartzCore -L$BINDIR -weak-lEGL -weak-lGLESv2
|
ld $LDFLAGS -dylib -o $BINDIR/libmilepost.dylib $BINDIR/milepost_c.o $BINDIR/milepost_objc.o -L$BINDIR -lc -framework Carbon -framework Cocoa -framework Metal -framework QuartzCore -weak-lEGL -weak-lGLESv2
|
||||||
|
|
||||||
# change dependent libs path to @rpath.
|
# change dependent libs path to @rpath.
|
||||||
install_name_tool -change "./libEGL.dylib" '@rpath/libEGL.dylib' $BINDIR/libmilepost.dylib
|
install_name_tool -change "./libEGL.dylib" '@rpath/libEGL.dylib' $BINDIR/libmilepost.dylib
|
||||||
|
|
|
@ -10,10 +10,14 @@
|
||||||
#include"platform/platform.h"
|
#include"platform/platform.h"
|
||||||
#include"platform/platform_math.h"
|
#include"platform/platform_math.h"
|
||||||
|
|
||||||
#if !PLATFORM_ORCA
|
|
||||||
#define STB_IMAGE_IMPLEMENTATION
|
#define STB_IMAGE_IMPLEMENTATION
|
||||||
|
#if PLATFORM_ORCA
|
||||||
|
#define STBI_NO_STDIO
|
||||||
|
#define STBI_NO_HDR
|
||||||
|
#endif
|
||||||
#include"stb_image.h"
|
#include"stb_image.h"
|
||||||
|
|
||||||
|
#if !PLATFORM_ORCA
|
||||||
#define STB_TRUETYPE_IMPLEMENTATION
|
#define STB_TRUETYPE_IMPLEMENTATION
|
||||||
#include"stb_truetype.h"
|
#include"stb_truetype.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -1596,8 +1600,6 @@ mg_image mg_image_create_from_rgba8(mg_surface surface, u32 width, u32 height, u
|
||||||
return(image);
|
return(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !PLATFORM_ORCA
|
|
||||||
|
|
||||||
mg_image mg_image_create_from_data(mg_surface surface, str8 data, bool flip)
|
mg_image mg_image_create_from_data(mg_surface surface, str8 data, bool flip)
|
||||||
{
|
{
|
||||||
mg_image image = mg_image_nil();
|
mg_image image = mg_image_nil();
|
||||||
|
@ -1614,6 +1616,8 @@ mg_image mg_image_create_from_data(mg_surface surface, str8 data, bool flip)
|
||||||
return(image);
|
return(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !PLATFORM_ORCA
|
||||||
|
|
||||||
mg_image mg_image_create_from_file(mg_surface surface, str8 path, bool flip)
|
mg_image mg_image_create_from_file(mg_surface surface, str8 path, bool flip)
|
||||||
{
|
{
|
||||||
mg_image image = mg_image_nil();
|
mg_image image = mg_image_nil();
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -7,6 +7,7 @@
|
||||||
*****************************************************************/
|
*****************************************************************/
|
||||||
|
|
||||||
#include"platform_memory.h"
|
#include"platform_memory.h"
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
void* ORCA_IMPORT(orca_mem_grow)(u64 size);
|
void* ORCA_IMPORT(orca_mem_grow)(u64 size);
|
||||||
|
|
||||||
|
@ -30,58 +31,24 @@ mem_base_allocator* mem_base_allocator_default()
|
||||||
return(&base);
|
return(&base);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// malloc, free, realloc, etc. are defined in orca_malloc.c
|
||||||
//TODO: implement malloc/realloc/free/memset/etc here...
|
|
||||||
|
|
||||||
|
|
||||||
void* memset(void* b, int c, size_t n)
|
void* memset(void* b, int c, size_t n)
|
||||||
{
|
{
|
||||||
for(size_t i = 0; i<n; i++)
|
return __builtin_memset(b, c, n);
|
||||||
{
|
|
||||||
((char*)b)[i] = (u8)c;
|
|
||||||
}
|
|
||||||
return(b);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void* memcpy(void *restrict dst, const void *restrict src, size_t n)
|
void* memcpy(void *restrict dst, const void *restrict src, size_t n)
|
||||||
{
|
{
|
||||||
for(size_t i = 0; i<n; i++)
|
return __builtin_memcpy(dst, src, n);
|
||||||
{
|
|
||||||
((char*)dst)[i] = ((char*)src)[i];
|
|
||||||
}
|
|
||||||
return(dst);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void* memmove(void *dst, const void *src, size_t n)
|
void* memmove(void *dst, const void *src, size_t n)
|
||||||
{
|
{
|
||||||
if(src < dst)
|
return __builtin_memmove(dst, src, n);
|
||||||
{
|
|
||||||
for(size_t i = n-1; i>=0; i--)
|
|
||||||
{
|
|
||||||
((char*)dst)[i] = ((char*)src)[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(src > dst)
|
|
||||||
{
|
|
||||||
for(size_t i = 0; i<n; i++)
|
|
||||||
{
|
|
||||||
((char*)dst)[i] = ((char*)src)[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return(dst);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int memcmp(const void *s1, const void *s2, size_t n)
|
int memcmp(const void *s1, const void *s2, size_t n)
|
||||||
{
|
{
|
||||||
const unsigned char* c1 = (const unsigned char*)s1;
|
return __builtin_memcmp(s1, s2, n);
|
||||||
const unsigned char* c2 = (const unsigned char*)s2;
|
|
||||||
|
|
||||||
for(size_t i = 0; i<n; i++)
|
|
||||||
{
|
|
||||||
if(c1[i] != c2[i])
|
|
||||||
{
|
|
||||||
return(c1 - c2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return(0);
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue