From 8948b2b557179893d84bc88b055ebeafabe058b9 Mon Sep 17 00:00:00 2001 From: Triang3l Date: Sun, 17 Jul 2022 16:58:19 +0300 Subject: [PATCH] [Android] GPU trace viewer and launcher activities --- .../app/src/main/AndroidManifest.xml | 17 ++++++- .../emulator/GpuTraceViewerActivity.java | 18 ++++++++ .../jp/xenia/emulator/LauncherActivity.java | 45 +++++++++++++++++++ .../res/layout/activity_gpu_trace_viewer.xml | 7 +++ .../src/main/res/layout/activity_launcher.xml | 27 +++++++++++ .../app/src/main/res/values/strings.xml | 3 +- 6 files changed, 114 insertions(+), 3 deletions(-) create mode 100644 android/android_studio_project/app/src/main/java/jp/xenia/emulator/GpuTraceViewerActivity.java create mode 100644 android/android_studio_project/app/src/main/java/jp/xenia/emulator/LauncherActivity.java create mode 100644 android/android_studio_project/app/src/main/res/layout/activity_gpu_trace_viewer.xml create mode 100644 android/android_studio_project/app/src/main/res/layout/activity_launcher.xml diff --git a/android/android_studio_project/app/src/main/AndroidManifest.xml b/android/android_studio_project/app/src/main/AndroidManifest.xml index 25bf5a95f..ae06f2f11 100644 --- a/android/android_studio_project/app/src/main/AndroidManifest.xml +++ b/android/android_studio_project/app/src/main/AndroidManifest.xml @@ -30,14 +30,27 @@ android:theme="@android:style/Theme.Material.Light"> + android:name="jp.xenia.emulator.LauncherActivity" + android:exported="true"> + + + + \ No newline at end of file diff --git a/android/android_studio_project/app/src/main/java/jp/xenia/emulator/GpuTraceViewerActivity.java b/android/android_studio_project/app/src/main/java/jp/xenia/emulator/GpuTraceViewerActivity.java new file mode 100644 index 000000000..f1fe8a306 --- /dev/null +++ b/android/android_studio_project/app/src/main/java/jp/xenia/emulator/GpuTraceViewerActivity.java @@ -0,0 +1,18 @@ +package jp.xenia.emulator; + +import android.os.Bundle; + +public class GpuTraceViewerActivity extends WindowedAppActivity { + @Override + protected String getWindowedAppIdentifier() { + return "xenia_gpu_vulkan_trace_viewer"; + } + + @Override + protected void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.activity_gpu_trace_viewer); + setWindowSurfaceView(findViewById(R.id.gpu_trace_viewer_surface_view)); + } +} diff --git a/android/android_studio_project/app/src/main/java/jp/xenia/emulator/LauncherActivity.java b/android/android_studio_project/app/src/main/java/jp/xenia/emulator/LauncherActivity.java new file mode 100644 index 000000000..0c977f0e8 --- /dev/null +++ b/android/android_studio_project/app/src/main/java/jp/xenia/emulator/LauncherActivity.java @@ -0,0 +1,45 @@ +package jp.xenia.emulator; + +import android.app.Activity; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.view.View; + +public class LauncherActivity extends Activity { + private static final int REQUEST_OPEN_GPU_TRACE_VIEWER = 0; + + @Override + protected void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.activity_launcher); + } + + @Override + protected void onActivityResult( + final int requestCode, final int resultCode, final Intent data) { + if (requestCode == REQUEST_OPEN_GPU_TRACE_VIEWER && resultCode == RESULT_OK) { + final Uri uri = data.getData(); + if (uri != null) { + final Intent gpuTraceViewerIntent = new Intent(this, GpuTraceViewerActivity.class); + final Bundle gpuTraceViewerLaunchArguments = new Bundle(); + gpuTraceViewerLaunchArguments.putString("target_trace_file", uri.toString()); + gpuTraceViewerIntent.putExtra( + WindowedAppActivity.EXTRA_CVARS, gpuTraceViewerLaunchArguments); + startActivity(gpuTraceViewerIntent); + } + } + } + + public void onLaunchGpuTraceViewerClick(final View view) { + final Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); + intent.addCategory(Intent.CATEGORY_OPENABLE); + intent.setType("application/octet-stream"); + startActivityForResult(intent, REQUEST_OPEN_GPU_TRACE_VIEWER); + } + + public void onLaunchWindowDemoClick(final View view) { + startActivity(new Intent(this, WindowDemoActivity.class)); + } +} diff --git a/android/android_studio_project/app/src/main/res/layout/activity_gpu_trace_viewer.xml b/android/android_studio_project/app/src/main/res/layout/activity_gpu_trace_viewer.xml new file mode 100644 index 000000000..8e407ecdf --- /dev/null +++ b/android/android_studio_project/app/src/main/res/layout/activity_gpu_trace_viewer.xml @@ -0,0 +1,7 @@ + + diff --git a/android/android_studio_project/app/src/main/res/layout/activity_launcher.xml b/android/android_studio_project/app/src/main/res/layout/activity_launcher.xml new file mode 100644 index 000000000..15c5c3cc6 --- /dev/null +++ b/android/android_studio_project/app/src/main/res/layout/activity_launcher.xml @@ -0,0 +1,27 @@ + + + + + +