Przeglądaj źródła

Android window and glcontext fixed, TODO: fix filesystem

mikymod 12 lat temu
rodzic
commit
6318771e55

+ 24 - 36
android/jni/Android.mk

@@ -16,6 +16,14 @@ LOCAL_PATH := $(call my-dir)
 
 include $(CLEAR_VARS)
 
+LOCAL_MODULE := luajit-5.1
+LOCAL_SRC_FILES := libluajit-5.1.so
+include $(PREBUILT_SHARED_LIBRARY)
+
+#####################################
+
+include $(CLEAR_VARS)
+
 LOCAL_MODULE    := crown
 LOCAL_SRC_FILES :=\
 	core/bv/Circle.cpp\
@@ -62,6 +70,17 @@ LOCAL_SRC_FILES :=\
 \
 	lua/LuaStack.cpp\
 	lua/LuaEnvironment.cpp\
+	lua/AccelerometerBinds.cpp\
+	lua/CameraBinds.cpp\
+	lua/DeviceBinds.cpp\
+	lua/KeyboardBinds.cpp\
+	lua/Mat4Binds.cpp\
+	lua/MathBinds.cpp\
+	lua/MouseBinds.cpp\
+	lua/QuatBinds.cpp\
+	lua/TouchBinds.cpp\
+	lua/Vec2Binds.cpp\
+	lua/Vec3Binds.cpp\
 \
 	network/BitMessage.cpp\
 \
@@ -120,45 +139,14 @@ LOCAL_C_INCLUDES	:=\
 	$(LOCAL_PATH)/renderers/gles\
 	$(LOCAL_PATH)/renderers/gles/egl\
 	$(LOCAL_PATH)/samples\
-#	include third/luajit/include
+	$(LOCAL_PATH)/third/luajit/include/luajit-2.0\
 \
 
 LOCAL_CPPFLAGS	:= -g -fexceptions
-LOCAL_LDLIBS	:= -llog -landroid -lEGL -lGLESv2 -lz
-LOCAL_LDLIBS 	+= $(LOCAL_PATH)/libluajit-5.1.so -lluajit-5.1
-LOCAL_SHARED_LIBRARIES := crown luajit-5.1
+LOCAL_LDLIBS	:= -llog -landroid -lEGL -lGLESv2 -lz 
+LOCAL_SHARED_LIBRARIES := luajit-5.1
+LOCAL_STATIC_LIBRARIES := android_native_app_glue
 include $(BUILD_SHARED_LIBRARY)
 
-include $(CLEAR_VARS)
-
-LOCAL_MODULE    := crownlua
-
-LOCAL_SRC_FILES :=\
-	lua/LuaStack.cpp\
-	lua/LuaEnvironment.cpp\
-	lua/AccelerometerBinds.cpp\
-	lua/CameraBinds.cpp\
-	lua/DeviceBinds.cpp\
-	lua/KeyboardBinds.cpp\
-	lua/Mat4Binds.cpp\
-	lua/MathBinds.cpp\
-	lua/MouseBinds.cpp\
-	lua/QuatBinds.cpp\
-	lua/TouchBinds.cpp\
-	lua/Vec2Binds.cpp\
-	lua/Vec3Binds.cpp\
-	Game.cpp\
-
-\
-
-LOCAL_C_INCLUDES	:=\
-	$(LOCAL_PATH)\
-	$(LOCAL_PATH)/lua\
-#	include third/luajit/include
-\
+$(call import-module,android/native_app_glue)
 
-LOCAL_CPPFLAGS	:= -g -fexceptions -I
-LOCAL_LDLIBS	:= -llog -landroid
-LOCAL_LDLIBS 	+= $(LOCAL_PATH)/libluajit-5.1.so -lluajit-5.1
-LOCAL_SHARED_LIBRARIES := crown luajit-5.1
-include $(BUILD_SHARED_LIBRARY)

+ 16 - 16
android/src/crown/android/CrownActivity.java

@@ -39,6 +39,7 @@ import android.widget.Toast;
 import android.content.res.AssetManager;
 import android.view.Surface;
 import android.view.SurfaceView;
+import android.view.SurfaceHolder;
 
 import crown.android.CrownEnum;
 
@@ -59,41 +60,40 @@ public class CrownActivity extends Activity
 	private CrownSensor			mSensor;
 
 	// Graphic attributes
-	static SurfaceView			mWindow;
+	static CrownSurfaceView		mWindow;
 
-//-----------------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
     public void onCreate(Bundle savedInstanceState)
     {
         super.onCreate(savedInstanceState);
-		setContentView(R.layout.main);
 
 		// init AssetManager
 		mAssetManager = getAssets();
 		CrownLib.initAssetManager(mAssetManager);
 
+		// init Native Window
+        mWindow = new CrownSurfaceView(this);
+        setContentView(mWindow);
+
 		// Init Input
 		mTouch = new CrownTouch(this);
 		mSensor = new CrownSensor(this);
-		
-        mWindow = (SurfaceView)findViewById(R.id.crown_window);
-        CrownLib.setWindow(mWindow.getHolder().getSurface());
-
-		CrownLib.init();
     }
 
-//-----------------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
 	public void onStart()
 	{
 		super.onStart();
+
 	}
 
-//-----------------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
 	public void onRestart()
 	{
 		super.onRestart();
 	}
 
-//-----------------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
 	public void onResume()
 	{
 		super.onResume();
@@ -105,13 +105,13 @@ public class CrownActivity extends Activity
 		}
 	}
 
-//-----------------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
 	public void onPause()
 	{
 		super.onPause();
 	}
 
-//-----------------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
 	public void onStop()
 	{
 		super.onStop();
@@ -120,20 +120,20 @@ public class CrownActivity extends Activity
 		mSensor.stopListening();
 	}
 
-//-----------------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
 	public void onDestroy()
 	{
 		super.onDestroy();
 	}
 
-//-----------------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
 	public boolean onTouchEvent(MotionEvent event)
 	{
 		mTouch.onTouch(event);
         return super.onTouchEvent(event);
 	}
 
-//-----------------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
 	public boolean hasMultiTouchSupport(Context context)
 	{
 		return context.getPackageManager().hasSystemFeature("android.hardware.touchscreen.multitouch");

+ 44 - 0
android/src/crown/android/CrownSurfaceView.java

@@ -0,0 +1,44 @@
+package crown.android;
+
+import android.content.Context;
+import android.view.Surface;
+import android.view.SurfaceView;
+import android.view.SurfaceHolder;
+
+public class CrownSurfaceView extends SurfaceView implements SurfaceHolder.Callback
+{
+//-----------------------------------------------------------------------------
+	public CrownSurfaceView(Context context)
+	{
+		super(context);
+		this.getHolder().addCallback(this);
+	}
+
+//-----------------------------------------------------------------------------
+    @Override
+    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) 
+    {    
+    	if (CrownLib.isRunning())
+    	{
+    		CrownLib.frame();
+    	}
+    }
+
+//-----------------------------------------------------------------------------
+    @Override
+    public void surfaceCreated(SurfaceHolder holder) 
+    {
+        CrownLib.setWindow(holder.getSurface());
+    	CrownLib.init();
+    }
+
+//-----------------------------------------------------------------------------
+    @Override
+    public void surfaceDestroyed(SurfaceHolder holder) 
+    {  
+    	if (CrownLib.isInit())
+    	{
+    		CrownLib.shutdown();
+    	}
+    }
+}