Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shader editor improvements #305

Merged
merged 6 commits into from
Oct 14, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ kotlin {
runtimeOnly("org.spekframework.spek2:spek-runner-junit5:${Versions.spek}")
runtimeOnly("org.jetbrains.kotlin:kotlin-reflect:${Versions.kotlin}")

implementation("io.mockk:mockk:1.10.0")
implementation("io.mockk:mockk:1.10.2")

// For RunOpenGLTests:
implementation("org.junit.platform:junit-platform-launcher:1.6.2")
Expand Down
1 change: 1 addition & 0 deletions src/commonMain/kotlin/baaahs/Brain.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import baaahs.model.Model
import baaahs.net.FragmentingUdpLink
import baaahs.net.Network
import baaahs.proto.*
import baaahs.util.Logger
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
Expand Down
1 change: 1 addition & 0 deletions src/commonMain/kotlin/baaahs/GadgetManager.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package baaahs

import baaahs.util.Logger
import com.soywiz.klock.DateTime
import kotlinx.serialization.json.JsonElement
import kotlin.random.Random
Expand Down
1 change: 1 addition & 0 deletions src/commonMain/kotlin/baaahs/Mapper.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import baaahs.net.Network
import baaahs.proto.*
import baaahs.shaders.PixelBrainShader
import baaahs.shaders.SolidBrainShader
import baaahs.util.Logger
import com.soywiz.klock.DateTime
import kotlinx.coroutines.*
import kotlinx.coroutines.channels.Channel
Expand Down
1 change: 1 addition & 0 deletions src/commonMain/kotlin/baaahs/Pinky.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import baaahs.proto.*
import baaahs.shaders.PixelBrainShader
import baaahs.show.Show
import baaahs.util.Framerate
import baaahs.util.Logger
import kotlinx.coroutines.*
import kotlinx.serialization.Serializable
import kotlin.coroutines.CoroutineContext
Expand Down
1 change: 1 addition & 0 deletions src/commonMain/kotlin/baaahs/PubSub.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package baaahs
import baaahs.io.ByteArrayReader
import baaahs.io.ByteArrayWriter
import baaahs.net.Network
import baaahs.util.Logger
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
Expand Down
1 change: 1 addition & 0 deletions src/commonMain/kotlin/baaahs/ShowRunner.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import baaahs.show.ShaderChannel
import baaahs.show.Show
import baaahs.show.live.ActiveSet
import baaahs.show.live.OpenShow
import baaahs.util.Logger

class ShowRunner(
val show: Show,
Expand Down
2 changes: 1 addition & 1 deletion src/commonMain/kotlin/baaahs/api/ws/WebSocketClient.kt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package baaahs.api.ws

import baaahs.Logger
import baaahs.imaging.Bitmap
import baaahs.mapper.MappingSession
import baaahs.mapper.Storage
import baaahs.net.Network
import baaahs.proto.Ports
import baaahs.util.Logger
import com.soywiz.klock.DateTime
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.MainScope
Expand Down
2 changes: 1 addition & 1 deletion src/commonMain/kotlin/baaahs/api/ws/WebSocketRouter.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package baaahs.api.ws

import baaahs.Logger
import baaahs.net.Network
import baaahs.util.Logger
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import kotlinx.serialization.json.*
Expand Down
5 changes: 5 additions & 0 deletions src/commonMain/kotlin/baaahs/app/ui/PlatformIcons.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,14 @@ import baaahs.ui.Icon

@Suppress("PropertyName")
interface PlatformIcons {
val Add: Icon

val Fixture: Icon
val Patch: Icon
val DataSource: Icon
val ShaderChannel: Icon
val Settings: Icon
val None: Icon

val DistortionShader: Icon
val FilterShader: Icon
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package baaahs.app.ui.editor

import baaahs.Logger
import baaahs.app.ui.EditIntent
import baaahs.app.ui.EditorPanel
import baaahs.app.ui.MutableEditable
import baaahs.show.Show
import baaahs.show.mutable.MutableShow
import baaahs.ui.Facade
import baaahs.util.Logger
import baaahs.util.UndoStack
import kotlin.math.max

Expand All @@ -23,6 +23,9 @@ class EditableManager(
return session?.isChanged() ?: false
}

val currentMutableShow: MutableShow
get() = session!!.mutableShow

val uiTitle: String
get() = session?.uiTitle ?: ""

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
package baaahs.app.ui.editor

import baaahs.app.ui.CommonIcons
import baaahs.englishize
import baaahs.gl.shader.InputPort
import baaahs.show.DataSource
import baaahs.show.ShaderChannel
import baaahs.show.mutable.*
import baaahs.ui.Icon

class ShaderInstanceEditOptions {
fun buildLinkOptions(
mutableShow: MutableShow
): List<SourcePortOption> {
val listOf = listOf<SourcePortOption>()

return listOf
}
}

interface SourcePortOption {
val title: String
val portEditor: MutablePort
val groupName: String?
val icon: Icon
fun matches(otherPort: MutablePort?): Boolean
fun isAppropriateFor(inputPort: InputPort): Boolean
}

data class DataSourceOption(val dataSource: DataSource) : SourcePortOption {
override val title: String get() = dataSource.dataSourceName
override val portEditor: MutablePort get() = MutableDataSource(dataSource)
override val groupName: String? get() = "Data Source:"
override val icon: Icon get() = CommonIcons.DataSource

override fun matches(otherPort: MutablePort?): Boolean {
return otherPort is MutableDataSource && otherPort.dataSource == dataSource
}

override fun isAppropriateFor(inputPort: InputPort): Boolean {
return dataSource.getType() == inputPort.type
}
}

data class ShaderChannelOption(val shaderChannel: ShaderChannel) : SourcePortOption {
override val title: String get() = shaderChannel.id.englishize()
override val portEditor: MutablePort get() = MutableShaderChannel(shaderChannel)
override val groupName: String? get() = "Channel:"
override val icon: Icon get() = CommonIcons.ShaderChannel

override fun matches(otherPort: MutablePort?): Boolean {
return otherPort is MutableShaderChannel && otherPort.shaderChannel == shaderChannel
}

override fun isAppropriateFor(inputPort: InputPort): Boolean {
return true // We don't have any type info for channel links.
}
}

data class ShaderOption(val mutableShaderInstance: MutableShaderInstance) : SourcePortOption {
override val title: String get() = mutableShaderInstance.mutableShader.title
override val portEditor: MutablePort get() = MutableShaderOutPort(mutableShaderInstance)
override val groupName: String? get() = "Shader output from:"
override val icon: Icon get() = mutableShaderInstance.mutableShader.type.icon

override fun matches(otherPort: MutablePort?): Boolean {
return otherPort is MutableShaderOutPort &&
otherPort.mutableShaderInstance == mutableShaderInstance
}

override fun isAppropriateFor(inputPort: InputPort): Boolean {
return inputPort.type ==
mutableShaderInstance.mutableShader.type.resultContentType.glslType
}
}

object NoSourcePortOption : SourcePortOption {
override val title: String get() = "Nothing"
override val portEditor: MutablePort get() = error("not implemented")
override val groupName: String? get() = null
override val icon: Icon get() = CommonIcons.None
override fun matches(otherPort: MutablePort?): Boolean = otherPort == null
override fun isAppropriateFor(inputPort: InputPort): Boolean = true
}

object NewSourcePortOption : SourcePortOption {
override val title: String get() = "Create New…"
override val portEditor: MutablePort get() = error("not implemented")
override val groupName: String? get() = null
override val icon: Icon get() = CommonIcons.Add
override fun matches(otherPort: MutablePort?): Boolean = false
override fun isAppropriateFor(inputPort: InputPort): Boolean = true
}
2 changes: 1 addition & 1 deletion src/commonMain/kotlin/baaahs/gl/GlContext.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package baaahs.gl

import baaahs.Logger
import baaahs.gl.glsl.CompilationException
import baaahs.gl.glsl.CompiledShader
import baaahs.gl.glsl.GlslProgram
import baaahs.glsl.Uniform
import baaahs.util.Logger
import com.danielgergely.kgl.*

abstract class GlContext(
Expand Down
2 changes: 1 addition & 1 deletion src/commonMain/kotlin/baaahs/gl/KglTracer.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package baaahs.gl

import baaahs.Logger
import baaahs.util.Logger
import com.danielgergely.kgl.*

class KglTracer(private val kgl: Kgl) : Kgl {
Expand Down
2 changes: 1 addition & 1 deletion src/commonMain/kotlin/baaahs/gl/glsl/CompiledShader.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package baaahs.gl.glsl

import baaahs.Logger
import baaahs.gl.GlContext
import baaahs.util.Logger
import com.danielgergely.kgl.GL_COMPILE_STATUS
import com.danielgergely.kgl.GL_TRUE
import com.danielgergely.kgl.Shader
Expand Down
2 changes: 1 addition & 1 deletion src/commonMain/kotlin/baaahs/gl/glsl/GlslCode.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package baaahs.gl.glsl

import baaahs.Logger
import baaahs.englishize
import baaahs.plugin.PluginRef
import baaahs.unknown
import baaahs.util.Logger
import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.buildJsonObject
import kotlinx.serialization.json.put
Expand Down
2 changes: 1 addition & 1 deletion src/commonMain/kotlin/baaahs/gl/glsl/GlslProgram.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package baaahs.gl.glsl

import baaahs.Logger
import baaahs.RefCounted
import baaahs.RefCounter
import baaahs.gl.GlContext
Expand All @@ -9,6 +8,7 @@ import baaahs.gl.render.ModelRenderer
import baaahs.glsl.Uniform
import baaahs.show.DataSource
import baaahs.show.OutputPortRef
import baaahs.util.Logger

class GlslProgram(
internal val gl: GlContext,
Expand Down
2 changes: 1 addition & 1 deletion src/commonMain/kotlin/baaahs/gl/patch/AutoWirer.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package baaahs.gl.patch

import baaahs.Logger
import baaahs.getBang
import baaahs.gl.glsl.GlslAnalyzer
import baaahs.gl.shader.InputPort
Expand All @@ -15,6 +14,7 @@ import baaahs.show.mutable.MutableDataSource
import baaahs.show.mutable.MutablePort
import baaahs.show.mutable.MutableShader
import baaahs.show.mutable.MutableShaderChannel
import baaahs.util.Logger

class AutoWirer(
val plugins: Plugins,
Expand Down
2 changes: 1 addition & 1 deletion src/commonMain/kotlin/baaahs/gl/patch/LinkedPatch.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package baaahs.gl.patch

import baaahs.Logger
import baaahs.fixtures.Fixture
import baaahs.getBang
import baaahs.gl.GlContext
Expand All @@ -13,6 +12,7 @@ import baaahs.show.Surfaces
import baaahs.show.live.LiveShaderInstance
import baaahs.show.live.LiveShaderInstance.*
import baaahs.show.mutable.ShowBuilder
import baaahs.util.Logger
import kotlin.collections.component1
import kotlin.collections.component2
import kotlin.collections.set
Expand Down
2 changes: 1 addition & 1 deletion src/commonMain/kotlin/baaahs/gl/patch/PortDiagram.kt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package baaahs.gl.patch

import baaahs.Logger
import baaahs.show.ShaderChannel
import baaahs.show.Surfaces
import baaahs.show.live.LiveShaderInstance
import baaahs.show.live.OpenPatch
import baaahs.show.mutable.MutablePatch
import baaahs.util.Logger

class PortDiagram {
private var surfaces: Surfaces? = null
Expand Down
Loading