diff --git a/.vs/Switch_Toolbox/v15/.suo b/.vs/Switch_Toolbox/v15/.suo index c450f294..1ce9715b 100644 Binary files a/.vs/Switch_Toolbox/v15/.suo and b/.vs/Switch_Toolbox/v15/.suo differ diff --git a/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide b/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide index db107b87..4277c44d 100644 Binary files a/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide and b/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide differ diff --git a/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-shm b/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-shm index bebe0dd5..e04f4fcb 100644 Binary files a/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-shm and b/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-shm differ diff --git a/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-wal b/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-wal index e577b46f..3f58cb5b 100644 Binary files a/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-wal and b/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-wal differ diff --git a/Switch_FileFormatsMain/FileFormats/Collision/KCL.cs b/Switch_FileFormatsMain/FileFormats/Collision/KCL.cs index 4b87886b..c72b5b5e 100644 --- a/Switch_FileFormatsMain/FileFormats/Collision/KCL.cs +++ b/Switch_FileFormatsMain/FileFormats/Collision/KCL.cs @@ -574,8 +574,8 @@ namespace FirstPlugin gl_Position = mtxMdl * mtxCam * vec4(vPosition.xyz, 1.0); }"); - defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert); - solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert); + defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert, control); + solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert, control); } @@ -614,8 +614,8 @@ namespace FirstPlugin gl_Position = mvpMatrix * vec4(vPosition.xyz, 1.0); }"); - defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert); - solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert); + defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert, control); + solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert, control); } private void CheckBuffers() diff --git a/Switch_FileFormatsMain/FileFormats/MKAGPDX/Model/MKAGPDX_Model.cs b/Switch_FileFormatsMain/FileFormats/MKAGPDX/Model/MKAGPDX_Model.cs index ef4e4cfe..ca61ff5f 100644 --- a/Switch_FileFormatsMain/FileFormats/MKAGPDX/Model/MKAGPDX_Model.cs +++ b/Switch_FileFormatsMain/FileFormats/MKAGPDX/Model/MKAGPDX_Model.cs @@ -249,7 +249,7 @@ namespace FirstPlugin var defaultFrag = new FragmentShader(File.ReadAllText(pathFrag)); var defaultVert = new VertexShader(File.ReadAllText(pathVert)); - defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert); + defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert, control); } public override void Prepare(GL_ControlLegacy control) diff --git a/Switch_FileFormatsMain/GL/BCRES_Render.cs b/Switch_FileFormatsMain/GL/BCRES_Render.cs index eb703277..1f2b56af 100644 --- a/Switch_FileFormatsMain/GL/BCRES_Render.cs +++ b/Switch_FileFormatsMain/GL/BCRES_Render.cs @@ -113,7 +113,7 @@ namespace FirstPlugin var defaultFrag = new FragmentShader(File.ReadAllText(pathFrag)); var defaultVert = new VertexShader(File.ReadAllText(pathVert)); - defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert); + defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert, control); } public override void Prepare(GL_ControlLegacy control) @@ -124,7 +124,7 @@ namespace FirstPlugin var defaultFrag = new FragmentShader(File.ReadAllText(pathFrag)); var defaultVert = new VertexShader(File.ReadAllText(pathVert)); - defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert); + defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert, control); } public override void Draw(GL_ControlLegacy control, Pass pass) @@ -170,7 +170,7 @@ namespace FirstPlugin GL.Enable(EnableCap.CullFace); } - private static void SetBoneUniforms(ShaderProgram shader, CMDLWrapper fmdl, SOBJWrapper fshp) + private static void SetBoneUniforms(GLControl control, ShaderProgram shader, CMDLWrapper fmdl, SOBJWrapper fshp) { foreach (var FaceGroup in fshp.Shape.FaceGroups) { @@ -179,10 +179,10 @@ namespace FirstPlugin for (int i = 0; i < FaceGroup.BoneIndexList.Length; i++) { - GL.Uniform1(GL.GetUniformLocation(shader.program, String.Format("boneIds[{0}]", i)), FaceGroup.BoneIndexList[i]); + GL.Uniform1(GL.GetUniformLocation(shader.programs[control], String.Format("boneIds[{0}]", i)), FaceGroup.BoneIndexList[i]); Matrix4 transform = fmdl.Skeleton.Renderable.bones[(int)FaceGroup.BoneIndexList[i]].invert * fmdl.Skeleton.Renderable.bones[(int)FaceGroup.BoneIndexList[i]].Transform; - GL.UniformMatrix4(GL.GetUniformLocation(shader.program, String.Format("bones[{0}]", i)), false, ref transform); + GL.UniformMatrix4(GL.GetUniformLocation(shader.programs[control], String.Format("bones[{0}]", i)), false, ref transform); } } } @@ -306,7 +306,7 @@ namespace FirstPlugin { foreach (SOBJWrapper shp in mdl.Shapes) { - DrawModel(shp, mdl, shader, mdl.IsSelected); + DrawModel(control, shp, mdl, shader, mdl.IsSelected); } } } @@ -328,14 +328,14 @@ namespace FirstPlugin GL.BindBuffer(BufferTarget.ElementArrayBuffer, ibo_elements); } - private void DrawModel(SOBJWrapper m, CMDLWrapper mdl, ShaderProgram shader, bool drawSelection) + private void DrawModel(GLControl control, SOBJWrapper m, CMDLWrapper mdl, ShaderProgram shader, bool drawSelection) { if (m.lodMeshes[m.DisplayLODIndex].faces.Count <= 3) return; SetUniforms(m.MaterialWrapper, shader, m, m.DisplayId); SetUniformBlocks(m.MaterialWrapper, shader, m, m.DisplayId); - SetBoneUniforms(shader, mdl, m); + SetBoneUniforms(control,shader, mdl, m); SetVertexAttributes(m, shader); SetTextureUniforms(m.MaterialWrapper, m, shader); diff --git a/Switch_FileFormatsMain/GUI/BFRES/BfresEditor.cs b/Switch_FileFormatsMain/GUI/BFRES/BfresEditor.cs index 26c5fe13..0d21a5c2 100644 --- a/Switch_FileFormatsMain/GUI/BFRES/BfresEditor.cs +++ b/Switch_FileFormatsMain/GUI/BFRES/BfresEditor.cs @@ -132,7 +132,7 @@ namespace FirstPlugin.Forms { Renderer.CenterCamera(viewport.GL_ControlModern); viewport.UpdateViewport(); - } + } } public void LoadEditor(UserControl Control) diff --git a/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/Base/RenderableConnectedMapPoints.cs b/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/Base/RenderableConnectedMapPoints.cs index 044c5106..aba38cd9 100644 --- a/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/Base/RenderableConnectedMapPoints.cs +++ b/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/Base/RenderableConnectedMapPoints.cs @@ -53,7 +53,7 @@ namespace FirstPlugin.Turbo.CourseMuuntStructs gl_Position = mtxCam * mtxMdl * vec4(position.xyz, 1); }"); - defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert); + defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert, control); } public override void Draw(GL_ControlLegacy control, Pass pass) diff --git a/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/Base/RenderablePathPoint.cs b/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/Base/RenderablePathPoint.cs index 318bfbce..4d8afe4f 100644 --- a/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/Base/RenderablePathPoint.cs +++ b/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/Base/RenderablePathPoint.cs @@ -1,5 +1,4 @@ -using Gl_EditorFramework; -using GL_EditorFramework.GL_Core; +using GL_EditorFramework.GL_Core; using GL_EditorFramework.Interfaces; using OpenTK; using OpenTK.Graphics.OpenGL; @@ -158,7 +157,7 @@ namespace GL_EditorFramework.EditorDrawables public override void Prepare(GL_ControlModern control) { - Renderers.ColorBlockRenderer.Initialize(); + Renderers.ColorBlockRenderer.Initialize(control); } public override void Prepare(GL_ControlLegacy control) @@ -214,12 +213,6 @@ namespace GL_EditorFramework.EditorDrawables return REDRAW; } - public override void ApplyTransformActionToSelection(AbstractTransformAction transformAction) - { - position = transformAction.NewPos(position); - UpdateNodePosition(); - } - public override LocalOrientation GetLocalOrientation(int partIndex) { return new LocalOrientation(position); diff --git a/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/Paths/RenderableConnectedPaths.cs b/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/Paths/RenderableConnectedPaths.cs index 6ae1c4e6..afe03484 100644 --- a/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/Paths/RenderableConnectedPaths.cs +++ b/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/Paths/RenderableConnectedPaths.cs @@ -60,7 +60,7 @@ namespace FirstPlugin.Turbo.CourseMuuntStructs gl_Position = mtxCam * mtxMdl * vec4(position.xyz, 1); }"); - defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert); + defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert, control); } public override void Draw(GL_ControlLegacy control, Pass pass) diff --git a/Switch_FileFormatsMain/obj/Release/DesignTimeResolveAssemblyReferences.cache b/Switch_FileFormatsMain/obj/Release/DesignTimeResolveAssemblyReferences.cache index b032478a..1ded9ea7 100644 Binary files a/Switch_FileFormatsMain/obj/Release/DesignTimeResolveAssemblyReferences.cache and b/Switch_FileFormatsMain/obj/Release/DesignTimeResolveAssemblyReferences.cache differ diff --git a/Switch_FileFormatsMain/obj/Release/Switch_FileFormatsMain.csprojAssemblyReference.cache b/Switch_FileFormatsMain/obj/Release/Switch_FileFormatsMain.csprojAssemblyReference.cache index 1d01a3f6..c8f40e5c 100644 Binary files a/Switch_FileFormatsMain/obj/Release/Switch_FileFormatsMain.csprojAssemblyReference.cache and b/Switch_FileFormatsMain/obj/Release/Switch_FileFormatsMain.csprojAssemblyReference.cache differ diff --git a/Switch_Toolbox_Library/Forms/Editors/Object Editor/ObjectEditorTree.cs b/Switch_Toolbox_Library/Forms/Editors/Object Editor/ObjectEditorTree.cs index 2d84e85a..8fa56730 100644 --- a/Switch_Toolbox_Library/Forms/Editors/Object Editor/ObjectEditorTree.cs +++ b/Switch_Toolbox_Library/Forms/Editors/Object Editor/ObjectEditorTree.cs @@ -24,6 +24,8 @@ namespace Switch_Toolbox.Library.Forms public void BeginUpdate() { treeViewCustom1.BeginUpdate(); } public void EndUpdate() { treeViewCustom1.EndUpdate(); } + public readonly int MAX_TREENODE_VALUE = 1; + public void AddIArchiveFile(IFileFormat FileFormat) { TreeNode FileRoot = new ArchiveRootNodeWrapper(FileFormat.FileName, (IArchiveFile)FileFormat); @@ -40,6 +42,9 @@ namespace Switch_Toolbox.Library.Forms int I = 0; foreach (var node in nodeFiles) { + if (I++ == MAX_TREENODE_VALUE) + break; + string nodeString = node.FileName; var roots = nodeString.Split(new char[] { '/' }, diff --git a/Switch_Toolbox_Library/Forms/Viewport.cs b/Switch_Toolbox_Library/Forms/Viewport.cs index 3c005ccd..843a5aee 100644 --- a/Switch_Toolbox_Library/Forms/Viewport.cs +++ b/Switch_Toolbox_Library/Forms/Viewport.cs @@ -375,10 +375,10 @@ namespace Switch_Toolbox.Library bool IsOrtho = orthographicToolStripMenuItem.Checked; - if (GL_ControlModern != null) - GL_ControlModern.UseOrthographicView = IsOrtho; - else - GL_ControlLegacy.UseOrthographicView = IsOrtho; + // if (GL_ControlModern != null) + // GL_ControlModern.UseOrthographicView = IsOrtho; + // else + // GL_ControlLegacy.UseOrthographicView = IsOrtho; UpdateViewport(); } @@ -398,10 +398,10 @@ namespace Switch_Toolbox.Library bool IsOrtho = orthographicToolStripMenuItem.Checked; - if (GL_ControlModern != null) - GL_ControlModern.UseOrthographicView = IsOrtho; - else - GL_ControlLegacy.UseOrthographicView = IsOrtho; + // if (GL_ControlModern != null) + // GL_ControlModern.UseOrthographicView = IsOrtho; + // else + // GL_ControlLegacy.UseOrthographicView = IsOrtho; UpdateViewport(); } diff --git a/Switch_Toolbox_Library/Rendering/DrawableBackground.cs b/Switch_Toolbox_Library/Rendering/DrawableBackground.cs index 4d0c4de2..c656973c 100644 --- a/Switch_Toolbox_Library/Rendering/DrawableBackground.cs +++ b/Switch_Toolbox_Library/Rendering/DrawableBackground.cs @@ -139,7 +139,7 @@ namespace Switch_Toolbox.Library.Rendering gl_Position = vec4(position, 1); }"); - solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert); + solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert, control); } public override void Prepare(GL_ControlLegacy control) diff --git a/Switch_Toolbox_Library/Rendering/DrawableCube.cs b/Switch_Toolbox_Library/Rendering/DrawableCube.cs index 3a3a4533..7591b040 100644 --- a/Switch_Toolbox_Library/Rendering/DrawableCube.cs +++ b/Switch_Toolbox_Library/Rendering/DrawableCube.cs @@ -198,7 +198,7 @@ namespace Switch_Toolbox.Library.Rendering gl_Position = mvpMatrix * vec4(vPosition.xyz, 1.0); }"); - solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert); + solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert, control); } public override void Prepare(GL_ControlLegacy control) diff --git a/Switch_Toolbox_Library/Rendering/DrawableFloor.cs b/Switch_Toolbox_Library/Rendering/DrawableFloor.cs index a4e2eb50..3aa23586 100644 --- a/Switch_Toolbox_Library/Rendering/DrawableFloor.cs +++ b/Switch_Toolbox_Library/Rendering/DrawableFloor.cs @@ -171,7 +171,7 @@ namespace Switch_Toolbox.Library.Rendering gl_Position = mtxMdl * mtxCam * vec4(vPosition.xyz, 1); }"); - gridShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert); + gridShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert, control); } public override void Prepare(GL_ControlLegacy control) diff --git a/Switch_Toolbox_Library/Rendering/DrawableSkybox.cs b/Switch_Toolbox_Library/Rendering/DrawableSkybox.cs index 9177628e..ea85b959 100644 --- a/Switch_Toolbox_Library/Rendering/DrawableSkybox.cs +++ b/Switch_Toolbox_Library/Rendering/DrawableSkybox.cs @@ -24,7 +24,7 @@ namespace Switch_Toolbox.Library.Rendering var defaultFrag = new FragmentShader(File.ReadAllText(pathFrag)); var defaultVert = new VertexShader(File.ReadAllText(pathVert)); - defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert); + defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert, control); } public override void Prepare(GL_ControlLegacy control) { diff --git a/Switch_Toolbox_Library/Rendering/DrawableXyzLines.cs b/Switch_Toolbox_Library/Rendering/DrawableXyzLines.cs index 50f9e00d..333be9c5 100644 --- a/Switch_Toolbox_Library/Rendering/DrawableXyzLines.cs +++ b/Switch_Toolbox_Library/Rendering/DrawableXyzLines.cs @@ -189,7 +189,7 @@ namespace Switch_Toolbox.Library.Rendering gl_Position = mtxCam * mtxMdl * vec4(vPosition.xyz, 1); }"); - solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert); + solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert, control); } public override void Prepare(GL_ControlLegacy control) diff --git a/Switch_Toolbox_Library/Rendering/PBRMapGenerator.cs b/Switch_Toolbox_Library/Rendering/PBRMapGenerator.cs index b5b8bebe..d3263ace 100644 --- a/Switch_Toolbox_Library/Rendering/PBRMapGenerator.cs +++ b/Switch_Toolbox_Library/Rendering/PBRMapGenerator.cs @@ -40,12 +40,12 @@ namespace Switch_Toolbox.Library.Rendering GenerateFrameBuffer(); } - public void GenerateBrdfMap() + public void GenerateBrdfMap(GLControl control) { if (!IsBufferCreated()) GenerateFrameBuffer(); - GL.UseProgram(BrdfShader.program); + BrdfShader.Use(control); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); RenderQuad(); diff --git a/Switch_Toolbox_Library/Rendering/ProbeLighting.cs b/Switch_Toolbox_Library/Rendering/ProbeLighting.cs index 6fb93b8b..33ad2d27 100644 --- a/Switch_Toolbox_Library/Rendering/ProbeLighting.cs +++ b/Switch_Toolbox_Library/Rendering/ProbeLighting.cs @@ -308,7 +308,7 @@ namespace Switch_Toolbox.Library.Rendering gl_Position = mtxMdl * mtxCam * vec4(vPosition.xyz, 1); }"); - ProbeSHShaderProgram = new ShaderProgram(Frag, Vert); + ProbeSHShaderProgram = new ShaderProgram(Frag, Vert, control); } public override void Prepare(GL_ControlLegacy control) diff --git a/Switch_Toolbox_Library/Rendering/RenderTools.cs b/Switch_Toolbox_Library/Rendering/RenderTools.cs index 079ba2af..6bdc26f3 100644 --- a/Switch_Toolbox_Library/Rendering/RenderTools.cs +++ b/Switch_Toolbox_Library/Rendering/RenderTools.cs @@ -199,49 +199,6 @@ namespace Switch_Toolbox.Library } - public static void DrawScreenQuad() - { - var vert = new VertexShader( - @"#version 330 - - in vec3 position; - out vec2 texCoord; - - void main() - { - texCoord.x = (position.x + 1.0) * 0.5; - texCoord.y = (position.y + 1.0) * 0.5; - gl_Position = vec4(position, 1); - } - "); - var frag = new FragmentShader( - @"#version 330 in vec2 texCoord; - - uniform vec3 topColor; - uniform vec3 bottomColor; - - out vec4 FragColor; - - void main() - { - FragColor = vec4(1); - FragColor.rgb = mix(bottomColor, topColor, texCoord.y); - }"); - - ShaderProgram shader = new ShaderProgram(frag, vert); - - GL.MatrixMode(MatrixMode.Modelview); - GL.LoadIdentity(); - GL.MatrixMode(MatrixMode.Projection); - GL.LoadIdentity(); - - - shader.SetVector3("topColor", new Vector3(0, 1, 0)); - shader.SetVector3("bottomColor", new Vector3(0, 1, 0)); - - DrawScreenTriangle(shader); - } - private static void DrawScreenTriangle(ShaderProgram shader) { float[] vertices = diff --git a/Toolbox/Gl_EditorFramework.dll b/Toolbox/Gl_EditorFramework.dll index e3a48919..868c1cec 100644 Binary files a/Toolbox/Gl_EditorFramework.dll and b/Toolbox/Gl_EditorFramework.dll differ diff --git a/Toolbox/Gl_EditorFramework.pdb b/Toolbox/Gl_EditorFramework.pdb index e86531f5..a42f8e5c 100644 Binary files a/Toolbox/Gl_EditorFramework.pdb and b/Toolbox/Gl_EditorFramework.pdb differ