├── .gitignore ├── .idea └── .gitignore ├── README.md ├── build.gradle ├── demo ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── atech │ │ └── cameraapi │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── atech │ │ │ └── cameraapi │ │ │ ├── FilterAdapter.java │ │ │ ├── FilterInfo.java │ │ │ ├── MainActivity.java │ │ │ └── SelectedListener.java │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── camera.png │ │ ├── capture.png │ │ ├── filter.png │ │ ├── filter_thumb_1977.jpg │ │ ├── filter_thumb_amoro.jpg │ │ ├── filter_thumb_antique.png │ │ ├── filter_thumb_beauty.png │ │ ├── filter_thumb_blackcat.png │ │ ├── filter_thumb_brannan.jpg │ │ ├── filter_thumb_brooklyn.jpg │ │ ├── filter_thumb_calm.png │ │ ├── filter_thumb_cool.png │ │ ├── filter_thumb_crayon.jpg │ │ ├── filter_thumb_earlybird.jpg │ │ ├── filter_thumb_emerald.png │ │ ├── filter_thumb_evergreen.png │ │ ├── filter_thumb_fairytale.png │ │ ├── filter_thumb_freud.jpg │ │ ├── filter_thumb_healthy.png │ │ ├── filter_thumb_hefe.jpg │ │ ├── filter_thumb_hudson.jpg │ │ ├── filter_thumb_inkwell.jpg │ │ ├── filter_thumb_kevin.jpg │ │ ├── filter_thumb_latte.png │ │ ├── filter_thumb_lomo.jpg │ │ ├── filter_thumb_nashville.jpg │ │ ├── filter_thumb_nostalgia.png │ │ ├── filter_thumb_original.png │ │ ├── filter_thumb_piaxr.jpg │ │ ├── filter_thumb_rise.jpg │ │ ├── filter_thumb_romance.png │ │ ├── filter_thumb_sakura.png │ │ ├── filter_thumb_sierra.jpg │ │ ├── filter_thumb_sketch.png │ │ ├── filter_thumb_sunrise.png │ │ ├── filter_thumb_sunset.png │ │ ├── filter_thumb_sutro.jpg │ │ ├── filter_thumb_sweets.png │ │ ├── filter_thumb_tender.png │ │ ├── filter_thumb_toastero.jpg │ │ ├── filter_thumb_valencia.jpg │ │ ├── filter_thumb_walden.jpg │ │ ├── filter_thumb_warm.png │ │ ├── filter_thumb_whitecat.png │ │ ├── filter_thumb_xpro.jpg │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.xml │ │ ├── ic_switch_camera.png │ │ ├── selector_filter_selected.xml │ │ ├── take_filter_confirm_btn_skin_flat.png │ │ ├── take_filter_favorite_btn01_layer00_skin_flat.png │ │ ├── take_filter_favorite_btn01_layer01_skin_flat.png │ │ ├── take_filter_favorite_btn02_skin_flat.png │ │ ├── take_filter_favorite_icon01_skin_flat.png │ │ ├── take_filter_favorite_icon02_skin_flat.png │ │ └── take_filter_random_btn_skin_flat.png │ │ ├── layout │ │ ├── activity_main.xml │ │ └── item_filter.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── atech │ └── cameraapi │ └── ExampleUnitTest.java ├── glcamera ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── atech │ │ └── glcamera │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ └── shaders │ │ │ ├── fshader_0.glsl │ │ │ ├── fshader_1.glsl │ │ │ ├── fshader_10.glsl │ │ │ ├── fshader_11.glsl │ │ │ ├── fshader_12.glsl │ │ │ ├── fshader_13.glsl │ │ │ ├── fshader_14.glsl │ │ │ ├── fshader_15.glsl │ │ │ ├── fshader_16.glsl │ │ │ ├── fshader_17.glsl │ │ │ ├── fshader_18.glsl │ │ │ ├── fshader_19.glsl │ │ │ ├── fshader_2.glsl │ │ │ ├── fshader_23.glsl │ │ │ ├── fshader_24.glsl │ │ │ ├── fshader_25.glsl │ │ │ ├── fshader_26.glsl │ │ │ ├── fshader_27.glsl │ │ │ ├── fshader_28.glsl │ │ │ ├── fshader_29.glsl │ │ │ ├── fshader_3.glsl │ │ │ ├── fshader_30.glsl │ │ │ ├── fshader_31.glsl │ │ │ ├── fshader_32.glsl │ │ │ ├── fshader_33.glsl │ │ │ ├── fshader_4.glsl │ │ │ ├── fshader_5.glsl │ │ │ ├── fshader_6.glsl │ │ │ ├── fshader_7.glsl │ │ │ ├── fshader_8.glsl │ │ │ └── fshader_9.glsl │ ├── cpp │ │ ├── CMakeLists.txt │ │ ├── JniImpl.cpp │ │ ├── context │ │ │ ├── RenderContext.cpp │ │ │ └── RenderContext.h │ │ ├── glm │ │ │ ├── CMakeLists.txt │ │ │ ├── common.hpp │ │ │ ├── detail │ │ │ │ ├── _features.hpp │ │ │ │ ├── _fixes.hpp │ │ │ │ ├── _noise.hpp │ │ │ │ ├── _swizzle.hpp │ │ │ │ ├── _swizzle_func.hpp │ │ │ │ ├── _vectorize.hpp │ │ │ │ ├── dummy.cpp │ │ │ │ ├── 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 │ │ │ │ ├── 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 │ │ │ │ ├── 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 │ │ │ │ ├── type_vec4_avx.inl │ │ │ │ ├── type_vec4_avx2.inl │ │ │ │ └── type_vec4_sse2.inl │ │ │ ├── exponential.hpp │ │ │ ├── ext.hpp │ │ │ ├── fwd.hpp │ │ │ ├── geometric.hpp │ │ │ ├── glm.hpp │ │ │ ├── gtc │ │ │ │ ├── bitfield.hpp │ │ │ │ ├── bitfield.inl │ │ │ │ ├── constants.hpp │ │ │ │ ├── constants.inl │ │ │ │ ├── epsilon.hpp │ │ │ │ ├── epsilon.inl │ │ │ │ ├── integer.hpp │ │ │ │ ├── integer.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 │ │ │ │ ├── round.hpp │ │ │ │ ├── round.inl │ │ │ │ ├── type_precision.hpp │ │ │ │ ├── type_precision.inl │ │ │ │ ├── type_ptr.hpp │ │ │ │ ├── type_ptr.inl │ │ │ │ ├── ulp.hpp │ │ │ │ ├── ulp.inl │ │ │ │ ├── vec1.hpp │ │ │ │ └── vec1.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 │ │ │ │ ├── common.hpp │ │ │ │ ├── common.inl │ │ │ │ ├── compatibility.hpp │ │ │ │ ├── compatibility.inl │ │ │ │ ├── component_wise.hpp │ │ │ │ ├── component_wise.inl │ │ │ │ ├── dual_quaternion.hpp │ │ │ │ ├── dual_quaternion.inl │ │ │ │ ├── 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 │ │ │ │ ├── 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_decompose.hpp │ │ │ │ ├── matrix_decompose.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 │ │ │ │ ├── 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 │ │ │ │ ├── range.hpp │ │ │ │ ├── raw_data.hpp │ │ │ │ ├── raw_data.inl │ │ │ │ ├── rotate_normalized_axis.hpp │ │ │ │ ├── rotate_normalized_axis.inl │ │ │ │ ├── rotate_vector.hpp │ │ │ │ ├── rotate_vector.inl │ │ │ │ ├── scalar_multiplication.hpp │ │ │ │ ├── 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 │ │ │ │ ├── type_aligned.hpp │ │ │ │ ├── type_aligned.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 │ │ ├── render │ │ │ ├── ByteFlowDef.h │ │ │ ├── ByteFlowRender.h │ │ │ ├── GLByteFlowRender.cpp │ │ │ ├── GLByteFlowRender.h │ │ │ ├── GLShaders.h │ │ │ ├── GLUtils.cpp │ │ │ └── GLUtils.h │ │ └── util │ │ │ ├── ImageDef.h │ │ │ ├── LogUtil.h │ │ │ └── SyncLock.h │ ├── java │ │ └── com │ │ │ └── atech │ │ │ └── glcamera │ │ │ ├── CameraActivity.java │ │ │ ├── MyRecyclerViewAdapter.java │ │ │ ├── camera │ │ │ ├── Camera2FrameCallback.java │ │ │ ├── Camera2Wrapper.java │ │ │ └── CameraUtil.java │ │ │ ├── frame │ │ │ ├── ByteFlowFrame.java │ │ │ └── FrameUtil.java │ │ │ └── render │ │ │ ├── ByteFlowRender.java │ │ │ └── GLByteFlowRender.java │ └── res │ │ ├── drawable │ │ ├── ascii_mapping.png │ │ ├── bg_camera.xml │ │ ├── camera.png │ │ ├── dzzz.jpg │ │ ├── lut_a.png │ │ ├── lut_b.png │ │ ├── lut_c.png │ │ └── lut_d.png │ │ ├── layout │ │ ├── activity_camera.xml │ │ ├── sample_item_layout.xml │ │ └── sample_selected_layout.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── atech │ └── glcamera │ └── ExampleUnitTest.java ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── images ├── tu1.jpg ├── tu2.jpg └── tu3.gif └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/codeStyles 5 | /.idea/caches 6 | /.idea/libraries 7 | /.idea/modules.xml 8 | /.idea/workspace.xml 9 | /.idea/navEditor.xml 10 | /.idea/assetWizardSettings.xml 11 | /.idea/tasks.xml 12 | /.idea/.name 13 | /.idea/compiler.xml 14 | /.idea/copyright/profiles_settings.xml 15 | /.idea/encodings.xml 16 | /.idea/scopes/scope_settings.xml 17 | /.idea/gradle.xml 18 | /.idea/jarRepositories.xml 19 | /.idea/misc.xml 20 | /.idea/runConfigurations.xml 21 | /.idea/vcs.xml 22 | .DS_Store 23 | /build 24 | /captures 25 | .externalNativeBuild 26 | .cxx 27 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | 5 | repositories { 6 | google() 7 | jcenter() 8 | } 9 | dependencies { 10 | classpath 'com.android.tools.build:gradle:4.1.2' 11 | 12 | 13 | // NOTE: Do not place your application dependencies here; they belong 14 | // in the individual module build.gradle files 15 | } 16 | } 17 | 18 | allprojects { 19 | repositories { 20 | google() 21 | jcenter() 22 | } 23 | } 24 | 25 | task clean(type: Delete) { 26 | delete rootProject.buildDir 27 | } 28 | -------------------------------------------------------------------------------- /demo/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /demo/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 30 5 | 6 | defaultConfig { 7 | applicationId "com.atech.cameraapi" 8 | minSdkVersion 21 9 | targetSdkVersion 30 10 | versionCode 1 11 | versionName "1.0" 12 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | 21 | compileOptions { 22 | sourceCompatibility 1.8 23 | targetCompatibility 1.8 24 | } 25 | 26 | } 27 | 28 | dependencies { 29 | implementation fileTree(include: ['*.jar'], dir: 'libs') 30 | implementation 'androidx.appcompat:appcompat:1.2.0-alpha03' 31 | implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4' 32 | testImplementation 'junit:junit:4.12' 33 | androidTestImplementation 'androidx.test:runner:1.3.0-alpha04' 34 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0-alpha04' 35 | implementation project(':glcamera') 36 | implementation 'com.google.android.material:material:1.2.0-alpha05' 37 | } 38 | -------------------------------------------------------------------------------- /demo/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /demo/src/androidTest/java/com/atech/cameraapi/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.atech.cameraapi; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("com.atech.cameraapi", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /demo/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /demo/src/main/java/com/atech/cameraapi/FilterInfo.java: -------------------------------------------------------------------------------- 1 | package com.atech.cameraapi; 2 | 3 | public class FilterInfo { 4 | 5 | public int filterImg; 6 | public String filterName; 7 | 8 | public FilterInfo(int filterImg,String filterName){ 9 | 10 | this.filterImg = filterImg; 11 | this.filterName = filterName; 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /demo/src/main/java/com/atech/cameraapi/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.atech.cameraapi; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | import android.view.View; 6 | import android.widget.Button; 7 | 8 | import androidx.appcompat.app.AppCompatActivity; 9 | 10 | import com.atech.glcamera.CameraActivity; 11 | 12 | public class MainActivity extends AppCompatActivity { 13 | 14 | @Override 15 | protected void onCreate(Bundle savedInstanceState) { 16 | super.onCreate(savedInstanceState); 17 | setContentView(R.layout.activity_main); 18 | 19 | Button btn = findViewById(R.id.btn); 20 | btn.setOnClickListener(new View.OnClickListener() { 21 | @Override 22 | public void onClick(View view) { 23 | 24 | startActivity(new Intent(MainActivity.this, CameraActivity.class)); 25 | } 26 | }); 27 | 28 | } 29 | 30 | 31 | } 32 | -------------------------------------------------------------------------------- /demo/src/main/java/com/atech/cameraapi/SelectedListener.java: -------------------------------------------------------------------------------- 1 | package com.atech.cameraapi; 2 | 3 | public interface SelectedListener { 4 | 5 | void onFilterSelected(int pos); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /demo/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /demo/src/main/res/drawable/camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/camera.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/capture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/capture.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_1977.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_1977.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_amoro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_amoro.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_antique.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_antique.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_beauty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_beauty.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_blackcat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_blackcat.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_brannan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_brannan.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_brooklyn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_brooklyn.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_calm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_calm.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_cool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_cool.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_crayon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_crayon.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_earlybird.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_earlybird.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_emerald.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_emerald.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_evergreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_evergreen.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_fairytale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_fairytale.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_freud.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_freud.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_healthy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_healthy.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_hefe.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_hefe.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_hudson.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_hudson.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_inkwell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_inkwell.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_kevin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_kevin.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_latte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_latte.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_lomo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_lomo.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_nashville.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_nashville.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_nostalgia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_nostalgia.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_original.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_original.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_piaxr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_piaxr.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_rise.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_rise.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_romance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_romance.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_sakura.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_sakura.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_sierra.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_sierra.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_sketch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_sketch.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_sunrise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_sunrise.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_sunset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_sunset.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_sutro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_sutro.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_sweets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_sweets.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_tender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_tender.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_toastero.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_toastero.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_valencia.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_valencia.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_walden.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_walden.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_warm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_warm.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_whitecat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_whitecat.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/filter_thumb_xpro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/filter_thumb_xpro.jpg -------------------------------------------------------------------------------- /demo/src/main/res/drawable/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/ic_launcher.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/ic_switch_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/ic_switch_camera.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/selector_filter_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /demo/src/main/res/drawable/take_filter_confirm_btn_skin_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/take_filter_confirm_btn_skin_flat.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/take_filter_favorite_btn01_layer00_skin_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/take_filter_favorite_btn01_layer00_skin_flat.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/take_filter_favorite_btn01_layer01_skin_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/take_filter_favorite_btn01_layer01_skin_flat.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/take_filter_favorite_btn02_skin_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/take_filter_favorite_btn02_skin_flat.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/take_filter_favorite_icon01_skin_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/take_filter_favorite_icon01_skin_flat.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/take_filter_favorite_icon02_skin_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/take_filter_favorite_icon02_skin_flat.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable/take_filter_random_btn_skin_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moo611/opencamera-for-android/a1aa989e60cccd976b4b055104f881230ca5aac7/demo/src/main/res/drawable/take_filter_random_btn_skin_flat.png -------------------------------------------------------------------------------- /demo/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 |