diff --git a/.externalToolBuilders/[Löve] Generate Internal Scripts.launch b/.externalToolBuilders/[Löve] Generate Internal Scripts.launch new file mode 100644 index 00000000..c22c36f0 --- /dev/null +++ b/.externalToolBuilders/[Löve] Generate Internal Scripts.launch @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.externalToolBuilders/ndk-build.launch b/.externalToolBuilders/ndk-build.launch new file mode 100644 index 00000000..627cdd4e --- /dev/null +++ b/.externalToolBuilders/ndk-build.launch @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.gitignore b/.gitignore index e99b816a..951d4c4e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ libs/ obj/ .*.swp .*~ +*~ diff --git a/jni/src/Android.mk b/jni/src/Android.mk deleted file mode 100644 index 769673b7..00000000 --- a/jni/src/Android.mk +++ /dev/null @@ -1,19 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE := main - -SDL_PATH := ../SDL2-2.0.1 - -LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include - -# Add your application source files here... -LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.c \ - main.cpp - -LOCAL_CXXFLAGS := -std=c++0x -LOCAL_SHARED_LIBRARIES := SDL2 liblua -LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -llog - -include $(BUILD_SHARED_LIBRARY) diff --git a/jni/src/Android_static.mk b/jni/src/Android_static.mk deleted file mode 100644 index faed669c..00000000 --- a/jni/src/Android_static.mk +++ /dev/null @@ -1,12 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE := main - -LOCAL_SRC_FILES := YourSourceHere.c - -LOCAL_STATIC_LIBRARIES := SDL2_static - -include $(BUILD_SHARED_LIBRARY) -$(call import-module,SDL)LOCAL_PATH := $(call my-dir) diff --git a/jni/src/main.cpp b/jni/src/main.cpp deleted file mode 100644 index d03c521c..00000000 --- a/jni/src/main.cpp +++ /dev/null @@ -1,324 +0,0 @@ -// -// main.cpp -// SDLTutorial -// -// Created by Ciaran McCormack on 25/09/13. -// Copyright (c) 2013 Raiblin. All rights reserved. -// - -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif -#include "lua.h" -#include "lauxlib.h" -#include "lualib.h" -#ifdef __cplusplus -} -#endif - -using namespace std; - -class Graphics; - -shared_ptr graphics; - -class Graphics -{ -public: - float color[3]; - - Graphics() : - color ({ rand() % 255 / 255.0f, rand() % 255 / 255.0f, rand() % 255 / 255.0f}) - {} - - void update() - { - glClearColor(color[0], color[1], color[2], 1); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); - } -}; - -int l_get_color (lua_State *L) { - lua_pushnumber (L, graphics->color[0]); - lua_pushnumber (L, graphics->color[1]); - lua_pushnumber (L, graphics->color[2]); - - return 3; -} - -int l_set_color(lua_State *L) { - SDL_Log ("[Lua] setcolor was called"); - - if (lua_gettop(L) != 3) { - SDL_Log ("[Lua] engine.setcolor error: invalid color"); - return 0; - } - - float r = 0.f; - if (!lua_isnumber(L, -3)) { - SDL_Log("[Lua] engine.set_color error: invalid color"); - return 0; - } - r = (float) lua_tonumber (L, -3); - - float g = 0.f; - if (!lua_isnumber(L, -2)) { - SDL_Log("[Lua] engine.set_color error: invalid color"); - return 0; - } - g = (float) lua_tonumber (L, -2); - - float b = 0.f; - if (!lua_isnumber(L, -1)) { - SDL_Log("[Lua] engine.set_color error: invalid color"); - return 0; - } - b = (float) lua_tonumber (L, -1); - - SDL_Log ("[Lua] got color %f, %f, %f", r, g, b ); - - graphics->color[0] = r; - graphics->color[1] = g; - graphics->color[2] = b; - - return 0; -} - -int l_log (lua_State *L) { - if (!lua_isstring(L, -1)) { - SDL_Log ("[Lua] invalid error message: expected string"); - return 0; - } - SDL_Log ("[Lua] %s", lua_tostring (L, -1)); - return 0; -} - -static const struct luaL_Reg enginelib[] = { - {"get_color", l_get_color}, - {"set_color", l_set_color}, - {"log", l_log}, - {NULL, NULL} -}; - -int EventFilter(void* userdata, SDL_Event* event) -{ - switch (event->type) - { - case SDL_KEYDOWN: - SDL_Log("Key Down %d", event->key.keysym.sym); - return 0; - - case SDL_KEYUP: - SDL_Log("Key Up %d", event->key.keysym.sym); - return 0; - - case SDL_MOUSEMOTION: - SDL_Log("Mouse Moved. X=%d, Y=%d, RelativeX=%d, RelativeY=%d", event->motion.x, event->motion.y, event->motion.xrel, event->motion.yrel); - return 0; - - case SDL_MOUSEBUTTONDOWN: - SDL_Log("Mouse Button Down %d", event->button.button); - return 0; - - case SDL_MOUSEBUTTONUP: - SDL_Log("Mouse Button Up %d", event->button.button); - return 0; - - case SDL_MOUSEWHEEL: - SDL_Log("Mouse Wheel"); - return 0; - } - - return 1; -} - -void l_call_on_touch (lua_State *L, int x, int y) { - lua_getglobal (L, "on_touch"); - - if (lua_isfunction(L, -1)) { - lua_pushnumber (L, x); - lua_pushnumber (L, y); - lua_pcall (L, 2, 0, 0); - } -} - -void l_call_update (lua_State *L, float dt) { - lua_getglobal (L, "update"); - if (lua_isfunction(L, -1)) { - lua_pushnumber (L, dt); - lua_pcall (L, 1, 0, 0); - } -} - -int main(int argc, char * argv[]) -{ - int width = 1080; - int height = 720; - - if (0 != SDL_Init(SDL_INIT_VIDEO)) - { - fprintf(stderr, "\nUnable to initialize SDL: %s\n", SDL_GetError()); - return 0; - } - - SDL_LogSetAllPriority(SDL_LOG_PRIORITY_VERBOSE); - - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); - SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, 1); - SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); - SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24); - - //Create the window - auto window = SDL_CreateWindow("SDL 2.0 OSX Tutorial", 0, 0, width, height, SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN); - - if (window == 0) - { - SDL_Quit(); - return false; - } - - auto gl = SDL_GL_CreateContext(window); - - SDL_AddEventWatch(EventFilter, nullptr); - - graphics = shared_ptr(new Graphics()); - - SDL_Log ("OpenGL Version: %s", glGetString(GL_VERSION)); - - lua_State *L = luaL_newstate(); - luaL_openlibs(L); - luaL_register (L, "engine", enginelib); - - SDL_RWops *file = SDL_RWFromFile("testfile.lua", "rb"); - if (file) { - Sint64 file_size = file->size(file); - char data_buffer[file_size + 1]; - size_t read_bytes = file->read(file, data_buffer, sizeof(char), (size_t) file_size); - data_buffer[read_bytes] = '\0'; - luaL_dostring(L, data_buffer); - } else { - SDL_Log ("could not open file"); - } - - unsigned int last_time = SDL_GetTicks(); - - //Game Loop - SDL_Event event; - auto done = false; - while (!done) - { - SDL_PumpEvents(); - while (SDL_PollEvent(&event)) - { - switch (event.type) - { - case SDL_QUIT: - done = true; - break; - - case SDL_APP_DIDENTERFOREGROUND: - SDL_Log("SDL_APP_DIDENTERFOREGROUND"); - break; - - case SDL_APP_DIDENTERBACKGROUND: - SDL_Log("SDL_APP_DIDENTERBACKGROUND"); - break; - - case SDL_APP_LOWMEMORY: - SDL_Log("SDL_APP_LOWMEMORY"); - break; - - case SDL_APP_TERMINATING: - SDL_Log("SDL_APP_TERMINATING"); - break; - - case SDL_APP_WILLENTERBACKGROUND: - SDL_Log("SDL_APP_WILLENTERBACKGROUND"); - break; - - case SDL_APP_WILLENTERFOREGROUND: - SDL_Log("SDL_APP_WILLENTERFOREGROUND"); - break; - - case SDL_FINGERDOWN: - l_call_on_touch(L, event.tfinger.x, event.tfinger.y); - SDL_Log("Got finger down at %d,%d", event.tfinger.x, event.tfinger.y); - break; - - case SDL_WINDOWEVENT: - { - switch (event.window.event) - { - case SDL_WINDOWEVENT_SHOWN: - SDL_Log("Window %d shown", event.window.windowID); - break; - case SDL_WINDOWEVENT_HIDDEN: - SDL_Log("Window %d hidden", event.window.windowID); - break; - case SDL_WINDOWEVENT_EXPOSED: - SDL_Log("Window %d exposed", event.window.windowID); - break; - case SDL_WINDOWEVENT_MOVED: - SDL_Log("Window %d moved to %d,%d", event.window.windowID, event.window.data1, event.window.data2); - break; - case SDL_WINDOWEVENT_RESIZED: - SDL_Log("Window %d resized to %dx%d", event.window.windowID, event.window.data1, event.window.data2); - break; - case SDL_WINDOWEVENT_MINIMIZED: - SDL_Log("Window %d minimized", event.window.windowID); - break; - case SDL_WINDOWEVENT_MAXIMIZED: - SDL_Log("Window %d maximized", event.window.windowID); - break; - case SDL_WINDOWEVENT_RESTORED: - SDL_Log("Window %d restored", event.window.windowID); - break; - case SDL_WINDOWEVENT_ENTER: - SDL_Log("Mouse entered window %d", event.window.windowID); - break; - case SDL_WINDOWEVENT_LEAVE: - SDL_Log("Mouse left window %d", event.window.windowID); - break; - case SDL_WINDOWEVENT_FOCUS_GAINED: - SDL_Log("Window %d gained keyboard focus", event.window.windowID); - break; - case SDL_WINDOWEVENT_FOCUS_LOST: - SDL_Log("Window %d lost keyboard focus", event.window.windowID); - break; - case SDL_WINDOWEVENT_CLOSE: - SDL_Log("Window %d closed", event.window.windowID); - break; - default: - SDL_Log("Window %d got unknown event %d", event.window.windowID, event.window.event); - break; - } - - break; - } - } - } - - unsigned int current_time = SDL_GetTicks(); - l_call_update(L, static_cast(current_time - last_time) * 0.001f); - last_time = current_time; - - graphics->update(); - SDL_GL_SwapWindow(window); - } - - lua_close (L); - - SDL_GL_DeleteContext(gl); - - // Done! Close the window, clean-up and exit the program. - SDL_DestroyWindow(window); - SDL_Quit(); -} -