public void Dispose() { ObjectCB.Dispose(); MaterialCB.Dispose(); PassCB.Dispose(); CmdListAlloc.Dispose(); }
internal void Initialize() { MaterialCB.Attach(Technique); NonMaterialCB.Attach(Technique); OnInitialPropertyBindings(); foreach (var v in propertyBindings.Values) { v.Invoke(); } }
/// <summary> /// /// </summary> /// <param name="disposeManagedResources"></param> protected override void OnDispose(bool disposeManagedResources) { if (disposeManagedResources) { UpdateNeeded = null; if (material != null) { material.PropertyChanged -= MaterialCore_PropertyChanged; } MaterialCB.Detach(); NonMaterialCB.Detach(); propertyBindings.Clear(); } base.OnDispose(disposeManagedResources); }
/// <summary> /// Updates the material structure. And upload data to constant buffer /// </summary> /// <typeparam name="T"></typeparam> /// <param name="context">The context.</param> /// <param name="model">The model.</param> /// <param name="structSize"></param> public bool UpdateMaterialStruct <T>(DeviceContextProxy context, ref T model, int structSize) where T : struct { if (NeedUpdate) { lock (updateLock) { if (NeedUpdate) { UpdateInternalVariables(context); NeedUpdate = false; } } } return(MaterialCB.Upload(context, ref model, structSize)); }
public void WriteValue <T>(ref T value, int offset) where T : struct { MaterialCB.WriteValue(value, offset); }
public void WriteValue <T>(string name, T value) where T : struct { MaterialCB.WriteValueByName(name, value); }