From ca5032e9d681e7aabbfdc150d2224a035a4ceaf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Sat, 18 May 2013 20:35:19 +0200 Subject: [PATCH] Drop explosion effect It has been unmaintained and mostly broken for years. BUG: 312176 FIXED-IN: 4.11 REVIEW: 110513 --- effects/CMakeLists.txt | 1 - effects/explosion/CMakeLists.txt | 19 -- effects/explosion/data/explosion-end.png | Bin 19436 -> 0 bytes effects/explosion/data/explosion-start.png | Bin 19712 -> 0 bytes effects/explosion/data/explosion.frag | 53 ----- effects/explosion/explosion.cpp | 213 --------------------- effects/explosion/explosion.desktop | 167 ---------------- effects/explosion/explosion.h | 73 ------- 8 files changed, 526 deletions(-) delete mode 100644 effects/explosion/CMakeLists.txt delete mode 100644 effects/explosion/data/explosion-end.png delete mode 100644 effects/explosion/data/explosion-start.png delete mode 100644 effects/explosion/data/explosion.frag delete mode 100644 effects/explosion/explosion.cpp delete mode 100644 effects/explosion/explosion.desktop delete mode 100644 effects/explosion/explosion.h diff --git a/effects/CMakeLists.txt b/effects/CMakeLists.txt index e89576c521..cd77323d40 100644 --- a/effects/CMakeLists.txt +++ b/effects/CMakeLists.txt @@ -146,7 +146,6 @@ include( screenshot/CMakeLists.txt ) if( NOT KWIN_MOBILE_EFFECTS ) include( coverswitch/CMakeLists.txt ) include( cube/CMakeLists.txt ) - include( explosion/CMakeLists.txt ) include( flipswitch/CMakeLists.txt ) include( glide/CMakeLists.txt ) include( invert/CMakeLists.txt ) diff --git a/effects/explosion/CMakeLists.txt b/effects/explosion/CMakeLists.txt deleted file mode 100644 index 0dce41f899..0000000000 --- a/effects/explosion/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ -####################################### -# Effect - -# Source files -set( kwin4_effect_builtins_sources ${kwin4_effect_builtins_sources} - explosion/explosion.cpp - ) - -# .desktop files -install( FILES - explosion/explosion.desktop - DESTINATION ${SERVICES_INSTALL_DIR}/kwin ) - -# Data files -install( FILES - explosion/data/explosion-end.png - explosion/data/explosion-start.png - explosion/data/explosion.frag - DESTINATION ${DATA_INSTALL_DIR}/kwin ) diff --git a/effects/explosion/data/explosion-end.png b/effects/explosion/data/explosion-end.png deleted file mode 100644 index 572e6f988effc0f1b938ec6257c4b1a9ba08d88f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19436 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 D2Ou&k diff --git a/effects/explosion/data/explosion-start.png b/effects/explosion/data/explosion-start.png deleted file mode 100644 index 07967dbc2cfca3b1608e5f07c39a2a2688180301..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19712 zcmV(GKY;&4Xa7WO|3q>BM0Wo~d;dg$|4Cy1NoW5_Z2w7d|4DZLNqhfEfd5Wi|4w56 zPG|p4Z2wMi|4w%QPJ91Ofd5li|5IK6Q)2&9Xa7@d|5I`QQ+EGTd;e2_|5#4{SX2L4 zSpQgE|5#%GSZDuOZ2wqs|5$eaSbP6ifd5@d|6NZ1T~q&ESpQvJ|6OALU1$GYZ2w(x z|6O+fU3>psfd67d|6)o1Vov{JQ~zRE|6*PLVq*VdXa8bs|6+0fVs`&xd;em9|7S%1 zXG#BOPXA|9|7TeLXI=kiV*h7n|7UFfXL0{$cK>I4|7U>zY(M{OME`6_|7=eGY*YVi zSpRHY|7>FaY-j&$Z2xR=|7>>uYGe@X+0?pzT-|G>WeDF zq^UELj?-$Ue~^~@N2aBZ^Ut~Gxz9PeJS^$xaU~mqkDgbL+H6a*BtvXzOR{ChmSuT6 zL|Bp^1tZD0big$xEf|A~Z77C>F%S%?NtjW;Z@t&I56(o~yYGH{&-M7N-&$Xz{r=zk z-QW6WE3*5tD*WG>KiswX0}KD*y*Fl6nN`P%?Cd?a-#W=2{^Xu5i>-eju6%r&J$NLm z!u8ue3OD}qcgI^#-MMoq{Pp&at;^$0A6wJ?kN@^x{fq4MC*UQI9=-h!Zt91pGI;X8 z-tyt@fBJV>6<-^_hOd3(?(E_4({14u;paUcxhdT6&?k0h_aBZg{)4rHW@ugZ&|SO3 z({Sac@REOhL%6s%-g_+k+xyS&TNUnK&cYXO`{-aQfNH&&{{vg-H)CKN&9m=*M}! z6mEp;@!7Ax7H?fWx914_^)G%h-d@Z}WFFQ5bb=Oye_{f>;D*yLY_+!bpy!F$S}qB@ zmt8G~bJrb&4#N09U&TjGRPZ3o<+rMFoRRRw{YS&)z44bePCz->q+=N_O=B|~u@_h1 zI`nC>dhWWz;aB+OnDpv~;oP2z1_dXqw|?cj|H(gkQr>8qfOC5wyrOvi%YXXSmtOwn z%IjsQ3n4|}m#xT&HhU8Wv~sc6JC*uot{lSF^)t~34rf7ip@b?3Hc@RDP&@wb>eR!}p; zYFe}M<9EllP3*M5Q@qEs@Gg)OUzEu^PYY{qM|?F8=jZC3YsS{zZPqi~dv`U8d%+8b z=>iWf4b{~WHs>Sshj_!piPB9BFxTl1^Y$b6$*hDM- zBJ{k`{KMn-pZV1FecQUQ(s9zbf8UUn#5c;=KO+x)IfIuz7Ct2!=GbZY(!G3Bx?ZN4 z_RlO`-hnVvBL7Dj@83&d>|R;3^4<5Czv2YbCIS)5!`YqNaS;2WU1(Ktcu(Pl22AkZ zdJ{*5jeXH~RI74{PU`dval~CWWN;gNPPNp6I61O(mJ0BpE%-R8H1tvp# z^%j^PGLdyW>9*!@ZnrA8vSSTG7!4lTM`GW01l{*Ei`R#71s%jT#vQzjpVC2rCt-&8 z6S~{AoiE47+#F5Wq=)g>5e4%C1#Emg13N(V3vT1m5A6qee*ECbdR{e>L5W6-G22ud z_HpTE{h)XEKpVt19&Exk7GW6n&@`*~i%-TGQmI?EMV#~Kyr{eKeeb<^#kQBer6US9 z1mAyaRrZ4&utQd4_`@DE-S7M|3~g&}dLxecVJE9p1h0uk@rr-&CHS1&p_1g)75NhU zEi946_{tma1~&-E|qN}SYG>ZaLD?AJ`abkIy2GoL5{90}vucN- zcgk@R|25Oh&%&40U zbaC#wPwGG$tmVUwUCBN$2U1 zx}f&9t~A9+4l7;&=4C4VR)*bhNPB?Jz7rJ}orgZ{n{||fuCuM}z~q8Kv}`@WxB%7q z&FoA18+V98!6{u^y-7m*@BiKF->5o`s}n2GU=GAeedwHd7q2uG!b@)d72Udg%m$mB zj{&1ik0*u?eOA|zT)5+X@BKHce)nJgb~NgCkfxNkpajX){P@9&%)BHsb_rY#yvg zD~TOi!4?!TW0G;Wu>CJu@y2$H@XSl#?OwJTAvq%K!Bv@7lU9)lma z^g+4h8>?0Y02jOHq$X6pu<@o6`UDwYgb9c@23D_Nv`zquaj2fRp_V^_}&D3XPY%BmLodPaT8^CJn44#-@GVU<{x> zbt}111r=Ph*TuI8PBl+3%haifn%jFHz$SMPHc^oAHOZG)Mjdd-&K=>N#^h7ypZv@X zU=Z_ODOf3XC#*2O3ljj_g+P+eTLrxp1kLk+>6Y-ZRGi2eKz2;mY4d!r(IPuIIt|of;f8{lB?Yd)B8tC#ij5Z#?0M{vTYj)wcY0S%Rl#%=;xlF9B{n_YIDwI_ ztUc*{OYTAvl4G|mE{5IYM8$`S=O=9eSC8sCaxyqP1g5Zw|711rBOe8agI^$!*IwuA zKvPktC7~Bo1z^vL?o~r*d)zpLH#Px!auFUi7#}fOk)aO8c+qXE&{?6S-d1VZB)nU# z$!+ngSIEQZ1}(5n8vUiOnoc~*W4`(pH-L9gz%7N)nlkztdbt;6a;D<{tTluxu%-oA zxy8UoI!>Twt(qKLXeKW1J)k05M#tpsHB{<5`?vAtqPHacP1Di;R#dNr$!F#^nzw#?aIQ2GO?xH zmw|(ix&+@QLGUhiI7LU_G&@kDh+Fkry20oLW-{(etcrs+HhA&cAlwqMu3@ctCWuTa zA_Wi{qx-GUp$K!4+y0v?-wL0%U6lEOkoYszph~9dunU5#gw-ZTbQDQAlZ6zSao>^+ zHtn+*-ddn7=6NMM38`tYbQH7VQAIrD%|H-g3@V`H)j&xUt@umPhIqG3;nZ|dtcZ5J zrHF>m#7q^!0`(wx3?Zl_0%`9y@a3806tzC`)ey4DI#G&_!{dr+gR@d7b_s<rJS$I#t=wU`)HrY%W?!RE+dJcuhsQ zl2hQP`^17#kw00~P}2#L9Vp5g-m?penT5gQhP;toRb&ZSJ4(DjtpMbMv6(`){M^PX zGG|o6R2fL_hRgtVgo%M66h0_XmhXJ;S~QLn9%mODuHB_0Wd$V0)RZXJ48jCrgXDwg zED?fm+>$qv@bHw>fM|tvQ*13j=4`@&nUqyd(M=eZKy!v#sQR}R=q1!Ikv|({CV0Cd zQA)wIDSj*d^nqJE=)2X3>aA4+SAd0b7w1H zZ1A9OLR@Z&^3W69fGZk^Lknb`_x@Ko`M$XVBh_jCRiHxEW49>vb-xa>cmN^a>pp3Aq;i(R{ zlP{pgvez}|J+gJk?G<#qXcuUk=<^7nk&!xdcfhig;7LS#)$UUOCq$5mgaJ4Z(RH5+ z@0}9R{ZGI5X3hA0oJ{~C5ythLnN=#04p_@Y@CAVMC|oD6YmR%eh;_?eeM6-E#CvNf z-#v!ebayzR1`9EFG=Ose?3ow^ntV~F1Tsq2W;uD;#Vrv0Wg~W(w~jZLkIF*g8-oy( zi&wv5XPA&(4Gdfp=1L401yQ=5I;{-S$$~Rdy+`HE1WyA1Ow z@kPSG-Hcm@S}Cl6l9lIEvLPDrt_4Q^d>E&4p7gK2ts#etcBJAe>lvJ8GTaQ3?e41M zjMN>la(S7zo#7iS2%!PM09lXlRR`(atZgLe}w7)_E(J}IvE%%x*6kdF$!snmp{LzU*&1|;m#A>knHNso(5o7n@6N< zG-4u-DtNRhn-Ah0&G-NQd~_Qm?3pj^CTs7c!s5e-{FMu7e4w`TKI?=uYZvzG!AdLLBaV(6(^Y&(X5*!l6by_R6&Hr$(&wIE0FuEm?CQ*?}cVj_6?n9pH9G}qb>jQ zS=xXXz1#0^#1T=F*iMH(+fVR4qq#kb#Us+JaW~8CJ(n0UxXXeTD9;$%iu#+t+ov28 zMcG|mzl#k<6Cl|CSH3w@8z_KT80}J+uyi(X__L)ZX>V4WN$6EVvP+r0r`=Y<%O%3% zUfY9^^t^>X5@O=F>QcioOUJdqv?Un@=3p! zFY6eMzzh|+0Me7D$TBi${MLx6B+G&rca4C+zCw$BvD>3;L!SfgFd*WoD!#7 zj9_s|0R!#;e~DD>qL&?n(db2*QGUvGHz?naI_>&rXic2bt*v`12ki{RJOE^WnfT8Y zav^F-9^9RLqu)~_FAJdQXsnnmp9NSvYRR%^*aaAzeeR1dUQ4Q0*Q#y>GdXC+>ep>| zk*+y4fly#DJwTJ52rSUf6EG&@G+Uh7hsB8`GFlQ}l}VzC`A$YlH4efQjFqybuPp;C zzRp6Z4tPl-vX^ve7%}rIvRRqU72rep>^E4uFiYgQXdkub_8Jf{?HPNm$O#eg?}V*9 z&V5GOOA<+L&dPZjZ;5vraAVrY0T*9^7`T1r`$HCduyS$Sm zbY{g&G5!cFb4Y`NL0k{3;|ng>Qwp%&N^A$ggT623>y0s@uULws=Dgq@k4XD=M@KrL zsJ6{0@H=$U7aiU}{UJa%X9*<)zkJF6ZpF+bf8gQjT%62|Y;IJ3nkxd4g0Xn_1_MLe z!AHRY-^AoK43pqkx@HPb4Be$%AAR+UM&~O1>2{DY4Ip<~TMDTfWlHe#x{Sn3im-7Y za0t4SgZ;EZ73J(W9(kG+5uS(l2*??!j+DjhK^9#! zg{v}&tpJ5CA^15@k;P1vn5H=g0>?@TJLt{e)8NjN6!K_@5*jh!r;(WO8{BmYb;?e} z#9kI?AokszFBgdk4|5(+Frm*cT#8$-S@&rHi6g9e0vT-4Hk@tE6?Z`*& z4yX|$RP!Jnj-bO(H_jeZj5T2_sfc^Ez%~j{7ScLK_iUV(!(g+VZU#E z4!ySLgYw2E@F`xb=fy5MkO-M*%z;)c(&Rt2=f+m6 z@Ol|qd>uw`#U%*|i;&>NZ5F11Z8KQ%IrRSB8nf^SUm6_-OQ7X4?RFngwKtpOwg=`k9p@K#SfyK$A*oMubJ94|ZW86;`rh3Fc&9D3*YxtPUPM%4e| zkE$d(+@d@efC)73#=Q%Y2%$X|GNx}!Uh8&#E+cx3iafsrod8YaDo9e)EzyBdmT_<5 z5aR`(5O>0A3P0%37E-#c%14KbypqhWuF1Qx?^@&n%*Hk^v=v)mT zB9e9}a}?kOn5?cqzcm(*PsDPJ+7kH5oA#LGM4=pVPQ-3)m*>ac=S>?NNR^c-bJUH9 z&p?OG%h7+K-a@{Gqy8+CQ6ASOM2FdgnHnHpW#`x6Lx+7LR>G*Af*GuNZAOVxUhvqf zQsu|)=2y{H%qVP}ZV6*eZ9{5054WTkB1u{qHoK3+MJF3V%?8}aM{y1syr{Cai~RB3 zm!V%y=Wf_x({pLZN0G#)oOR8KmM@`DRHaGcajq2nA{)-|eNQ;fRh-?@`>MwYS=CU? z^&^drj%aJBI8pV|She%^!^a+Y^!%^5Sd3ystty=pv9b)+cV57v(!1tVa73R5RhrhG zA#M+7qP+UnA#yK!Eop?RB(em5VlY<$>~<-`(Xu!^ zGSWf56y0hQe3wvE}&7N zmf&~w&AAMk{uIYwSR5|(l&WT_zaWBeu*D|oahd}!^WKc8pDU<@`a$U;(8;7s5+O34 zD9=MzHzRaok-+SWC1{BenJQLqg$)?DP}72|X4#n(L6~F(gUZlxhV_+X*gFqnB;%)r zNtzz_%tuRtLg<@e==c|BSr2ey3GJ-N$r60ZZ1PumCLXWFI){WDlRc^I2Int`APhf% z>v372iNnsZvUNbX?u9L=q+VP{7Z?jyAB1Rj?VCsSLLY2d+tmRhfVITJ1H8%4vnx>6 z1Ch-!j4eh*9oND73mFT-CS?7p+!}4E!HVzVq$g3Vwj;7U(#-V}!Xca`>$+(fJ7URo!JY|5e_=bXWa@SO4-pF~s8s~F9qa~Sg11(tT4OSJt6C*^5 z+)k;76*atX?{QLL2OB?l$C*k1yGcaDOSRWU#@V7oG*I_Dgd9tZeLPMs1sNF`tZaW4UD9o6(mYQkZ1Xbi9Y+x$OW5R%#Nt<8lDiF#bQiauZ*<~>?r4cigEK84~%nST{1eP7s@Pc zaZ!gWGBC^PuiL4j0-DCp#W+Dd$?g)c-#7rG-&cFo70&G97HZ6Gw?atxeGmGAz~jXI z6diV#g4HP-R%+Nx#+&N_;WY1bBqla*u5)VU)e7tRBs-?_;9{Zxh;WAyKmmI+=nl_@ z&LA+N94+bfQ9+}(VKoUmNTVe+ZZfU^R7jXpV5uE-Tk%`kWk)|>2@W1sHNtw78fLP$c648Tg;O485I-j z>%wQQxiLEOPKCcOY&i~4=l$K6nX&P5B5|Yep_n)=88%8)JvT6j^6UQkjoiu~5)} zqgh`2Q4wXP1R}hiN#Dq3NvTZ=jpwe!S_BGamFkq>j+!*7H#Ie)v6w+5Yx?)@OdX1`~PHp9P88fFn$e@ue)p=s zaUtbxAK|W{qNNTihzC&{jCt4+PdbWRgr&@K&VJ7vXQyEVQlE|cGHbg`Kkxgy!iZgV zd#H>BY>;B8raDZc-@QM5yG~qgN^-=VoQ97jeLYl0FM3+j8B`Y}n?~JSpl=hz;VR!| z;0q|hWj<%)ewz7A0E?=>S-HZ9LstxALh{$SB1b$0^~X^H35KM6W-g&M6dJhHI8}=Z zvzv@u7|z@@yz+g}y5OKSCoq>lk~&b?^EB?Nr{D$-y`t*T5_E+Tc|kZ7o6F+^kJKmQ ze8+|ZpRl#Tn4mEt=lv!Fm9d`?FMU$;+LOer=$tsooh>NL6~;ER$@>q-F9cs8&PNQn z9)pGY$vWWkI>a7|zDa3t30f$lJc?bmnMb<#5$Z7SULgKaDfoNsYSpB;Avo`A9F*0O zr0Y*8?JZ5rQVPp}FtKdlf+^||?}RT%)>yYfCfdGQ82UZmU?e!lch zr++l1lW#N(5!8$hCwbOE?M^Yf67Wrc#MGkKBaX ztLT}k@gw1F4c9nU7RAhYEvVP!OTYtCsA+TIPnPX6?IiU2p;VJOoP=b-fW#yOXLGP) zynp_!G>>9^* z$$JUCe#pu93GHO70b+cqe>9j28^KJAsamw(#_bI&2w>+!3<_BSffZKse7=%BxgcNi zNsMo$gz|%sHb-SC*3bv_jEb4LYV%2^ZqKc0rdiWqF;u$^i4sX&V!s+}bjq@VBJ8qh zCg*=eZo@Tl1dmIgu}O^1?vliq23o2s(D2HwjqlL-dKKaKU{I?*N>W>pp<1vhRVtFx z>M63eW0n=vit}O{WeG|n`xHgba>Z8sVObV~JE3l0gLEa)%#xa);9SB%}+WMGp!=*m><2Ruq+>yV}m@almx$2nvQZx63THuJjU;r;S z9bfv|@4jl?(1EUL20sUpb4r_Y@Eu}P`aIEW(<;KA;x{%&WZKeT?|hpD|D>(89>>~v z;Tuo7=5Ql3xv$cD!DCWi|4`xy{vg3sCr%+H8T`OS#h{5XgU)GoJRJe<#GZ?vUq z0rp7?$aKtP>e|8z37nrUC9>za=n%c&Ni0#w5Zu=dGK(wsSToezK~!10^@@%M?|lvJ zKxImsEd=gh9~AghOyOe=oAL_==JXsX4geSw)w@W$*)pSgGMOUJQv~CgBolir{r`m= zQ^jyeg^Kl>*Rm;`Qrg>o6-U~2sb@`DCYE)dgUIr`gER|M@R*9dU%CtNX` zQj@(YCgxF6SM~wjCP~KkCR<9afJW(7jnf}Z;ox*sC9G>Hi~En?))&2uQyLjl6M>)AZSMN#R4EJIou=k{JHC#c<5g(q(V`4l(UTJ7VfS zauaM;3#Bqgq*aihLNt&f{Sh-2 zWQk#2v?S&IF+nD^ciV6_MHyx`cldSMh)i2*4qS&N+mRff|{bBDjI4y?wG z_S$MB>v`KgmNX_vo}uOkltxE`nLw7%q8a^*o)9@fM(}=miHin!%F?InWlY*@c;YPy zXiKdCM43r3K?7Z8_SD&1iA`9-Zo$(xwHirJX-Yn&_<}uSKm6=<^e#lrr9ul}I6AHx z49qtq2X%Np5ZrhyaT%dWifAhdXgs3;L^dm>W}Z)-jp51)EHpHFwuKQ}FnN!M90g%E~AzuNrou$sv z$e7`fI}G7UIoE2^19ybWh7X|q1QWR0=K-mLJJa-L;jI#i=t2}@CD9^bgLf1|^Rk0X ztVxc!oAm0;DJeXH$ZlAIACu%6L>^GPYMfPJln`{r++n2858O5+D}D+G_HmTP);=$D zUmsQhUaE}Ea>ZgSShrC#Oqp|9m1!O06(-iSAhCskNMh9oAm6mkYTGi#_sDs#MYmpx zH+-GL<0b%fj%SkH26NE)D$Q3k;*PRJwW>O~v_AdrqPb(Z$;A{NMxbY>qYlw8G1jD~ zXcFbdQ?Amgy9LLTi?KKP+_ zn|=_qGrch22{v`v!hC0<9;ZMCkf}?n=62AUJLwzkR)Z^#V*^^vk-AhJsnK#9*N_D7 z^<_De^@(ckd z7SFz{qDLR>Udh4O;N6#9wdAPC{x3f)H6%y;d8|*r->GCf0D<>eq?L83EGJ=t{%=zT zy>q|!4esiXpIA^uMkKXR9ce|MmT2Skaf!Al#J+% zSK--Pf359lX%l-|S4(Xn#svKV2U4|DL-Ri7;!kqR4J#Ye2_Ax?YJeNv7ZBW687(A+ zu9ZtCTuHtcC$~lMv1Ce=0XR$#`%X*dH_d5Xnb<o?9LECMEa1=UvZ?W zJAHYmCWgl;di0d%fF0n;bP-5%wDOrmc=p$)rOzh;!*B@{< zLT4@7<$tsphC>((mdS*g`0`L0gvW~oh#vW=TF>opGLjPb;AJ)8XVoXplfu(<+yRiEK6*6mCAn-J1L4~9duJ*$%zDSJ2Ss&{9yB|r+lQ0jwQUw70VfH@g*JAi)439-C8gi8Ejos!TADYLLEr!!8*6Z6K-Bs z2c|5%k-1m1JnFigPx6*9M?oiAI4gHhjo5e=YFc_a1Wt)R_6r<-^w*DQyRdybDpq9VYG-DHNEVXMQtl<`l|DJ@c*=M*;1MA)f@hp6KE zSdQw|NqC@$KcL1s*dsK(x-)#*9M9xwt425bf}}j{U*IE=q->({ggsNGlO7Jz6dynD z^5WXEw~nApzz#I)tZpaSG2v@;Am}KC)F(YVlLgfYvbDu|oc23O?;;U$MD>3o`Dff? z-I6&=ZDgv@KGLMT&|lw!bD5)C9T39KMDr58HC4AA^%`WO_&g%G&1Z2BtS&fpr^9d4>OyLY@sf3meIj3$Znk&5?wqy7WcDxjEymxZxdwd*Vpa_3Bv+6 zO1V&aZk*o?$pKH6E@z6q;WHTkBJhl;K`mYGA`!1s@Y)rGmLp-ak&7eewn_q?!0sNK ztbBJF!Q1sj{1!#8uEOizeFv`H%oe&fTqqujr|TR(n@8jhR8MuuJyl7y#UbD?{>#uh z)q0p&Cu(J<_0_CG?_D>C#!ry`?`!at{SEMxF!S^PAN}tasjc)?Htm^OKj00Sa`-fl z$a%8f^@u!gtt8c5zuoYY#-ae5RDw><2etfR<6t%ck=9jSdEg>4!N!*DDFdeGwfm*} ztAE9#sZ97*MC~7ndU}^s>!r^p<>na-anqGLV?9?%sx0V0Dk?(i{Pz1KFyv0_DHmMn zYcp38h>>34uxia{9WXrwr(;IoFVb_C!}J4@C#zbTn4$EX`D2i6riX?aC!guXx%DFyy2WW35F~dOc zn-dDg9!lBOJ?xyZpV5VeNfGO=*UH@{IiD1tnf?PEfR7>dPzhacU_hQn!auc<+>!s6d*Av89{CCv*7|faXyRmRuFb zDpbfX=A!HAOqm@5oj9(#dY6y_LSRm-{pfQ(1c4G=M}@iFo{8Gz7N!O7aa&1em9b@# zaTaej$y|5>kfP$K2B%yY#MAzy=$Ww9Qyb_K9Tc4wrOhp=<)pzd&9TtzH7`3uCiF;} zYjc&s_26FwiGuWaFZ`6TrN>$rpJEsXSWGX?9`CKM(f$U;g3W6)WpLqqSO+QLv7?yq z<*LrkGJLp6CM}SwWmf9*!J8` zsw1Ly1R#ww95Xe&i|`?w5Gx9hjF|aDF}unjp@{iLy<*%*Z7tU%jZ?Ov@tV8(p9xet*|t`%Wc(Xg$MQ*&9>}Z7o>g%LxdC z=>yK#>p#}RQz^`{|Cb0f-V2(qYjWsg{%>xgj6;pC^Vc;2TA&Qtaa}pM4Qd%_zMa&a zj{ilozm){4Ekl&Oo1lPgL6e$rCM`8 zL@?acX@9{=@*}B;zMg1~2e(nI$B19>DU{ORNT^j!T3^G4pa!)~Rs3f1LGoLIvp8?f_y7L9(0N-~qwh+y4H7%Bn0;Ku z)Y!{ivuwDVPz>yZ=ipCgJ4o~&Ox4*=~wm3S7^bo(kn(oQ29v=&y-HdEI?Oq$gkzg43)dBwTNS z{cVcfyfRG_@3K+lNVjw-47&>Vfu*(&2+#l`Nf+PkovEG#f#3fGs>d&IkVIsP^KZ|iuQ>dslwGZ*%ML59kQKU#1JVp z?M%-DaK=?Y9k6Pgny3OA=3?bt4sYCk&{v@{GwbO~uFk-(U2~Nt9`CC3CB9-tv#Zj= z69J!L6QR_~=UUm*l?z)C!@oU8sk1him9n)0yvxTqS+fknLh(YJZ8lr7UZyhDb32n7 zHkhT9#_*^X?~!_0RJF!UtPJif+Dg-hSfc!0SEi51D#KG*2YFBCclgzf|70Xkz(OYWKKMyaA#W?P_c1=FU7+wl4 z>j5q=Yi4G!ICf~F!au?RT)zuXc3;e=d)@6hS13>rJU;_BlF^qOuG`M2Zcd> zNK1)vB@(IX`ec$s0Q@>PQks`jNH~yE=5)85P#JuHe~g5v4L&%b8LGJ@-4P?DtH3ge zvB6w}sFc2dq%mNHJC}n*z{31JQ_P{Q#N{bq7vNa2;(ppfcr1>S-PqB%jiBdE8zSRs ziyq();8@kK2PZDt+>+9l^Xz+IIr>bEfl(~_Nkd)h@f1dVOyRP^G9yf?Uj`^Dox_BI z-Z~gMKa0plu81;CGgnyK2VB6-{v7CHr)pR=;zZ?8dUg|%0Cso^}>Pg8oP(MO<5QEveUX>nt!y9E@KxOe6s#fYqkq2{e&99 z$J1jzRbnqlRfJ=nI3udAUyq~}eR~3G8bCi_YRD;>V`t5!eF$rAsojHQVM@jG?pG}9 z6(!Sca9JFi2B0PqR)y-ZV9bIut)-l6fDNMf=0vz|Di}}u5O@+vn=D$&KU?0wp)-NZ ze3SZd0}DGr>yKeib7S`)Sy;~iv4IhY1btZ7)}+HVMBHhxipi?}a>AC2GWR)g3dha? z9!azU?n=`$7cJ!m-`++4f`b14gz99J1GwRi!xh?QReDT|TVu$UK^P51P4cXfIOBur}T z5Q9)$Ry4*V1ZhRa7o-T6Gcgg8l~|QTkOaX7V##7*36!i^AU5oH2GjLl&iDQ2RFs{k zr#*E$^`HOpU5foL*XKMq;oHh&j=%(KByr%B7?eCrUiqrq-~po04y;V*{>tm48X}{j z?5O=E`2lz7ivBa|+kYP541G{T_zHc_gAC=o&Q3JxqG}qGYm9T?h*w=R@PCh)gz01l zc=zC_pc*0|D#h728)5bd(ssG8Q*ymER)@gjv3GP+=5}!`2>P4{00$LA2HwQ2ct*m6 zXha}9dhPZX{3MG>>(I!P5e-06hW;Fxjb9-7(Vt9#`7O1CsYptgY>!&TlyWaL0|^5h z6cpg6GULsChijjfAsR7wty*6B8Utg40zENxjn~Oy!;-P>Aq|=26}hP&B2QI^z1rd4 z-IVvpB^t4WDFt*K8k1c3Ut|jK+J5C20-Rrt)M5kd*bOV;MgOd(fpj7D(*(NywpA>s zD_qt3A?K-0#%@1k8_PO1Vs*0;$y9HDKD9r_P}kuW#i84oOG@JsxXl@cUQx&R(%54M zyy%%2NbM3{r*;0-nWLW#0qZP@(5z_46nOyniQwM#Dh6}y9Q+M3yISSJ9ypALrRD4* zvcu4gCZYf>(t`~{uOWXO#Zshu_RM3GYFTUf*v>VH*g8n6oA&FfPa-sH%FQDWAh;T$ z<-j*ysR9pBh3Hh6?SWAW{6{m;YThStDbv>j`0GiYLoUc-uI6lyd8ku#8`-Pzptc>k z8Q$vGRaba8ltyjWjM==#BT`~{A581wj+GIElSY<^z1l0 z;>0h(`IOjNYVJ1~v}faR81Fc@Ys%%0aN@9{gDs_I(NUxLA}yH@trU=Mqg^)VmUFqi zQdF^|W@?5#U{e6g#UP8FvZL5zP1B^x6oyijnrw$+Ow-EM8IlaJmR!z?OS|G+H^C6q z?Hsw!Ba269Bvpa;Ngz4HD&&%yzUFN8R)XlU#DX@f+OwmQOMVy5x3Y{a@&k7YXb+25 z&KoxMet=FJ1rjA@k~jQMJ>$FamVEp>khyK!m355x$c@D?L77B(z9T4SkaW`i^6I6# zC=Gx9k^%uEF7qCHQn_c`2OPnreoUd$`>hmJxS))IWJ98ypOO#Xyb^8ETT!X|(EBBX zqE^+XFh78#Cdu>pMk@=EarW%;v$jxbMS;NfZ+XUaDnVxVzdiCJZyD$mnS1@?P(m$v zb`##Qx27b%8EZS0-N$(s1U-Jw#LXQ&5aj2&}Pg|#X2opxG^ji%*=YPh!UC*Le7hb3Eg z-*4H*7O1r4mX{Jnjk9Doic7(JC20?YoLRlk^c3}PYNOpK%pePJ1k0N*?4){SCdtWb~JBnl3`HC zZHJnxY(wkgVlkh=^as2(>T*x%+r1DdDK_G6z>$U+fw-%8-W{RRv)Cwi#_~K&O+9~z zet?{|?hy!|59zfmZEe1xA{ed7kC;KH4c8WISY*w=CJ7a00aXMUb>8+#HH`)zLJtOW zgr$KxN>ObL_4l%demt6oNovlPn;z$GAoqX~nrZxM_;k_CSsZLTEsYtmP zP)*^eA9nt#ujHhR#(_*)|UAR?Wt_+SLNCeH05S9SZZB=VDaL5 zsVUlS2z9+I8$c#}gaoWPY8W~mwZHd@-aXP@tmn?k=ii2q9pypbh02UQ_lYA*Dt(oCBg6Leo9DlQebP(c zp``CPt&%gmIT3ZsTCi>gi|AUtU@POvkR?w8Aunt;2?kBq1m5qsmC*eh>3W-PDJZ1- ziy;5M4HMYoibjwxzdB+W6U2IsqH>P3`N7IPkIikA_Rssn$%|L46aL<~ueigY%kFd1 z%cZ8MYJX?JH$s1@vmo&rX4KKa4q&tlTwt2#9es%YRMJa2OuD<)`7zFKhEISz&J*(f_x4@9d9p55~|^>58@+w zL%E%zIMs5q|BNw0KLF_8HE^Cp_7*lsvQ3Znx}}K$+83g5{f>%SQlD9exC`-Y%NUtO+^?X`x3>g z*!K4xTz- zfM!0M*!tPeM*c%dqo26yXjfo__Q#6}$5=SKHTt<$-pMY^}tAM`W zKJ?*b@fkv9?dBc*^3=D20HQNVUvm`qJ8-|) zlaL+&p2_|MedyL9;o(tC(6)WI`~w})6a-6MI41`aus9t4w$c@0y*8ufE?53|>Om$t+40Q}g!nspt z-;4?pbxv!LyKp}Wi~$@1I56XVc6DSI&ASC#eBC-}L&kd31#DTZXK|V>XkyQ-fq_%1 zp1g?>*{5E>oMIDb?I{FGBoZc^F)K(=$5$RR`OLPZr0;yRUaVeVnh)I-0U{_nj9R`2 zi;${z!EEh}`WBuo%C=AmRZn4BPE$ZTH;23Oi8NdvCXf^qB%y$u zI(!Nvqi9Gh4b!#G0a3y2#Z=WR_^O`*tQa8jv0^yO0x z3KBYDxeUD*tdC!zFEU`LvC{`X8^6!!N(pBvYhbTs4#-6{QdOvZS?3f;ajt?9f8a=j zpvfI3_I)Epf2Pv;_>V)1qItk&=)IuE{SoU8uVc5K7GNt6JU)Pz3sO+4&#qiLe`2*S z9`%|%k&}={;?Dq}3EI=;Bym;s&gicLyGGmT>Nn_bm7@;vT9D+%2e2Kn zBG57wpv}(KFs2WAqTfx2fIat1EaQ*VxtL!gX9!8W&FNZ>=DHrPr#wJMq9O;$iojbI z`)2Pdt6ESv@dGFX{a}d`nx-u(8CLsZNtL1ByItTUviM`cB56+_OU@8)KEi(B)UM?E zp(`xEt6bX(W2*(kzUSm!h02K4(V~D|*}^|^1o@xMy0*SH26NnlP(!VnF;~aqj|U6t z7hVHxTu3XjQeWD{Nl`tn>X+U)L|`OFafUU(a#Pw-No3N9HoBkI3W}%Cb=n zitQ@fU_e?pS?|%1Ks$^@60ft9?LuV32Md(p5?EK*znEa1G`7Nqywnk_d}p`pA)N$H zU*H(awdSLZRklNP2II-pBMoqCoCGo;wQYwjUoPe3+A@isH(I^*YjuhmN&!9p$xbYZ zdov}hljJCc2?*&ZcY4KlOTUqFw6W$mBcZ_kyKKTfboj0t;MNzyA>mAfrdD=o9}>A% z&NL+P2?<@L{$8s}QvJ~>f3bvh60K1bN%_S$=_CYQ+6!D~3rn^zpZ^@nvH}=hx-7{| zb|A*d*-XrewDaJtXB2&^R{`zpK+ZuVKbA2gmuCef~<2O1&Xn&Z?iFln*&n zDsHP8x7Z7;aGjIVeaO_2YmAw%GhxZc<9PGlR=_Zb2!-3ld1m?2L8-1Ts0dZ2fjXu6 zogg*lx)DxL%EuhaMVd49RMdKSJ#idg?|%_kG5So`ZUN`x>ppZmy_l(|J%|XI+r>Et zCKbQYkcPoJ6&QsE>Xhki?eKy8jR{LbMsX|YT;^jLB(QiraU4wuAAJ<%zq%8v5;@n- zX7@fD7&5mq^%(fIF}*&5w;T`F@qAcJ{R{p{=xw6pcqkYlNJBo#yRf@7C09>H0?V)G zRgLOj*fxg?u-e|5!N|1>7rV}tB{*k&9 - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*********************************************************************/ - -#include "explosion.h" - -#include -#include - -#include -#include - -#include -#include -#include - -#include - - -namespace KWin -{ - -KWIN_EFFECT(explosion, ExplosionEffect) -KWIN_EFFECT_SUPPORTED(explosion, ExplosionEffect::supported()) - -ExplosionEffect::ExplosionEffect() : Effect() -{ - mShader = 0; - mStartOffsetTex = 0; - mEndOffsetTex = 0; - - mActiveAnimations = 0; - mValid = true; - mInited = false; - connect(effects, SIGNAL(windowClosed(KWin::EffectWindow*)), this, SLOT(slotWindowClosed(KWin::EffectWindow*))); - connect(effects, SIGNAL(windowDeleted(KWin::EffectWindow*)), this, SLOT(slotWindowDeleted(KWin::EffectWindow*))); -} - -ExplosionEffect::~ExplosionEffect() -{ - delete mShader; - delete mStartOffsetTex; - delete mEndOffsetTex; -} - -bool ExplosionEffect::supported() -{ - return effects->compositingType() == OpenGL2Compositing; -} - -bool ExplosionEffect::loadData() -{ - mInited = true; - QString shadername("explosion"); - const QString fragmentshader = KGlobal::dirs()->findResource("data", "kwin/explosion.frag"); - QString starttexture = KGlobal::dirs()->findResource("data", "kwin/explosion-start.png"); - QString endtexture = KGlobal::dirs()->findResource("data", "kwin/explosion-end.png"); - if (starttexture.isEmpty() || endtexture.isEmpty()) { - kError(1212) << "Couldn't locate texture files" << endl; - return false; - } - - mShader = ShaderManager::instance()->loadFragmentShader(ShaderManager::GenericShader, fragmentshader); - if (!mShader->isValid()) { - kError(1212) << "The shader failed to load!" << endl; - return false; - } else { - ShaderBinder binder(mShader); - mShader->setUniform("startOffsetTexture", 4); - mShader->setUniform("endOffsetTexture", 5); - } - - mStartOffsetTex = new GLTexture(starttexture); - mEndOffsetTex = new GLTexture(endtexture); - if (mStartOffsetTex->isNull() || mEndOffsetTex->isNull()) { - kError(1212) << "The textures failed to load!" << endl; - return false; - } else { - mStartOffsetTex->setFilter(GL_LINEAR); - mEndOffsetTex->setFilter(GL_LINEAR); - } - - return true; -} - -void ExplosionEffect::prePaintScreen(ScreenPrePaintData& data, int time) -{ - if (mActiveAnimations > 0) - // We need to mark the screen as transformed. Otherwise the whole screen - // won't be repainted, resulting in artefacts - data.mask |= PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS; - - effects->prePaintScreen(data, time); -} - -void ExplosionEffect::prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time) -{ - if (mWindows.contains(w)) { - if (mValid) { - mWindows[ w ] += time / animationTime(700.0); // complete change in 700ms - if (mWindows[ w ] < 1) { - data.setTranslucent(); - data.setTransformed(); - w->enablePainting(EffectWindow::PAINT_DISABLED_BY_DELETE); - } else { - mWindows.remove(w); - w->unrefWindow(); - mActiveAnimations--; - } - } - } - - effects->prePaintWindow(w, data, time); -} - -void ExplosionEffect::paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data) -{ - // Make sure we have OpenGL compositing and the window is vidible and not a - // special window - bool useshader = (mValid && mWindows.contains(w)); - if (useshader) { - double maxscaleadd = 1.5f; - double scale = 1 + maxscaleadd * mWindows[w]; - data.setXScale(scale); - data.setYScale(scale); - data.translate(int(w->width() / 2 * (1 - scale)), int(w->height() / 2 * (1 - scale))); - data.multiplyOpacity(0.99); // Force blending - ShaderManager *manager = ShaderManager::instance(); - GLShader *shader = manager->pushShader(ShaderManager::GenericShader); - QMatrix4x4 screenTransformation = shader->getUniformMatrix4x4("screenTransformation"); - manager->popShader(); - ShaderManager::instance()->pushShader(mShader); - mShader->setUniform("screenTransformation", screenTransformation); - mShader->setUniform("factor", (float)mWindows[w]); - mShader->setUniform("scale", (float)scale); - mShader->setUniform("windowSize", QVector2D(w->width(), w->height())); - glActiveTexture(GL_TEXTURE4); - mStartOffsetTex->bind(); - glActiveTexture(GL_TEXTURE5); - mEndOffsetTex->bind(); - glActiveTexture(GL_TEXTURE0); - data.shader = mShader; - } - - // Call the next effect. - effects->paintWindow(w, mask, region, data); - - if (useshader) { - ShaderManager::instance()->popShader(); - glActiveTexture(GL_TEXTURE4); - mStartOffsetTex->unbind(); - glActiveTexture(GL_TEXTURE5); - mEndOffsetTex->unbind(); - glActiveTexture(GL_TEXTURE0); - } -} - -void ExplosionEffect::postPaintScreen() -{ - if (mActiveAnimations > 0) - effects->addRepaintFull(); - - // Call the next effect. - effects->postPaintScreen(); -} - -void ExplosionEffect::slotWindowClosed(EffectWindow* c) -{ - const void* e = c->data(WindowClosedGrabRole).value(); - if (e && e != this) - return; - if (c->isOnCurrentDesktop() && !c->isMinimized()) { - if (mValid && !mInited) - mValid = loadData(); - if (!mValid) { - // don't add to list as we cannot animate this window; - return; - } - mWindows[ c ] = 0; // count up to 1 - c->addRepaintFull(); - c->refWindow(); - mActiveAnimations++; - } -} - -void ExplosionEffect::slotWindowDeleted(EffectWindow* c) -{ - mWindows.remove(c); -} - -bool ExplosionEffect::isActive() const -{ - return mActiveAnimations > 0; -} - -} // namespace - diff --git a/effects/explosion/explosion.desktop b/effects/explosion/explosion.desktop deleted file mode 100644 index c28589ee07..0000000000 --- a/effects/explosion/explosion.desktop +++ /dev/null @@ -1,167 +0,0 @@ -[Desktop Entry] -Name=Explosion -Name[af]=Ontploffing -Name[ar]=انفجار -Name[ast]=Españíu -Name[be@latin]=Vybuch -Name[bg]=Експлозия -Name[bn]=বিস্ফোরণ -Name[br]=Tarzhad -Name[bs]=Eksplozija -Name[ca]=Explosió -Name[ca@valencia]=Explosió -Name[cs]=Exploze -Name[csb]=Wëbùch -Name[da]=Eksplosion -Name[de]=Explosion -Name[el]=Έκρηξη -Name[en_GB]=Explosion -Name[eo]=Eksplodo -Name[es]=Explosión -Name[et]=Plahvatus -Name[eu]=Leherketa -Name[fa]=انفجار -Name[fi]=Räjähdys -Name[fr]=Explosion -Name[fy]=Ekplosy -Name[ga]=Explosion -Name[gl]=Explosión -Name[gu]=ધડાકો -Name[he]=התפוצצות -Name[hi]=विस्फोटक -Name[hne]=विस्फोटक -Name[hr]=Eksplozija -Name[hu]=Robbanás -Name[ia]=Explosion -Name[id]=Ledakan -Name[is]=Sprenging -Name[it]=Esplosione -Name[ja]=爆発 -Name[kk]=Жарылыс -Name[km]=ការផ្ទុះ -Name[kn]=ಸ್ಫೋಟ -Name[ko]=폭발 -Name[ku]=Teqîn -Name[lt]=Sprogimas -Name[lv]=Eksplozija -Name[mai]=विस्फोट -Name[mk]=Експлозија -Name[ml]=പൊട്ടിത്തെറി -Name[mr]=विस्फोटक -Name[nb]=Eksplosjon -Name[nds]=Exploschoon -Name[ne]=विष्पोटन -Name[nl]=Explosie -Name[nn]=Eksplosjon -Name[pa]=ਧਮਾਕਾ -Name[pl]=Wybuch -Name[pt]=Explosão -Name[pt_BR]=Explosão -Name[ro]=Explozie -Name[ru]=Взрыв -Name[se]=Eksplošuvdna -Name[si]=පිපිරුම -Name[sk]=Explózia -Name[sl]=Eksplozija -Name[sr]=Експлозија -Name[sr@ijekavian]=Експлозија -Name[sr@ijekavianlatin]=Eksplozija -Name[sr@latin]=Eksplozija -Name[sv]=Explosion -Name[ta]=வெடித்தல் -Name[te]=ఎక్‍స్ ప్లోజన్ -Name[tg]=Таркиш -Name[th]=ระเบิดออก -Name[tr]=Patlama -Name[ug]=پارتلاش شەكلى -Name[uk]=Вибух -Name[vi]=Nổ bung -Name[wa]=Esplôzaedje -Name[x-test]=xxExplosionxx -Name[zh_CN]=爆炸 -Name[zh_TW]=爆炸 -Icon=preferences-system-windows-effect-explosion -Comment=Make windows explode when they are closed -Comment[ar]=يفجّر النافذة عند إغلاقها -Comment[ast]=Fai que les ventanes españen al zarrales -Comment[be@latin]=Vokny začyniajucca z vybucham. -Comment[bg]=Създава ефект на експлозия при затваряне на прозорците -Comment[bs]=Prozor eksplodiraju kada se zatvore -Comment[ca]=Provoca l'explosió de les finestres quan es tanquen -Comment[ca@valencia]=Provoca l'explosió de les finestres quan es tanquen -Comment[cs]=Nechá okna explodovat, pokud jsou uzavřena -Comment[da]=Få vinduer til at eksplodere når de lukkes -Comment[de]=Lässt Fenster beim Schließen explodieren. -Comment[el]=Έκρηξη των παραθύρων κατά το κλείσιμό τους -Comment[en_GB]=Make windows explode when they are closed -Comment[eo]=Eksplodigas la fenestrojn dum ili fermiĝas -Comment[es]=Hace que las ventanas exploten al cerrarlas -Comment[et]=Paneb aknad sulgemisel plahvatama -Comment[eu]=Leihoak ixtean lehertzen ditu -Comment[fi]=Räjäyttää ikkunat suljettaessa -Comment[fr]=Fait exploser les fenêtres lorsqu'elle sont fermées -Comment[fy]=Lit finsters eksplodearje as se sluten wurde -Comment[ga]=Leis seo, pléascfaidh fuinneoga nuair a dhúntar iad -Comment[gl]=Estoupa as xanelas cando se pechan -Comment[gu]=જ્યારે વિન્ડો બંધ થાય છે ત્યારે તેમને ધડાકાભેર બંધ કરે છે -Comment[he]=מפוצץ חלונות בעת סגירתם -Comment[hi]=विंडो को विस्फोट से उड़ाएं जब उन्हें बंद किया जाए -Comment[hne]=विंडो ल विस्फोट से उड़ाथे जब ओ मन ह बंद होथे -Comment[hr]=Prozori eksplodiraju kad ih se zatvori -Comment[hu]=Bezáráskor az ablakok "felrobbannak" -Comment[ia]=Face que fenestras explode quando los es claudite -Comment[id]=Buat jendela meledak ketika jendela ditutup -Comment[is]=Lætur glugga springa í tætlur þegar þeim er lokað -Comment[it]=Fai esplodere le finestre alla chiusura -Comment[ja]=ウィンドウを閉じるときに爆発させます -Comment[kk]=Жабылатын терезе жарылып кетіріледі -Comment[km]=ធ្វើ​ឲ្យ​បង្អួច​ផុស​ចេញ​ពេល​បិទ​ពួក​វា​ -Comment[kn]=ಕಿಟಕಿಗಳನ್ನು ಮುಚ್ಚಿದಾಗ ಅವು ಸಿಡಿಯುವಂತೆ ಮಾಡುತ್ತದೆ -Comment[ko]=창이 닫힐 때 폭발시킵니다 -Comment[lt]=Išsprogdina langus juos užveriant -Comment[lv]=Liek logiem eksplodēt, kad tos aizver -Comment[mk]=Прави прозорците да експлодираат кога се затвораат -Comment[ml]=അടയ്ക്കുമ്പോള്‍ ജാലകങ്ങള്‍ പൊട്ടിത്തെറിയ്ക്കുന്നു. -Comment[mr]=चौकटी बंद केल्यावर त्यांचा विस्फोट करा -Comment[nb]=Gjør at vinduer som lukkes, eksploderer -Comment[nds]=Finstern bi't Tomaken exploderen laten -Comment[nl]=Laat vensters uit elkaar spatten als ze worden gesloten -Comment[nn]=Eksploderer vindauge når dei vert lukka -Comment[pa]=ਜਦੋਂ ਵਿੰਡੋ ਬੰਦ ਕੀਤੀਆਂ ਜਾਣ ਤਾਂ ਧਮਾਕੇ ਨਾਲ ਕਰੋ -Comment[pl]=Wybuchanie okien przy ich zamykaniu -Comment[pt]=Fazer as janelas explodir ao serem fechadas -Comment[pt_BR]=Faz as janelas explodirem quando são fechadas -Comment[ro]=Face ferestrele să explodeze cînd sînt închise -Comment[ru]=Эффект взрыва окна при его закрытии -Comment[si]=කවුළු වැසූ විට ඒවා පුපුරුවන්න -Comment[sk]=Okná explodujú pri zatvorení -Comment[sl]=Ko se okna zaprejo, eksplodirajo -Comment[sr]=Прозор експлодирају када се затворе -Comment[sr@ijekavian]=Прозор експлодирају када се затворе -Comment[sr@ijekavianlatin]=Prozor eksplodiraju kada se zatvore -Comment[sr@latin]=Prozor eksplodiraju kada se zatvore -Comment[sv]=Gör att fönster exploderar när de stängs -Comment[ta]=Make windows explode when they are closed -Comment[th]=ทำให้หน้าต่างระเบิดออก เมื่อปิดหน้าต่าง -Comment[tr]=Kapatılırken pencerelere patlama efekti ver -Comment[ug]=كۆزنەك يېپىلغاندا پارتلاش ئۈنۈمىنى كۆرسەت -Comment[uk]=Вибух вікон після закриття -Comment[vi]=Làm cửa sổ nổ bung khi chúng được đóng -Comment[wa]=Fé peter les fniesses cwand ele sont cloyowes -Comment[x-test]=xxMake windows explode when they are closedxx -Comment[zh_CN]=当窗口被关闭时,使其呈现爆炸效果 -Comment[zh_TW]=視窗關閉時讓視窗「爆炸」 - -Type=Service -X-KDE-ServiceTypes=KWin/Effect -X-KDE-PluginInfo-Author=Rivo Laks -X-KDE-PluginInfo-Email=rivolaks@hot.ee -X-KDE-PluginInfo-Name=kwin4_effect_explosion -X-KDE-PluginInfo-Version=0.1.0 -X-KDE-PluginInfo-Category=Appearance -X-KDE-PluginInfo-Depends= -X-KDE-PluginInfo-License=GPL -X-KDE-PluginInfo-EnabledByDefault=false -X-KDE-Library=kwin4_effect_builtins -X-KDE-Ordering=70 -X-KWin-Requires-OpenGL2=true diff --git a/effects/explosion/explosion.h b/effects/explosion/explosion.h deleted file mode 100644 index 2528e8d3fd..0000000000 --- a/effects/explosion/explosion.h +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************** - KWin - the KDE window manager - This file is part of the KDE project. - -Copyright (C) 2007 Rivo Laks - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*********************************************************************/ - -#ifndef KWIN_EXPLOSIONEFFECT_H -#define KWIN_EXPLOSIONEFFECT_H - -// Include with base class for effects. -#include - -#include - -namespace KWin -{ - -class GLShader; -class GLTexture; - -/** - * Makes windows explode into small pieces when they're closed - **/ -class ExplosionEffect - : public Effect -{ - Q_OBJECT -public: - ExplosionEffect(); - ~ExplosionEffect(); - - virtual void prePaintScreen(ScreenPrePaintData& data, int time); - virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); - virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); - virtual void postPaintScreen(); - virtual bool isActive() const; - - static bool supported(); - -public Q_SLOTS: - void slotWindowClosed(KWin::EffectWindow *c); - void slotWindowDeleted(KWin::EffectWindow *w); - -protected: - bool loadData(); - -private: - GLShader* mShader; - GLTexture* mStartOffsetTex; - GLTexture* mEndOffsetTex; - QMap< const EffectWindow*, double > mWindows; - int mActiveAnimations; - bool mValid; - bool mInited; -}; - -} // namespace - -#endif