Jelajahi Sumber

Merge branch 'world' of https://github.com/taylor001/crown into world

mikymod 12 tahun lalu
induk
melakukan
5b6a1be79b

+ 0 - 1
engine/Device.cpp

@@ -82,7 +82,6 @@ Device::Device()
 	, m_is_init(false)
 	, m_is_running(false)
 	, m_is_paused(false)
-	, m_is_really_paused(false)
 
 	, m_frame_count(0)
 

+ 0 - 2
engine/Device.h

@@ -169,8 +169,6 @@ protected:
 	bool					m_is_running	: 1;
 	bool					m_is_paused		: 1;
 
-	bool 					m_is_really_paused :1;
-
 	uint64_t				m_frame_count;
 
 	uint64_t				m_last_time;

+ 18 - 0
engine/os/android/AndroidDevice.cpp

@@ -196,6 +196,7 @@ private:
 };
 
 static AndroidDevice* g_engine;
+ANativeWindow* g_android_window;
 
 //-----------------------------------------------------------------------------
 extern "C" JNIEXPORT void JNICALL Java_crown_android_CrownLib_initCrown(JNIEnv* /*env*/, jobject /*obj*/)
@@ -220,6 +221,23 @@ extern "C" JNIEXPORT void JNICALL Java_crown_android_CrownLib_run(JNIEnv* /*env*
 	g_engine->run(0, NULL);
 }
 
+//-----------------------------------------------------------------------------
+extern "C" void Java_crown_android_CrownLib_acquireWindow(JNIEnv *env, jclass /*clazz*/, jobject surface)
+{
+    // Obtain a native window from a Java surface
+	CE_ASSERT(surface != 0, "Unable to get Android window");
+    g_android_window = ANativeWindow_fromSurface(env, surface);
+    ANativeWindow_acquire(g_android_window);
+    Log::i("Window acquired");
+}
+
+//-----------------------------------------------------------------------------
+extern "C" void Java_crown_android_CrownLib_releaseWindow(JNIEnv *env, jclass /*clazz*/, jobject surface)
+{
+    ANativeWindow_release(g_android_window);
+    Log::i("Window released");
+}
+
 //-----------------------------------------------------------------------------
 extern "C" JNIEXPORT void JNICALL Java_crown_android_CrownLib_pushKeyboardEvent(JNIEnv * /*env*/, jobject /*obj*/, jint modifier, jint b, jint pressed)
 {

+ 0 - 22
engine/os/android/OsWindow.cpp

@@ -32,8 +32,6 @@ OTHER DEALINGS IN THE SOFTWARE.
 namespace crown
 {
 
-ANativeWindow* g_android_window = NULL;
-
 //-----------------------------------------------------------------------------
 OsWindow::OsWindow()
 	: m_x(0)
@@ -46,10 +44,6 @@ OsWindow::OsWindow()
 //-----------------------------------------------------------------------------
 OsWindow::~OsWindow()
 {
-	if (g_android_window)
-	{
-		ANativeWindow_release(g_android_window);
-	}
 }
 
 //-----------------------------------------------------------------------------
@@ -138,20 +132,4 @@ void OsWindow::frame()
 {
 }
 
-//-----------------------------------------------------------------------------
-extern "C" void Java_crown_android_CrownLib_createWindow(JNIEnv *env, jclass /*clazz*/, jobject surface)
-{
-    // obtain a native window from a Java surface
-	CE_ASSERT(surface != 0, "Unable to get Android window");
-    g_android_window = ANativeWindow_fromSurface(env, surface);
-    Log::i("Window created");
-}
-
-//-----------------------------------------------------------------------------
-extern "C" void Java_crown_android_CrownLib_destroyWindow(JNIEnv *env, jclass /*clazz*/, jobject surface)
-{
-    ANativeWindow_release(g_android_window);
-    Log::i("Window destroyed");
-}
-
 } // namespace crown

+ 1 - 0
engine/os/android/java/CrownActivity.java

@@ -94,6 +94,7 @@ public class CrownActivity extends Activity
 	{
 		super.onDestroy();
 		CrownLib.pushExitEvent(0);
+		CrownLib.releaseWindow();
 		CrownLib.shutdownCrown();
 		Log.i(TAG, "Crown Activity destroyed");
 	}

+ 2 - 2
engine/os/android/java/CrownLib.java

@@ -47,8 +47,8 @@ public class CrownLib
 	public static native void 		initAssetManager(AssetManager assetManager);
 
 	// Window functions
-	public static native void		createWindow(Surface window);
-	public static native void		destroyWindow();
+	public static native void		acquireWindow(Surface window);
+	public static native void		releaseWindow();
 
 	// Os events
 	public static native void		pushKeyboardEvent(int modifier, int b, int pressed);

+ 1 - 6
engine/os/android/java/CrownSurfaceView.java

@@ -37,8 +37,6 @@ public class CrownSurfaceView extends SurfaceView implements SurfaceHolder.Callb
 {
 	private final String TAG = "crown";
 
-	private boolean mSurfaceCreated;
-
 	//-----------------------------------------------------------------------------
 	public CrownSurfaceView(Context context)
 	{
@@ -52,9 +50,7 @@ public class CrownSurfaceView extends SurfaceView implements SurfaceHolder.Callb
 	public void surfaceCreated(SurfaceHolder holder) 
 	{
 		Log.d(TAG, "Crown Surface created");
-		mSurfaceCreated = true;
-
-		CrownLib.createWindow(holder.getSurface());
+		CrownLib.acquireWindow(holder.getSurface());
 		CrownLib.run();
 	}
 
@@ -62,7 +58,6 @@ public class CrownSurfaceView extends SurfaceView implements SurfaceHolder.Callb
 	@Override
 	public void surfaceDestroyed(SurfaceHolder holder) 
 	{
-		mSurfaceCreated = false;
 		Log.d(TAG, "Crown Surface destroyed");
 	}
 

+ 1 - 0
engine/world/SceneGraph.cpp

@@ -66,6 +66,7 @@ void SceneGraph::create(uint32_t count, const StringId32* name, const Matrix4x4*
 
 	memset(m_flags, (int) CLEAN, sizeof(uint8_t) * count);
 	memcpy(m_local_poses, local, sizeof(Matrix4x4) * count);
+	memcpy(m_world_poses, local, sizeof(Matrix4x4) * count);
 	memcpy(m_parents, parent, sizeof(int32_t) * count);
 	memcpy(m_names, name, sizeof(StringId32) * count);
 }

+ 2 - 5
utils/crown-android.rb

@@ -26,15 +26,12 @@ require 'optparse'
 require 'ostruct'
 require 'fileutils'
 
-$crown_version =
+$config_h = 
 "
 #define CROWN_VERSION_MAJOR 0
 #define CROWN_VERSION_MINOR 1
 #define CROWN_VERSION_MICRO 13
-"
 
-$config_h = 
-"
 #define PRId64 \"lld\"
 #define PRIu64 \"llu\"
 #define PRIi64 \"lli\"
@@ -157,7 +154,7 @@ end
 def generate_application_mk(target, dest)
 	f = File.new(dest, File::WRONLY|File::CREAT|File::TRUNC, 0644)
 	f.write($application_mk)
-	f.write("APP_ABI := " + target)
+	f.write("APP_APPLICATION := " + target)
 	f.close()
 end