Bump webgpuviewer, imagedecoder, fixes (#3852)

* Bump webgpuviewer, imagedecoder, fixes

Render transition page using text renderer
Fix progress page in dual
Fix animations in dual
Re-do crop bounds

* Fix navigation buttons and zoom start

* Update libs.versions.toml
This commit is contained in:
w
2026-08-26 06:24:32 -07:00
committed by GitHub
parent ac249e3668
commit 0854bde12e
3 changed files with 389 additions and 416 deletions
@@ -40,6 +40,8 @@ import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.DialogProperties import androidx.compose.ui.window.DialogProperties
import androidx.core.graphics.drawable.toDrawable import androidx.core.graphics.drawable.toDrawable
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import ca.mpreg.webgpuviewer.renderer.Image
import ca.mpreg.webgpuviewer.renderer.Image.Companion.invoke
import ca.mpreg.webgpuviewer.renderer.WebGpuRenderer import ca.mpreg.webgpuviewer.renderer.WebGpuRenderer
import ca.mpreg.webgpuviewer.viewer.ImagePage import ca.mpreg.webgpuviewer.viewer.ImagePage
import ca.mpreg.webgpuviewer.viewer.ImageViewer import ca.mpreg.webgpuviewer.viewer.ImageViewer
@@ -56,6 +58,7 @@ import eu.kanade.presentation.manga.EditCoverAction
import eu.kanade.tachiyomi.data.coil.ImageDecoder import eu.kanade.tachiyomi.data.coil.ImageDecoder
import eu.kanade.tachiyomi.data.coil.newDecoder import eu.kanade.tachiyomi.data.coil.newDecoder
import eu.kanade.tachiyomi.ui.reader.viewer.ReaderPageImageView import eu.kanade.tachiyomi.ui.reader.viewer.ReaderPageImageView
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import mihon.app.di.appGraph import mihon.app.di.appGraph
import tachiyomi.domain.manga.model.Manga import tachiyomi.domain.manga.model.Manga
@@ -164,8 +167,6 @@ fun MangaCoverDialog(
if (useNewRenderer) { if (useNewRenderer) {
val state = ImageViewerState() val state = ImageViewerState()
state.dpi = view.resources.displayMetrics.densityDpi / 100f
ImageRequest.Builder(view.context) ImageRequest.Builder(view.context)
.data(manga) .data(manga)
.size(Size.ORIGINAL) .size(Size.ORIGINAL)
@@ -173,18 +174,20 @@ fun MangaCoverDialog(
.newDecoder(true) .newDecoder(true)
.target { result -> .target { result ->
val res = (result as ImageDecoder.DecodeResultImage).res val res = (result as ImageDecoder.DecodeResultImage).res
val page = runBlocking(WebGpuRenderer.dispatcher) { val page = runBlocking(Dispatchers.Default) {
ImagePage(res.image, res.width, res.height) ImagePage.ImageSingle(
}.apply { Image(
image?.backgroundColor = 0 res.image,
res.width,
res.height,
createMipMaps = true,
backgroundColor = 0,
),
)
} }
state.apply { state.apply {
fetchPage = { index -> fetchPage = { index ->
if (index == 0) { if (index == 0) page else null
page
} else {
null
}
} }
invalidate() invalidate()
} }
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -39,7 +39,7 @@ firebase-bom = "34.18.0"
firebase-crashlytics = "3.0.8" firebase-crashlytics = "3.0.8"
flexibleAdapter = "c8013533" flexibleAdapter = "c8013533"
google-services = "4.5.0" google-services = "4.5.0"
image-decoder = "9" image-decoder = "10"
injekt = "91edab2317" injekt = "91edab2317"
jsoup = "1.23.1" jsoup = "1.23.1"
junit = "6.1.3" junit = "6.1.3"
@@ -76,7 +76,7 @@ swipe = "1.3.0"
tapmoc = "0.4.2" tapmoc = "0.4.2"
unifile = "08f224c8f9" unifile = "08f224c8f9"
voyager = "2.2.21-1.10.3" voyager = "2.2.21-1.10.3"
webgpuviewer = "36" webgpuviewer = "38"
xmlutil = "1.0.2" xmlutil = "1.0.2"
[libraries] [libraries]