@@ -17,6 +17,7 @@ import org.jetbrains.skia.Paint
1717private 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
7880fun 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