protected override void FreeUnmanaged() { if (!Program.Valid) { return; } if (Samplers != null) { for (int i = 0; i < Samplers.Length; ++i) { GraphicsContext.DestroyUniform(Samplers[i]); } } if (Parameters != null) { for (int i = 0; i < Parameters.Length; ++i) { GraphicsContext.DestroyUniform(Parameters[i].Uniform); } } GraphicsContext.DestroyProgram(Program); }