Beispiel #1
0
        /// <summary>
        /// Deletes the shader and removes it from the ShaderIds-Dictionary.
        /// </summary>
        /// <param name="gl"></param>
        /// <param name="type"></param>
        public void DeleteShader(OpenGL gl, ShaderTypes type)
        {
            var shader = ShaderIds[type];

            gl.DeleteShader(shader);

            ShaderIds.Remove(type);
        }
Beispiel #2
0
        /// <summary>
        /// Creates a shader.
        /// </summary>
        /// <param name="gl"></param>
        /// <param name="type"></param>
        /// <param name="shaderCode"></param>
        private void CreateShader(OpenGL gl, ShaderTypes type, string shaderCode)
        {
            var id = gl.CreateShader((uint)type);

            gl.ShaderSource(id, shaderCode);
            gl.CompileShader(id);
            ShaderIds.Add(type, id);
        }
Beispiel #3
0
        /// <summary>
        /// Deletes the shaders and the program and sets the ShaderProgramId to 0.
        /// </summary>
        /// <param name="gl"></param>
        /// <param name="deleteShaders"></param>
        public void DeleteProgram(OpenGL gl, bool deleteShaders)
        {
            while (ShaderIds.Count > 0)
            {
                DeleteShader(gl, ShaderIds.First().Key);
            }

            gl.DeleteProgram(ShaderProgramId);
            ShaderProgramId = 0;
        }