1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 04:22:20 +02:00

Initial macOS changes

Many changes are related to fixing warnings
This commit is contained in:
Brian Fiete 2019-10-14 14:08:29 -07:00
parent 75f11b1459
commit 22ec4a86b8
52 changed files with 2873 additions and 266 deletions

File diff suppressed because it is too large Load diff

View file

@ -8,6 +8,220 @@
#define BOOST_DETAIL_NO_CONTAINER_FWD
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <time.h>
#include <assert.h>
#include <sys/time.h>
//#include <libkern/OSAtomic.h>
#include <cstdlib>
#include <unistd.h>
#include <wchar.h>
#include <math.h>
#include <stdarg.h>
#include <string.h>
#include <pthread.h>
#include <wctype.h>
#include <stddef.h>
#include <mach/error.h>
//#define errno (*__error())
//#define offsetof(type, member) __builtin_offsetof (type, member)
extern "C"
{
//#define FFI_BUILDING
//#include "third_party/libffi/x86_64-apple-darwin12.5.0/include/ffi.h"
}
#define BF_ENDIAN_LITTLE
#define _NOEXCEPT noexcept
#define NTAPI
#define FFI_STDCALL FFI_DEFAULT_ABI
#define FFI_THISCALL FFI_DEFAULT_ABI
#define FFI_FASTCALL FFI_DEFAULT_ABI
#define INVALID_SOCKET -1
typedef uint64_t uint64;
typedef uint32_t uint32;
typedef uint16_t uint16;
typedef uint8_t uint8;
typedef int64_t int64;
typedef int32_t int32;
typedef int16_t int16;
typedef int8_t int8;
typedef unsigned int uint;
#define BF_PLATFORM_LINUX
#define BF_PLATFORM_NAME "BF_PLATFORM_LINUX"
//#define BF_PLATFORM_SDL
#define NOP
//#define BF_NOTHROW throw ()
//#define BF_NOTHROW noexcept
#define BF_NOTHROW
#ifdef BF64
typedef int64 intptr;
typedef uint64 uintptr;
#else
typedef int32 intptr;
typedef uint32 uintptr;
#endif
typedef wchar_t* BSTR;
typedef int HRESULT;
typedef uint8 BYTE;
typedef uint16 WORD;
typedef uint32 DWORD;
typedef int32 LONG;
typedef pthread_key_t BFTlsKey;
typedef pthread_t BF_THREADID;
typedef pthread_t BF_THREADHANDLE;
#define BF_TLS_DECLSPEC thread_local
//:int64 abs(int64 val);
#define _stricmp stricmp
#define strnicmp strncasecmp
struct IID
{
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[ 8 ];
};
typedef void* HANDLE;
typedef void* HMODULE;
// We only need the stdcall attribute for x32?
//#define BFSTDCALL __attribute__((stdcall))
//#include "../notwin/NotWin.h"
#ifdef DEBUG
#define _DEBUG
#endif
#define NOT_IMPL throw "Unimplemented";
//ARM
#if defined(__x86_64__) || defined(__i386__)
#define BF_FULL_MEMORY_FENCE() __asm__ __volatile__("mfence": : :"memory")
#define BF_SPINWAIT_NOP() __asm__ volatile ("pause\n" : : : "memory" );
#else
#define BF_FULL_MEMORY_FENCE() __sync_synchronize()
#define BF_SPINWAIT_NOP() ((void) 0)
#endif
#define BF_COMPILER_FENCE() __asm__ __volatile__("": : :"memory")
#define BF_THREAD_YIELD() sched_yield()
#if defined _DEBUG || defined BF_DEBUG_ASSERTS
#define BF_ASSERT(_Expression) (void)( (!!(_Expression)) || (Beefy::BFFatalError(#_Expression, __FILE__, __LINE__), 0) )
#else
#define BF_ASSERT(_Expression) (void)(0)
#endif
#define BF_ASSERT_REL(_Expression) (void)( (!!(_Expression)) || (Beefy::BFFatalError(#_Expression, __FILE__, __LINE__), 0) )
#define BF_FATAL(msg) (void) ((Beefy::BFFatalError(msg, __FILE__, __LINE__), 0) )
#if defined _DEBUG || defined BF_DEBUG_ASSERTS
#define BF_DBG_FATAL(msg) (void) ((Beefy::BFFatalError(msg, __FILE__, __LINE__), 0) )
#else
#define BF_DBG_FATAL(msg)
#endif
#define BF_NOINLINE __attribute__ ((noinline))
#define BF_NAKED
#define stricmp strcasecmp
#define _alloca alloca
#define DIR_SEP_CHAR '/'
#define DIR_SEP_CHAR_ALT '\\'
static char* itoa(int value, char* str, int base)
{
if (base == 16)
sprintf(str, "%X", value);
else
sprintf(str, "%d", value);
return str;
}
inline uint32 InterlockedCompareExchange(volatile uint32* dest, uint32 exch, uint32 comp)
{
return __sync_val_compare_and_swap(dest, comp, exch);
}
inline uint64 InterlockedCompareExchange64(volatile int64* dest, int64 exch, int64 comp)
{
return __sync_val_compare_and_swap(dest, comp, exch);
}
inline void* InterlockedCompareExchangePointer(void* volatile* dest, void* exch, void* comp)
{
return __sync_val_compare_and_swap(dest, comp, exch);
}
inline uint32 InterlockedExchange(volatile uint32* dest, uint32 val)
{
return __sync_lock_test_and_set(dest, val);
}
inline uint64 InterlockedExchange64(volatile int64* dest, int64 val)
{
return __sync_lock_test_and_set(dest, val);
}
inline uint32 InterlockedExchangeAdd(volatile uint32* dest, uint32 val)
{
return __sync_add_and_fetch(dest, val);
}
inline int32 InterlockedIncrement(volatile uint32* val)
{
return __sync_add_and_fetch(val, 1);
}
inline int64 InterlockedIncrement64(volatile int64* val)
{
return __sync_add_and_fetch(val, 1);
}
inline int32 InterlockedDecrement(volatile uint32* val)
{
return __sync_add_and_fetch(val, -1);
}
inline int64 InterlockedDecrement64(volatile int64* val)
{
return __sync_add_and_fetch(val, -1);
}
#if 0
#pragma once
#ifdef __LP64__
#define BF64
#else
#define BF32
#endif
#define BOOST_DETAIL_NO_CONTAINER_FWD
#include <stdint.h>
#include <stdlib.h>
#include <pthread.h>
@ -64,7 +278,7 @@ typedef int32 LONG;
typedef pthread_key_t BFTlsKey;
typedef pthread_t BF_THREADID;
int64 abs(int64 val);
int64 abs(int64 val) noexcept;
struct IID
{
@ -320,3 +534,5 @@ inline int64 InterlockedDecrement64(volatile int64* val)
{
return OSAtomicDecrement64Barrier(val);
}
#endif

View file

@ -1,9 +1,11 @@
#pragma once
#include "../sdl/SdlBFApp.h"
//include "../sdl/SdlBFApp.h"
#include "../../HeadlessApp.h"
NS_BF_BEGIN;
typedef SdlBFApp PlatformBFApp;
//typedef SdlBFApp PlatformBFApp;
typedef HeadlessApp PlatformBFApp;
NS_BF_END;

View file

@ -1233,7 +1233,7 @@ BFP_EXPORT void BFP_CALLTYPE BfpThread_Sleep(int sleepMS)
BFP_EXPORT bool BFP_CALLTYPE BfpThread_Yield()
{
sched_yield();
return sched_yield() == 0;
}
struct BfpCritSect
@ -1814,24 +1814,24 @@ BFP_EXPORT void BFP_CALLTYPE BfpFile_Flush(BfpFile* file)
::fsync(file->mHandle);
}
BFP_EXPORT intptr BFP_CALLTYPE BfpFile_GetFileSize(BfpFile* file)
BFP_EXPORT int64 BFP_CALLTYPE BfpFile_GetFileSize(BfpFile* file)
{
int64 oldPos = (int64)lseek64(file->mHandle, 0, SEEK_CUR);
int64 size = (int64)lseek64(file->mHandle, 0, SEEK_END);
lseek64(file->mHandle, oldPos, SEEK_SET);
return (intptr)size;
return (int64)size;
}
BFP_EXPORT intptr BFP_CALLTYPE BfpFile_Seek(BfpFile* file, intptr offset, BfpFileSeekKind seekKind)
BFP_EXPORT int64 BFP_CALLTYPE BfpFile_Seek(BfpFile* file, int64 offset, BfpFileSeekKind seekKind)
{
int whence;
if (seekKind = BfpFileSeekKind_Absolute)
if (seekKind == BfpFileSeekKind_Absolute)
whence = SEEK_SET;
else if (seekKind = BfpFileSeekKind_Relative)
else if (seekKind == BfpFileSeekKind_Relative)
whence = SEEK_CUR;
else
whence = SEEK_END;
lseek64(file->mHandle, offset, whence);
return seek64(file->mHandle, offset, whence);
}
BFP_EXPORT void BFP_CALLTYPE BfpFile_Truncate(BfpFile* file)

View file

@ -1,13 +1,16 @@
#pragma once
#define BFSTDCALL __stdcall
#define BFSTDCALL
#include "../darwin/DarwinCommon.h"
#include <string>
#define BF_PLATFORM_OSX
#define BF_IMPORT extern "C"
#ifdef BFSYSLIB_DYNAMIC
#define BF_EXPORT extern "C" __declspec(dllexport)
#define BF_EXPORT extern "C"
#define BF_CALLTYPE
#else
#define BF_EXPORT extern "C"
@ -21,3 +24,6 @@
#define BF_REGISTER_COUNT 15
#endif
#define BF_DEBUG_BREAK()
#include "../PlatformInterface.h"

View file

@ -711,3 +711,18 @@ DrawLayer* SdlBFApp::CreateDrawLayer(BFWindow* window)
}
return drawLayer;
}
void SdlBFApp::GetDesktopResolution(int& width, int& height) override
{
width = 1024;
height = 768;
}
void SdlBFApp::GetWorkspaceRect(int& x, int& y, int& width, int& height) override
{
x = 0;
y = 0;
width = 1024;
height = 768;
}

View file

@ -2,6 +2,7 @@
#include "BFApp.h"
#include "BFWindow.h"
#include <map>
struct SDL_Window;
@ -56,13 +57,15 @@ public:
virtual void Run() override;
virtual BFWindow* CreateNewWindow(BFWindow* parent, const StringImpl& title, int x, int y, int width, int height, int windowFlags) override;
virtual DrawLayer* CreateDrawLayer(BFWindow* window);
virtual DrawLayer* CreateDrawLayer(BFWindow* window) override;
virtual void* GetClipboardData(const StringImpl& format, int* size) override;
virtual void ReleaseClipboardData(void* ptr) override;
virtual void SetClipboardData(const StringImpl& format, const void* ptr, int size, bool resetClipboard) override;
virtual BFSysBitmap* LoadSysBitmap(const wchar_t* fileName) override;
virtual void GetDesktopResolution(int& width, int& height) override;
virtual void GetWorkspaceRect(int& x, int& y, int& width, int& height) override;
};
NS_BF_END;