package Ġcom . example . new openg lst udy . img texture čĊč Ċ import Ġandroid . app . Activity Manager č Ċ import Ġandroid . content . Context č Ċ import Ġandroid . os . Build č Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . util . Log č Ċ import Ġandroid . view . ViewGroup č Ċ import Ġandroid . widget . LinearLayout č Ċ import Ġandroidx . appcompat . app . AppCompatActivity č Ċ import Ġcom . example . new openg lst udy . R č Ċ import Ġkotlinx . android . synt hetic . main . activity _ img texture .* čĊč Ċ class ĠImg Texture Activity Ġ: ĠAppCompatActivity () Ġ{ čĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) čĊĠĠĠĠĠĠĠ Ġval Ġam Ġ= Ġget System Service ( Context . ACTIVITY _ SERVICE ) Ġas ĠActivity Manager čĊĠĠĠĠĠĠĠ Ġval Ġdevice Configuration Info Ġ= Ġam . device Configuration Info čĊĠĠĠĠĠĠĠ Ġval Ġsupport Es 2 Ġ= Ġdevice Configuration Info . req Gl Es Version Ġ>= Ġ 0 x 2 0 0 0 0 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . ICE _ CRE AM _ S AND W ICH _ MR 1 Ġ&& čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBuild . F ING ER PRINT . startsWith (" generic ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| ĠBuild . F ING ER PRINT . startsWith (" unknown ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| ĠBuild . MODEL . contains (" google _ sdk ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| ĠBuild . MODEL . contains (" Em ulator ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| ĠBuild . MODEL . contains (" Android ĠSDK Ġbuilt Ġfor Ġx 8 6 ") čĊĠĠĠĠĠĠĠ Ġif Ġ( support Es 2 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® OpenGL çļĦ çīĪæľ¬ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Activity ", Ġ" support ĠGLES 2 ") čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ img texture ) čĊĠĠĠĠĠĠĠ Ġval Ġimg Render Ġ= ĠImg Texture Render ( this ) čĊĠĠĠĠĠĠĠ Ġm Surface View . set Render ( img Render ) čĊĠĠĠĠĠĠĠ Ġimg Render . on Render Create Listener Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠImg Texture Render . On Render Create Listener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ( texture Id : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Surface View . post Delayed ({ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Content . child Count Ġ> Ġ 0 ) Ġm Content . removeAll Views () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 2 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġe gl Surface View Ġ= ĠMut i EGL Surface View ( this @ Img Texture Activity ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe gl Surface View . set Surface And EGL Context ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Surface View . get E gl Context () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe gl Surface View . set Texture Id ( texture Id , i ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlp Ġ= ĠLinearLayout . LayoutParams ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . width Ġ= Ġ 2 0 0 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . height Ġ= Ġ 3 0 0 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe gl Surface View . layout Params Ġ= Ġlp čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Content . addView ( e gl Surface View ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, 1 0 ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊčĊĠĠĠ Ġ} č Ċ }