diff --git a/readme.md b/readme.md index bfac90abb..8a11cff5b 100644 --- a/readme.md +++ b/readme.md @@ -128,6 +128,17 @@ NOTE: You have to change entry->d_type == DT_DIR to Directory_Exists(&path) (TOD The generated javascript file has some issues. [See here for how to fix](doc/compile-fixes.md#webclient-patches) +#### Android + +Use Android Studio or run gradlew in android folder (TODO explain more detailed) + +#### iOS + +```clang *.c interop_ios.m -framework UIKit -framework OpenGLES -framework Foundation -lobjc``` + +iOS version is unfinished because of lack of access to suitable devices for me to test with + + ##### Other You'll have to write the necessary code. You should read portability.md in doc folder. diff --git a/src/Window.c b/src/Window.c index 82e637ba5..4e3d5757f 100644 --- a/src/Window.c +++ b/src/Window.c @@ -26,13 +26,22 @@ void Clipboard_RequestText(RequestClipboardCallback callback, void* obj) { Clipboard_GetText(&text); callback(&text, obj); } -#endif +#endif + +#ifdef CC_BUILD_IOS +/* iOS implements some functions in external interop_ios.m file */ +#define CC_MAYBE_OBJC extern +#else +/* All other platforms implement internally in this file */ +#define CC_MAYBE_OBJC static +#endif + static int cursorPrevX, cursorPrevY; static cc_bool cursorVisible = true; /* Gets the position of the cursor in screen or window coordinates. */ -static void Cursor_GetRawPos(int* x, int* y); -static void Cursor_DoSetVisible(cc_bool visible); +CC_MAYBE_OBJC void Cursor_GetRawPos(int* x, int* y); +CC_MAYBE_OBJC void Cursor_DoSetVisible(cc_bool visible); void Cursor_SetVisible(cc_bool visible) { if (cursorVisible == visible) return; @@ -71,7 +80,7 @@ static void DefaultDisableRawMouse(void) { } /* The actual windowing system specific method to display a message box */ -static void ShowDialogCore(const char* title, const char* msg); +CC_MAYBE_OBJC void ShowDialogCore(const char* title, const char* msg); void Window_ShowDialog(const char* title, const char* msg) { /* Ensure cursor is visible while showing message box */ cc_bool visible = cursorVisible; diff --git a/src/freetype/ftconfig.h b/src/freetype/ftconfig.h index 12a8a0e86..04e48a797 100644 --- a/src/freetype/ftconfig.h +++ b/src/freetype/ftconfig.h @@ -121,14 +121,10 @@ FT_BEGIN_HEADER /* providing a new configuration file. */ /* */ #if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) ) - /* no Carbon frameworks for 64bit 10.4.x */ - /* AvailabilityMacros.h is available since Mac OS X 10.2, */ - /* so guess the system version by maximum errno before inclusion */ -#include -#ifdef ECANCELED /* defined since 10.2 */ -#include "AvailabilityMacros.h" -#endif + /* don't enable mac support on iPhone/iPad */ +#ifndef __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ #define FT_MACINTOSH 1 +#endif #elif defined( __SC__ ) || defined( __MRC__ ) /* Classic MacOS compilers */ diff --git a/src/interop_ios.m b/src/interop_ios.m index 8cc30fa5e..e589faeee 100644 --- a/src/interop_ios.m +++ b/src/interop_ios.m @@ -1,6 +1,7 @@ #include "Window.h" #include "Platform.h" #include "String.h" +#include "Errors.h" #include void Clipboard_GetText(cc_string* value) { @@ -21,18 +22,59 @@ void Clipboard_SetText(const cc_string* value) { NSString* str; int len; - Platform_EncodeString(raw, value); + Platform_EncodeUtf8(raw, value); str = [NSString stringWithUTF8String:raw]; [UIPasteboard generalPasteboard].string = str; [str release]; } +/*########################################################################################################################* +*---------------------------------------------------------Window----------------------------------------------------------* +*#########################################################################################################################*/ +void Cursor_GetRawPos(int* x, int* y) { *x = 0; *y = 0; } +void Cursor_SetPosition(int x, int y) { } +void Cursor_DoSetVisible(cc_bool visible) { } + void Window_SetTitle(const cc_string* title) { /* TODO: Implement this somehow */ } +void Window_Init(void) { } +void Window_Create(int width, int height) { } void Window_SetSize(int width, int height) { } +void Window_Close(void) { } + +void Window_Show(void) { } +void Window_ProcessEvents(void) { } +void ShowDialogCore(const char* title, const char* msg) { } + +void Window_OpenKeyboard(const struct OpenKeyboardArgs* args) { } +void Window_SetKeyboardText(const cc_string* text) { } +void Window_CloseKeyboard(void) { } + +int Window_GetWindowState(void) { return WINDOW_STATE_NORMAL; } +cc_result Window_EnterFullscreen(void) { return ERR_NOT_SUPPORTED; } +cc_result Window_ExitFullscreen(void) { return ERR_NOT_SUPPORTED; } + +void Window_AllocFramebuffer(struct Bitmap* bmp) { } +void Window_DrawFramebuffer(Rect2D r) { } +void Window_FreeFramebuffer(struct Bitmap* bmp) { } void Window_EnableRawMouse(void) { } void Window_UpdateRawMouse(void) { } void Window_DisableRawMouse(void) { } + + +/*########################################################################################################################* +*--------------------------------------------------------GLContext--------------------------------------------------------* +*#########################################################################################################################*/ +void GLContext_Create(void) { } +void GLContext_Update(void) { } +cc_bool GLContext_TryRestore(void) { return false; } +void GLContext_Free(void) { } + +void* GLContext_GetAddress(const char* function) { return NULL; } + +cc_bool GLContext_SwapBuffers(void) { return false; } +void GLContext_SetFpsLimit(cc_bool vsync, float minFrameMs) { } +void GLContext_GetApiInfo(cc_string* info) { } \ No newline at end of file