mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-21 19:45:10 +00:00
OSX_BUILD cleaned commit
This commit is contained in:
parent
8722b09bb4
commit
5dd43ad674
8 changed files with 89 additions and 32 deletions
42
Makefile
42
Makefile
|
@ -22,8 +22,9 @@ TARGET_N64 = 0
|
||||||
|
|
||||||
# Build and optimize for Raspberry Pi(s)
|
# Build and optimize for Raspberry Pi(s)
|
||||||
TARGET_RPI ?= 0
|
TARGET_RPI ?= 0
|
||||||
# Compiler to use (ido or gcc)
|
|
||||||
COMPILER ?= ido
|
# Makeflag to enable OSX fixes
|
||||||
|
OSX_BUILD ?= 0
|
||||||
|
|
||||||
# Disable better camera by default
|
# Disable better camera by default
|
||||||
BETTERCAMERA ?= 0
|
BETTERCAMERA ?= 0
|
||||||
|
@ -141,6 +142,10 @@ ifeq ($(TARGET_RPI),1) # Define RPi to change SDL2 title & GLES2 hints
|
||||||
VERSION_CFLAGS += -DUSE_GLES
|
VERSION_CFLAGS += -DUSE_GLES
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OSX_BUILD),1) # Modify GFX & SDL2 for OSX GL
|
||||||
|
VERSION_CFLAGS += -DOSX_BUILD
|
||||||
|
endif
|
||||||
|
|
||||||
VERSION_ASFLAGS := --defsym AVOID_UB=1
|
VERSION_ASFLAGS := --defsym AVOID_UB=1
|
||||||
COMPARE := 0
|
COMPARE := 0
|
||||||
|
|
||||||
|
@ -167,7 +172,7 @@ endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Make tools if out of date
|
# Make tools if out of date
|
||||||
DUMMY != make -s -C tools >&2 || echo FAIL
|
DUMMY != make -C tools >&2 || echo FAIL
|
||||||
ifeq ($(DUMMY),FAIL)
|
ifeq ($(DUMMY),FAIL)
|
||||||
$(error Failed to build tools)
|
$(error Failed to build tools)
|
||||||
endif
|
endif
|
||||||
|
@ -228,10 +233,6 @@ GODDARD_SRC_DIRS := src/goddard src/goddard/dynlists
|
||||||
MIPSISET := -mips2
|
MIPSISET := -mips2
|
||||||
MIPSBIT := -32
|
MIPSBIT := -32
|
||||||
|
|
||||||
ifeq ($(COMPILER),gcc)
|
|
||||||
MIPSISET := -mips3
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(VERSION),eu)
|
ifeq ($(VERSION),eu)
|
||||||
OPT_FLAGS := -O2
|
OPT_FLAGS := -O2
|
||||||
else
|
else
|
||||||
|
@ -250,9 +251,8 @@ ifeq ($(TARGET_WEB),1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Use a default opt flag for gcc, then override if RPi
|
# Use a default opt flag for gcc, then override if RPi
|
||||||
ifeq ($(COMPILER),gcc)
|
# OPT_FLAGS := -O2 # -O2 opt breaks sound on x86?
|
||||||
OPT_FLAGS := -O2 # Breaks sound on x86?
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(TARGET_RPI),1)
|
ifeq ($(TARGET_RPI),1)
|
||||||
machine = $(shell sh -c 'uname -m 2>/dev/null || echo unknown')
|
machine = $(shell sh -c 'uname -m 2>/dev/null || echo unknown')
|
||||||
|
@ -415,6 +415,10 @@ ENDIAN_BITWIDTH := $(BUILD_DIR)/endian-and-bitwidth
|
||||||
|
|
||||||
AS := as
|
AS := as
|
||||||
|
|
||||||
|
ifeq ($(OSX_BUILD),1)
|
||||||
|
AS := i686-w64-mingw32-as
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($(TARGET_WEB),1) # As in, not-web PC port
|
ifneq ($(TARGET_WEB),1) # As in, not-web PC port
|
||||||
CC := $(CROSS)gcc
|
CC := $(CROSS)gcc
|
||||||
CXX := $(CROSS)g++
|
CXX := $(CROSS)g++
|
||||||
|
@ -431,11 +435,19 @@ endif
|
||||||
ifeq ($(WINDOWS_BUILD),1) # fixes compilation in MXE on Linux and WSL
|
ifeq ($(WINDOWS_BUILD),1) # fixes compilation in MXE on Linux and WSL
|
||||||
CPP := cpp -P
|
CPP := cpp -P
|
||||||
OBJCOPY := objcopy
|
OBJCOPY := objcopy
|
||||||
|
OBJDUMP := $(CROSS)objdump
|
||||||
else
|
else
|
||||||
|
ifeq ($(OSX_BUILD),1)
|
||||||
|
CPP := cpp-9 -P
|
||||||
|
OBJDUMP := i686-w64-mingw32-objdump
|
||||||
|
OBJCOPY := i686-w64-mingw32-objcopy
|
||||||
|
else # Linux & other builds
|
||||||
CPP := $(CROSS)cpp -P
|
CPP := $(CROSS)cpp -P
|
||||||
OBJCOPY := $(CROSS)objcopy
|
OBJCOPY := $(CROSS)objcopy
|
||||||
|
OBJDUMP := $(CROSS)objdump
|
||||||
endif
|
endif
|
||||||
OBJDUMP := $(CROSS)objdump
|
endif
|
||||||
|
|
||||||
PYTHON := python3
|
PYTHON := python3
|
||||||
SDLCONFIG := $(CROSS)sdl2-config
|
SDLCONFIG := $(CROSS)sdl2-config
|
||||||
|
|
||||||
|
@ -498,9 +510,12 @@ else ifeq ($(TARGET_RPI),1)
|
||||||
# Linux / Other builds below
|
# Linux / Other builds below
|
||||||
LDFLAGS := $(OPT_FLAGS) -lm -lGLESv2 `$(SDLCONFIG) --libs` -no-pie
|
LDFLAGS := $(OPT_FLAGS) -lm -lGLESv2 `$(SDLCONFIG) --libs` -no-pie
|
||||||
else
|
else
|
||||||
|
ifeq ($(OSX_BUILD),1)
|
||||||
|
LDFLAGS := -lm -framework OpenGL `$(SDLCONFIG) --libs` -no-pie -lpthread `pkg-config --libs libusb-1.0 glfw3 glew`
|
||||||
|
else
|
||||||
LDFLAGS := $(BITS) -march=$(TARGET_ARCH) -lm -lGL `$(SDLCONFIG) --libs` -no-pie -lpthread
|
LDFLAGS := $(BITS) -march=$(TARGET_ARCH) -lm -lGL `$(SDLCONFIG) --libs` -no-pie -lpthread
|
||||||
endif
|
endif
|
||||||
|
endif # End of LDFLAGS
|
||||||
|
|
||||||
# Prevent a crash with -sopt
|
# Prevent a crash with -sopt
|
||||||
export LANG := C
|
export LANG := C
|
||||||
|
@ -711,7 +726,6 @@ $(BUILD_DIR)/assets/mario_anim_data.c: $(wildcard assets/anims/*.inc.c)
|
||||||
$(BUILD_DIR)/assets/demo_data.c: assets/demo_data.json $(wildcard assets/demos/*.bin)
|
$(BUILD_DIR)/assets/demo_data.c: assets/demo_data.json $(wildcard assets/demos/*.bin)
|
||||||
$(PYTHON) tools/demo_data_converter.py assets/demo_data.json $(VERSION_CFLAGS) > $@
|
$(PYTHON) tools/demo_data_converter.py assets/demo_data.json $(VERSION_CFLAGS) > $@
|
||||||
|
|
||||||
ifeq ($(COMPILER),ido)
|
|
||||||
# Source code
|
# Source code
|
||||||
$(BUILD_DIR)/levels/%/leveldata.o: OPT_FLAGS := -g
|
$(BUILD_DIR)/levels/%/leveldata.o: OPT_FLAGS := -g
|
||||||
$(BUILD_DIR)/actors/%.o: OPT_FLAGS := -g
|
$(BUILD_DIR)/actors/%.o: OPT_FLAGS := -g
|
||||||
|
@ -753,8 +767,6 @@ $(BUILD_DIR)/src/audio/%.acpp: src/audio/%.c
|
||||||
$(BUILD_DIR)/src/audio/%.copt: $(BUILD_DIR)/src/audio/%.acpp
|
$(BUILD_DIR)/src/audio/%.copt: $(BUILD_DIR)/src/audio/%.acpp
|
||||||
$(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/lib/copt -signed -I=$< -CMP=$@ -cp=i -scalaroptimize=1
|
$(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/lib/copt -signed -I=$< -CMP=$@ -cp=i -scalaroptimize=1
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
# Rebuild files with 'GLOBAL_ASM' if the NON_MATCHING flag changes.
|
# Rebuild files with 'GLOBAL_ASM' if the NON_MATCHING flag changes.
|
||||||
$(GLOBAL_ASM_O_FILES): $(GLOBAL_ASM_DEP).$(NON_MATCHING)
|
$(GLOBAL_ASM_O_FILES): $(GLOBAL_ASM_DEP).$(NON_MATCHING)
|
||||||
|
|
|
@ -3,8 +3,13 @@
|
||||||
|
|
||||||
#include "ultratypes.h"
|
#include "ultratypes.h"
|
||||||
|
|
||||||
|
#ifdef OSX_BUILD
|
||||||
|
#include <strings.h> // OSX doesn't like it not being included?
|
||||||
|
#else
|
||||||
|
|
||||||
// Old deprecated functions from strings.h, replaced by memcpy/memset.
|
// Old deprecated functions from strings.h, replaced by memcpy/memset.
|
||||||
extern void bcopy(const void *, void *, size_t);
|
extern void bcopy(const void *, void *, size_t);
|
||||||
extern void bzero(void *, size_t);
|
extern void bzero(void *, size_t);
|
||||||
|
|
||||||
|
#endif
|
||||||
#endif /* !_OS_LIBC_H_ */
|
#endif /* !_OS_LIBC_H_ */
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "libultra_internal.h"
|
#include "libultra_internal.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#ifndef OSX_BUILD
|
||||||
lldiv_t lldiv(long long num, long long denom) {
|
lldiv_t lldiv(long long num, long long denom) {
|
||||||
lldiv_t ret;
|
lldiv_t ret;
|
||||||
|
|
||||||
|
@ -13,6 +14,7 @@ lldiv_t lldiv(long long num, long long denom) {
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
#endif // OSX_BUILD cannot use this
|
||||||
|
|
||||||
ldiv_t ldiv(long num, long denom) {
|
ldiv_t ldiv(long num, long denom) {
|
||||||
ldiv_t ret;
|
ldiv_t ret;
|
||||||
|
|
|
@ -33,6 +33,7 @@ static const du pilo = {
|
||||||
static const fu zero = {0.0};
|
static const fu zero = {0.0};
|
||||||
extern const fu NAN;
|
extern const fu NAN;
|
||||||
|
|
||||||
|
#ifndef OSX_BUILD
|
||||||
float cosf(float x)
|
float cosf(float x)
|
||||||
{
|
{
|
||||||
double dx; // double x
|
double dx; // double x
|
||||||
|
@ -92,3 +93,5 @@ float cosf(float x)
|
||||||
|
|
||||||
return zero.f;
|
return zero.f;
|
||||||
}
|
}
|
||||||
|
#endif // OSX_BUILD cannot use this
|
||||||
|
|
||||||
|
|
|
@ -18,12 +18,19 @@
|
||||||
#include <SDL2/SDL.h>
|
#include <SDL2/SDL.h>
|
||||||
#define GL_GLEXT_PROTOTYPES 1
|
#define GL_GLEXT_PROTOTYPES 1
|
||||||
#include <SDL2/SDL_opengl.h>
|
#include <SDL2/SDL_opengl.h>
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#include <SDL2/SDL.h>
|
#include <SDL2/SDL.h>
|
||||||
#define GL_GLEXT_PROTOTYPES 1
|
#define GL_GLEXT_PROTOTYPES 1
|
||||||
|
|
||||||
|
#ifdef OSX_BUILD
|
||||||
|
#include <SDL2/SDL_opengl.h>
|
||||||
|
#else
|
||||||
#include <SDL2/SDL_opengles2.h>
|
#include <SDL2/SDL_opengles2.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "gfx_cc.h"
|
#include "gfx_cc.h"
|
||||||
#include "gfx_rendering_api.h"
|
#include "gfx_rendering_api.h"
|
||||||
|
|
||||||
|
@ -49,7 +56,7 @@ static bool gfx_opengl_z_is_from_0_to_1(void) {
|
||||||
static void gfx_opengl_vertex_array_set_attribs(struct ShaderProgram *prg) {
|
static void gfx_opengl_vertex_array_set_attribs(struct ShaderProgram *prg) {
|
||||||
size_t num_floats = prg->num_floats;
|
size_t num_floats = prg->num_floats;
|
||||||
size_t pos = 0;
|
size_t pos = 0;
|
||||||
|
|
||||||
for (int i = 0; i < prg->num_attribs; i++) {
|
for (int i = 0; i < prg->num_attribs; i++) {
|
||||||
glEnableVertexAttribArray(prg->attrib_locations[i]);
|
glEnableVertexAttribArray(prg->attrib_locations[i]);
|
||||||
glVertexAttribPointer(prg->attrib_locations[i], prg->attrib_sizes[i], GL_FLOAT, GL_FALSE, num_floats * sizeof(float), (void *)(pos * sizeof(float)));
|
glVertexAttribPointer(prg->attrib_locations[i], prg->attrib_sizes[i], GL_FLOAT, GL_FALSE, num_floats * sizeof(float), (void *)(pos * sizeof(float)));
|
||||||
|
@ -179,15 +186,19 @@ static struct ShaderProgram *gfx_opengl_create_and_load_new_shader(uint32_t shad
|
||||||
bool do_multiply[2] = {c[0][1] == 0 && c[0][3] == 0, c[1][1] == 0 && c[1][3] == 0};
|
bool do_multiply[2] = {c[0][1] == 0 && c[0][3] == 0, c[1][1] == 0 && c[1][3] == 0};
|
||||||
bool do_mix[2] = {c[0][1] == c[0][3], c[1][1] == c[1][3]};
|
bool do_mix[2] = {c[0][1] == c[0][3], c[1][1] == c[1][3]};
|
||||||
bool color_alpha_same = (shader_id & 0xfff) == ((shader_id >> 12) & 0xfff);
|
bool color_alpha_same = (shader_id & 0xfff) == ((shader_id >> 12) & 0xfff);
|
||||||
|
|
||||||
char vs_buf[1024];
|
char vs_buf[1024];
|
||||||
char fs_buf[1024];
|
char fs_buf[1024];
|
||||||
size_t vs_len = 0;
|
size_t vs_len = 0;
|
||||||
size_t fs_len = 0;
|
size_t fs_len = 0;
|
||||||
size_t num_floats = 4;
|
size_t num_floats = 4;
|
||||||
|
|
||||||
// Vertex shader
|
// Vertex shader
|
||||||
|
#ifdef OSX_BUILD
|
||||||
|
append_line(vs_buf, &vs_len, "");
|
||||||
|
#else
|
||||||
append_line(vs_buf, &vs_len, "#version 100");
|
append_line(vs_buf, &vs_len, "#version 100");
|
||||||
|
#endif
|
||||||
append_line(vs_buf, &vs_len, "attribute vec4 aVtxPos;");
|
append_line(vs_buf, &vs_len, "attribute vec4 aVtxPos;");
|
||||||
if (used_textures[0] || used_textures[1]) {
|
if (used_textures[0] || used_textures[1]) {
|
||||||
append_line(vs_buf, &vs_len, "attribute vec2 aTexCoord;");
|
append_line(vs_buf, &vs_len, "attribute vec2 aTexCoord;");
|
||||||
|
@ -216,10 +227,15 @@ static struct ShaderProgram *gfx_opengl_create_and_load_new_shader(uint32_t shad
|
||||||
}
|
}
|
||||||
append_line(vs_buf, &vs_len, "gl_Position = aVtxPos;");
|
append_line(vs_buf, &vs_len, "gl_Position = aVtxPos;");
|
||||||
append_line(vs_buf, &vs_len, "}");
|
append_line(vs_buf, &vs_len, "}");
|
||||||
|
|
||||||
// Fragment shader
|
// Fragment shader
|
||||||
|
#ifdef OSX_BUILD
|
||||||
|
append_line(fs_buf, &fs_len, "");
|
||||||
|
#else
|
||||||
append_line(fs_buf, &fs_len, "#version 100");
|
append_line(fs_buf, &fs_len, "#version 100");
|
||||||
append_line(fs_buf, &fs_len, "precision mediump float;");
|
append_line(fs_buf, &fs_len, "precision mediump float;");
|
||||||
|
#endif
|
||||||
|
|
||||||
if (used_textures[0] || used_textures[1]) {
|
if (used_textures[0] || used_textures[1]) {
|
||||||
append_line(fs_buf, &fs_len, "varying vec2 vTexCoord;");
|
append_line(fs_buf, &fs_len, "varying vec2 vTexCoord;");
|
||||||
}
|
}
|
||||||
|
@ -464,7 +480,11 @@ static void gfx_opengl_init(void) {
|
||||||
#if FOR_WINDOWS
|
#if FOR_WINDOWS
|
||||||
glewInit();
|
glewInit();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef OSX_BUILD
|
||||||
|
glewInit();
|
||||||
|
#endif
|
||||||
|
|
||||||
glGenBuffers(1, &opengl_vbo);
|
glGenBuffers(1, &opengl_vbo);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, opengl_vbo);
|
glBindBuffer(GL_ARRAY_BUFFER, opengl_vbo);
|
||||||
|
|
|
@ -13,9 +13,15 @@
|
||||||
#else
|
#else
|
||||||
#include <SDL2/SDL.h>
|
#include <SDL2/SDL.h>
|
||||||
#define GL_GLEXT_PROTOTYPES 1
|
#define GL_GLEXT_PROTOTYPES 1
|
||||||
|
|
||||||
|
#ifdef OSX_BUILD
|
||||||
|
#include <SDL2/SDL_opengl.h>
|
||||||
|
#else
|
||||||
#include <SDL2/SDL_opengles2.h>
|
#include <SDL2/SDL_opengles2.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif // End of OS-Specific GL defines
|
||||||
|
|
||||||
#include "gfx_window_manager_api.h"
|
#include "gfx_window_manager_api.h"
|
||||||
#include "gfx_screen_config.h"
|
#include "gfx_screen_config.h"
|
||||||
#include "../configfile.h"
|
#include "../configfile.h"
|
||||||
|
@ -30,7 +36,7 @@ static bool cur_fullscreen;
|
||||||
static uint32_t cur_width, cur_height;
|
static uint32_t cur_width, cur_height;
|
||||||
|
|
||||||
const SDL_Scancode windows_scancode_table[] =
|
const SDL_Scancode windows_scancode_table[] =
|
||||||
{
|
{
|
||||||
/* 0 1 2 3 4 5 6 7 */
|
/* 0 1 2 3 4 5 6 7 */
|
||||||
/* 8 9 A B C D E F */
|
/* 8 9 A B C D E F */
|
||||||
SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_ESCAPE, SDL_SCANCODE_1, SDL_SCANCODE_2, SDL_SCANCODE_3, SDL_SCANCODE_4, SDL_SCANCODE_5, SDL_SCANCODE_6, /* 0 */
|
SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_ESCAPE, SDL_SCANCODE_1, SDL_SCANCODE_2, SDL_SCANCODE_3, SDL_SCANCODE_4, SDL_SCANCODE_5, SDL_SCANCODE_6, /* 0 */
|
||||||
|
@ -53,7 +59,7 @@ const SDL_Scancode windows_scancode_table[] =
|
||||||
|
|
||||||
SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_F13, SDL_SCANCODE_F14, SDL_SCANCODE_F15, SDL_SCANCODE_F16, /* 6 */
|
SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_F13, SDL_SCANCODE_F14, SDL_SCANCODE_F15, SDL_SCANCODE_F16, /* 6 */
|
||||||
SDL_SCANCODE_F17, SDL_SCANCODE_F18, SDL_SCANCODE_F19, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, /* 6 */
|
SDL_SCANCODE_F17, SDL_SCANCODE_F18, SDL_SCANCODE_F19, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, /* 6 */
|
||||||
|
|
||||||
SDL_SCANCODE_INTERNATIONAL2, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_INTERNATIONAL1, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, /* 7 */
|
SDL_SCANCODE_INTERNATIONAL2, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_INTERNATIONAL1, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN, /* 7 */
|
||||||
SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_INTERNATIONAL4, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_INTERNATIONAL5, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_INTERNATIONAL3, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN /* 7 */
|
SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_INTERNATIONAL4, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_INTERNATIONAL5, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_INTERNATIONAL3, SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_UNKNOWN /* 7 */
|
||||||
};
|
};
|
||||||
|
@ -98,16 +104,16 @@ static void gfx_sdl_init(void) {
|
||||||
Uint32 window_flags = 0;
|
Uint32 window_flags = 0;
|
||||||
|
|
||||||
SDL_Init(SDL_INIT_VIDEO);
|
SDL_Init(SDL_INIT_VIDEO);
|
||||||
|
|
||||||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
|
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
|
||||||
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
||||||
|
|
||||||
#ifdef USE_GLES
|
#ifdef USE_GLES
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2); // These attributes allow for hardware acceleration on RPis.
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2); // These attributes allow for hardware acceleration on RPis.
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1);
|
//SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1);
|
||||||
//SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, 4);
|
//SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, 4);
|
||||||
|
|
||||||
|
@ -122,9 +128,9 @@ static void gfx_sdl_init(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_DisplayMode sdl_displaymode;
|
SDL_DisplayMode sdl_displaymode;
|
||||||
SDL_GetCurrentDisplayMode(0, &sdl_displaymode);
|
SDL_GetCurrentDisplayMode(0, &sdl_displaymode);
|
||||||
|
|
||||||
const char* window_title =
|
const char* window_title =
|
||||||
#ifndef USE_GLES
|
#ifndef USE_GLES
|
||||||
"Super Mario 64 PC port (OpenGL)";
|
"Super Mario 64 PC port (OpenGL)";
|
||||||
#else
|
#else
|
||||||
|
@ -140,10 +146,10 @@ static void gfx_sdl_init(void) {
|
||||||
DESIRED_SCREEN_WIDTH, DESIRED_SCREEN_HEIGHT, window_flags);
|
DESIRED_SCREEN_WIDTH, DESIRED_SCREEN_HEIGHT, window_flags);
|
||||||
SDL_ShowCursor(SDL_ENABLE);
|
SDL_ShowCursor(SDL_ENABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_GL_CreateContext(wnd);
|
SDL_GL_CreateContext(wnd);
|
||||||
SDL_GL_SetSwapInterval(1); // We have a double buffered GL context, it makes no sense to want tearing.
|
SDL_GL_SetSwapInterval(1); // We have a double buffered GL context, it makes no sense to want tearing.
|
||||||
|
|
||||||
for (size_t i = 0; i < sizeof(windows_scancode_table) / sizeof(SDL_Scancode); i++) {
|
for (size_t i = 0; i < sizeof(windows_scancode_table) / sizeof(SDL_Scancode); i++) {
|
||||||
inverted_scancode_table[windows_scancode_table[i]] = i;
|
inverted_scancode_table[windows_scancode_table[i]] = i;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
|
UNAME := $(shell uname)
|
||||||
|
ifeq ($(UNAME),Darwin)
|
||||||
|
OSX_BUILD := -DOSX_BUILD
|
||||||
|
endif
|
||||||
|
|
||||||
CC := gcc
|
CC := gcc
|
||||||
CFLAGS := -Llib -Iinclude -I . -Wall -Wextra -Wno-unused-parameter -pedantic -std=c99 -O3 -s
|
CFLAGS := -Llib -Iinclude -I . -Wall -Wextra -Wno-unused-parameter $(OSX_BUILD) -pedantic -std=c99 -O3 -s
|
||||||
PROGRAMS := n64graphics n64graphics_ci mio0 n64cksum textconv patch_libultra_math iplfontutil aifc_decode aiff_extract_codebook vadpcm_enc tabledesign extract_data_for_mio skyconv
|
PROGRAMS := n64graphics n64graphics_ci mio0 n64cksum textconv patch_libultra_math iplfontutil aifc_decode aiff_extract_codebook vadpcm_enc tabledesign extract_data_for_mio skyconv
|
||||||
|
|
||||||
n64graphics_SOURCES := n64graphics.c utils.c
|
n64graphics_SOURCES := n64graphics.c utils.c
|
||||||
|
@ -43,7 +48,7 @@ clean:
|
||||||
|
|
||||||
define COMPILE
|
define COMPILE
|
||||||
$(1): $($1_SOURCES)
|
$(1): $($1_SOURCES)
|
||||||
$(CC) $(CFLAGS) $$^ -lm -o $$@ $($1_CFLAGS)
|
$(CC) $(CFLAGS) $(OSX_BUILD) $$^ -lm -o $$@ $($1_CFLAGS)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(foreach p,$(PROGRAMS),$(eval $(call COMPILE,$(p))))
|
$(foreach p,$(PROGRAMS),$(eval $(call COMPILE,$(p))))
|
||||||
|
|
|
@ -23,7 +23,11 @@ SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "exoquant.h"
|
#include "exoquant.h"
|
||||||
|
|
||||||
|
#ifndef OSX_BUILD // OSX build cannot have malloc defined
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -705,4 +709,4 @@ exq_float exq_sort_by_dir(const exq_histogram *pHist)
|
||||||
pHist->color.g * exq_sort_dir.g +
|
pHist->color.g * exq_sort_dir.g +
|
||||||
pHist->color.b * exq_sort_dir.b +
|
pHist->color.b * exq_sort_dir.b +
|
||||||
pHist->color.a * exq_sort_dir.a;
|
pHist->color.a * exq_sort_dir.a;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue