diff --git a/app/src/main/cpp/image.c b/app/src/main/cpp/image.c
index a210c5560..69627b17f 100644
--- a/app/src/main/cpp/image.c
+++ b/app/src/main/cpp/image.c
@@ -122,29 +122,6 @@ bool copy_pixels(const void *src, int src_w, int src_h, int src_x, int src_y,
return true;
}
-JNIEXPORT void JNICALL
-Java_com_hippo_image_Image_nativeRender(JNIEnv *env, jclass clazz, jobject srcBitmap, jint src_x,
- jint src_y, jobject dst, jint dst_x, jint dst_y, jint width,
- jint height) {
- AndroidBitmapInfo dstInfo;
- AndroidBitmapInfo srcInfo;
- void *srcPixels = NULL;
- void *dstPixels = NULL;
-
- AndroidBitmap_lockPixels(env, srcBitmap, &srcPixels);
- AndroidBitmap_lockPixels(env, dst, &dstPixels);
- AndroidBitmap_getInfo(env, srcBitmap, &srcInfo);
- AndroidBitmap_getInfo(env, dst, &dstInfo);
-
- copy_pixels(srcPixels, srcInfo.width, srcInfo.height, src_x, src_y, dstPixels, dstInfo.width,
- dstInfo.height, dst_x, dst_y,
- width,
- height);
-
- AndroidBitmap_unlockPixels(env, dst);
- AndroidBitmap_unlockPixels(env, srcBitmap);
-}
-
JNIEXPORT void JNICALL
Java_com_hippo_image_Image_nativeTexImage(JNIEnv *env, jclass clazz, jobject bitmap, jboolean init,
jint offset_x, jint offset_y, jint width, jint height) {
diff --git a/app/src/main/java/com/hippo/ehviewer/gallery/ArchiveGalleryProvider.java b/app/src/main/java/com/hippo/ehviewer/gallery/ArchiveGalleryProvider.java
index 71f7307f3..7156214e7 100644
--- a/app/src/main/java/com/hippo/ehviewer/gallery/ArchiveGalleryProvider.java
+++ b/app/src/main/java/com/hippo/ehviewer/gallery/ArchiveGalleryProvider.java
@@ -335,7 +335,7 @@ public class ArchiveGalleryProvider extends GalleryProvider2 {
Image image = null;
if (buffer != null) {
try {
- image = Image.decode(buffer, false, () -> {
+ image = Image.decode(buffer, () -> {
archiveAccessor.releaseByteBuffer(buffer);
return null;
});
diff --git a/app/src/main/java/com/hippo/ehviewer/gallery/DirGalleryProvider.java b/app/src/main/java/com/hippo/ehviewer/gallery/DirGalleryProvider.java
index 2ae02be96..08ac607a1 100644
--- a/app/src/main/java/com/hippo/ehviewer/gallery/DirGalleryProvider.java
+++ b/app/src/main/java/com/hippo/ehviewer/gallery/DirGalleryProvider.java
@@ -259,7 +259,7 @@ public class DirGalleryProvider extends GalleryProvider2 implements Runnable {
InputStream is = null;
try {
is = files[index].openInputStream();
- Image image = Image.decode((FileInputStream) is, false);
+ Image image = Image.decode((FileInputStream) is);
mDecodingIndex.lazySet(GalleryPageView.INVALID_INDEX);
notifyPageSucceed(index, image);
} catch (IOException e) {
diff --git a/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java b/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java
index f89766e62..25a2aed2d 100644
--- a/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java
+++ b/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java
@@ -1679,7 +1679,7 @@ public final class SpiderQueen implements Runnable {
if (is != null) {
try {
- image = Image.decode(((FileInputStream) is), false);
+ image = Image.decode(((FileInputStream) is));
} catch (ImageDecoder.DecodeException e) {
e.printStackTrace();
} finally {
diff --git a/app/src/main/java/com/hippo/glview/image/ImageWrapper.java b/app/src/main/java/com/hippo/glview/image/ImageWrapper.java
index f4ef02ce9..2007e87e4 100644
--- a/app/src/main/java/com/hippo/glview/image/ImageWrapper.java
+++ b/app/src/main/java/com/hippo/glview/image/ImageWrapper.java
@@ -122,15 +122,6 @@ public class ImageWrapper {
return mCut.height();
}
- /**
- * @see Image#render(int, int, Bitmap, int, int, int, int)
- */
- public void render(int srcX, int srcY, Bitmap dst, int dstX, int dstY,
- int width, int height, boolean fillBlank, int defaultColor) {
- mImage.render(srcX + mCut.left, srcY + mCut.top, dst, dstX, dstY,
- width, height);
- }
-
/**
* @see Image#texImage(boolean, int, int, int, int)
*/
diff --git a/app/src/main/java/com/hippo/image/Image.kt b/app/src/main/java/com/hippo/image/Image.kt
index 6249f6382..10fd2038b 100644
--- a/app/src/main/java/com/hippo/image/Image.kt
+++ b/app/src/main/java/com/hippo/image/Image.kt
@@ -21,7 +21,6 @@ import android.content.res.Resources
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.ImageDecoder
-import android.graphics.ImageDecoder.ALLOCATOR_DEFAULT
import android.graphics.ImageDecoder.ALLOCATOR_SOFTWARE
import android.graphics.ImageDecoder.DecodeException
import android.graphics.ImageDecoder.ImageInfo
@@ -39,10 +38,9 @@ import kotlin.math.max
class Image private constructor(
source: Source?, drawable: Drawable? = null,
- val hardware: Boolean = true,
val release: () -> Unit? = {}
) {
- internal var mObtainedDrawable: Drawable?
+ private var mObtainedDrawable: Drawable?
private var mBitmap: Bitmap? = null
private var mCanvas: Canvas? = null
@@ -51,7 +49,7 @@ class Image private constructor(
source?.let {
mObtainedDrawable =
ImageDecoder.decodeDrawable(source) { decoder: ImageDecoder, info: ImageInfo, src: Source ->
- decoder.allocator = if (hardware) ALLOCATOR_DEFAULT else ALLOCATOR_SOFTWARE
+ decoder.allocator = ALLOCATOR_SOFTWARE
// Sadly we must use software memory since we need copy it to tile buffer, fuck glgallery
// Idk it will cause how much performance regression
@@ -63,7 +61,6 @@ class Image private constructor(
), 1
)
)
- // Don't
} // Should we lazy decode it?
}
if (mObtainedDrawable == null) {
@@ -105,31 +102,7 @@ class Image private constructor(
mObtainedDrawable!!.draw(mCanvas!!)
}
- fun render(
- srcX: Int, srcY: Int, dst: Bitmap, dstX: Int, dstY: Int,
- width: Int, height: Int
- ) {
- check(!hardware) { "Hardware buffer cannot be used in glgallery" }
- val bitmap: Bitmap = if (animated) {
- updateBitmap()
- mBitmap!!
- } else {
- (mObtainedDrawable as BitmapDrawable).bitmap
- }
- nativeRender(
- bitmap,
- srcX,
- srcY,
- dst,
- dstX,
- dstY,
- width,
- height
- )
- }
-
fun texImage(init: Boolean, offsetX: Int, offsetY: Int, width: Int, height: Int) {
- check(!hardware) { "Hardware buffer cannot be used in glgallery" }
val bitmap: Bitmap? = if (animated) {
updateBitmap()
mBitmap
@@ -177,37 +150,30 @@ class Image private constructor(
@Throws(DecodeException::class)
@JvmStatic
- fun decode(stream: FileInputStream, hardware: Boolean = true): Image {
+ fun decode(stream: FileInputStream): Image {
val src = ImageDecoder.createSource(
stream.channel.map(
FileChannel.MapMode.READ_ONLY, 0,
stream.available().toLong()
)
)
- return Image(src, hardware = hardware)
+ return Image(src)
}
@Throws(DecodeException::class)
@JvmStatic
- fun decode(buffer: ByteBuffer, hardware: Boolean = true, release: () -> Unit? = {}): Image {
+ fun decode(buffer: ByteBuffer, release: () -> Unit? = {}): Image {
val src = ImageDecoder.createSource(buffer)
- return Image(src, hardware = hardware) {
+ return Image(src) {
release()
}
}
@JvmStatic
fun create(bitmap: Bitmap): Image {
- return Image(null, bitmap.toDrawable(Resources.getSystem()), false)
+ return Image(null, bitmap.toDrawable(Resources.getSystem()))
}
- @JvmStatic
- private external fun nativeRender(
- bitmap: Bitmap,
- srcX: Int, srcY: Int, dst: Bitmap, dstX: Int, dstY: Int,
- width: Int, height: Int
- )
-
@JvmStatic
private external fun nativeTexImage(
bitmap: Bitmap,
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 829521e81..d714ee6e1 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -27,8 +27,6 @@
- @android:color/transparent
- @android:color/transparent
- - false
- - true
- false
- true
- false