Beispiel #1
0
        void Process()
        {
            if (!input.HasInput)
            {
                return;
            }

            GLTextuer2D i1 = (GLTextuer2D)input.Reference.Data;
            GLTextuer2D i2 = null;

            if (input2.HasInput)
            {
                i2 = (GLTextuer2D)input2.Reference.Data;
            }

            if (i1 == null)
            {
                return;
            }
            if (i1.Id == 0)
            {
                return;
            }

            if (processor == null)
            {
                return;
            }
            if (shader == null)
            {
                return;
            }
            if (preshader == null)
            {
                return;
            }

            CreateBufferIfNeeded();

            buffer.Bind();
            IGL.Primary.ClearTexImage(buffer.Id, (int)PixelFormat.Rgba, (int)PixelType.Float);
            GLTextuer2D.Unbind();

            processor.TileX = tileX;
            processor.TileY = tileY;

            processor.Shader     = shader;
            processor.PreShader  = preshader;
            processor.SourceOnly = psourceonly;
            processor.Distance   = pmaxDistance;
            processor.Process(width, height, i1, i2, buffer);
            processor.Complete();

            Output.Data = buffer;
            TriggerTextureChange();
        }
Beispiel #2
0
        void Process()
        {
            GLTextuer2D i1 = (GLTextuer2D)input.Input.Data;
            GLTextuer2D i2 = null;

            if (input2.HasInput)
            {
                i2 = (GLTextuer2D)input2.Input.Data;
            }

            if (i1 == null)
            {
                return;
            }
            if (i1.Id == 0)
            {
                return;
            }

            if (processor == null)
            {
                return;
            }

            CreateBufferIfNeeded();

            processor.TileX = tileX;
            processor.TileY = tileY;

            processor.SourceOnly = psourceonly;
            processor.Distance   = pmaxDistance;
            processor.Process(width, height, i1, i2, buffer);
            processor.Complete();

            Output.Data = buffer;
            Output.Changed();
            Updated();
        }