gitextract_om9grlgx/ ├── .clang-format ├── .github/ │ └── workflows/ │ └── build.yml ├── .gitignore ├── .google/ │ └── packaging.yaml ├── .pre-commit-config.yaml ├── ARCHITECTURE.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── REFERENCE.md ├── audio-echo/ │ └── README.md ├── base/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ └── main/ │ └── cpp/ │ ├── CMakeLists.txt │ ├── include/ │ │ └── base/ │ │ ├── errno_restorer.h │ │ ├── logging.h │ │ └── macros.h │ ├── logging.cpp │ └── logging_splitters.h ├── bitmap-plasma/ │ ├── README.md │ └── app/ │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── jni.cpp │ │ ├── libplasma.map.txt │ │ ├── plasma.cpp │ │ └── plasma.h │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ └── plasma/ │ │ └── Plasma.java │ └── res/ │ └── values/ │ └── strings.xml ├── build-logic/ │ ├── .gitignore │ ├── README.md │ ├── build.gradle.kts │ ├── settings.gradle.kts │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── android/ │ └── ndk/ │ └── samples/ │ └── buildlogic/ │ ├── AndroidApplicationConventionPlugin.kt │ ├── AndroidLibraryConventionPlugin.kt │ ├── KotlinConventionPlugin.kt │ └── Versions.kt ├── build.gradle ├── camera/ │ ├── README.md │ ├── basic/ │ │ ├── build.gradle │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── cpp/ │ │ │ ├── CMakeLists.txt │ │ │ ├── android_main.cpp │ │ │ ├── camera_engine.cpp │ │ │ ├── camera_engine.h │ │ │ ├── camera_listeners.cpp │ │ │ ├── camera_manager.cpp │ │ │ ├── camera_manager.h │ │ │ ├── camera_ui.cpp │ │ │ ├── image_reader.cpp │ │ │ ├── image_reader.h │ │ │ └── libndk_camera.map.txt │ │ ├── java/ │ │ │ └── com/ │ │ │ └── sample/ │ │ │ └── camera/ │ │ │ └── basic/ │ │ │ └── CameraActivity.java │ │ └── res/ │ │ ├── layout/ │ │ │ └── widgets.xml │ │ └── values/ │ │ └── strings.xml │ ├── camera-utils/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ └── cpp/ │ │ ├── CMakeLists.txt │ │ ├── camera_utils.cpp │ │ └── include/ │ │ └── ndksamples/ │ │ └── camera/ │ │ ├── camera_utils.h │ │ └── native_debug.h │ └── texture-view/ │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── android_main.cpp │ │ ├── camera_engine.cpp │ │ ├── camera_engine.h │ │ ├── camera_listeners.cpp │ │ ├── camera_manager.cpp │ │ ├── camera_manager.h │ │ └── libcamera_textureview.map.txt │ ├── java/ │ │ └── com/ │ │ └── sample/ │ │ └── textureview/ │ │ └── ViewActivity.java │ └── res/ │ ├── layout/ │ │ └── activity_main.xml │ └── values/ │ └── strings.xml ├── cmake/ │ └── AppLibrary.cmake ├── endless-tunnel/ │ ├── README.md │ └── app/ │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── android_main.cpp │ │ ├── anim.cpp │ │ ├── anim.hpp │ │ ├── ascii_to_geom.cpp │ │ ├── ascii_to_geom.hpp │ │ ├── common.hpp │ │ ├── data/ │ │ │ ├── alphabet.inl │ │ │ ├── ascii_art.inl │ │ │ ├── blurb.inl │ │ │ ├── cube_geom.inl │ │ │ ├── our_shader.inl │ │ │ ├── strings.inl │ │ │ └── tunnel_geom.inl │ │ ├── dialog_scene.cpp │ │ ├── dialog_scene.hpp │ │ ├── engine.hpp │ │ ├── game_consts.hpp │ │ ├── glm/ │ │ │ ├── CMakeLists.txt │ │ │ ├── common.hpp │ │ │ ├── detail/ │ │ │ │ ├── _features.hpp │ │ │ │ ├── _fixes.hpp │ │ │ │ ├── _literals.hpp │ │ │ │ ├── _noise.hpp │ │ │ │ ├── _swizzle.hpp │ │ │ │ ├── _swizzle_func.hpp │ │ │ │ ├── _vectorize.hpp │ │ │ │ ├── func_common.hpp │ │ │ │ ├── func_common.inl │ │ │ │ ├── func_exponential.hpp │ │ │ │ ├── func_exponential.inl │ │ │ │ ├── func_geometric.hpp │ │ │ │ ├── func_geometric.inl │ │ │ │ ├── func_integer.hpp │ │ │ │ ├── func_integer.inl │ │ │ │ ├── func_matrix.hpp │ │ │ │ ├── func_matrix.inl │ │ │ │ ├── func_noise.hpp │ │ │ │ ├── func_noise.inl │ │ │ │ ├── func_packing.hpp │ │ │ │ ├── func_packing.inl │ │ │ │ ├── func_trigonometric.hpp │ │ │ │ ├── func_trigonometric.inl │ │ │ │ ├── func_vector_relational.hpp │ │ │ │ ├── func_vector_relational.inl │ │ │ │ ├── glm.cpp │ │ │ │ ├── hint.hpp │ │ │ │ ├── intrinsic_common.hpp │ │ │ │ ├── intrinsic_common.inl │ │ │ │ ├── intrinsic_exponential.hpp │ │ │ │ ├── intrinsic_exponential.inl │ │ │ │ ├── intrinsic_geometric.hpp │ │ │ │ ├── intrinsic_geometric.inl │ │ │ │ ├── intrinsic_integer.hpp │ │ │ │ ├── intrinsic_integer.inl │ │ │ │ ├── intrinsic_matrix.hpp │ │ │ │ ├── intrinsic_matrix.inl │ │ │ │ ├── intrinsic_trigonometric.hpp │ │ │ │ ├── intrinsic_trigonometric.inl │ │ │ │ ├── intrinsic_vector_relational.hpp │ │ │ │ ├── intrinsic_vector_relational.inl │ │ │ │ ├── precision.hpp │ │ │ │ ├── precision.inl │ │ │ │ ├── setup.hpp │ │ │ │ ├── type_float.hpp │ │ │ │ ├── type_gentype.hpp │ │ │ │ ├── type_gentype.inl │ │ │ │ ├── type_half.hpp │ │ │ │ ├── type_half.inl │ │ │ │ ├── type_int.hpp │ │ │ │ ├── type_mat.hpp │ │ │ │ ├── type_mat.inl │ │ │ │ ├── type_mat2x2.hpp │ │ │ │ ├── type_mat2x2.inl │ │ │ │ ├── type_mat2x3.hpp │ │ │ │ ├── type_mat2x3.inl │ │ │ │ ├── type_mat2x4.hpp │ │ │ │ ├── type_mat2x4.inl │ │ │ │ ├── type_mat3x2.hpp │ │ │ │ ├── type_mat3x2.inl │ │ │ │ ├── type_mat3x3.hpp │ │ │ │ ├── type_mat3x3.inl │ │ │ │ ├── type_mat3x4.hpp │ │ │ │ ├── type_mat3x4.inl │ │ │ │ ├── type_mat4x2.hpp │ │ │ │ ├── type_mat4x2.inl │ │ │ │ ├── type_mat4x3.hpp │ │ │ │ ├── type_mat4x3.inl │ │ │ │ ├── type_mat4x4.hpp │ │ │ │ ├── type_mat4x4.inl │ │ │ │ ├── type_vec.hpp │ │ │ │ ├── type_vec.inl │ │ │ │ ├── type_vec1.hpp │ │ │ │ ├── type_vec1.inl │ │ │ │ ├── type_vec2.hpp │ │ │ │ ├── type_vec2.inl │ │ │ │ ├── type_vec3.hpp │ │ │ │ ├── type_vec3.inl │ │ │ │ ├── type_vec4.hpp │ │ │ │ └── type_vec4.inl │ │ │ ├── exponential.hpp │ │ │ ├── ext.hpp │ │ │ ├── fwd.hpp │ │ │ ├── geometric.hpp │ │ │ ├── glm.hpp │ │ │ ├── gtc/ │ │ │ │ ├── constants.hpp │ │ │ │ ├── constants.inl │ │ │ │ ├── epsilon.hpp │ │ │ │ ├── epsilon.inl │ │ │ │ ├── matrix_access.hpp │ │ │ │ ├── matrix_access.inl │ │ │ │ ├── matrix_integer.hpp │ │ │ │ ├── matrix_inverse.hpp │ │ │ │ ├── matrix_inverse.inl │ │ │ │ ├── matrix_transform.hpp │ │ │ │ ├── matrix_transform.inl │ │ │ │ ├── noise.hpp │ │ │ │ ├── noise.inl │ │ │ │ ├── packing.hpp │ │ │ │ ├── packing.inl │ │ │ │ ├── quaternion.hpp │ │ │ │ ├── quaternion.inl │ │ │ │ ├── random.hpp │ │ │ │ ├── random.inl │ │ │ │ ├── reciprocal.hpp │ │ │ │ ├── reciprocal.inl │ │ │ │ ├── type_precision.hpp │ │ │ │ ├── type_precision.inl │ │ │ │ ├── type_ptr.hpp │ │ │ │ ├── type_ptr.inl │ │ │ │ ├── ulp.hpp │ │ │ │ └── ulp.inl │ │ │ ├── gtx/ │ │ │ │ ├── associated_min_max.hpp │ │ │ │ ├── associated_min_max.inl │ │ │ │ ├── bit.hpp │ │ │ │ ├── bit.inl │ │ │ │ ├── closest_point.hpp │ │ │ │ ├── closest_point.inl │ │ │ │ ├── color_space.hpp │ │ │ │ ├── color_space.inl │ │ │ │ ├── color_space_YCoCg.hpp │ │ │ │ ├── color_space_YCoCg.inl │ │ │ │ ├── compatibility.hpp │ │ │ │ ├── compatibility.inl │ │ │ │ ├── component_wise.hpp │ │ │ │ ├── component_wise.inl │ │ │ │ ├── constants.hpp │ │ │ │ ├── dual_quaternion.hpp │ │ │ │ ├── dual_quaternion.inl │ │ │ │ ├── epsilon.hpp │ │ │ │ ├── euler_angles.hpp │ │ │ │ ├── euler_angles.inl │ │ │ │ ├── extend.hpp │ │ │ │ ├── extend.inl │ │ │ │ ├── extented_min_max.hpp │ │ │ │ ├── extented_min_max.inl │ │ │ │ ├── fast_exponential.hpp │ │ │ │ ├── fast_exponential.inl │ │ │ │ ├── fast_square_root.hpp │ │ │ │ ├── fast_square_root.inl │ │ │ │ ├── fast_trigonometry.hpp │ │ │ │ ├── fast_trigonometry.inl │ │ │ │ ├── gradient_paint.hpp │ │ │ │ ├── gradient_paint.inl │ │ │ │ ├── handed_coordinate_space.hpp │ │ │ │ ├── handed_coordinate_space.inl │ │ │ │ ├── inertia.hpp │ │ │ │ ├── inertia.inl │ │ │ │ ├── int_10_10_10_2.hpp │ │ │ │ ├── int_10_10_10_2.inl │ │ │ │ ├── integer.hpp │ │ │ │ ├── integer.inl │ │ │ │ ├── intersect.hpp │ │ │ │ ├── intersect.inl │ │ │ │ ├── io.hpp │ │ │ │ ├── io.inl │ │ │ │ ├── log_base.hpp │ │ │ │ ├── log_base.inl │ │ │ │ ├── matrix_cross_product.hpp │ │ │ │ ├── matrix_cross_product.inl │ │ │ │ ├── matrix_interpolation.hpp │ │ │ │ ├── matrix_interpolation.inl │ │ │ │ ├── matrix_major_storage.hpp │ │ │ │ ├── matrix_major_storage.inl │ │ │ │ ├── matrix_operation.hpp │ │ │ │ ├── matrix_operation.inl │ │ │ │ ├── matrix_query.hpp │ │ │ │ ├── matrix_query.inl │ │ │ │ ├── matrix_transform_2d.hpp │ │ │ │ ├── matrix_transform_2d.inl │ │ │ │ ├── mixed_product.hpp │ │ │ │ ├── mixed_product.inl │ │ │ │ ├── multiple.hpp │ │ │ │ ├── multiple.inl │ │ │ │ ├── noise.hpp │ │ │ │ ├── norm.hpp │ │ │ │ ├── norm.inl │ │ │ │ ├── normal.hpp │ │ │ │ ├── normal.inl │ │ │ │ ├── normalize_dot.hpp │ │ │ │ ├── normalize_dot.inl │ │ │ │ ├── number_precision.hpp │ │ │ │ ├── number_precision.inl │ │ │ │ ├── optimum_pow.hpp │ │ │ │ ├── optimum_pow.inl │ │ │ │ ├── orthonormalize.hpp │ │ │ │ ├── orthonormalize.inl │ │ │ │ ├── perpendicular.hpp │ │ │ │ ├── perpendicular.inl │ │ │ │ ├── polar_coordinates.hpp │ │ │ │ ├── polar_coordinates.inl │ │ │ │ ├── projection.hpp │ │ │ │ ├── projection.inl │ │ │ │ ├── quaternion.hpp │ │ │ │ ├── quaternion.inl │ │ │ │ ├── random.hpp │ │ │ │ ├── raw_data.hpp │ │ │ │ ├── raw_data.inl │ │ │ │ ├── reciprocal.hpp │ │ │ │ ├── rotate_normalized_axis.hpp │ │ │ │ ├── rotate_normalized_axis.inl │ │ │ │ ├── rotate_vector.hpp │ │ │ │ ├── rotate_vector.inl │ │ │ │ ├── scalar_relational.hpp │ │ │ │ ├── scalar_relational.inl │ │ │ │ ├── simd_mat4.hpp │ │ │ │ ├── simd_mat4.inl │ │ │ │ ├── simd_quat.hpp │ │ │ │ ├── simd_quat.inl │ │ │ │ ├── simd_vec4.hpp │ │ │ │ ├── simd_vec4.inl │ │ │ │ ├── spline.hpp │ │ │ │ ├── spline.inl │ │ │ │ ├── std_based_type.hpp │ │ │ │ ├── std_based_type.inl │ │ │ │ ├── string_cast.hpp │ │ │ │ ├── string_cast.inl │ │ │ │ ├── transform.hpp │ │ │ │ ├── transform.inl │ │ │ │ ├── transform2.hpp │ │ │ │ ├── transform2.inl │ │ │ │ ├── ulp.hpp │ │ │ │ ├── unsigned_int.hpp │ │ │ │ ├── unsigned_int.inl │ │ │ │ ├── vec1.hpp │ │ │ │ ├── vec1.inl │ │ │ │ ├── vector_angle.hpp │ │ │ │ ├── vector_angle.inl │ │ │ │ ├── vector_query.hpp │ │ │ │ ├── vector_query.inl │ │ │ │ ├── wrap.hpp │ │ │ │ └── wrap.inl │ │ │ ├── integer.hpp │ │ │ ├── mat2x2.hpp │ │ │ ├── mat2x3.hpp │ │ │ ├── mat2x4.hpp │ │ │ ├── mat3x2.hpp │ │ │ ├── mat3x3.hpp │ │ │ ├── mat3x4.hpp │ │ │ ├── mat4x2.hpp │ │ │ ├── mat4x3.hpp │ │ │ ├── mat4x4.hpp │ │ │ ├── matrix.hpp │ │ │ ├── packing.hpp │ │ │ ├── trigonometric.hpp │ │ │ ├── vec2.hpp │ │ │ ├── vec3.hpp │ │ │ ├── vec4.hpp │ │ │ ├── vector_relational.hpp │ │ │ └── virtrev/ │ │ │ └── xstream.hpp │ │ ├── indexbuf.cpp │ │ ├── indexbuf.hpp │ │ ├── input_util.cpp │ │ ├── input_util.hpp │ │ ├── jni_util.cpp │ │ ├── jni_util.hpp │ │ ├── joystick-support.hpp │ │ ├── libgame.map.txt │ │ ├── native_engine.cpp │ │ ├── native_engine.hpp │ │ ├── obstacle.cpp │ │ ├── obstacle.hpp │ │ ├── obstacle_generator.cpp │ │ ├── obstacle_generator.hpp │ │ ├── our_key_codes.hpp │ │ ├── our_shader.cpp │ │ ├── our_shader.hpp │ │ ├── play_scene.cpp │ │ ├── play_scene.hpp │ │ ├── scene.cpp │ │ ├── scene.hpp │ │ ├── scene_manager.cpp │ │ ├── scene_manager.hpp │ │ ├── sfxman.cpp │ │ ├── sfxman.hpp │ │ ├── shader.cpp │ │ ├── shader.hpp │ │ ├── shape_renderer.cpp │ │ ├── shape_renderer.hpp │ │ ├── simplegeom.hpp │ │ ├── tex_quad.cpp │ │ ├── tex_quad.hpp │ │ ├── text_renderer.cpp │ │ ├── text_renderer.hpp │ │ ├── texture.cpp │ │ ├── texture.hpp │ │ ├── ui_scene.cpp │ │ ├── ui_scene.hpp │ │ ├── util.cpp │ │ ├── util.hpp │ │ ├── vertexbuf.cpp │ │ ├── vertexbuf.hpp │ │ ├── welcome_scene.cpp │ │ └── welcome_scene.hpp │ └── res/ │ └── values/ │ ├── strings.xml │ └── styles.xml ├── exceptions/ │ ├── .gitignore │ ├── README.md │ └── app/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── exception_helper.cpp │ │ ├── exception_helper.h │ │ ├── libexceptions.map.txt │ │ └── native-lib.cpp │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ └── exceptions/ │ │ └── MainActivity.kt │ └── res/ │ ├── drawable/ │ │ └── ic_launcher_background.xml │ ├── drawable-v24/ │ │ └── ic_launcher_foreground.xml │ ├── layout/ │ │ └── activity_main.xml │ ├── mipmap-anydpi-v26/ │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ ├── values/ │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ ├── values-night/ │ │ └── themes.xml │ └── xml/ │ ├── backup_rules.xml │ └── data_extraction_rules.xml ├── gles3jni/ │ ├── README.md │ └── app/ │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── RendererES2.cpp │ │ ├── RendererES3.cpp │ │ ├── gles3jni.cpp │ │ ├── gles3jni.h │ │ └── libgles3jni.map.txt │ ├── java/ │ │ └── com/ │ │ └── android/ │ │ └── gles3jni/ │ │ ├── GLES3JNIActivity.java │ │ ├── GLES3JNILib.java │ │ └── GLES3JNIView.java │ └── res/ │ └── values/ │ └── strings.xml ├── gradle/ │ ├── libs.versions.toml │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── hello-gl2/ │ ├── README.md │ └── app/ │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── gl_code.cpp │ │ └── libgl2jni.map.txt │ ├── java/ │ │ └── com/ │ │ └── android/ │ │ └── gl2jni/ │ │ ├── GL2JNIActivity.java │ │ ├── GL2JNILib.java │ │ └── GL2JNIView.java │ └── res/ │ └── values/ │ └── strings.xml ├── hello-jni/ │ ├── README.md │ └── app/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── hello-jni.cpp │ │ └── libhello-jni.map.txt │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ └── hellojni/ │ │ └── HelloJni.kt │ └── res/ │ ├── layout/ │ │ └── activity_hello_jni.xml │ ├── values/ │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── values-w820dp/ │ └── dimens.xml ├── hello-jniCallback/ │ ├── README.md │ └── app/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── hello-jnicallback.cpp │ │ └── libhello-jnicallback.map.txt │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ └── hellojnicallback/ │ │ ├── JniHandler.java │ │ └── MainActivity.java │ └── res/ │ ├── layout/ │ │ └── activity_main.xml │ ├── values/ │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── values-w820dp/ │ └── dimens.xml ├── hello-oboe/ │ └── README.md ├── hello-vulkan/ │ ├── README.md │ └── app/ │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── hellovk.h │ │ ├── libhellovkjni.map.txt │ │ └── vk_main.cpp │ ├── java/ │ │ └── com/ │ │ └── android/ │ │ └── hellovk/ │ │ └── VulkanActivity.kt │ ├── res/ │ │ └── values/ │ │ ├── strings.xml │ │ └── themes.xml │ └── shaders/ │ ├── shader.frag │ └── shader.vert ├── native-activity/ │ ├── README.md │ └── app/ │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── libnative-activity.map.txt │ │ └── main.cpp │ └── res/ │ └── values/ │ └── strings.xml ├── native-audio/ │ ├── README.md │ └── app/ │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── assets/ │ │ └── README.txt │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── android_clip.h │ │ ├── hello_clip.h │ │ ├── libnative-audio-jni.map.txt │ │ └── native-audio-jni.cpp │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ └── nativeaudio/ │ │ └── NativeAudio.java │ └── res/ │ ├── layout/ │ │ └── main.xml │ └── values/ │ └── strings.xml ├── native-codec/ │ ├── README.md │ └── app/ │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── libnative-codec-jni.map.txt │ │ ├── looper.cpp │ │ ├── looper.h │ │ └── native-codec-jni.cpp │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ └── nativecodec/ │ │ ├── MyGLSurfaceView.java │ │ └── NativeCodec.java │ └── res/ │ ├── layout/ │ │ └── main.xml │ └── values/ │ └── strings.xml ├── native-media/ │ └── README.md ├── native-midi/ │ ├── README.md │ └── app/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── AndroidDebug.h │ │ ├── AppMidiManager.cpp │ │ ├── CMakeLists.txt │ │ ├── MainActivity.cpp │ │ ├── MidiSpec.h │ │ └── libnative_midi.map.txt │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ └── nativemidi/ │ │ ├── AppMidiManager.java │ │ ├── MainActivity.java │ │ ├── MidiDataHelper.java │ │ └── MidiSpec.java │ └── res/ │ ├── drawable/ │ │ └── ic_launcher_background.xml │ ├── drawable-v24/ │ │ └── ic_launcher_foreground.xml │ ├── layout/ │ │ └── activity_main.xml │ ├── mipmap-anydpi-v26/ │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ ├── values/ │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── values-w820dp/ │ └── dimens.xml ├── nn-samples/ │ └── README.md ├── orderfile/ │ ├── README.md │ └── app/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── demo.orderfile │ │ ├── liborderfiledemo.map.txt │ │ └── orderfile.cpp │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ └── orderfiledemo/ │ │ └── MainActivity.kt │ └── res/ │ ├── drawable/ │ │ └── ic_launcher_background.xml │ ├── drawable-v24/ │ │ └── ic_launcher_foreground.xml │ ├── layout/ │ │ └── activity_main.xml │ ├── mipmap-anydpi-v26/ │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ ├── values/ │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ └── values-night/ │ └── themes.xml ├── prefab/ │ └── README.md ├── san-angeles/ │ └── README.md ├── sanitizers/ │ ├── .gitignore │ ├── README.md │ └── app/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── asan/ │ │ └── resources/ │ │ └── .gitignore │ ├── hwasan/ │ │ └── resources/ │ │ └── lib/ │ │ └── arm64-v8a/ │ │ └── wrap.sh │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── libsanitizers.map.txt │ │ └── native-lib.cpp │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ └── sanitizers/ │ │ └── MainActivity.kt │ └── res/ │ ├── drawable/ │ │ └── ic_launcher_background.xml │ ├── drawable-v24/ │ │ └── ic_launcher_foreground.xml │ ├── layout/ │ │ └── activity_main.xml │ ├── mipmap-anydpi-v26/ │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ ├── values/ │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ ├── values-night/ │ │ └── themes.xml │ └── xml/ │ ├── backup_rules.xml │ └── data_extraction_rules.xml ├── sensor-graph/ │ ├── README.md │ └── accelerometer/ │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── assets/ │ │ ├── shader.glslf │ │ └── shader.glslv │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── libaccelerometergraph.map.txt │ │ └── sensorgraph.cpp │ ├── java/ │ │ └── com/ │ │ └── android/ │ │ └── accelerometergraph/ │ │ ├── AccelerometerGraphActivity.java │ │ └── AccelerometerGraphJNI.java │ └── res/ │ └── values/ │ └── strings.xml ├── settings.gradle ├── teapots/ │ ├── .gitignore │ ├── README.md │ ├── choreographer-30fps/ │ │ ├── build.gradle │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── Shaders/ │ │ │ ├── ShaderPlain.fsh │ │ │ └── VS_ShaderPlain.vsh │ │ ├── cpp/ │ │ │ ├── CMakeLists.txt │ │ │ ├── ChoreographerNativeActivity.cpp │ │ │ ├── TeapotRenderer.cpp │ │ │ ├── TeapotRenderer.h │ │ │ ├── libChoreographerNativeActivity.map.txt │ │ │ └── teapot.inl │ │ ├── java/ │ │ │ └── com/ │ │ │ └── sample/ │ │ │ ├── choreographer/ │ │ │ │ ├── ChoreographerApplication.java │ │ │ │ └── ChoreographerNativeActivity.java │ │ │ └── helper/ │ │ │ └── NDKHelper.java │ │ └── res/ │ │ ├── layout/ │ │ │ └── widgets.xml │ │ ├── values/ │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-v11/ │ │ │ └── styles.xml │ │ └── values-v14/ │ │ └── styles.xml │ ├── classic-teapot/ │ │ ├── build.gradle │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── Shaders/ │ │ │ ├── ShaderPlain.fsh │ │ │ └── VS_ShaderPlain.vsh │ │ ├── cpp/ │ │ │ ├── CMakeLists.txt │ │ │ ├── TeapotNativeActivity.cpp │ │ │ ├── TeapotRenderer.cpp │ │ │ ├── TeapotRenderer.h │ │ │ ├── libTeapotNativeActivity.map.txt │ │ │ └── teapot.inl │ │ ├── java/ │ │ │ └── com/ │ │ │ └── sample/ │ │ │ ├── helper/ │ │ │ │ └── NDKHelper.java │ │ │ └── teapot/ │ │ │ ├── TeapotApplication.java │ │ │ └── TeapotNativeActivity.java │ │ └── res/ │ │ ├── layout/ │ │ │ └── widgets.xml │ │ ├── values/ │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-v11/ │ │ │ └── styles.xml │ │ └── values-v14/ │ │ └── styles.xml │ ├── common/ │ │ └── ndk_helper/ │ │ ├── CMakeLists.txt │ │ ├── GLContext.cpp │ │ ├── GLContext.h │ │ ├── JNIHelper.cpp │ │ ├── JNIHelper.h │ │ ├── NDKHelper.h │ │ ├── gestureDetector.cpp │ │ ├── gestureDetector.h │ │ ├── gl3stub.c │ │ ├── gl3stub.cpp │ │ ├── gl3stub.h │ │ ├── interpolator.cpp │ │ ├── interpolator.h │ │ ├── perfMonitor.cpp │ │ ├── perfMonitor.h │ │ ├── sensorManager.cpp │ │ ├── sensorManager.h │ │ ├── shader.cpp │ │ ├── shader.h │ │ ├── tapCamera.cpp │ │ ├── tapCamera.h │ │ ├── vecmath.cpp │ │ └── vecmath.h │ ├── image-decoder/ │ │ ├── README.md │ │ ├── build.gradle │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── Shaders/ │ │ │ ├── 2DTexture.fsh │ │ │ ├── 2DTexture.vsh │ │ │ ├── Cubemap.fsh │ │ │ ├── Cubemap.vsh │ │ │ ├── ShaderPlain.fsh │ │ │ └── VS_ShaderPlain.vsh │ │ ├── cpp/ │ │ │ ├── CMakeLists.txt │ │ │ ├── ImageDecoderRender.cpp │ │ │ ├── ImageDecoderRender.h │ │ │ ├── TeapotNativeActivity.cpp │ │ │ ├── TeapotRenderer.cpp │ │ │ ├── TeapotRenderer.h │ │ │ ├── Texture.cpp │ │ │ ├── Texture.h │ │ │ ├── android_debug.h │ │ │ ├── libImageDecoderNativeActivity.map.txt │ │ │ └── teapot.inl │ │ ├── java/ │ │ │ └── com/ │ │ │ └── sample/ │ │ │ ├── helper/ │ │ │ │ └── NDKHelper.java │ │ │ └── imagedecoder/ │ │ │ ├── TeapotApplication.java │ │ │ └── TeapotNativeActivity.java │ │ └── res/ │ │ ├── layout/ │ │ │ └── widgets.xml │ │ ├── values/ │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-v11/ │ │ │ └── styles.xml │ │ └── values-v14/ │ │ └── styles.xml │ ├── more-teapots/ │ │ ├── build.gradle │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── Shaders/ │ │ │ ├── ShaderPlain.fsh │ │ │ ├── ShaderPlainES3.fsh │ │ │ ├── VS_ShaderPlain.vsh │ │ │ └── VS_ShaderPlainES3.vsh │ │ ├── cpp/ │ │ │ ├── CMakeLists.txt │ │ │ ├── MoreTeapotsNativeActivity.cpp │ │ │ ├── MoreTeapotsRenderer.cpp │ │ │ ├── MoreTeapotsRenderer.h │ │ │ ├── libMoreTeapotsNativeActivity.map.txt │ │ │ └── teapot.inl │ │ ├── java/ │ │ │ └── com/ │ │ │ └── sample/ │ │ │ ├── helper/ │ │ │ │ └── NDKHelper.java │ │ │ └── moreteapots/ │ │ │ ├── MoreTeapotsApplication.java │ │ │ └── MoreTeapotsNativeActivity.java │ │ └── res/ │ │ ├── layout/ │ │ │ └── widgets.xml │ │ ├── values/ │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-v11/ │ │ │ └── styles.xml │ │ └── values-v14/ │ │ └── styles.xml │ └── textured-teapot/ │ ├── README.md │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── assets/ │ │ ├── Shaders/ │ │ │ ├── 2DTexture.fsh │ │ │ ├── 2DTexture.vsh │ │ │ ├── Cubemap.fsh │ │ │ ├── Cubemap.vsh │ │ │ ├── ShaderPlain.fsh │ │ │ └── VS_ShaderPlain.vsh │ │ └── Textures/ │ │ ├── back.tga │ │ ├── bottom.tga │ │ ├── front.tga │ │ ├── left.tga │ │ ├── right.tga │ │ └── top.tga │ ├── cpp/ │ │ ├── AssetUtil.cpp │ │ ├── AssetUtil.h │ │ ├── CMakeLists.txt │ │ ├── TeapotNativeActivity.cpp │ │ ├── TeapotRenderer.cpp │ │ ├── TeapotRenderer.h │ │ ├── Texture.cpp │ │ ├── Texture.h │ │ ├── TexturedTeapotRender.cpp │ │ ├── TexturedTeapotRender.h │ │ ├── android_debug.h │ │ ├── libTexturedTeapotNativeActivity.map.txt │ │ └── teapot.inl │ ├── java/ │ │ └── com/ │ │ └── sample/ │ │ ├── helper/ │ │ │ └── NDKHelper.java │ │ └── texturedteapot/ │ │ ├── TeapotApplication.java │ │ └── TeapotNativeActivity.java │ └── res/ │ ├── layout/ │ │ └── widgets.xml │ ├── values/ │ │ ├── strings.xml │ │ └── styles.xml │ ├── values-v11/ │ │ └── styles.xml │ └── values-v14/ │ └── styles.xml ├── unit-test/ │ ├── .gitignore │ ├── README.md │ └── app/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── example/ │ │ └── unittest/ │ │ └── NativeTests.kt │ └── main/ │ ├── AndroidManifest.xml │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── adder.cpp │ │ ├── adder.h │ │ ├── adder_test.cpp │ │ ├── libunittest.map.txt │ │ └── native-lib.cpp │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ └── unittest/ │ │ └── MainActivity.kt │ └── res/ │ ├── drawable/ │ │ └── ic_launcher_background.xml │ ├── drawable-v24/ │ │ └── ic_launcher_foreground.xml │ ├── layout/ │ │ └── activity_main.xml │ ├── mipmap-anydpi-v26/ │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ ├── values/ │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ ├── values-night/ │ │ └── themes.xml │ └── xml/ │ ├── backup_rules.xml │ └── data_extraction_rules.xml └── vectorization/ ├── .gitignore ├── README.md ├── build.gradle.kts └── src/ └── main/ ├── AndroidManifest.xml ├── cpp/ │ ├── CMakeLists.txt │ ├── auto_vectorization.h │ ├── benchmark.cpp │ ├── benchmark.h │ ├── clang_vector.h │ ├── jni.cpp │ ├── libapp.map.txt │ ├── matrix.h │ └── omp_simd.h ├── java/ │ └── com/ │ └── android/ │ └── ndk/ │ └── samples/ │ └── vectorization/ │ ├── VectorizationActivity.kt │ └── ui/ │ └── theme/ │ ├── Color.kt │ ├── Theme.kt │ └── Type.kt └── res/ ├── drawable/ │ └── ic_launcher_background.xml ├── drawable-v24/ │ └── ic_launcher_foreground.xml ├── mipmap-anydpi-v26/ │ ├── ic_launcher.xml │ └── ic_launcher_round.xml └── values/ ├── colors.xml ├── strings.xml └── themes.xml