Ejemplo n.º 1
0
        public void Render(DX11RenderContext context, DX11RenderSettings settings)
        {
            if (this.FEnabled[0])
            {
                IDX11LayerOrder currentOrder = settings.LayerOrder;
                if (this.FInVal.IsConnected)
                {
                    settings.LayerOrder = this.FInVal[0];
                }

                if (this.FLayerIn.IsConnected)
                {
                    for (int i = 0; i < this.FLayerIn.SliceCount; i++)
                    {
                        this.FLayerIn[i][context].Render(context, settings);
                    }
                }

                settings.LayerOrder = currentOrder;
            }
            else
            {
                if (this.FLayerIn.IsConnected)
                {
                    for (int i = 0; i < this.FLayerIn.SliceCount; i++)
                    {
                        this.FLayerIn[i][context].Render(context, settings);
                    }
                }
            }
        }
Ejemplo n.º 2
0
            public void Render(IPluginIO pin, DX11RenderContext context, DX11RenderSettings settings)
            {
                IDX11LayerOrder currentOrder = settings.LayerOrder;

                settings.LayerOrder = this;
                if (this.FLayerIn.IsConnected)
                {
                    for (int i = 0; i < this.FLayerIn.SliceCount; i++)
                    {
                        this.FLayerIn[i][context].Render(this.FLayerIn.PluginIO, context, settings);
                    }
                }
                settings.LayerOrder = currentOrder;
            }
Ejemplo n.º 3
0
        public void Render(DX11RenderContext context, DX11RenderSettings settings)
        {
            if (this.FLayerIn.SliceCount == 0)
            {
                return;
            }

            int layerCount = this.LayerCount;

            if (layerCount == 0)
            {
                return;
            }

            if (this.FEnabled[0])
            {
                if (this.FLayerIn.IsConnected)
                {
                    Matrix view       = settings.View;
                    Matrix projection = settings.Projection;
                    Matrix vp         = settings.ViewProjection;
                    Matrix crop       = settings.Crop;
                    Matrix aspect     = settings.Aspect;
                    Matrix rawProj    = settings.RawProjection;
                    bool   depthonly  = settings.DepthOnly;

                    if (this.perSlice[0])
                    {
                        IDX11LayerOrder currentOrder = settings.LayerOrder;
                        settings.LayerOrder = getSliceOrder;


                        //Add layer pin to spreadmax contrib
                        layerCount = Math.Max(layerCount, this.FLayerIn.SliceCount);

                        for (int i = 0; i < layerCount; i++)
                        {
                            getSliceOrder.FInIndex = i;

                            this.UpdateSettings(settings, i);

                            this.FLayerIn.RenderSlice(context, settings, i);

                            //Restore slice
                            settings.View           = view;
                            settings.Projection     = projection;
                            settings.ViewProjection = vp;
                            settings.DepthOnly      = depthonly;
                            settings.Crop           = crop;
                            settings.Aspect         = aspect;
                            settings.RawProjection  = rawProj;
                        }

                        settings.LayerOrder = currentOrder;
                    }
                    else
                    {
                        for (int i = 0; i < layerCount; i++)
                        {
                            this.UpdateSettings(settings, i);

                            this.FLayerIn.RenderAll(context, settings);
                        }

                        settings.View           = view;
                        settings.Projection     = projection;
                        settings.ViewProjection = vp;
                        settings.DepthOnly      = depthonly;
                        settings.Crop           = crop;
                        settings.Aspect         = aspect;
                        settings.RawProjection  = rawProj;
                    }
                }
            }
            else
            {
                this.FLayerIn.RenderAll(context, settings);
            }
        }