void Process() { if (!input.HasInput || !input2.HasInput) { return; } GLTextuer2D i1 = (GLTextuer2D)input.Reference.Data; GLTextuer2D i2 = (GLTextuer2D)input2.Reference.Data; GLTextuer2D i3 = null; if (input3.HasInput) { if (input3.Reference.Data != null) { i3 = (GLTextuer2D)input3.Reference.Data; } } if (i1 == null) { return; } if (i1.Id == 0) { return; } if (i2 == null) { return; } if (i2.Id == 0) { return; } if (processor == null) { return; } CreateBufferIfNeeded(); processor.TileX = tileX; processor.TileY = tileY; processor.Horizontal = horiz; processor.ColorLUT = i2; processor.Mask = i3; processor.Process(width, height, i1, buffer); processor.Complete(); Output.Data = buffer; TriggerTextureChange(); }
void Process() { GLTextuer2D i1 = (GLTextuer2D)input.Input.Data; GLTextuer2D i2 = null; if (input2.HasInput) { if (input2.Input.Data != null) { i2 = (GLTextuer2D)input2.Input.Data; } } if (i1 == null) { return; } if (i1.Id == 0) { return; } if (colorLUT == null || colorLUT.Id == 0) { colorLUT = new GLTextuer2D(PixelInternalFormat.Rgba8); } if (LUT == null) { LUT = new FloatBitmap(256, 2); } //generate gradient Utils.CreateGradient(LUT, gradient.positions, gradient.colors); colorLUT.Bind(); colorLUT.SetData(LUT.Image, PixelFormat.Rgba, 256, 2); colorLUT.SetFilter((int)TextureMinFilter.Linear, (int)TextureMagFilter.Linear); GLTextuer2D.Unbind(); CreateBufferIfNeeded(); processor.TileX = tileX; processor.TileY = tileY; processor.ColorLUT = colorLUT; processor.Mask = i2; processor.Process(width, height, i1, buffer); processor.Complete(); Output.Data = buffer; Output.Changed(); Updated(); }
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 (colorLUT == null || colorLUT.Id == 0) { colorLUT = new GLTextuer2D(PixelInternalFormat.Rgba8); } colorLUT.Bind(); colorLUT.SetData(LUT.Image, PixelFormat.Rgba, 256, 2); colorLUT.SetFilter((int)TextureMinFilter.Linear, (int)TextureMagFilter.Linear); GLTextuer2D.Unbind(); CreateBufferIfNeeded(); processor.TileX = tileX; processor.TileY = tileY; processor.ColorLUT = colorLUT; processor.Mask = i2; processor.Process(width, height, i1, buffer); processor.Complete(); Output.Data = buffer; TriggerTextureChange(); }