/// Hold shader specialization constant value and type
/// </summary>
public class SpecializationConstant<T> : SpecializationConstant {
- T val;
+ T val;
- public T Value => val;
+ public T Value => val;
#region CTOR
- public SpecializationConstant (uint id, T value) : base(id) {
+ public SpecializationConstant (uint id, T value) : base(id) {
val = value;
}
#endregion
public override uint Size => (uint)Marshal.SizeOf<T> ();
- internal unsafe override void WriteTo (IntPtr ptr) {
+ internal unsafe override void WriteTo (IntPtr ptr) {
if (typeof (T) == typeof (float)) {
float v = Convert.ToSingle (Value);
System.Buffer.MemoryCopy (&v, ptr.ToPointer (), 4, 4);
public void Dispose () {
infos.Dispose();
Marshal.FreeHGlobal (pData);
- entries.Unpin ();
}
}
}
Utils.CheckResult (vkCreateGraphicsPipelines (Dev.Handle, Cache == null ? VkPipelineCache.Null : Cache.handle, 1, ref info, IntPtr.Zero, out handle));
+ vertInputInfo.Dispose();
+ viewportState.Dispose();
+ dynStatesInfo.Dispose();
+ colorBlendInfo.Dispose();
info.Dispose ();
}
}
handle = Dev.CreateRenderPass (renderPassInfo);
- foreach (SubPass sp in subpasses)
- sp.UnpinLists ();
-
if (PNext != null)
PNext.ReleasePointer ();
vkCmdBeginRenderPass (cmd.Handle, ref info, contents);
- ClearValues.Unpin ();
+ info.Dispose ();
}
/// <summary>
/// Switch to next subpass