From b2cf954cb47a73065aa4b7fed753877615614f41 Mon Sep 17 00:00:00 2001 From: Mathias Agopian <> Date: Tue, 24 Mar 2009 18:34:16 -0700 Subject: [PATCH] Automated import from //branches/master/...@140808,140808 --- core/res/assets/images/android-logo-mask.png | Bin 0 -> 4932 bytes core/res/assets/images/android-logo-shine.png | Bin 0 -> 20345 bytes core/res/assets/images/android_320x480.png | Bin 3098 -> 0 bytes core/res/assets/images/boot_robot.png | Bin 1001 -> 0 bytes core/res/assets/images/boot_robot_glow.png | Bin 2083 -> 0 bytes core/res/assets/images/cylon_dot.png | Bin 748 -> 0 bytes core/res/assets/images/cylon_left.png | Bin 1283 -> 0 bytes core/res/assets/images/cylon_right.png | Bin 1259 -> 0 bytes libs/surfaceflinger/BootAnimation.cpp | 199 ++---------------- libs/surfaceflinger/BootAnimation.h | 10 +- 10 files changed, 23 insertions(+), 186 deletions(-) create mode 100644 core/res/assets/images/android-logo-mask.png create mode 100644 core/res/assets/images/android-logo-shine.png delete mode 100644 core/res/assets/images/android_320x480.png delete mode 100644 core/res/assets/images/boot_robot.png delete mode 100644 core/res/assets/images/boot_robot_glow.png delete mode 100644 core/res/assets/images/cylon_dot.png delete mode 100644 core/res/assets/images/cylon_left.png delete mode 100644 core/res/assets/images/cylon_right.png diff --git a/core/res/assets/images/android-logo-mask.png b/core/res/assets/images/android-logo-mask.png new file mode 100644 index 0000000000000000000000000000000000000000..e78af5f84238027ae8954992bab60df03f98b1bc GIT binary patch literal 4932 zcma)AS67qK7W_y8gx*W&O%YML5m7>su7D({AYGbtY0`TO(juZLEeO)3N;d>hAc#tD z0s;mE0xI3mb8~;dUF*)nIp<;4S^HtHnb|w}j)^`CqW~iS04#{0O zx2eEWFIa%CMF7gjB_PPb&l%8i@_FbiX6WVM>Wp-Da0>DL?0f?NI9CjHw9JENe%mmZ zo4YpPznQ%M05rrq^j!E1z0f1(tz)OcshdG;mC~~=;xaxTB1hmFdE}xBi*@v4X1kJe zd)SP?XI&5%)AL*>Nw*jMls}#(%bA0TVMC@= z;X5nON_d0_fxgVl%%)ObEw~gE6hQV=K)R@aM#sd&Z~$O1SQ4P4qtgSZtWOHeoAEVU}a!9{5&@H9{>LR`#97ruZ@|RL)8BI-6?uDkqfVrU&$3j9+3!= z`swcy5bxp;znvl;fgsWOpuvg7%}ok=(*ju^MLDxGY@45-$47i`a4xC3Un>WNLN6py zju_t3Eh`!%&FFvIUdooU*-6RB!213BZAnQ?q`M`vaJrJ~^Rls}r3IP0mNqlPDM(7v&mYGlN!hu%*Bd*N!wz?T1@X#RTj)ffPs!|WwNRpeXItb| zE?@rhy0Y@(b(sbAC%>ol-@JJ({uQp>ek6M>&f)&dlVLzBY>zPl_uV ztF>-xSZNFKb-b$Z1pWDEwo5@XBXb<#|Tf5IpxeN89f14BF`Kt-soWf(v zNW5omzE>rD{mIGE+DI{1&-(ntL?E+mP25~Irp7W(wdC#F)DvQgyms^}J;QTx%gf8D z<>lp_-Lrn~^fIKkfo^W3x*^2zC2k>!ckS&nwl#PHB7C!hymQrSCV=J4k`W0)>OqEw z^+hFQ4uNg?YktcH!H$l_FZhKgYiy3mJv}|zZu=DR zpucmz&x*Z1^f0PMo^CG@-gmW<<2-3Bp`3I?wjCyRHuj)4opT}nXMax zFO57d={YkakyZMGF}h5=msF*D@#dT&BDS=}3zTkkN;H|40pd$rKT^-;Wk^tL@%|Ai zJesJa7z)J9#fQBE!>Tj>TfN9K>TKDOiTwM!e;0vJruXpp=?8Z0nTL0XL(2#6wF+op z%nwU$mZ3Qn6H%6yA+Z5@bVP=Sm$fx$ZB|)AeuYCVf7(@_W2t6 zVmZFCj3hQu1ehGm&|`c42e%XW=I~Diz7WQU`7x@G{N zmC+$lsvQ=f=rs-B+$5?}+iJ`-x{Ods?_{Y-y zH`qnjod(&9OsCnzmke87z}NDTedUnNCCsyD+jfJ4gKWmpfVtZD6vg$(^T3N|?Z!DO zB>AH?9vCcyujZJGMM?4k=s8Lrx1g+W$C|$jQfShMNKQ@`+&f3pF-c?3LHBW8C^)6f zhPU4)IiWbRy9^tdv$V33*jscP(;26-lafDt2M>qC873zuuktYJW*g<@<;fi%9sNyD zPiO7RFjGvnQx3V|OYHfro5I`SDv>d#t6T9=_I}Mfp)2m@H4K6D_wXL0V`EpZtE!H# zJs>3^a1fu7NjYSFt?t@;qY^)Se!h(a&NiB6os-d;QdU@4$g}0De_7ckxHEHldU}6& zm5u(uQ{-szN0Y~tNIDulJtnWKInaxswbY~)RThVX%5oU9=#1K* zxKH?JcG6&S>y{u}&*bz%XhqN59L{^VP;0>?7w#oq@<5wZII;ZsdCP`hCzrH|b@b3C z0Mn<%*$%n6xwV0Q-||po`@MCxM;ePtIelB=ZU5n6@6&}nSBO}Xm$0y~d{}UBI0r8; zT(sEqG6{aPT!+D6lp9I`{v(v47fb)+H+}JaA|4J7&*b)F_%2y&sn7Y)1?J4B-F`!H zH!=;ya4U2$@f+75j)Fr%ei#`WvrJ(0UJ-hFZo{*RD=b#gj9r4We7*7PR9yt_F!;f0H2aaD?VL_jQh?RsUGm4}31P!RbBN(#WYwzsd; zJZN%f<%k&;^YlGA*j7~NztXPwZ`zVQsWev0Yxqa_xoahFFIm?w@+u2AqSE#UZkYlN^kb) z4p#o@FQ}!*m=^Gm9)@0ND0i3B0j*$WY6PK>LYIwg?qnuiIGk#5*w5O4%8_Upy=b4S zQ-8_omqUA`K*$0Amp`T+OhX@=&e%P>MteSbb(-Y)sj3ED-bIYPTzE^jDBCXKuS2XMY9?Z4r-Db2VrZ zVde%E##}3ywB0h)talwMc-FuUq*Y#b+iO|*b&O|BAYx0k0rM;A%YtkPXHCexkG=52 z!$Vm&k+!7wS^|rX%wSChD73$<*Vsr=JSd7`u_Y^Uf0!XJJexPO1B^WsHoly@>t)Q^ zA(kJORP@|7o+0EPDMkmd*wzTyS>9-b$5L)gA`l2W!vfmqk?PEs3iozo&+_y0r!7tL z7=S6aPfP>q4+M_h|1K@3}3? z!BPgF<96O;Cq)n=VXoO9F=1dsq#=scNj+E^-A(3_o-ck~l7tI9r8Hc*mNoMsXcHNH zc<$R)d9koW+rlsyjHb0TZ!(*#Ao4UmHP(@ku1kE$%zoyQ4PPs}baMlI z7|_&rSUGtwO-D#TAT;Bj(Tx>Kbw`IflJ$p}vw$J%n8#v6UEKvD9slt8l#~=g_pCTh zW+Tej?bi9|t}e|>Qg@kBD^bQ3;y4^`{qvy}Bvo27eKYz3U^!_M4Je3q+P`z{3_om; zhh2&ChfY4OfjtoIH)fLItm5NuQu&+1#K>4#I?|ck>2lK@QU>}9y(BMBX!cvF-R}SP z?evM597r{AecY+xi-?B^Rmn=YfP~YG!=D;;&UG?ZK!51#H}SbMEUvoxoB&Hcnjn>X!g(o)$iWjL)Tv^LAuG6)vTDxW|{2fI_u{#3;M&D=F6ZmY)4^5Q}Xrn!mo04Zbf=YFMy(i99zW=+n_%$NwH=@=jt?wcmx88lI45C|ks z{_^Et{Hbh}?Zvwj+a6+==0}&KV^Kf*ZA>6rtr~mOY%4fBI=Vx^BeGw=Cb2e`zBSNO zkMfFxu3krjRtzSb*T*X=xvJI=q-fo$?fm_BqcxqL4AI~fC8bG2@r>%dl_1QA96craczB-2S zwE~Q(M~t`*W4#~X#c+qdQI?kVqTP*li%aV2!d2h3$KK6JW5fNxMR8IxM~lq8)JR%C zZ>Do4qd+(H)0`Sw5;~0m(|^3cxOo38w}u*PXqks-e_-(OxdR#Qm29-kWB|(W^AY49(3)eX zyOG}tx2tOLGb|1UO8)wvu16Ue8S(N1=|C_ye<{r$9Ohp>{;&Vq@SA5;@30~*EpctE ztTdzew#j5Wx{%dJHDT)UeX)Y1cwyu~yeJYDRS1>Zotr@K%UYhKhV0T?l0s zxpA=m&howOn{W451X#--@9yt^n_R^!AU7u(gn@IvI!vs3}~0 zVsA4$zzqjisB;x4rFm`2HlAy({e)DF7=rXj7HntTXR(s0ezbaj`DlN`G%+#p<;?f* zO-dk4%M#UtPBY{?Pj-B^BEm>@V}{Eo+Vt2g*uVwq_-ATHVfxe5GL4T2YekT666j*B zBm%_HGl~nrCW|;~iYne+`Syhg3Js3Fl}t#5q24=v&dlrxBfE@tOIVQ}b995X_S|G0 zIRNj^SS9CyxYpKIAvLK$!9SrqH=d)gUSn#tU;`5qR?5~VHa@R;+_h&L^YtZ&gi#~P z{Z5am8f0*9NiHG_4$ZG3=<4g6ss?W@`kNZ{vkJ!%R2aMiMmU56F3*E!TjMWMSWX@{ z*Vp?7+4=wVlel^{NKSQrnEFLEu|4XsZUkd(1R-5mLkJOmkeivA32UFLEiLW)nRa!4 zI_vf8WR0$FJM6G7rEfEYpNk8nBLn`M7*M3rl>an*8sTg%R<%@SkmxQ8Q7H)=?(qX!ppbShY{-_+mbq z<<-@t(Fy59px?LiXM5CLJ!Z8wEZKP+IXLy@l>*tr!^6sbE$Kt#=}|lyjXoG3A2(jk zTjwF^p)n>TBfvbIH5Tm}W@I!#cX4K$4XYc5`g3-vI46c>qN%Prr=nUQK?pmujuD?R zO6zrj*Fhakr=O5# zy+%(%C+hyC19yw(T*R^v-q9a zX&5VLl}#P|FGcg&)sXwL=!TW`Z#yZvkC!{zMV(&x`^4OjGuy$@%JRX3Qb9?hbyK2` zw>Lt1<*|seq8(Za2>BL8oy1N8JUxFqG4Atx#V7*?exA#$0FIGF%>~%jbf}6 z4*169KlJhA$HF%M)yS(Tvt~&;jYV{7%8$XzHCMN6-)0FK8K<0#A|k1Y@E{sETBB6U?I%x zOo4hBysx|a=lQp^qQh)0(|cF83ZH9Q^**q$$Xbeopssy1xk!o=iZP?WG2cC9$eF)Z zyYB*U_b$=;F30l1`q`#G&**=Z0fOX%Y&cVf3+KXU(e-l>Et6=Clu6P%GuET zqUwRM*hl0I3@y6uR<#CBP*701zpdT$U79f#(ZRphYHMvB&bQ~zb$rTBGLD9a-y59B xZ{Vb^em-@@!aS%2{ol)<|4Fnb9z@a50nQJ6zig9HdH-FK8S0wo)M(qs{s)I(WIO-> literal 0 HcmV?d00001 diff --git a/core/res/assets/images/android-logo-shine.png b/core/res/assets/images/android-logo-shine.png new file mode 100644 index 0000000000000000000000000000000000000000..98692df45483d23a25b8503dc89de620f46836ce GIT binary patch literal 20345 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 diff --git a/core/res/assets/images/boot_robot.png b/core/res/assets/images/boot_robot.png deleted file mode 100644 index f4555afe7419a599b8e5c7fcc8afec284dc99e43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1001 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n7ch)978H@CH?vT-~O-%ThC%f11Sasp)AqB)F9%cq{05k z*kKQMhp6Y3)f`vL*|PY2|G2znurU7KaC80)rq<;SW%iv_zmvH{=QVzDW^PntJmB(} z<=eZLf8XDiVLo!Ck~Ko6p@v!Mt7Ov^>tEfSjbED2ES$<5nIXf_eeHauQv9X$3#WxF z)Un?9C`~fpjgr7?=8YTz+=}dC0{ht>c{{9`9gT6f>8Dq6^t@cn|8Gz3nSYmlZeMR!EF{ME>UY7v z6Te?K>oI(o%G%S@b0Wr3;a}O~L(9)wrTt+lJle(erjGuxro;g$B4 zIp0%m`2WokNMW4FC-6i(DRxr8vJ}3q+M?taSN3hs7caSM|MTPB_Yx5b0-NTG*k9CQ zI52Ph%$08&bXQL1a)?~4`uG)NghGHZLq;gK59?7IQyc!%Qk&m5kKWLZxUV|3#x#!<-Ho%g87d?G-yMnQw_7n0~yWi0{Cv zJiCRL<}GS-ec#M(9d75(vg_f21Rdr%y*aHc88R-n!+0&!2+t_g@lU4~|$8zVp zPM4i7G=w*lR%PyQ+qTI}W#|39zn&JCKkQvS-~Lb9(r^ZbyC0<6r8hOyS^1x4m~q!6 z-drZlkf%W=V0y*RYnOtj9ozEFW<@VUNwXB6`5J~_n!VFf8x(gPeQ?Qt_O@1e!*7m9 zd)RgmB$Y_XNgxoQbR&0hD2(z3p&y}J)eF#M?M z-=O*R<&{@=FD_MdVLNcOdQZcWHm%Qpm!uuND65RfVPKZBI0K6WgBD-bL*+|{Cjj#< NgQu&X%Q~loCIE^Hr>+11 diff --git a/core/res/assets/images/boot_robot_glow.png b/core/res/assets/images/boot_robot_glow.png deleted file mode 100644 index 2a67a3f0c7a45afa3542157ec072d2162e2c4344..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2083 zcmV+;2;BFHP)zK2oQ zyMnbxeWC^g&nY0X#B@r;g0bLwt@W&Rbpa98EPRN2=G4Ns2)E5>lhGRATLMA^57pX` zK;pHs-kb_TRHN|1c#=^E6q67+^9#^CqZI^kv_8hV1k@t%R#-R3Jp_!CK&T6V5X@d= zG$88W?>U3ZjHVflGMZ#GgHS27A7gzFYr7e>asM?0AA!cWmjgIw1Aw)kfbr{$ZZo>V z?=cw61%Aos2{eHw1%L#?UxJ1J!~&>X@JD48;uGw#Ak<+20q)a*z`5|>Gx`I9Bw%g| z0lE-u1gqG>g4$SrMF4go+ybB_w4Ii;jnZ>kKme_DNPt}UzcRXkuqia&$8|mYz9b*e z#^3YxU-8|;{bve{iP}bIu>cNv5$$0C;RZnTaQzhjPhj3NXi@+WA2P&Ru>b>ME!I5Z zx){&Z;qoj_kU>aD%L51$5YruOjU~l&xrbQ65Y)jnApn#Jp@lc+c7hVaLlw(o3TH8C zd7<(EL-$Cad5Itr0XR1h3JS8ucLjixpHOMVQiy9207Z_AElHB7t>=FFnePsOW+aCB zwv~AXbe%ZMRGGd`i8&2U)qRSd6{`EbivN3O@+*jLD|sSHYG~( ztPw?m?J?mnI#K&=2tR;hyP_nfNBjSnz3Rwn5^|20NT?(uoWY@PjHEz8)L3nmuaRet@w{gMF^A9rS;LwN zrNZ7pR8i|3(=TY>UsKk`!b=Q4DMWdy%?_SDB;Y3yRuZWxEMfs`Snsojr~>*ip)cNd zK&Jnd%)ajtz77D40-=xRUBdxd;!&LAm{RCfk#menw9gLc5)Wi;izaTVd~Mg2rWS04 zHq{Kb5K8I`DYqY?xPUb8Et;Z|_Et2$JO|(b z|BomlY*pjLm018go<0Qrh7$KX_Wh7@_KwH#HSuA-hEP%uj&BM8`T#`|sTH=#n!qTv z0FJ+X+UvRSf0D^3l;_7Phi}3HENuge=dB^+0=%|y{R+--Lfxm0_61cepi2%&fzLL)zB>uv3&XgNQUg zqQ+{+W10Us!>EG8iB+pRQI(k8Q_M64f+?sZHy&Q&eU7;dfPm_5eP9tZtnDfw7*9im z`HWOWYJH2U9&rU{7W&YdrHF4^2Ee`>|4yGuJO?$I-$xVtpv2;T{rLpo6M#Lwc^J>L_YDNk?({OUQRjVU=VCj;tS+tU1la<{)cg?5=YNxP z0O<;EsecgE><^sM{+z5*j>mG!Pl_HO{15y*KE?u!*$pR7$lGtsZrp81y+S#hXsO;? zNI%;WZ@%yUsS}O5 z)>me#R*y?nNzN&3$qN@9^Y)1Qpz7`%0936Wbtygb0C3>};GpX6BUpg1dK{Uz(;H#| z;sbmZAYfLm?#^WaW!0lhYP86~i4Wj+h7xrRZ>LJt-MK8Fta_BjNkqU%6yVq9Vs(u) zIx1Ip=K^3~^*Eu{S*SuM=K+zYqLfzGqH1+_=*QOl^0b~U_Dz*=p`)w8&{J6Hc6@E` z4L1RRuRicimiYPsw&0pZ4`rGHz!?9l@K!laS8%<)rgC+6=;vPn1^^-xtyhl?!Q21< N002ovPDHLkV1m(v*p2`I diff --git a/core/res/assets/images/cylon_dot.png b/core/res/assets/images/cylon_dot.png deleted file mode 100644 index 150b8b162d698a3adee2b9dd4eaeea6c5d621f44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmVjd&F!= zBvDF_6k{!ITghs5EsMnsfa||tnh`+9bZ~IOMe&)OJ4RNY0Q&%#11tdc0N76o;R?V@ zy1V<47K^Lr3^Po7gwkeQmUAABzM{M@fGMy9XbhkSr~_~fP=))F+V;C_Hs7SGE>QBd z_Ru|LIM5y;qcUftAn#Auxg)W5!i3C7g2Z?a_%QECX^Z$ZO(sj!w#1hnmZ#>uHhVvp zW?iWud^=)mrvP|l)gi+kB+{VVC1NYxm-iDrIMoqK8~`xP&DI_nR`7%rdBe{+3iV0F%j=fSVyKBr}2OPP)X>}d$*=URv#t6KVy)OhA|?#-PZA_x!dP?=@`q@%3%V-r!~WkeRWC+cLk5tD z^^8WSD9J)gFW3p$UC|bHQh)Y_54(-7Zm=&IJ=B_!g3@b7fAa{^X$KrZ-9H{d?|wM` e&$0bWfB^u%HQ{yK>V6IY0000XdkFSGtfkpyg%3ok`ym{hhj4_7hZ4e~ zMVmz_&S$C~>9A}6eE?ZP4k0MC3&@e{EWZYM0_7&!oV$%>H}K64{)YZuvFGnUpx=T# zg4~7t4%&Nf&pCI46{s3}+qkNS{_kv8`5h7S~m_H5S^xY8dq!7+D#@jI8KW#Vm9m63oze#B{2OIZL$V^R=iRK7rFki* z&asjXb=3-xc}(gY^8?7^q7yuIAhrb{>;htr9l3=Gd?7J@i$#BqS|6k2gkEF?2o7qV zbD?>16!D4s!YD03%sJ|}iHkIAqez1~4eX6UN4r}1t=gco26b!Xb*>{)!^@Uv+n}@d z0QFfX1BSk>Y4Vth5t#o#jvO$84-ZR^i`VK|nQQNH+d%L*{0L9Lgub#Ef4~C1%U)=9 zjJzTUGPs#xg1x(Ek03Cp%Uwx6p^hHn02ENlZZ`x%0f>|nR->^^HlzJJYFy6^6~TtvdqeX$B;3!V|v4K;HnU z&tN`AM->5(%?1U@EK-h&0-6j82ZxP1CqqwZ-L<*+3_|t_vpH<@$Q<6tV<`pn3P%QJ zL$%xy&#Z7TRI<*@Px02gOp4^)&d0dqQHyQ76!AJ+i4*w{@+n$;g8aG^5G1V2`eCB2 zco!$Ss%K$sp5r_(VO&>7cII*DE2qkJ=GaE5Mt!yudsI)@n4V79r+}!es!lM0Q*6aG zKMwMeF<8n9;+lP+Pm? z+GAe}h%`^>96de5`QrtZcC5wx$0iZl?GbM^&4;k~#y~K{;TVPAu%qBF;a|V_Y}bNp z6CBmcJi>H*)vh0b;r3deWFMKhD|Q74Vb=z|DzjwRc~YzX5<#MHi<3y+LnOFFb_0b}hkTw}UJsdK0l27C?3H`!6Tr!U?=(Gl(AlGPY=rfZt60fCm3GAXC zmW@=9AbsW$m_pqbx(g5wwWHT6RN8z_6tT1gis@RF@A)}ydx#NMi0gc+lowCPpMT&ta_H2CzJsK z{dORF56J{4I^l89dRm<+Hv4Oem$IL(E;)C(o1)l!tN1%balQ>aKp(v}#U21*s0OnQ zV5;E|lQ?K{1Y6yIw(!pCQgQXrT9$7OqlZ@5cyzrWNh$AvaNFzhQo1`V#{Po54|$nK t*UylzHy&7T_UPLGAF&7Gf1mynU;tTp{h<;IS(*R<002ovPDHLkV1f;bQ9J+u diff --git a/core/res/assets/images/cylon_right.png b/core/res/assets/images/cylon_right.png deleted file mode 100644 index 89b7d719d0bd7317ea324a046a8c26f663914de2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1259 zcmV`2m7?e`wF0qJ0mIchKKKzt^?I5pt9E95ypFuF#%opITd| z8|~%CjdKI$=4$RfIB7Evn}DEnM<@Vm#hj+s&<7ffmtfAJNrg-Yq*uVM6|`@)U%|lu zr>X@+Y@ln>0|-&uqN@OH-PPJpv)vcuVn!c8{_DU5qba zcZ}yw0Q4E=dbj3cl!tTBvIZSvqo2`!1APbj+#I1o1Lg`R5_)mGX#zH^;e3sNYi!a) z5$9SGVL2SvVxNX|tcl*IIrt-Ejm$ZHrm2W((E^A76_^t^u&LRAA_K*Z0A)aO_DG<> z%3Y%K4Ek}5@y`qA9wGZ)V6T4LtC2w1gPbV{;S%#OsIK(H!~p?7#!}$vL}RR-I^Hgr zTg*xJ&HzBtY#Ltf!G0zJM_Q*q%nYQ~0{{VSfOuQmTkxDSBnM4Y2A{GLYc8{xbwaXY zh(tJ7cZlrT-;Z&TUKOIV>1$Gz@3=hi+EBgFG)w7!3({FO^ahAYZPL`11vyv=oCOfo zNeqw~j{qe=@Ma1qbv*%@%q~fDhkIWyY<&)I^0XCOHda?H3DD@A~eg&qyIJya;YL)i-x5DC# zNP(ka4C)0}cezLt6KnIf6kcl^~kAaRv#_YiVu828B77$xOHs00{^H5{yTr zvZsWqc4Ns7MyxWSN@YH(mMSGBH5#G1K>Im5kMTql3{o+Ou}~q2=sjt1F60Tlmyz3M~*>2LP|I{s+V`KlsetSwapRectangle(updateRect.left, @@ -234,166 +210,31 @@ bool BootAnimation::android() { glScissor(updateRect.left, mHeight - updateRect.bottom, updateRect.width(), updateRect.height()); + // Blend state + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + const nsecs_t startTime = systemTime(); do { - // glow speed and shape - nsecs_t time = systemTime() - startTime; - float t = ((4.0f / (360.0f * us2ns(16667))) * time); - t = t - floorf(t); - const float fade = 0.5f + 0.5f * sinf(t * 2 * M_PI); + double time = systemTime() - startTime; + float t = 4.0f * float(time / us2ns(16667)) / mAndroid[1].w; + GLint offset = (1 - (t - floorf(t))) * mAndroid[1].w; + GLint x = xc - offset; - // fade the glow in and out glDisable(GL_BLEND); - glBindTexture(GL_TEXTURE_2D, mAndroid[2].name); - glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - glColor4f(fade, fade, fade, fade); - glDrawTexiOES(updateRect.left, mHeight - updateRect.bottom, 0, - updateRect.width(), updateRect.height()); - - // draw the robot - glEnable(GL_BLEND); glBindTexture(GL_TEXTURE_2D, mAndroid[1].name); - glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); - glDrawTexiOES(updateRect.left, mHeight - updateRect.bottom, 0, - updateRect.width(), updateRect.height()); + glDrawTexiOES(x, yc, 0, mAndroid[1].w, mAndroid[1].h); + glDrawTexiOES(x + mAndroid[1].w, yc, 0, mAndroid[1].w, mAndroid[1].h); - // make sure sleep a lot to not take too much CPU away from - // the boot process. With this "glow" animation there is no - // visible difference. - usleep(16667 * 4); + glEnable(GL_BLEND); + glBindTexture(GL_TEXTURE_2D, mAndroid[0].name); + glDrawTexiOES(xc, yc, 0, mAndroid[0].w, mAndroid[0].h); eglSwapBuffers(mDisplay, mSurface); } while (!exitPending()); glDeleteTextures(1, &mAndroid[0].name); glDeleteTextures(1, &mAndroid[1].name); - glDeleteTextures(1, &mAndroid[2].name); - return false; -} - -bool BootAnimation::cylon() { - // initialize the textures... - initTexture(&mLeftTrail, mAssets, "images/cylon_left.png"); - initTexture(&mRightTrail, mAssets, "images/cylon_right.png"); - initTexture(&mBrightSpot, mAssets, "images/cylon_dot.png"); - - int w = mWidth; - int h = mHeight; - - const Point c(w / 2, h / 2); - const GLint amplitude = 60; - const int scx = c.x - amplitude - mBrightSpot.w / 2; - const int scy = c.y - mBrightSpot.h / 2; - const int scw = amplitude * 2 + mBrightSpot.w; - const int sch = mBrightSpot.h; - const Rect updateRect(scx, h - scy - sch, scx + scw, h - scy); - - // erase screen - glDisable(GL_SCISSOR_TEST); - glClear(GL_COLOR_BUFFER_BIT); - - eglSwapBuffers(mDisplay, mSurface); - - glClear(GL_COLOR_BUFFER_BIT); - - mNativeWindowSurface->setSwapRectangle(updateRect.left, - updateRect.top, updateRect.width(), updateRect.height()); - - glEnable(GL_SCISSOR_TEST); - glEnable(GL_BLEND); - glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); - - // clear the screen to white - Point p; - float t = 0; - float alpha = 1.0f; - const nsecs_t startTime = systemTime(); - nsecs_t fadeTime = 0; - - do { - // Set scissor in interesting area - glScissor(scx, scy, scw, sch); - - // erase screen - glClear(GL_COLOR_BUFFER_BIT); - - // compute wave - const float a = (t * 2 * M_PI) - M_PI / 2; - const float sn = sinf(a); - const float cs = cosf(a); - GLint x = GLint(amplitude * sn); - float derivative = cs; - - glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - - if (derivative > 0) { - // vanishing trail... - p.x = (-amplitude + c.x) - mBrightSpot.w / 2; - p.y = c.y - mLeftTrail.h / 2; - float fade = 2.0f * (0.5f - t); - //fade *= fade; - glColor4f(fade, fade, fade, fade); - glBindTexture(GL_TEXTURE_2D, mLeftTrail.name); - glDrawTexiOES(p.x, p.y, 0, mLeftTrail.w, mLeftTrail.h); - - // trail... - p.x = (x + c.x) - (mRightTrail.w + mBrightSpot.w / 2) + 16; - p.y = c.y - mRightTrail.h / 2; - fade = t < 0.25f ? t * 4.0f : 1.0f; - fade *= fade; - glColor4f(fade, fade, fade, fade); - glBindTexture(GL_TEXTURE_2D, mRightTrail.name); - glDrawTexiOES(p.x, p.y, 0, mRightTrail.w, mRightTrail.h); - } else { - // vanishing trail.. - p.x = (amplitude + c.x) - (mRightTrail.w + mBrightSpot.w / 2) + 16; - p.y = c.y - mRightTrail.h / 2; - float fade = 2.0f * (0.5f - (t - 0.5f)); - //fade *= fade; - glColor4f(fade, fade, fade, fade); - glBindTexture(GL_TEXTURE_2D, mRightTrail.name); - glDrawTexiOES(p.x, p.y, 0, mRightTrail.w, mRightTrail.h); - - // trail... - p.x = (x + c.x) - mBrightSpot.w / 2; - p.y = c.y - mLeftTrail.h / 2; - fade = t < 0.5f + 0.25f ? (t - 0.5f) * 4.0f : 1.0f; - fade *= fade; - glColor4f(fade, fade, fade, fade); - glBindTexture(GL_TEXTURE_2D, mLeftTrail.name); - glDrawTexiOES(p.x, p.y, 0, mLeftTrail.w, mLeftTrail.h); - } - - const Point p(x + c.x - mBrightSpot.w / 2, c.y - mBrightSpot.h / 2); - glBindTexture(GL_TEXTURE_2D, mBrightSpot.name); - glColor4f(1, 0.5, 0.5, 1); - glDrawTexiOES(p.x, p.y, 0, mBrightSpot.w, mBrightSpot.h); - - // update animation - nsecs_t time = systemTime() - startTime; - t = ((4.0f / (360.0f * us2ns(16667))) * time); - t = t - floorf(t); - - eglSwapBuffers(mDisplay, mSurface); - - if (exitPending()) { - if (fadeTime == 0) { - fadeTime = time; - } - time -= fadeTime; - alpha = 1.0f - ((float(time) * 6.0f) / float(s2ns(1))); - - session()->openTransaction(); - mFlingerSurface->setAlpha(alpha * alpha); - session()->closeTransaction(); - } - } while (alpha > 0); - - // cleanup - glFinish(); - glDeleteTextures(1, &mLeftTrail.name); - glDeleteTextures(1, &mRightTrail.name); - glDeleteTextures(1, &mBrightSpot.name); return false; } diff --git a/libs/surfaceflinger/BootAnimation.h b/libs/surfaceflinger/BootAnimation.h index b20cea09a4911..3fb6670b3ef45 100644 --- a/libs/surfaceflinger/BootAnimation.h +++ b/libs/surfaceflinger/BootAnimation.h @@ -62,16 +62,12 @@ private: status_t initTexture(Texture* texture, AssetManager& asset, const char* name); bool android(); - bool cylon(); sp mSession; AssetManager mAssets; - Texture mLeftTrail; - Texture mRightTrail; - Texture mBrightSpot; - Texture mAndroid[3]; - int mWidth; - int mHeight; + Texture mAndroid[2]; + int mWidth; + int mHeight; EGLDisplay mDisplay; EGLDisplay mContext; EGLDisplay mSurface;