Example #1
0
		public void AttachShader(Shader Shader)
		{
			switch (Shader.ShaderType)
			{
				case GLES.Shader.Type.Fragment: this.FragmentShader = Shader; break;
				case GLES.Shader.Type.Vertex: this.VertexShader = Shader; break;
			}
			GL.glAttachShader(this.Index, Shader.Index);
		}
Example #2
0
		static public ShaderProgram CreateProgram(string VertexProgram, string FragmentProgram)
		{
			var vertexShader = new Shader(Shader.Type.Vertex, VertexProgram);
			var fragmentShader = new Shader(Shader.Type.Fragment, FragmentProgram);
			var programObject = new ShaderProgram();
			programObject.AttachShader(vertexShader);
			programObject.AttachShader(fragmentShader);
			return programObject;
		}
Example #3
0
		public void Dispose()
		{
			// TODO: It seems that this object is created in one thread but disposed in other one
#if false
			if (this.Index != 0)
			{
				if (this.VertexShader != null) this.VertexShader.Dispose();
				if (this.FragmentShader != null) this.FragmentShader.Dispose();
				GL.glDeleteProgram(this.Index);
				this.Index = 0;
				this.VertexShader = null;
				this.FragmentShader = null;
			}
#endif
		}