diff --git a/PCK-Studio/Rendering/ModelRenderer.cs b/PCK-Studio/Rendering/ModelRenderer.cs index a212caf1..93d9bb8c 100644 --- a/PCK-Studio/Rendering/ModelRenderer.cs +++ b/PCK-Studio/Rendering/ModelRenderer.cs @@ -84,7 +84,7 @@ namespace PckStudio.Rendering // render texture { - _modelRenderTexture = new Texture2D(0); + _modelRenderTexture = new Texture2D(); _modelRenderTexture.PixelFormat = PixelFormat.Bgra; _modelRenderTexture.InternalPixelFormat = PixelInternalFormat.Rgba8; _modelRenderTexture.MinFilter = TextureMinFilter.Nearest; @@ -219,7 +219,7 @@ namespace PckStudio.Rendering ShaderProgram shader = GetShader("CubeShader"); - _modelRenderTexture.Bind(); + _modelRenderTexture.Bind(slot: 0); if (RenderModelBounds) { @@ -230,6 +230,7 @@ namespace PckStudio.Rendering { DrawMesh(item, shader, item.Transform * Matrix4.CreateScale(1f, -1f, -1f)); } + _modelRenderTexture.Unbind(); } } } diff --git a/PCK-Studio/Rendering/SceneViewport.cs b/PCK-Studio/Rendering/SceneViewport.cs index aafe70da..c422742c 100644 --- a/PCK-Studio/Rendering/SceneViewport.cs +++ b/PCK-Studio/Rendering/SceneViewport.cs @@ -300,7 +300,7 @@ namespace PckStudio.Rendering #if USE_FRAMEBUFFER _framebuffer = new FrameBuffer(); _framebuffer.Bind(); - _framebufferTexture = new Texture2D(0); + _framebufferTexture = new Texture2D(); _framebufferTexture.PixelFormat = OpenTK.Graphics.OpenGL.PixelFormat.Rgb; _framebufferTexture.InternalPixelFormat = PixelInternalFormat.Rgb; _framebufferTexture.SetSize(Size); @@ -355,7 +355,7 @@ namespace PckStudio.Rendering ShaderProgram framebufferShader = GetShader("Internal_framebufferShader"); framebufferShader.Bind(); _framebufferVAO.Bind(); - _framebufferTexture.Bind(); + _framebufferTexture.Bind(slot: 0); GL.DrawArrays(PrimitiveType.Triangles, 0, 6); diff --git a/PCK-Studio/Rendering/SkinRenderer.cs b/PCK-Studio/Rendering/SkinRenderer.cs index 207c7f13..92293594 100644 --- a/PCK-Studio/Rendering/SkinRenderer.cs +++ b/PCK-Studio/Rendering/SkinRenderer.cs @@ -401,7 +401,7 @@ namespace PckStudio.Rendering AddShader("CubeShader", cubeShader); GLErrorCheck(); - armorTexture = new Texture2D(0); + armorTexture = new Texture2D(); armorTexture.PixelFormat = OpenTK.Graphics.OpenGL.PixelFormat.Bgra; armorTexture.InternalPixelFormat = PixelInternalFormat.Rgba8; armorTexture.MinFilter = TextureMinFilter.Nearest; @@ -411,7 +411,7 @@ namespace PckStudio.Rendering armorTexture.SetTexture(Resources.armor); GLErrorCheck(); - capeTexture = new Texture2D(0); + capeTexture = new Texture2D(); capeTexture.PixelFormat = OpenTK.Graphics.OpenGL.PixelFormat.Bgra; capeTexture.InternalPixelFormat = PixelInternalFormat.Rgba8; capeTexture.MinFilter = TextureMinFilter.Nearest; @@ -420,7 +420,7 @@ namespace PckStudio.Rendering capeTexture.WrapT = TextureWrapMode.Repeat; GLErrorCheck(); - skinTexture = new Texture2D(0); + skinTexture = new Texture2D(); skinTexture.PixelFormat = OpenTK.Graphics.OpenGL.PixelFormat.Bgra; skinTexture.InternalPixelFormat = PixelInternalFormat.Rgba8; skinTexture.MinFilter = TextureMinFilter.Nearest; @@ -463,12 +463,12 @@ namespace PckStudio.Rendering var skyboxShader = ShaderProgram.Create(Resources.skyboxVertexShader, Resources.skyboxFragmentShader); skyboxShader.Bind(); - skyboxShader.SetUniform1("skybox", 1); + skyboxShader.SetUniform1("skybox", 0); skyboxShader.SetUniform1("brightness", 0.8f); skyboxShader.Validate(); AddShader("SkyboxShader", skyboxShader); - _skyboxTexture = new CubeTexture(1); + _skyboxTexture = new CubeTexture(); _skyboxTexture.InternalPixelFormat = PixelInternalFormat.Rgb8; _skyboxTexture.PixelFormat = OpenTK.Graphics.OpenGL.PixelFormat.Bgra; _skyboxTexture.MinFilter = TextureMinFilter.Linear; diff --git a/PCK-Studio/Rendering/Texture/CubeTexture.cs b/PCK-Studio/Rendering/Texture/CubeTexture.cs index 5931546e..a273dbb1 100644 --- a/PCK-Studio/Rendering/Texture/CubeTexture.cs +++ b/PCK-Studio/Rendering/Texture/CubeTexture.cs @@ -12,9 +12,8 @@ namespace PckStudio.Rendering.Texture { internal class CubeTexture : Texture { - public CubeTexture(int slot) : base(TextureTarget.TextureCubeMap) + public CubeTexture() : base(TextureTarget.TextureCubeMap) { - Slot = slot; } public override void SetTexture(Image image) diff --git a/PCK-Studio/Rendering/Texture/Texture.cs b/PCK-Studio/Rendering/Texture/Texture.cs index 0fa5d386..d74438d7 100644 --- a/PCK-Studio/Rendering/Texture/Texture.cs +++ b/PCK-Studio/Rendering/Texture/Texture.cs @@ -65,17 +65,6 @@ namespace PckStudio.Rendering.Texture } } - public int Slot - { - get => _slot; - set - { - Debug.Assert(value >= 0 || value < 32, "Slot is out of range"); - _slot = MathHelper.Clamp(value, 0, 31); - } - } - - private int _slot = 0; private TextureMinFilter minFilter; private TextureMagFilter magFilter; private TextureWrapMode wrapS; @@ -93,9 +82,9 @@ namespace PckStudio.Rendering.Texture throw new NotImplementedException(); } - public void Bind() + public void Bind(int slot = 0) { - GL.ActiveTexture(TextureUnit.Texture0 + Slot); + GL.ActiveTexture(TextureUnit.Texture0 + slot); GL.BindTexture(Target, _id); } diff --git a/PCK-Studio/Rendering/Texture/Texture2D.cs b/PCK-Studio/Rendering/Texture/Texture2D.cs index d2ed79ee..b053b551 100644 --- a/PCK-Studio/Rendering/Texture/Texture2D.cs +++ b/PCK-Studio/Rendering/Texture/Texture2D.cs @@ -9,9 +9,8 @@ namespace PckStudio.Rendering.Texture { internal class Texture2D : Texture { - public Texture2D(int slot) : base(TextureTarget.Texture2D) + public Texture2D() : base(TextureTarget.Texture2D) { - Slot = slot; } public void SetSize(Size size)