1
0
mirror of synced 2025-02-07 15:11:20 +01:00

Update to latest gl framework

This commit is contained in:
KillzXGaming 2019-06-19 17:05:44 -04:00
parent 54c4bac8bc
commit cae1d75173
25 changed files with 39 additions and 84 deletions

Binary file not shown.

View File

@ -574,8 +574,8 @@ namespace FirstPlugin
gl_Position = mtxMdl * mtxCam * vec4(vPosition.xyz, 1.0); gl_Position = mtxMdl * mtxCam * vec4(vPosition.xyz, 1.0);
}"); }");
defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert); defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert, control);
solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert); solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert, control);
} }
@ -614,8 +614,8 @@ namespace FirstPlugin
gl_Position = mvpMatrix * vec4(vPosition.xyz, 1.0); gl_Position = mvpMatrix * vec4(vPosition.xyz, 1.0);
}"); }");
defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert); defaultShaderProgram = new ShaderProgram(defaultFrag, defaultVert, control);
solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert); solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert, control);
} }
private void CheckBuffers() private void CheckBuffers()

View File

@ -249,7 +249,7 @@ namespace FirstPlugin
var defaultFrag = new FragmentShader(File.ReadAllText(pathFrag)); var defaultFrag = new FragmentShader(File.ReadAllText(pathFrag));
var defaultVert = new VertexShader(File.ReadAllText(pathVert)); 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) public override void Prepare(GL_ControlLegacy control)

View File

@ -113,7 +113,7 @@ namespace FirstPlugin
var defaultFrag = new FragmentShader(File.ReadAllText(pathFrag)); var defaultFrag = new FragmentShader(File.ReadAllText(pathFrag));
var defaultVert = new VertexShader(File.ReadAllText(pathVert)); 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) public override void Prepare(GL_ControlLegacy control)
@ -124,7 +124,7 @@ namespace FirstPlugin
var defaultFrag = new FragmentShader(File.ReadAllText(pathFrag)); var defaultFrag = new FragmentShader(File.ReadAllText(pathFrag));
var defaultVert = new VertexShader(File.ReadAllText(pathVert)); 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) public override void Draw(GL_ControlLegacy control, Pass pass)
@ -170,7 +170,7 @@ namespace FirstPlugin
GL.Enable(EnableCap.CullFace); 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) foreach (var FaceGroup in fshp.Shape.FaceGroups)
{ {
@ -179,10 +179,10 @@ namespace FirstPlugin
for (int i = 0; i < FaceGroup.BoneIndexList.Length; i++) 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; 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) 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); 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) if (m.lodMeshes[m.DisplayLODIndex].faces.Count <= 3)
return; return;
SetUniforms(m.MaterialWrapper, shader, m, m.DisplayId); SetUniforms(m.MaterialWrapper, shader, m, m.DisplayId);
SetUniformBlocks(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); SetVertexAttributes(m, shader);
SetTextureUniforms(m.MaterialWrapper, m, shader); SetTextureUniforms(m.MaterialWrapper, m, shader);

View File

@ -53,7 +53,7 @@ namespace FirstPlugin.Turbo.CourseMuuntStructs
gl_Position = mtxCam * mtxMdl * vec4(position.xyz, 1); 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) public override void Draw(GL_ControlLegacy control, Pass pass)

View File

