Beispiel #1
0
        void Process()
        {
            GLTextuer2D i1 = null;
            GLTextuer2D i2 = null;

            if (Inputs[0].HasInput)
            {
                i1 = (GLTextuer2D)Inputs[0].Input.Data;
            }

            if (Inputs[1].HasInput)
            {
                i2 = (GLTextuer2D)Inputs[1].Input.Data;
            }

            if (!function.BuildShader())
            {
                return;
            }

            CreateBufferIfNeeded();

            processor.Shader = function.Shader;
            processor.Process(width, height, i1, i2, buffer);
            processor.Complete();

            output.Data = buffer;
            output.Changed();
            Updated();
        }
Beispiel #2
0
        void Process()
        {
            GLTextuer2D i1 = null;
            GLTextuer2D i2 = null;
            GLTextuer2D i3 = null;
            GLTextuer2D i4 = null;

            if (Inputs[0].HasInput)
            {
                i1 = (GLTextuer2D)Inputs[0].Reference.Data;
            }

            if (Inputs[1].HasInput)
            {
                i2 = (GLTextuer2D)Inputs[1].Reference.Data;
            }

            if (Inputs[2].HasInput)
            {
                i3 = (GLTextuer2D)Inputs[2].Reference.Data;
            }

            if (Inputs[3].HasInput)
            {
                i4 = (GLTextuer2D)Inputs[3].Reference.Data;
            }

            if (!shaderBuilt || function == null)
            {
                return;
            }

            CreateBufferIfNeeded();

            buffer.Bind();

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

            GLTextuer2D.Unbind();
            processor.Shader = function.Shader;
            processor.Process(function, width, height, i1, i2, i3, i4, buffer);
            processor.Complete();

            output.Data = buffer;
            TriggerTextureChange();
        }