package Ġk lay . tests . core Ċ Ċ import Ġe uk lid . f . Math Util Ċ import Ġk lay . core . Clock Ċ import Ġk lay . scene . Canvas Layer Ċ import Ġkotlin . math . cos Ċ import Ġkotlin . math . sin Ċ Ċ class ĠCanvas St ress Test ( game : ĠTests Game ) Ġ: ĠTest ( game , Ġ" Canvas ĠSt ress ", Ġ" Anim ates Ġa Ġfull - screen Ġsized Ġcanvas , Ġforcing Ġa Ġmass ive Ġre upload Ġof Ġimage Ġdata Ġto Ġ" Ġ+ Ġ" the ĠGPU Ġon Ġevery Ġframe .") Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc layer Ġ= ĠCanvas Layer ( game . graphics , Ġgame . graphics . view Size ) ĊĠĠĠĠĠĠĠ Ġgame . root Layer . add ( cl ayer ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġno Se gs Ġ= Ġ 3 0 ĊĠĠĠĠĠĠĠ Ġvar Ġdirection Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġcon ns . add ( game . update . connect Ġ{ Ġclock : ĠClock Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcanvas Ġ= Ġc layer . begin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . set Stroke Width ( 3 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . set Stroke Color ( 0 x 8 8 ff 0 0 0 0 . toInt ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġno Se gs Ġ+= Ġdirection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( no Se gs Ġ> Ġ 5 0 ) Ġdirection Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( no Se gs Ġ< Ġ 2 0 ) Ġdirection Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġ 1 0 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( ii Ġin Ġ 0 .. no Se gs Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġangle Ġ= Ġ 2 Ġ* ĠMath Util . PI Ġ* Ġii Ġ/ Ġno Se gs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Size Ġ= Ġgame . plat . graphics . view Size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġr Ġ* Ġcos ( angle ) Ġ+ Ġview Size . width Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġr Ġ* Ġsin ( angle ) Ġ+ Ġview Size . height Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . stroke Circle ( x , Ġy , Ġ 1 0 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġc layer . end () Ġ// Ġre upload Ġthe Ġimage Ġdata ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