mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-06-07 22:43:48 +00:00
Update Texture base class to accept slot when calling Bind
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user