|
@@ -24,7 +24,13 @@ import androidx.compose.runtime.rememberCoroutineScope
|
|
|
import androidx.compose.runtime.snapshots.SnapshotStateList
|
|
import androidx.compose.runtime.snapshots.SnapshotStateList
|
|
|
import androidx.compose.ui.Alignment
|
|
import androidx.compose.ui.Alignment
|
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.Modifier
|
|
|
|
|
+import androidx.compose.ui.draw.DrawModifier
|
|
|
|
|
+import androidx.compose.ui.geometry.Rect
|
|
|
import androidx.compose.ui.graphics.Color
|
|
import androidx.compose.ui.graphics.Color
|
|
|
|
|
+import androidx.compose.ui.graphics.ColorFilter
|
|
|
|
|
+import androidx.compose.ui.graphics.ColorMatrix
|
|
|
|
|
+import androidx.compose.ui.graphics.Paint
|
|
|
|
|
+import androidx.compose.ui.graphics.drawscope.ContentDrawScope
|
|
|
import androidx.compose.ui.input.pointer.pointerInput
|
|
import androidx.compose.ui.input.pointer.pointerInput
|
|
|
import androidx.compose.ui.platform.LocalInspectionMode
|
|
import androidx.compose.ui.platform.LocalInspectionMode
|
|
|
import androidx.compose.ui.unit.Dp
|
|
import androidx.compose.ui.unit.Dp
|
|
@@ -41,6 +47,7 @@ import org.mjdev.desktop.extensions.Modifier.size
|
|
|
import org.mjdev.desktop.helpers.fuzzywuzzy.FuzzySearch
|
|
import org.mjdev.desktop.helpers.fuzzywuzzy.FuzzySearch
|
|
|
import org.mjdev.desktop.interfaces.IDesktopContext
|
|
import org.mjdev.desktop.interfaces.IDesktopContext
|
|
|
import kotlin.coroutines.CoroutineContext
|
|
import kotlin.coroutines.CoroutineContext
|
|
|
|
|
+import androidx.compose.ui.graphics.drawscope.drawIntoCanvas
|
|
|
|
|
|
|
|
object Compose {
|
|
object Compose {
|
|
|
|
|
|
|
@@ -271,4 +278,27 @@ object Compose {
|
|
|
content = content
|
|
content = content
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ class GreyScaleModifier : DrawModifier {
|
|
|
|
|
+ override fun ContentDrawScope.draw() {
|
|
|
|
|
+ val saturationMatrix = ColorMatrix().apply { setToSaturation(0.3f) }
|
|
|
|
|
+ val saturationFilter = ColorFilter.colorMatrix(saturationMatrix)
|
|
|
|
|
+ val paint = Paint().apply {
|
|
|
|
|
+ colorFilter = saturationFilter
|
|
|
|
|
+ }
|
|
|
|
|
+ drawIntoCanvas { canvas ->
|
|
|
|
|
+ canvas.saveLayer(Rect(
|
|
|
|
|
+ 0f,
|
|
|
|
|
+ 0f,
|
|
|
|
|
+ size.width,
|
|
|
|
|
+ size.height),
|
|
|
|
|
+ paint
|
|
|
|
|
+ )
|
|
|
|
|
+ drawContent()
|
|
|
|
|
+ canvas.restore()
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ fun Modifier.greyScale(): Modifier = this then GreyScaleModifier()
|
|
|
}
|
|
}
|