예제 #1
0
        public void Update(IPluginIO pin, DX11RenderContext context)
        {
            for (int i = 0; i < this.FOutput.SliceCount; i++)
            {
                if (this.FInvalidate || !this.FOutput[i].Contains(context))
                {
                    if (this.FOutput[i].Contains(context))
                    {
                        this.FOutput[i].Dispose(context);
                    }

                    DX11NullDispatcher disp = new DX11NullDispatcher();
                    disp.X = Math.Max(this.FInTX[i], 0);
                    disp.Y = Math.Max(this.FInTY[i], 0);
                    disp.Z = Math.Max(this.FInTZ[i], 0);

                    DX11NullGeometry geom = new DX11NullGeometry(context, disp);

                    geom.Topology       = PrimitiveTopology.Undefined;
                    geom.InputLayout    = new InputElement[i];
                    geom.HasBoundingBox = false;

                    this.FOutput[i][context] = geom;
                }
            }
        }
        public void Update(DX11RenderContext context)
        {
            for (int i = 0; i < this.FOutput.SliceCount; i++)
            {
                if (this.FInvalidate || !this.FOutput[i].Contains(context))
                {
                    if (this.FOutput[i].Contains(context))
                    {
                        this.FOutput[i].Dispose(context);
                    }

                    DX11NullDispatcher disp = new DX11NullDispatcher();
                    int gx  = FInGX[i];
                    int tx1 = gx - 1;

                    int gy  = FInGY[i];
                    int ty1 = gy - 1;

                    disp.X = Math.Max((this.FInTX[i] + tx1) / gx, 0);
                    disp.Y = Math.Max((this.FInTY[i] + ty1) / gy, 0);
                    disp.Z = 1;
                    DX11NullGeometry geom = new DX11NullGeometry(context, disp);

                    geom.Topology       = PrimitiveTopology.Undefined;
                    geom.InputLayout    = new InputElement[i];
                    geom.HasBoundingBox = false;

                    this.FOutput[i][context] = geom;
                }
            }
        }
예제 #3
0
        public DX11NullGeometry Dispatcher(Dispatcher settings)
        {
            DX11NullDispatcher disp = new DX11NullDispatcher();

            disp.X = Math.Max(settings.ThreadCountX, 0);
            disp.Y = Math.Max(settings.ThreadCountY, 0);
            disp.Z = Math.Max(settings.ThreadCountZ, 0);

            DX11NullGeometry geom = new DX11NullGeometry(this.device, disp);

            geom.Topology       = PrimitiveTopology.Undefined;
            geom.InputLayout    = new InputElement[0];
            geom.HasBoundingBox = false;
            return(geom);
        }
예제 #4
0
        public void Update(IPluginIO pin, DX11RenderContext context)
        {
            for (int i = 0; i < this.FOutput.SliceCount; i++)
            {
                if (this.FInvalidate || !this.FOutput[i].Contains(context))
                {
                    if (this.FOutput[i].Contains(context)) { this.FOutput[i].Dispose(context); }

                    DX11NullDispatcher disp = new DX11NullDispatcher();
                    disp.X = Math.Max(this.FInTX[i], 0);
                    disp.Y = Math.Max(this.FInTY[i], 0);
                    disp.Z = Math.Max(this.FInTZ[i], 0);

                    DX11NullGeometry geom = new DX11NullGeometry(context, disp);

                    geom.Topology = PrimitiveTopology.Undefined;
                    geom.InputLayout = new InputElement[i];
                    geom.HasBoundingBox = false;

                    this.FOutput[i][context] = geom;
                }
            }
        }