Esempio n. 1
0
        private void UpdateBuffer(EvaluationContext context)
        {
            int  stride      = Stride.GetValue(context);
            int  sizeInBytes = stride * Count.GetValue(context);
            bool createSrv   = CreateSrv.GetValue(context);
            bool createUav   = CreateUav.GetValue(context);
            var  bufferFlags = BufferFlags.GetValue(context);

            if (sizeInBytes <= 0)
            {
                return;
            }

            if (BufferWithViews.Value == null)
            {
                BufferWithViews.Value = new BufferWithViews();
            }

            ResourceManager.Instance().SetupStructuredBuffer(sizeInBytes, stride, ref BufferWithViews.Value.Buffer);

            if (createSrv)
            {
                ResourceManager.Instance().CreateStructuredBufferSrv(BufferWithViews.Value.Buffer, ref BufferWithViews.Value.Srv);
            }

            if (createUav)
            {
                ResourceManager.Instance().CreateStructuredBufferUav(BufferWithViews.Value.Buffer, bufferFlags, ref BufferWithViews.Value.Uav);
            }
        }
        private void Update(EvaluationContext context)
        {
            var resourceManager = ResourceManager.Instance();
            var buffer          = Buffer.GetValue(context);

            if (buffer == null)
            {
                return;
            }

            var bufferFlags = BufferFlags.GetValue(context);

            resourceManager.CreateStructuredBufferUav(buffer, bufferFlags, ref UnorderedAccessView.Value);
            if (UnorderedAccessView.Value == null)
            {
                return;
            }

            if (UnorderedAccessView.Value != null)
            {
                var symbolChild = Parent.Symbol.Children.Single(c => c.Id == SymbolChildId);
                UnorderedAccessView.Value.DebugName = symbolChild.ReadableName;
                // Log.Info($"{symbolChild.ReadableName} updated with ref {UnorderedAccessView.DirtyFlag.Reference}");
            }
        }