@ -1,5 +1,4 @@
using Gl_EditorFramework; using GL_EditorFramework.GL_Core;
using GL_EditorFramework.GL_Core;
using GL_EditorFramework.Interfaces; using GL_EditorFramework.Interfaces;
using OpenTK; using OpenTK;
using OpenTK.Graphics.OpenGL; using OpenTK.Graphics.OpenGL;
@ -158,7 +157,7 @@ namespace GL_EditorFramework.EditorDrawables
public override void Prepare(GL_ControlModern control) public override void Prepare(GL_ControlModern control)
{ {
Renderers.ColorBlockRenderer.Initialize(); Renderers.ColorBlockRenderer.Initialize(control);
} }
public override void Prepare(GL_ControlLegacy control) public override void Prepare(GL_ControlLegacy control)
@ -214,12 +213,6 @@ namespace GL_EditorFramework.EditorDrawables
return REDRAW; return REDRAW;
} }
public override void ApplyTransformActionToSelection(AbstractTransformAction transformAction)
{
position = transformAction.NewPos(position);
UpdateNodePosition();
}
public override LocalOrientation GetLocalOrientation(int partIndex) public override LocalOrientation GetLocalOrientation(int partIndex)
{ {
return new LocalOrientation(position); return new LocalOrientation(position);

View File

@ -60,7 +60,7 @@ namespace FirstPlugin.Turbo.CourseMuuntStructs
gl_Position = mtxCam * mtxMdl * vec4(position.xyz, 1); 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) public override void Draw(GL_ControlLegacy control, Pass pass)

View File

@ -24,6 +24,8 @@ namespace Switch_Toolbox.Library.Forms
public void BeginUpdate() { treeViewCustom1.BeginUpdate(); } public void BeginUpdate() { treeViewCustom1.BeginUpdate(); }
public void EndUpdate() { treeViewCustom1.EndUpdate(); } public void EndUpdate() { treeViewCustom1.EndUpdate(); }
public readonly int MAX_TREENODE_VALUE = 1;
public void AddIArchiveFile(IFileFormat FileFormat) public void AddIArchiveFile(IFileFormat FileFormat)
{ {
TreeNode FileRoot = new ArchiveRootNodeWrapper(FileFormat.FileName, (IArchiveFile)FileFormat); TreeNode FileRoot = new ArchiveRootNodeWrapper(FileFormat.FileName, (IArchiveFile)FileFormat);
@ -40,6 +42,9 @@ namespace Switch_Toolbox.Library.Forms
int I = 0; int I = 0;
foreach (var node in nodeFiles) foreach (var node in nodeFiles)
{ {
if (I++ == MAX_TREENODE_VALUE)
break;
string nodeString = node.FileName; string nodeString = node.FileName;
var roots = nodeString.Split(new char[] { '/' }, var roots = nodeString.Split(new char[] { '/' },

View File

@ -375,10 +375,10 @@ namespace Switch_Toolbox.Library
bool IsOrtho = orthographicToolStripMenuItem.Checked; bool IsOrtho = orthographicToolStripMenuItem.Checked;
if (GL_ControlModern != null) // if (GL_ControlModern != null)
GL_ControlModern.UseOrthographicView = IsOrtho; // GL_ControlModern.UseOrthographicView = IsOrtho;
else // else
GL_ControlLegacy.UseOrthographicView = IsOrtho; // GL_ControlLegacy.UseOrthographicView = IsOrtho;
UpdateViewport(); UpdateViewport();
} }
@ -398,10 +398,10 @@ namespace Switch_Toolbox.Library
bool IsOrtho = orthographicToolStripMenuItem.Checked; bool IsOrtho = orthographicToolStripMenuItem.Checked;
if (GL_ControlModern != null) // if (GL_ControlModern != null)
GL_ControlModern.UseOrthographicView = IsOrtho; // GL_ControlModern.UseOrthographicView = IsOrtho;
else // else
GL_ControlLegacy.UseOrthographicView = IsOrtho; // GL_ControlLegacy.UseOrthographicView = IsOrtho;
UpdateViewport(); UpdateViewport();
} }

View File

@ -139,7 +139,7 @@ namespace Switch_Toolbox.Library.Rendering
gl_Position = vec4(position, 1); gl_Position = vec4(position, 1);
}"); }");
solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert); solidColorShaderProgram = new ShaderProgram(solidColorFrag, solidColorVert, control);
} }
public override void Prepare(GL_ControlLegacy control) public override void Prepare(GL_ControlLegacy control)

View File

@ -198,7 +198,7 @@ namespace Switch_Toolbox.Library.Rendering
gl_Position = mvpMatrix * vec4(vPosition.xyz, 1.0); 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) public override void Prepare(GL_ControlLegacy control)

View File

@ -171,7 +171,7 @@ namespace Switch_Toolbox.Library.Rendering
gl_Position = mtxMdl * mtxCam * vec4(vPosition.xyz, 1); 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) public override void Prepare(GL_ControlLegacy control)

View File

@ -24,7 +24,7 @@ namespace Switch_Toolbox.Library.Rendering
var defaultFrag = new FragmentShader(File.ReadAllText(pathFrag)); var defaultFrag = new FragmentShader(File.ReadAllText(pathFrag));
var defaultVert = new VertexShader(File.ReadAllText(pathVert)); 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) public override void Prepare(GL_ControlLegacy control)
{ {

View File

@ -189,7 +189,7 @@ namespace Switch_Toolbox.Library.Rendering
gl_Position = mtxCam * mtxMdl * vec4(vPosition.xyz, 1); 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) public override void Prepare(GL_ControlLegacy control)

View File

@ -40,12 +40,12 @@ namespace Switch_Toolbox.Library.Rendering
GenerateFrameBuffer(); GenerateFrameBuffer();
} }
public void GenerateBrdfMap() public void GenerateBrdfMap(GLControl control)
{ {
if (!IsBufferCreated()) if (!IsBufferCreated())
GenerateFrameBuffer(); GenerateFrameBuffer();
GL.UseProgram(BrdfShader.program); BrdfShader.Use(control);
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
RenderQuad(); RenderQuad();

View File

@ -308,7 +308,7 @@ namespace Switch_Toolbox.Library.Rendering
gl_Position = mtxMdl * mtxCam * vec4(vPosition.xyz, 1); 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) public override void Prepare(GL_ControlLegacy control)

View File

@ -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) private static void DrawScreenTriangle(ShaderProgram shader)
{ {
float[] vertices = float[] vertices =

Binary file not shown.

Binary file not shown.