protected override void InitializeCore() { base.InitializeCore(); renderEffectKey = ((RootEffectRenderFeature)RootRenderFeature).RenderEffectKey; renderViewObjectInfoKey = RootRenderFeature.RenderData.CreateViewObjectKey <LightParametersPermutationEntry>(); perLightingDescriptorSetSlot = ((RootEffectRenderFeature)RootRenderFeature).GetOrCreateEffectDescriptorSetSlot("PerLighting"); }
/// <inheritdoc/> protected override void InitializeCore() { renderModelObjectInfoKey = RootRenderFeature.RenderData.CreateObjectKey<RenderModelFrameInfo>(); renderModelViewInfoKey = RootRenderFeature.RenderData.CreateViewObjectKey<RenderModelViewInfo>(); time = ((RootEffectRenderFeature)RootRenderFeature).CreateFrameCBufferOffsetSlot(GlobalKeys.Time.Name); view = ((RootEffectRenderFeature)RootRenderFeature).CreateViewCBufferOffsetSlot(TransformationKeys.View.Name); camera = ((RootEffectRenderFeature)RootRenderFeature).CreateViewCBufferOffsetSlot(CameraKeys.NearClipPlane.Name); world = ((RootEffectRenderFeature)RootRenderFeature).CreateDrawCBufferOffsetSlot(TransformationKeys.World.Name); }
/// <summary> /// Change data multiplier (i.e. how many data entries per item there will be). /// </summary> public void ChangeDataMultiplier <T>(ViewObjectPropertyKey <T> key, int multiplier) { dataArrays[key.Index].Info.ChangeMutiplier(ref dataArrays.Items[key.Index].Array, multiplier); }
/// <summary> /// Get data from its key. /// </summary> public ViewObjectPropertyData <T> GetData <T>(ViewObjectPropertyKey <T> key) { return(new ViewObjectPropertyData <T>((T[])dataArrays[key.Index].Array)); }