/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠN ich olas ĠB ily k Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . ac orn ui . filter Ċ Ċ import Ġcom . ac orn ui . component . Ui Component Ro Ċ import Ġcom . ac orn ui . core . di . inject Ċ import Ġcom . ac orn ui . gl . core . Gl State Ċ import Ġcom . ac orn ui . math . Color Transformation Ċ import Ġcom . ac orn ui . math . Color Transformation Ro Ċ import Ġcom . ac orn ui . math . MinMax Ro Ċ Ċ class ĠColor Transformation Filter ( Ċĉ ĉ target : ĠUi Component Ro , ĊĊĉ ĉ /** Ċĉĉ Ġ* ĠThe Ġmutable Ġcolor Ġtransformation Ġto Ġbe Ġapplied . Ċĉĉ Ġ*/ Ċĉ ĉ val Ġcolor Transformation : ĠColor Transformation Ċ ) Ġ: ĠRender Filter Base ( target ) Ġ{ ĊĊ ĉ private Ġval Ġgl State Ġ= Ġinject ( Gl State ) Ċ ĉ private Ġval Ġcombined Ġ= ĠColor Transformation () Ċ ĉ private Ġvar Ġprevious : ĠColor Transformation Ro ? Ġ= Ġnull ĊĊ ĉ override Ġfun Ġbefore Render ( clip : ĠMin Max Ro ) Ġ{ Ċĉ ĉ previous Ġ= Ġgl State . color Transformation Ċĉ ĉ val Ġprevious Ġ= Ġprevious Ċĉ ĉ if Ġ( previous Ġ== Ġnull ) Ġ{ Ċĉĉ ĉ gl State . color Transformation Ġ= Ġcolor Transformation Ċĉ ĉ } Ġelse Ġ{ Ċĉĉ ĉ combined . set ( previous ). mul ( color Transformation ) Ċĉĉ ĉ gl State . color Transformation Ġ= Ġcombined Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ override Ġfun Ġafter Render ( clip : ĠMin Max Ro ) Ġ{ Ċĉ ĉ gl State . color Transformation Ġ= Ġprevious Ċ ĉ } Ċ } Ċ Ċ fun ĠUi Component Ro . color Transformation Filter ( color Transformation : ĠColor Transformation Ġ= ĠColor Transformation ()): ĠColor Transformation Filter Ġ{ Ċ ĉ return ĠColor Transformation Filter ( this , Ġcolor Transformation ) Ċ }