mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-17 03:15:35 -04:00
rename shaders to native shaders and minosoft shaders to shaders
This commit is contained in:
parent
6bf8d35124
commit
c9c618fa15
@ -139,7 +139,7 @@ class FogManager(
|
||||
val color = interpolatedFogColor
|
||||
val distance = end - start
|
||||
|
||||
for (shader in renderWindow.renderSystem.minosoftShaders) {
|
||||
for (shader in renderWindow.renderSystem.shaders) {
|
||||
if (shader !is FogShader || shader.fog != this) {
|
||||
continue
|
||||
}
|
||||
|
@ -172,7 +172,7 @@ class MatrixHandler(
|
||||
}
|
||||
|
||||
private fun updateShaders(cameraPosition: Vec3) {
|
||||
for (shader in renderWindow.renderSystem.minosoftShaders) {
|
||||
for (shader in renderWindow.renderSystem.shaders) {
|
||||
if (shader is ViewProjectionShader) {
|
||||
shader.viewProjectionMatrix = viewProjectionMatrix
|
||||
}
|
||||
|
@ -13,9 +13,9 @@
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.framebuffer
|
||||
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
|
||||
open class FramebufferShader(override val native: Shader) : MinosoftShader() {
|
||||
var texture by uniform("uTexture", 0, Shader::setUInt)
|
||||
open class FramebufferShader(override val native: NativeShader) : Shader() {
|
||||
var texture by uniform("uTexture", 0, NativeShader::setUInt)
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.data.registries.ResourceLocationAble
|
||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||
import de.bixilon.minosoft.gui.rendering.framebuffer.FramebufferShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||
|
||||
interface FunEffect : ResourceLocationAble {
|
||||
@ -28,8 +28,8 @@ interface FunEffect : ResourceLocationAble {
|
||||
fun preDraw() {}
|
||||
|
||||
|
||||
fun <T : FramebufferShader> createShader(vertex: ResourceLocation = "minosoft:framebuffer/world.vsh".toResourceLocation(), fragment: ResourceLocation = "minosoft:framebuffer/world.fsh".toResourceLocation(), creator: (Shader) -> T): T {
|
||||
val native = renderWindow.renderSystem.createShader(vertex = vertex, fragment = fragment)
|
||||
fun <T : FramebufferShader> createShader(vertex: ResourceLocation = "minosoft:framebuffer/world.vsh".toResourceLocation(), fragment: ResourceLocation = "minosoft:framebuffer/world.fsh".toResourceLocation(), creator: (NativeShader) -> T): T {
|
||||
val native = renderWindow.renderSystem.createNativeShader(vertex = vertex, fragment = fragment)
|
||||
val shader = creator(native)
|
||||
shader.load()
|
||||
shader.use()
|
||||
|
@ -15,8 +15,8 @@ package de.bixilon.minosoft.gui.rendering.framebuffer.world.`fun`.effects.tint
|
||||
|
||||
import de.bixilon.minosoft.data.text.formatting.color.ChatColors
|
||||
import de.bixilon.minosoft.gui.rendering.framebuffer.FramebufferShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
|
||||
open class TintShader(native: Shader) : FramebufferShader(native) {
|
||||
open class TintShader(native: NativeShader) : FramebufferShader(native) {
|
||||
var tintColor by uniform("uTintColor", ChatColors.BLACK)
|
||||
}
|
||||
|
@ -13,17 +13,17 @@
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.framebuffer.world.overlay.overlays.weather
|
||||
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.TextureShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureManager
|
||||
|
||||
class WeatherOverlayShader(
|
||||
override val native: Shader,
|
||||
) : MinosoftShader(), TextureShader {
|
||||
override val native: NativeShader,
|
||||
) : Shader(), TextureShader {
|
||||
override var textures: TextureManager by textureManager()
|
||||
|
||||
var intensity by uniform("uIntensity", 0.0f)
|
||||
var offset by uniform("uOffset", 0.0f)
|
||||
var textureIndexLayer by uniform("uIndexLayer", 0, Shader::setUInt)
|
||||
var textureIndexLayer by uniform("uIndexLayer", 0, NativeShader::setUInt)
|
||||
}
|
||||
|
@ -13,14 +13,14 @@
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.gui
|
||||
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.AnimatedShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.TextureShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureManager
|
||||
|
||||
class GUIShader(
|
||||
override val native: Shader,
|
||||
) : MinosoftShader(), TextureShader, AnimatedShader {
|
||||
override val native: NativeShader,
|
||||
) : Shader(), TextureShader, AnimatedShader {
|
||||
override var textures: TextureManager by textureManager()
|
||||
}
|
||||
|
@ -15,20 +15,20 @@ package de.bixilon.minosoft.gui.rendering.particle
|
||||
|
||||
import de.bixilon.kotlinglm.mat4x4.Mat4
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.*
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.ShaderUniforms
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureManager
|
||||
import de.bixilon.minosoft.gui.rendering.world.light.LightmapBuffer
|
||||
|
||||
class ParticleShader(
|
||||
override val native: Shader,
|
||||
override val native: NativeShader,
|
||||
override val transparent: Boolean,
|
||||
) : MinosoftShader(), TextureShader, AnimatedShader, LightShader, TransparentShader, ViewProjectionShader {
|
||||
) : Shader(), TextureShader, AnimatedShader, LightShader, TransparentShader, ViewProjectionShader {
|
||||
override var textures: TextureManager by textureManager()
|
||||
override val lightmap: LightmapBuffer by lightmap()
|
||||
override var viewProjectionMatrix: Mat4 by viewProjectionMatrix()
|
||||
var cameraRight by uniform(ShaderUniforms.CAMERA_RIGHT, Vec3(), Shader::setVec3)
|
||||
var cameraUp by uniform(ShaderUniforms.CAMERA_UP, Vec3(), Shader::setVec3)
|
||||
var cameraRight by uniform(ShaderUniforms.CAMERA_RIGHT, Vec3(), NativeShader::setVec3)
|
||||
var cameraUp by uniform(ShaderUniforms.CAMERA_UP, Vec3(), NativeShader::setVec3)
|
||||
}
|
||||
|
@ -14,10 +14,10 @@
|
||||
package de.bixilon.minosoft.gui.rendering.shader
|
||||
|
||||
import de.bixilon.minosoft.gui.rendering.shader.uniform.ShaderUniform
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
|
||||
interface AbstractMinosoftShader {
|
||||
val native: Shader
|
||||
interface AbstractShader {
|
||||
val native: NativeShader
|
||||
|
||||
fun <T> uniform(name: String, default: T, type: ShaderSetter<T> = Shader::set): ShaderUniform<T>
|
||||
fun <T> uniform(name: String, default: T, type: ShaderSetter<T> = NativeShader::set): ShaderUniform<T>
|
||||
}
|
@ -16,12 +16,12 @@ package de.bixilon.minosoft.gui.rendering.shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.TransparentShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.uniform.ShaderUniform
|
||||
|
||||
abstract class MinosoftShader : AbstractMinosoftShader {
|
||||
abstract class Shader : AbstractShader {
|
||||
private val uniforms: MutableMap<String, ShaderUniform<*>> = mutableMapOf()
|
||||
|
||||
fun unload() {
|
||||
native.unload()
|
||||
native.renderWindow.renderSystem.minosoftShaders -= this
|
||||
native.renderWindow.renderSystem.shaders -= this
|
||||
}
|
||||
|
||||
fun load() {
|
||||
@ -29,7 +29,7 @@ abstract class MinosoftShader : AbstractMinosoftShader {
|
||||
native.defines["TRANSPARENT"] = " "
|
||||
}
|
||||
native.load()
|
||||
native.renderWindow.renderSystem.minosoftShaders += this
|
||||
native.renderWindow.renderSystem.shaders += this
|
||||
for (uniform in uniforms.values) {
|
||||
uniform.upload()
|
||||
}
|
@ -13,6 +13,6 @@
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.shader
|
||||
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
|
||||
typealias ShaderSetter<T> = (shader: Shader, name: String, value: T) -> Unit
|
||||
typealias ShaderSetter<T> = (shader: NativeShader, name: String, value: T) -> Unit
|
||||
|
@ -14,12 +14,12 @@
|
||||
package de.bixilon.minosoft.gui.rendering.shader.generic
|
||||
|
||||
import de.bixilon.kotlinglm.mat4x4.Mat4
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.ViewProjectionShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
|
||||
class ColorShader(
|
||||
override val native: Shader,
|
||||
) : MinosoftShader(), ViewProjectionShader {
|
||||
override val native: NativeShader,
|
||||
) : Shader(), ViewProjectionShader {
|
||||
override var viewProjectionMatrix: Mat4 by viewProjectionMatrix()
|
||||
}
|
||||
|
@ -13,14 +13,14 @@
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.shader.generic
|
||||
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.AnimatedShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.TextureShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureManager
|
||||
|
||||
class Generic2dTextureShader(
|
||||
override val native: Shader,
|
||||
) : MinosoftShader(), TextureShader, AnimatedShader {
|
||||
override val native: NativeShader,
|
||||
) : Shader(), TextureShader, AnimatedShader {
|
||||
override var textures: TextureManager by textureManager()
|
||||
}
|
||||
|
@ -14,16 +14,16 @@
|
||||
package de.bixilon.minosoft.gui.rendering.shader.generic
|
||||
|
||||
import de.bixilon.kotlinglm.mat4x4.Mat4
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.AnimatedShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.TextureShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.ViewProjectionShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureManager
|
||||
|
||||
class GenericTextureShader(
|
||||
override val native: Shader,
|
||||
) : MinosoftShader(), TextureShader, AnimatedShader, ViewProjectionShader {
|
||||
override val native: NativeShader,
|
||||
) : Shader(), TextureShader, AnimatedShader, ViewProjectionShader {
|
||||
override var textures: TextureManager by textureManager()
|
||||
override var viewProjectionMatrix: Mat4 by viewProjectionMatrix()
|
||||
}
|
||||
|
@ -14,16 +14,16 @@
|
||||
package de.bixilon.minosoft.gui.rendering.shader.types
|
||||
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.minosoft.gui.rendering.shader.AbstractMinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.AbstractShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.uniform.ShaderUniform
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.ShaderUniforms
|
||||
|
||||
interface CameraPositionShader : AbstractMinosoftShader {
|
||||
interface CameraPositionShader : AbstractShader {
|
||||
var cameraPosition: Vec3
|
||||
|
||||
|
||||
fun cameraPosition(): ShaderUniform<Vec3> {
|
||||
return uniform(ShaderUniforms.CAMERA_POSITION, Vec3(), Shader::setVec3)
|
||||
return uniform(ShaderUniforms.CAMERA_POSITION, Vec3(), NativeShader::setVec3)
|
||||
}
|
||||
}
|
||||
|
@ -14,10 +14,10 @@
|
||||
package de.bixilon.minosoft.gui.rendering.shader.types
|
||||
|
||||
import de.bixilon.minosoft.gui.rendering.camera.FogManager
|
||||
import de.bixilon.minosoft.gui.rendering.shader.AbstractMinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.AbstractShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.uniform.ShaderUniform
|
||||
|
||||
interface FogShader : AbstractMinosoftShader, CameraPositionShader {
|
||||
interface FogShader : AbstractShader, CameraPositionShader {
|
||||
var fog: FogManager
|
||||
|
||||
fun fog(default: FogManager = native.renderWindow.camera.fogManager): ShaderUniform<FogManager> {
|
||||
|
@ -13,11 +13,11 @@
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.shader.types
|
||||
|
||||
import de.bixilon.minosoft.gui.rendering.shader.AbstractMinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.AbstractShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.uniform.ShaderUniform
|
||||
import de.bixilon.minosoft.gui.rendering.world.light.LightmapBuffer
|
||||
|
||||
interface LightShader : AbstractMinosoftShader {
|
||||
interface LightShader : AbstractShader {
|
||||
val lightmap: LightmapBuffer
|
||||
|
||||
fun lightmap(name: String = "uLightMapBuffer", buffer: LightmapBuffer = native.renderWindow.light.map.buffer): ShaderUniform<LightmapBuffer> {
|
||||
|
@ -13,11 +13,11 @@
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.shader.types
|
||||
|
||||
import de.bixilon.minosoft.gui.rendering.shader.AbstractMinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.AbstractShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.uniform.ShaderUniform
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureManager
|
||||
|
||||
interface TextureShader : AbstractMinosoftShader {
|
||||
interface TextureShader : AbstractShader {
|
||||
var textures: TextureManager
|
||||
|
||||
fun textureManager(name: String = "uTextures", textureManager: TextureManager = native.renderWindow.textureManager, animated: Boolean = this is AnimatedShader): ShaderUniform<TextureManager> {
|
||||
|
@ -14,16 +14,16 @@
|
||||
package de.bixilon.minosoft.gui.rendering.shader.types
|
||||
|
||||
import de.bixilon.kotlinglm.mat4x4.Mat4
|
||||
import de.bixilon.minosoft.gui.rendering.shader.AbstractMinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.AbstractShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.uniform.ShaderUniform
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.ShaderUniforms
|
||||
|
||||
interface ViewProjectionShader : AbstractMinosoftShader {
|
||||
interface ViewProjectionShader : AbstractShader {
|
||||
var viewProjectionMatrix: Mat4
|
||||
|
||||
|
||||
fun viewProjectionMatrix(): ShaderUniform<Mat4> {
|
||||
return uniform(ShaderUniforms.VIEW_PROJECTION_MATRIX, Mat4(), Shader::setMat4)
|
||||
return uniform(ShaderUniforms.VIEW_PROJECTION_MATRIX, Mat4(), NativeShader::setMat4)
|
||||
}
|
||||
}
|
||||
|
@ -14,12 +14,12 @@
|
||||
package de.bixilon.minosoft.gui.rendering.shader.uniform
|
||||
|
||||
import de.bixilon.minosoft.gui.rendering.shader.ShaderSetter
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import kotlin.properties.ReadWriteProperty
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
class ShaderUniform<T>(
|
||||
private val native: Shader,
|
||||
private val native: NativeShader,
|
||||
default: T,
|
||||
private val name: String,
|
||||
private val setter: ShaderSetter<T>,
|
||||
|
@ -16,23 +16,23 @@ package de.bixilon.minosoft.gui.rendering.skeletal
|
||||
import de.bixilon.kotlinglm.mat4x4.Mat4
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.minosoft.gui.rendering.camera.FogManager
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.*
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.uniform.FloatUniformBuffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureManager
|
||||
import de.bixilon.minosoft.gui.rendering.world.light.LightmapBuffer
|
||||
|
||||
class SkeletalShader(
|
||||
override val native: Shader,
|
||||
override val native: NativeShader,
|
||||
buffer: FloatUniformBuffer,
|
||||
) : MinosoftShader(), TextureShader, AnimatedShader, LightShader, ViewProjectionShader, FogShader {
|
||||
) : Shader(), TextureShader, AnimatedShader, LightShader, ViewProjectionShader, FogShader {
|
||||
override var textures: TextureManager by textureManager()
|
||||
override val lightmap: LightmapBuffer by lightmap()
|
||||
override var viewProjectionMatrix: Mat4 by viewProjectionMatrix()
|
||||
override var cameraPosition: Vec3 by cameraPosition()
|
||||
override var fog: FogManager by fog()
|
||||
|
||||
var light by uniform("uLight", 0x00, Shader::setUInt)
|
||||
var light by uniform("uLight", 0x00, NativeShader::setUInt)
|
||||
var skeletalBuffer by uniform("uSkeletalBuffer", buffer)
|
||||
}
|
||||
|
@ -15,12 +15,12 @@ package de.bixilon.minosoft.gui.rendering.sky.box
|
||||
|
||||
import de.bixilon.kotlinglm.mat4x4.Mat4
|
||||
import de.bixilon.minosoft.data.text.formatting.color.ChatColors
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
|
||||
class SkyboxColorShader(
|
||||
override val native: Shader,
|
||||
) : MinosoftShader() {
|
||||
override val native: NativeShader,
|
||||
) : Shader() {
|
||||
var skyViewProjectionMatrix by uniform("uSkyViewProjectionMatrix", Mat4())
|
||||
var skyColor by uniform("uSkyColor", ChatColors.BLACK)
|
||||
}
|
||||
|
@ -14,16 +14,16 @@
|
||||
package de.bixilon.minosoft.gui.rendering.sky.box
|
||||
|
||||
import de.bixilon.kotlinglm.mat4x4.Mat4
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.TextureShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureManager
|
||||
|
||||
class SkyboxTextureShader(
|
||||
override val native: Shader,
|
||||
) : MinosoftShader(), TextureShader {
|
||||
override val native: NativeShader,
|
||||
) : Shader(), TextureShader {
|
||||
override var textures: TextureManager by textureManager()
|
||||
|
||||
var skyViewProjectionMatrix by uniform("uSkyViewProjectionMatrix", Mat4())
|
||||
var textureIndexLayer by uniform("uIndexLayer", 0, Shader::setUInt)
|
||||
var textureIndexLayer by uniform("uIndexLayer", 0, NativeShader::setUInt)
|
||||
}
|
||||
|
@ -17,15 +17,15 @@ import de.bixilon.kotlinglm.mat4x4.Mat4
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.kotlinglm.vec4.Vec4
|
||||
import de.bixilon.minosoft.gui.rendering.camera.FogManager
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.FogShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.ViewProjectionShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4Util.EMPTY
|
||||
|
||||
class CloudShader(
|
||||
override val native: Shader,
|
||||
) : MinosoftShader(), ViewProjectionShader, FogShader {
|
||||
override val native: NativeShader,
|
||||
) : Shader(), ViewProjectionShader, FogShader {
|
||||
override var viewProjectionMatrix: Mat4 by viewProjectionMatrix()
|
||||
override var cameraPosition: Vec3 by cameraPosition()
|
||||
override var fog: FogManager by fog()
|
||||
|
@ -15,14 +15,14 @@ package de.bixilon.minosoft.gui.rendering.sky.planet
|
||||
|
||||
import de.bixilon.kotlinglm.mat4x4.Mat4
|
||||
import de.bixilon.kotlinglm.vec4.Vec4
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.TextureShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureManager
|
||||
|
||||
class PlanetShader(
|
||||
override val native: Shader,
|
||||
) : MinosoftShader(), TextureShader {
|
||||
override val native: NativeShader,
|
||||
) : Shader(), TextureShader {
|
||||
var matrix: Mat4 by uniform("uMatrix", Mat4())
|
||||
var tintColor: Vec4 by uniform("uTintColor", Vec4())
|
||||
override var textures: TextureManager by textureManager(animated = false)
|
||||
|
@ -15,12 +15,12 @@ package de.bixilon.minosoft.gui.rendering.sky.planet.scatter
|
||||
|
||||
import de.bixilon.kotlinglm.mat4x4.Mat4
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
|
||||
class SunScatterShader(
|
||||
override val native: Shader,
|
||||
) : MinosoftShader() {
|
||||
override val native: NativeShader,
|
||||
) : Shader() {
|
||||
var scatterMatrix by uniform("uScatterMatrix", Mat4())
|
||||
var sunPosition by uniform("uSunPosition", Vec3())
|
||||
var intensity by uniform("uIntensity", 0.0f)
|
||||
|
@ -18,13 +18,13 @@ import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.data.text.formatting.color.Colors
|
||||
import de.bixilon.minosoft.data.text.formatting.color.RGBColor
|
||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.uniform.FloatUniformBuffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.uniform.IntUniformBuffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.vertex.FloatVertexBuffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.vertex.PrimitiveTypes
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureManager
|
||||
import de.bixilon.minosoft.gui.rendering.system.opengl.OpenGLRenderSystem
|
||||
import de.bixilon.minosoft.gui.rendering.util.mesh.MeshStruct
|
||||
@ -33,10 +33,10 @@ import java.nio.ByteBuffer
|
||||
import java.nio.FloatBuffer
|
||||
|
||||
interface RenderSystem {
|
||||
val nativeShaders: MutableSet<NativeShader>
|
||||
val shaders: MutableSet<Shader>
|
||||
val minosoftShaders: MutableSet<MinosoftShader>
|
||||
val vendor: GPUVendor
|
||||
var shader: Shader?
|
||||
var shader: NativeShader?
|
||||
var framebuffer: Framebuffer?
|
||||
|
||||
val active: Boolean
|
||||
@ -102,20 +102,19 @@ interface RenderSystem {
|
||||
fun readPixels(start: Vec2i, end: Vec2i, type: PixelTypes): ByteBuffer
|
||||
|
||||
|
||||
@Deprecated("Use MinosoftShader")
|
||||
fun createShader(resourceLocation: ResourceLocation): Shader {
|
||||
return createShader(
|
||||
fun createNativeShader(resourceLocation: ResourceLocation): NativeShader {
|
||||
return createNativeShader(
|
||||
vertex = "$resourceLocation.vsh".toResourceLocation(),
|
||||
geometry = "$resourceLocation.gsh".toResourceLocation(),
|
||||
fragment = "$resourceLocation.fsh".toResourceLocation(),
|
||||
)
|
||||
}
|
||||
|
||||
fun <T : MinosoftShader> createShader(resourceLocation: ResourceLocation, creator: (native: Shader) -> T): T {
|
||||
return creator(createShader(resourceLocation))
|
||||
fun <T : Shader> createShader(resourceLocation: ResourceLocation, creator: (native: NativeShader) -> T): T {
|
||||
return creator(createNativeShader(resourceLocation))
|
||||
}
|
||||
|
||||
fun createShader(vertex: ResourceLocation, geometry: ResourceLocation? = null, fragment: ResourceLocation): Shader
|
||||
fun createNativeShader(vertex: ResourceLocation, geometry: ResourceLocation? = null, fragment: ResourceLocation): NativeShader
|
||||
|
||||
fun createVertexBuffer(structure: MeshStruct, data: FloatBuffer, primitiveType: PrimitiveTypes = preferredPrimitiveType): FloatVertexBuffer
|
||||
fun createIntUniformBuffer(data: IntArray = IntArray(0)): IntUniformBuffer
|
||||
@ -138,7 +137,7 @@ interface RenderSystem {
|
||||
}
|
||||
|
||||
fun reloadShaders() {
|
||||
val copy = minosoftShaders.toMutableSet()
|
||||
val copy = shaders.toMutableSet()
|
||||
for (shader in copy) {
|
||||
shader.reload()
|
||||
}
|
||||
|
@ -14,12 +14,12 @@
|
||||
package de.bixilon.minosoft.gui.rendering.system.base.buffer.uniform
|
||||
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.RenderableBuffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
|
||||
interface UniformBuffer : RenderableBuffer {
|
||||
val bindingIndex: Int
|
||||
|
||||
fun upload(range: IntRange)
|
||||
|
||||
fun use(shader: Shader, bufferName: String)
|
||||
fun use(shader: NativeShader, bufferName: String)
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ import de.bixilon.minosoft.gui.rendering.system.base.buffer.uniform.UniformBuffe
|
||||
import de.bixilon.minosoft.util.Previous
|
||||
import kotlin.math.max
|
||||
|
||||
interface Shader {
|
||||
interface NativeShader {
|
||||
val loaded: Boolean
|
||||
val renderWindow: RenderWindow
|
||||
val defines: MutableMap<String, Any>
|
||||
@ -37,7 +37,7 @@ interface Shader {
|
||||
|
||||
fun reload()
|
||||
|
||||
fun use(): Shader {
|
||||
fun use(): NativeShader {
|
||||
renderWindow.renderSystem.shader = this
|
||||
return this
|
||||
}
|
@ -17,7 +17,7 @@ import de.bixilon.minosoft.assets.util.FileUtil.readAsString
|
||||
import de.bixilon.minosoft.commands.util.StringReader
|
||||
import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
|
||||
class GLSLShaderCode(
|
||||
private val renderWindow: RenderWindow,
|
||||
@ -26,7 +26,7 @@ class GLSLShaderCode(
|
||||
val defines: MutableMap<String, Any> = mutableMapOf()
|
||||
|
||||
init {
|
||||
for ((name, value) in Shader.DEFAULT_DEFINES) {
|
||||
for ((name, value) in NativeShader.DEFAULT_DEFINES) {
|
||||
value(renderWindow)?.let { defines[name] = it }
|
||||
}
|
||||
defines[renderWindow.renderSystem.vendor.shaderDefine] = ""
|
||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.gui.rendering.system.base.texture
|
||||
import de.bixilon.kutil.time.TimeUtil.millis
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.uniform.IntUniformBuffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.textures.TextureAnimation
|
||||
|
||||
class SpriteAnimator(val renderSystem: RenderSystem) {
|
||||
@ -79,7 +79,7 @@ class SpriteAnimator(val renderSystem: RenderSystem) {
|
||||
}
|
||||
|
||||
|
||||
fun use(shader: Shader, bufferName: String = "uSpriteBuffer") {
|
||||
fun use(shader: NativeShader, bufferName: String = "uSpriteBuffer") {
|
||||
uniformBuffer.use(shader, bufferName)
|
||||
}
|
||||
|
||||
|
@ -14,8 +14,8 @@
|
||||
package de.bixilon.minosoft.gui.rendering.system.base.texture
|
||||
|
||||
import de.bixilon.kutil.latch.CountUpAndDownLatch
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.ShaderUniforms
|
||||
|
||||
interface TextureArray {
|
||||
@ -24,6 +24,6 @@ interface TextureArray {
|
||||
fun activate()
|
||||
|
||||
@Deprecated("safe uniforms")
|
||||
fun use(shader: Shader, name: String = ShaderUniforms.TEXTURES)
|
||||
fun use(shader: MinosoftShader) = use(shader.native)
|
||||
fun use(shader: NativeShader, name: String = ShaderUniforms.TEXTURES)
|
||||
fun use(shader: Shader) = use(shader.native)
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ import de.bixilon.minosoft.data.entities.entities.player.properties.textures.Pla
|
||||
import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.gui.rendering.RenderConstants
|
||||
import de.bixilon.minosoft.gui.rendering.gui.atlas.TextureLikeTexture
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.ShaderUniforms
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.dynamic.DynamicTexture
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.dynamic.DynamicTextureArray
|
||||
@ -105,7 +105,7 @@ abstract class TextureManager {
|
||||
return alexTexture
|
||||
}
|
||||
|
||||
fun use(shader: Shader, name: String = ShaderUniforms.TEXTURES) {
|
||||
fun use(shader: NativeShader, name: String = ShaderUniforms.TEXTURES) {
|
||||
staticTextures.use(shader, name)
|
||||
dynamicTextures.use(shader, name)
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ import de.bixilon.minosoft.data.text.formatting.color.RGBColor
|
||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||
import de.bixilon.minosoft.gui.rendering.exceptions.ShaderLoadingException
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.uniform.UniformBuffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.code.glsl.GLSLShaderCode
|
||||
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap
|
||||
import org.lwjgl.opengl.GL11.GL_FALSE
|
||||
@ -31,12 +31,12 @@ import org.lwjgl.opengl.GL43.*
|
||||
import org.lwjgl.system.MemoryUtil
|
||||
import java.io.FileNotFoundException
|
||||
|
||||
class OpenGLShader(
|
||||
class OpenGLNativeShader(
|
||||
override val renderWindow: RenderWindow,
|
||||
private val vertex: ResourceLocation,
|
||||
private val geometry: ResourceLocation?,
|
||||
private val fragment: ResourceLocation,
|
||||
) : Shader {
|
||||
) : NativeShader {
|
||||
override var loaded: Boolean = false
|
||||
private set
|
||||
override val defines: MutableMap<String, Any> = mutableMapOf()
|
||||
@ -97,7 +97,7 @@ class OpenGLShader(
|
||||
}
|
||||
loaded = true
|
||||
|
||||
renderWindow.renderSystem.shaders += this
|
||||
renderWindow.renderSystem.nativeShaders += this
|
||||
}
|
||||
|
||||
override fun unload() {
|
||||
@ -105,7 +105,7 @@ class OpenGLShader(
|
||||
glDeleteProgram(this.shader)
|
||||
loaded = false
|
||||
this.shader = -1
|
||||
renderWindow.renderSystem.shaders -= this
|
||||
renderWindow.renderSystem.nativeShaders -= this
|
||||
}
|
||||
|
||||
override fun reload() {
|
@ -22,12 +22,12 @@ import de.bixilon.minosoft.data.text.formatting.color.RGBColor
|
||||
import de.bixilon.minosoft.gui.rendering.RenderConstants
|
||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||
import de.bixilon.minosoft.gui.rendering.events.ResizeWindowEvent
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.*
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.vertex.PrimitiveTypes
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader.Companion.shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader.Companion.shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.opengl.buffer.frame.OpenGLFramebuffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.opengl.buffer.uniform.FloatOpenGLUniformBuffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.opengl.buffer.uniform.IntOpenGLUniformBuffer
|
||||
@ -52,8 +52,8 @@ class OpenGLRenderSystem(
|
||||
private val renderWindow: RenderWindow,
|
||||
) : RenderSystem {
|
||||
private var thread: Thread? = null
|
||||
override val nativeShaders: MutableSet<NativeShader> = mutableSetOf()
|
||||
override val shaders: MutableSet<Shader> = mutableSetOf()
|
||||
override val minosoftShaders: MutableSet<MinosoftShader> = mutableSetOf()
|
||||
private val capabilities: MutableSet<RenderingCapabilities> = synchronizedSetOf()
|
||||
override lateinit var vendor: OpenGLVendor
|
||||
private set
|
||||
@ -75,7 +75,7 @@ class OpenGLRenderSystem(
|
||||
var boundBuffer = -1
|
||||
var uniformBufferBindingIndex = 0
|
||||
|
||||
override var shader: Shader? = null
|
||||
override var shader: NativeShader? = null
|
||||
set(value) {
|
||||
if (value === field) {
|
||||
return
|
||||
@ -86,9 +86,9 @@ class OpenGLRenderSystem(
|
||||
return
|
||||
}
|
||||
|
||||
check(value is OpenGLShader) { "Can not use non OpenGL shader in OpenGL render system!" }
|
||||
check(value is OpenGLNativeShader) { "Can not use non OpenGL shader in OpenGL render system!" }
|
||||
check(value.loaded) { "Shader not loaded!" }
|
||||
check(value in shaders) { "Shader not part of this context!" }
|
||||
check(value in nativeShaders) { "Shader not part of this context!" }
|
||||
|
||||
value.unsafeUse()
|
||||
|
||||
@ -254,8 +254,8 @@ class OpenGLRenderSystem(
|
||||
return buffer
|
||||
}
|
||||
|
||||
override fun createShader(vertex: ResourceLocation, geometry: ResourceLocation?, fragment: ResourceLocation): OpenGLShader {
|
||||
return OpenGLShader(renderWindow, vertex.shader(), geometry?.shader(), fragment.shader())
|
||||
override fun createNativeShader(vertex: ResourceLocation, geometry: ResourceLocation?, fragment: ResourceLocation): OpenGLNativeShader {
|
||||
return OpenGLNativeShader(renderWindow, vertex.shader(), geometry?.shader(), fragment.shader())
|
||||
}
|
||||
|
||||
override fun createVertexBuffer(structure: MeshStruct, data: FloatBuffer, primitiveType: PrimitiveTypes): FloatOpenGLVertexBuffer {
|
||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.gui.rendering.system.opengl.buffer.uniform
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.RenderableBufferDrawTypes
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.RenderableBufferTypes
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.uniform.UniformBuffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.opengl.OpenGLRenderSystem
|
||||
import de.bixilon.minosoft.gui.rendering.system.opengl.buffer.OpenGLRenderableBuffer
|
||||
import org.lwjgl.opengl.GL30.glBindBufferBase
|
||||
@ -37,7 +37,7 @@ abstract class OpenGLUniformBuffer(renderSystem: OpenGLRenderSystem, override va
|
||||
}
|
||||
|
||||
|
||||
override fun use(shader: Shader, bufferName: String) {
|
||||
override fun use(shader: NativeShader, bufferName: String) {
|
||||
shader.use()
|
||||
|
||||
shader[bufferName] = this
|
||||
|
@ -19,7 +19,7 @@ import de.bixilon.kutil.latch.CountUpAndDownLatch
|
||||
import de.bixilon.minosoft.assets.util.FileUtil.readAsString
|
||||
import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.SpriteAnimator
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.StaticTextureArray
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureArrayStates
|
||||
@ -201,7 +201,7 @@ class OpenGLTextureArray(
|
||||
}
|
||||
}
|
||||
|
||||
override fun use(shader: Shader, name: String) {
|
||||
override fun use(shader: NativeShader, name: String) {
|
||||
shader.use()
|
||||
activate()
|
||||
|
||||
|
@ -17,7 +17,7 @@ import de.bixilon.kutil.concurrent.lock.thread.ThreadLock
|
||||
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
|
||||
import de.bixilon.kutil.latch.CountUpAndDownLatch
|
||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.ShaderUniforms
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureData
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.dynamic.DynamicTextureArray
|
||||
@ -47,7 +47,7 @@ class OpenGLDynamicTextureArray(
|
||||
private var textures: Array<WeakReference<OpenGLDynamicTexture>?> = arrayOfNulls(initialSize)
|
||||
private val lock = ThreadLock()
|
||||
private var textureId = -1
|
||||
var shaders: MutableSet<Shader> = mutableSetOf()
|
||||
var shaders: MutableSet<NativeShader> = mutableSetOf()
|
||||
|
||||
override val size: Int
|
||||
get() {
|
||||
@ -139,12 +139,12 @@ class OpenGLDynamicTextureArray(
|
||||
glBindTexture(GL_TEXTURE_2D_ARRAY, textureId)
|
||||
}
|
||||
|
||||
override fun use(shader: Shader, name: String) {
|
||||
override fun use(shader: NativeShader, name: String) {
|
||||
shaders += shader
|
||||
_use(shader, name)
|
||||
}
|
||||
|
||||
private fun _use(shader: Shader, name: String = ShaderUniforms.TEXTURES) {
|
||||
private fun _use(shader: NativeShader, name: String = ShaderUniforms.TEXTURES) {
|
||||
shader.use()
|
||||
|
||||
activate()
|
||||
|
@ -18,17 +18,17 @@ import de.bixilon.kotlinglm.vec2.Vec2
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.minosoft.data.text.formatting.color.ChatColors
|
||||
import de.bixilon.minosoft.gui.rendering.camera.FogManager
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.FogShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.TextureShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.ViewProjectionShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureManager
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2Util.EMPTY
|
||||
|
||||
class WorldBorderShader(
|
||||
override val native: Shader,
|
||||
) : MinosoftShader(), TextureShader, ViewProjectionShader, FogShader {
|
||||
override val native: NativeShader,
|
||||
) : Shader(), TextureShader, ViewProjectionShader, FogShader {
|
||||
override var textures: TextureManager by textureManager()
|
||||
override var viewProjectionMatrix: Mat4 by viewProjectionMatrix()
|
||||
override var cameraPosition: Vec3 by cameraPosition()
|
||||
@ -36,7 +36,7 @@ class WorldBorderShader(
|
||||
|
||||
var tintColor by uniform("uTintColor", ChatColors.BLACK)
|
||||
|
||||
var textureIndexLayer by uniform("uIndexLayer", 0, Shader::setUInt)
|
||||
var textureIndexLayer by uniform("uIndexLayer", 0, NativeShader::setUInt)
|
||||
var textureOffset by uniform("uTextureOffset", 0.0f)
|
||||
var radius by uniform("uRadius", 0.0f)
|
||||
var center by uniform("uCenter", Vec2.EMPTY)
|
||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.gui.rendering.world.light
|
||||
import de.bixilon.minosoft.config.DebugOptions
|
||||
import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatch
|
||||
import de.bixilon.minosoft.gui.rendering.sky.SkyRenderer
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.world.light.updater.DebugLightUpdater
|
||||
import de.bixilon.minosoft.gui.rendering.world.light.updater.FullbrightLightUpdater
|
||||
import de.bixilon.minosoft.gui.rendering.world.light.updater.LightmapUpdater
|
||||
@ -56,7 +56,7 @@ class Lightmap(private val light: RenderLight) {
|
||||
return defaultUpdater
|
||||
}
|
||||
|
||||
fun use(shader: Shader, bufferName: String = "uLightMapBuffer") {
|
||||
fun use(shader: NativeShader, bufferName: String = "uLightMapBuffer") {
|
||||
buffer.use(shader, bufferName)
|
||||
}
|
||||
|
||||
|
@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.world.light
|
||||
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
import org.lwjgl.system.MemoryUtil.memAllocFloat
|
||||
|
||||
@ -57,7 +57,7 @@ class LightmapBuffer(renderSystem: RenderSystem) {
|
||||
upload = false
|
||||
}
|
||||
|
||||
fun use(shader: Shader, name: String) {
|
||||
fun use(shader: NativeShader, name: String) {
|
||||
buffer.use(shader, name)
|
||||
}
|
||||
|
||||
|
@ -16,16 +16,16 @@ package de.bixilon.minosoft.gui.rendering.world.shader
|
||||
import de.bixilon.kotlinglm.mat4x4.Mat4
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.minosoft.gui.rendering.camera.FogManager
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.*
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureManager
|
||||
import de.bixilon.minosoft.gui.rendering.world.light.LightmapBuffer
|
||||
|
||||
class WorldShader(
|
||||
override val native: Shader,
|
||||
override val native: NativeShader,
|
||||
override val transparent: Boolean,
|
||||
) : MinosoftShader(), TextureShader, AnimatedShader, LightShader, TransparentShader, ViewProjectionShader, FogShader {
|
||||
) : Shader(), TextureShader, AnimatedShader, LightShader, TransparentShader, ViewProjectionShader, FogShader {
|
||||
override var textures: TextureManager by textureManager()
|
||||
override val lightmap: LightmapBuffer by lightmap()
|
||||
override var viewProjectionMatrix: Mat4 by viewProjectionMatrix()
|
||||
|
@ -16,18 +16,18 @@ package de.bixilon.minosoft.gui.rendering.world.shader
|
||||
import de.bixilon.kotlinglm.mat4x4.Mat4
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.minosoft.gui.rendering.camera.FogManager
|
||||
import de.bixilon.minosoft.gui.rendering.shader.MinosoftShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.FogShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.LightShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.TextureShader
|
||||
import de.bixilon.minosoft.gui.rendering.shader.types.ViewProjectionShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.NativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureManager
|
||||
import de.bixilon.minosoft.gui.rendering.world.light.LightmapBuffer
|
||||
|
||||
class WorldTextShader(
|
||||
override val native: Shader,
|
||||
) : MinosoftShader(), TextureShader, LightShader, ViewProjectionShader, FogShader {
|
||||
override val native: NativeShader,
|
||||
) : Shader(), TextureShader, LightShader, ViewProjectionShader, FogShader {
|
||||
override var textures: TextureManager by textureManager()
|
||||
override val lightmap: LightmapBuffer by lightmap()
|
||||
override var viewProjectionMatrix: Mat4 by viewProjectionMatrix()
|
||||
|
Loading…
x
Reference in New Issue
Block a user