diff --git a/library/build.gradle b/library/build.gradle
index c13645463..76920e427 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -53,4 +53,4 @@ ext {
// apply from: 'https://gist.githubusercontent.com/wasabeef/cf14805bee509baf7461974582f17d26/raw/bintray-v1.gradle'
// apply from: 'https://gist.githubusercontent.com/wasabeef/cf14805bee509baf7461974582f17d26/raw/install-v1.gradle'
-apply from: 'https://gist.githubusercontent.com/wasabeef/2f2ae8d97b429e7d967128125dc47854/raw/maven-central-v1.gradle'
\ No newline at end of file
+//apply from: 'https://gist.githubusercontent.com/wasabeef/2f2ae8d97b429e7d967128125dc47854/raw/maven-central-v1.gradle'
\ No newline at end of file
diff --git a/library/src/main/java/jp/co/cyberagent/android/gpuimage/filter/GPUImageFilterGroup.java b/library/src/main/java/jp/co/cyberagent/android/gpuimage/filter/GPUImageFilterGroup.java
index 8735dbcdc..09aed7c54 100644
--- a/library/src/main/java/jp/co/cyberagent/android/gpuimage/filter/GPUImageFilterGroup.java
+++ b/library/src/main/java/jp/co/cyberagent/android/gpuimage/filter/GPUImageFilterGroup.java
@@ -46,6 +46,10 @@ public class GPUImageFilterGroup extends GPUImageFilter {
private final FloatBuffer glTextureBuffer;
private final FloatBuffer glTextureFlipBuffer;
+ private float mBackgroundRed;
+ private float mBackgroundGreen;
+ private float mBackgroundBlue;
+
/**
* Instantiates a new GPUImageFilterGroup with no filters.
*/
@@ -196,12 +200,12 @@ public void onDraw(final int textureId, final FloatBuffer cubeBuffer,
boolean isNotLast = i < size - 1;
if (isNotLast) {
GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, frameBuffers[i]);
- GLES20.glClearColor(0, 0, 0, 0);
+ GLES20.glClearColor(mBackgroundRed, mBackgroundGreen, mBackgroundBlue, 1);
}
- if (i == 0) {
+ if (i == size - 1) {
filter.onDraw(previousTexture, cubeBuffer, textureBuffer);
- } else if (i == size - 1) {
+ } else if (i == 0) {
filter.onDraw(previousTexture, glCubeBuffer, (size % 2 == 0) ? glTextureFlipBuffer : glTextureBuffer);
} else {
filter.onDraw(previousTexture, glCubeBuffer, glTextureBuffer);
@@ -252,4 +256,10 @@ public void updateMergedFilters() {
mergedFilters.add(filter);
}
}
+
+ public void setBackgroundColor(float red, float green, float blue) {
+ mBackgroundRed = red;
+ mBackgroundGreen = green;
+ mBackgroundBlue = blue;
+ }
}
diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml
index a45d39b0d..6e92741b2 100644
--- a/sample/src/main/AndroidManifest.xml
+++ b/sample/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
android:name=".activity.CameraActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar" />
+
\ No newline at end of file
diff --git a/sample/src/main/assets/image.png b/sample/src/main/assets/image.png
new file mode 100644
index 000000000..087663307
Binary files /dev/null and b/sample/src/main/assets/image.png differ
diff --git a/sample/src/main/java/jp/co/cyberagent/android/gpuimage/sample/activity/GalleryActivity.kt b/sample/src/main/java/jp/co/cyberagent/android/gpuimage/sample/activity/GalleryActivity.kt
index ab45d25b2..a0589a7ec 100644
--- a/sample/src/main/java/jp/co/cyberagent/android/gpuimage/sample/activity/GalleryActivity.kt
+++ b/sample/src/main/java/jp/co/cyberagent/android/gpuimage/sample/activity/GalleryActivity.kt
@@ -23,6 +23,7 @@ import android.widget.SeekBar
import android.widget.SeekBar.OnSeekBarChangeListener
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
+import jp.co.cyberagent.android.gpuimage.GPUImage
import jp.co.cyberagent.android.gpuimage.GPUImageView
import jp.co.cyberagent.android.gpuimage.filter.GPUImageFilter
import jp.co.cyberagent.android.gpuimage.sample.GPUImageFilterTools
@@ -39,6 +40,8 @@ class GalleryActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_gallery)
+ gpuImageView.setScaleType(GPUImage.ScaleType.CENTER_INSIDE)
+
seekBar.setOnSeekBarChangeListener(object : OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
filterAdjuster?.adjust(progress)
diff --git a/sample/src/main/java/jp/co/cyberagent/android/gpuimage/sample/activity/ImageActivity.kt b/sample/src/main/java/jp/co/cyberagent/android/gpuimage/sample/activity/ImageActivity.kt
new file mode 100644
index 000000000..e18905ab8
--- /dev/null
+++ b/sample/src/main/java/jp/co/cyberagent/android/gpuimage/sample/activity/ImageActivity.kt
@@ -0,0 +1,44 @@
+package jp.co.cyberagent.android.gpuimage.sample.activity
+
+import android.graphics.BitmapFactory
+import android.net.Uri
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import jp.co.cyberagent.android.gpuimage.GPUImage
+import jp.co.cyberagent.android.gpuimage.GPUImageView
+import jp.co.cyberagent.android.gpuimage.filter.*
+import jp.co.cyberagent.android.gpuimage.sample.R
+
+/*
+ * Copyright (C) 2018 CyberAgent, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+class ImageActivity : AppCompatActivity() {
+
+ private val gpuImage: GPUImageView by lazy { findViewById(R.id.gpu_image) }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_image)
+ gpuImage.setScaleType(GPUImage.ScaleType.CENTER_INSIDE)
+ gpuImage.filter = GPUImageFilterGroup(listOf(GPUImageBrightnessFilter(),
+ GPUImageSaturationFilter(),
+ GPUImageWhiteBalanceFilter(),
+ GPUImageSharpenFilter())).apply {
+ setBackgroundColor(0.27f, 0.27f, 0.27f)
+ }
+ gpuImage.setBackgroundColor(1f,1f,1f)
+ gpuImage.setImage(Uri.parse("file:///android_asset/image.png"))
+ }
+}
\ No newline at end of file
diff --git a/sample/src/main/java/jp/co/cyberagent/android/gpuimage/sample/activity/MainActivity.kt b/sample/src/main/java/jp/co/cyberagent/android/gpuimage/sample/activity/MainActivity.kt
index 61957ff3f..8cbccc615 100644
--- a/sample/src/main/java/jp/co/cyberagent/android/gpuimage/sample/activity/MainActivity.kt
+++ b/sample/src/main/java/jp/co/cyberagent/android/gpuimage/sample/activity/MainActivity.kt
@@ -35,6 +35,11 @@ class MainActivity : AppCompatActivity() {
findViewById(R.id.button_gallery).setOnClickListener {
startActivity(Intent(this, GalleryActivity::class.java))
}
+
+ findViewById(R.id.button_image).setOnClickListener {
+ startActivity(Intent(this,ImageActivity::class.java))
+ }
+
findViewById(R.id.button_camera).setOnClickListener {
if (!hasCameraPermission() || !hasStoragePermission()) {
ActivityCompat.requestPermissions(
diff --git a/sample/src/main/res/layout/activity_image.xml b/sample/src/main/res/layout/activity_image.xml
new file mode 100644
index 000000000..497d71274
--- /dev/null
+++ b/sample/src/main/res/layout/activity_image.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml
index b0ae0fbb9..e8288d9b2 100644
--- a/sample/src/main/res/layout/activity_main.xml
+++ b/sample/src/main/res/layout/activity_main.xml
@@ -10,6 +10,15 @@
android:gravity="center"
android:orientation="vertical">
+
+