Restructed project in preparation for unit testing.
This commit is contained in:
@@ -1,89 +0,0 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using OpenTK.Graphics.OpenGL;
|
||||
namespace RecrownedGTK.Graphics.Render.Shader {
|
||||
public class Shader : IDisposable {
|
||||
int handle;
|
||||
public bool IsDisposed {
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
public Shader(string vertexPath, string fragmentPath) {
|
||||
IsDisposed = false;
|
||||
|
||||
int vertShader = 0;
|
||||
int fragShader = 0;
|
||||
|
||||
string vertShaderSource;
|
||||
string fragShaderSource;
|
||||
|
||||
using (StreamReader stream = new StreamReader(vertexPath, Encoding.UTF8)) {
|
||||
vertShaderSource = stream.ReadToEnd();
|
||||
}
|
||||
using (StreamReader stream = new StreamReader(fragmentPath, Encoding.UTF8)) {
|
||||
fragShaderSource = stream.ReadToEnd();
|
||||
}
|
||||
|
||||
vertShader = GL.CreateShader(ShaderType.VertexShader);
|
||||
GL.ShaderSource(vertShader, vertShaderSource);
|
||||
fragShader = GL.CreateShader(ShaderType.FragmentShader);
|
||||
GL.ShaderSource(fragShader, fragShaderSource);
|
||||
|
||||
string log;
|
||||
GL.CompileShader(vertShader);
|
||||
if ((log = GL.GetShaderInfoLog(vertShader)) == "") {
|
||||
throw new ArgumentException("Error while compiling vertex shader: " + log, "vertexPath");
|
||||
}
|
||||
GL.CompileShader(fragShader);
|
||||
if ((log = GL.GetShaderInfoLog(fragShader)) == "") {
|
||||
throw new ArgumentException("Error while compiling fragment shader: " + log, "fragmentPath");
|
||||
}
|
||||
|
||||
//Creates the shader program.
|
||||
handle = GL.CreateProgram();
|
||||
|
||||
//Attaches shader to program and links it.
|
||||
GL.AttachShader(handle, vertShader);
|
||||
GL.AttachShader(handle, fragShader);
|
||||
GL.LinkProgram(handle);
|
||||
|
||||
GL.DetachShader(handle, vertShader);
|
||||
GL.DetachShader(handle, fragShader);
|
||||
GL.DeleteShader(vertShader);
|
||||
GL.DeleteShader(fragShader);
|
||||
}
|
||||
|
||||
public void Use() {
|
||||
GL.UseProgram(handle);
|
||||
}
|
||||
|
||||
public int GetAttribLocation(string attributeName) {
|
||||
return GL.GetAttribLocation(handle, attributeName);
|
||||
}
|
||||
|
||||
protected virtual void Dispose(bool disposing) {
|
||||
if (IsDisposed) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (disposing) {
|
||||
}
|
||||
GL.DeleteProgram(handle);
|
||||
IsDisposed = true;
|
||||
}
|
||||
|
||||
public void Dispose() {
|
||||
Dispose(true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
~Shader() {
|
||||
Dispose(false);
|
||||
}
|
||||
public static Shader CreateBasicShader() {
|
||||
Shader shader = new Shader("Graphics/Render/Shader/default.vert", "Graphics/Render/Shader/default.frag");
|
||||
return shader;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,10 +0,0 @@
|
||||
out vec4 outputColor;
|
||||
|
||||
in vec2 texCoord;
|
||||
in vec4 color;
|
||||
uniform sampler2D texture0;
|
||||
|
||||
void main()
|
||||
{
|
||||
outputColor = texture(texture0, texCoord) * color;
|
||||
}
|
@@ -1,15 +0,0 @@
|
||||
#version 330 core
|
||||
in vec3 aPosition;
|
||||
in vec2 aTexCoord;
|
||||
in vec4 aColor;
|
||||
uniform mat4 transform;
|
||||
|
||||
out vec2 texCoord;
|
||||
out vec4 color;
|
||||
|
||||
void main()
|
||||
{
|
||||
texCoord = aTexCoord;
|
||||
color = aColor;
|
||||
gl_Position = vec4(aPosition, 1.0f) * transform;
|
||||
}
|
@@ -1,34 +0,0 @@
|
||||
using System;
|
||||
namespace RecrownedGTK.Graphics.Render {
|
||||
public class TextureBatch : IDisposable {
|
||||
private bool disposed;
|
||||
private bool begun;
|
||||
public TextureBatch() {
|
||||
//TODO: Finish this class.
|
||||
}
|
||||
public void Begin() {
|
||||
if (begun) throw new InvalidOperationException("This TextureBatch has already been started.");
|
||||
begun = true;
|
||||
}
|
||||
|
||||
public void End() {
|
||||
if (!begun) throw new InvalidOperationException("The TextureBatch has not begun.");
|
||||
begun = false;
|
||||
}
|
||||
protected virtual void Dispose(bool disposing) {
|
||||
if (disposed) return;
|
||||
if (disposing) {
|
||||
}
|
||||
|
||||
disposed = true;
|
||||
}
|
||||
public void Dispose() {
|
||||
Dispose(true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
~TextureBatch() {
|
||||
Dispose(false);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user