Skip to content

Commit bf2b6c5

Browse files
committed
feat: add pixel perfect option to video surface
1 parent ac0a145 commit bf2b6c5

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/main/kotlin/dev/silenium/multimedia/compose/player/VideoSurface.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import org.jetbrains.skia.Paint
1717
private fun createGLSurface(
1818
player: VideoPlayer,
1919
surfaceState: GLSurfaceState = rememberGLSurfaceState(),
20+
pixelPerfect: Boolean = false,
2021
onInitialized: () -> Unit = {},
2122
): GLSurface {
2223
var initialized by remember { mutableStateOf(false) }
@@ -26,7 +27,8 @@ private fun createGLSurface(
2627

2728
@OptIn(InternalMultimediaApi::class)
2829
val dheight by player.property<Long>("dheight")
29-
val fboSizeOverride = remember(dwidth, dheight) {
30+
val fboSizeOverride = remember(pixelPerfect, dwidth, dheight) {
31+
if (!pixelPerfect) return@remember null
3032
dwidth?.let { w ->
3133
dheight?.let { h ->
3234
FBOSizeOverride(w.toInt(), h.toInt())
@@ -77,10 +79,11 @@ fun VideoSurface(
7779
@Composable
7880
fun rememberVideoPlayer(
7981
surfaceState: GLSurfaceState = rememberGLSurfaceState(),
82+
pixelPerfect: Boolean = false,
8083
onInitialized: () -> Unit = {},
8184
): VideoPlayer {
8285
val player = remember { VideoPlayer() }
83-
val surface = createGLSurface(player, surfaceState, onInitialized)
86+
val surface = createGLSurface(player, surfaceState, pixelPerfect, onInitialized)
8487

8588
DisposableEffect(player, surface) {
8689
player.surface = surface

0 commit comments

Comments
 (0)