From cd3a1db9dbef43809341e3594566c557a6705b51 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 11 Mar 2006 23:46:45 +0000 Subject: [PATCH] Fixes from Dmitry Yakimov: fixed bugs 159 and 160: + added threaded timers support ! fixed restoring sdl window focus (AV in windows message handler) ! disabled forgotten cdrom and joystick in config file. * disabled minimizing sdl window while loosing focus. PocketPC does not have a task bar, so it is an inconvenient and unusual behaviour for PPC users. + added WIN_Paint handler for GAPI ! fixed loosing focus while using GAPI videi driver + added TestTimer project * removed unnecessary macros (ENABLE_WINDIB ...) from projects --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401501 --- VisualCE.zip | Bin 52655 -> 57050 bytes include/SDL_config_win32.h | 16 +++- src/timer/win32/SDL_systimer.c | 61 --------------- src/timer/wince/SDL_systimer.c | 111 ++++++++++++++++++++-------- src/video/gapi/SDL_gapivideo.c | 52 ++++++++++++- src/video/gapi/SDL_gapivideo.h | 1 + src/video/wincommon/SDL_sysevents.c | 32 +++++++- 7 files changed, 173 insertions(+), 100 deletions(-) diff --git a/VisualCE.zip b/VisualCE.zip index 9ab9a7dd5e5b05d30baca7f2707a9ae7ffefc03e..2711f64ba83ee6813fe3419dab207bfe4e8c3573 100644 GIT binary patch delta 49182 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

eX)J^?#13SCqBk zbhK-UYk>iQB0qvaBp@vCUMCeG1@|8T#jiRJOH!ErS;cj)5II7e^zf9NR@!0Z;be5$ zQmETCC~>*fzW!FncsAx=yY*ilGcQ79;UH?%FeNFlOufxxe)tM0k9=5vACUDOmW<9~ zw)^yB^B34%r`Q_N`g1UQ>}$eutM_ATh{N~S+td9>U^x6v5X&>c9qJXL;^9P(S+E5+ zOp%FFeYX`9Flhx^P$#Gx~qlrOj7EKM;&yFVNj zGGEXWpx>-J1QfY0Yh*Rl1?yTJlpwpGiR=j6Qb$!_2=6Yh-lXs5F{a>J`PTwB~!c64GkQ)2Y4S}!@F$}~?PQSoy<&Fs|V#xnQr4)^dRbIF0+u+UZ z0Op%u3$7j6zt_105J~q1d5rN-zuGn)O2nxc`Xg@}XK>ALT#Kxz;7r)%UA(th9`mx{ zN3p@1sAiTLg61d5z_l=~cT{&EG{`KdU2?}&cPSbRLd`qAYw?pz;OCr=>Q>AS&+JBw z?l$RG%xT8Mkw6sTS`ftg3cWuR@za^#2$<5O;;#UEe5><5rd^lb@qr!1$&qD5t7ZSl zWQX)I>yu6e+Z&!KcfJ^xdX2YP(*akC2iK8YMcB7frSiKfFf?e+H#hyXl#F&Gr7Pav ztM5vWSM`^p>6hl4tX&!z-}#STGrcWcZt1JkVW@CELZ_H&&&U8g=jwhOA=xmi3IbG) zH2c}o7on^ekY#VV%A=%Dw(&n3if~Y9JEHhS)wG6p7(ch@b)D@`~Nkz35@6Ds9^o>q3nL$cYH#ph~1u&18*tSh4EJ+M+r>VRaE1!KQ`1nx#v_onT zA4f5uEPAd+Fh4ThaQV$`>}BnpjgRE&)!Xhv)HhdO#%Z%9%3?d!y4Np?!R|ma=!Zhg zkOyhlmrN$s6gUsSEDc&r5+y>H|x6)XvcR+;UG=mD;O)>5!q;h2Gb4 zKVo=XT0iv{it9wxZ|B$7S!tYqmA0WcCE8`T_nqh|@6hI5Sg#};jWG^|Riz5zcL8G; z_BQpyc1???!ZUzHl9YL-I z#Io*whxlk-ZhpK|dd)^oD62w-NBe7=%7P*Cns`Daum_qox4|Y+V)&{}Ja!h+iy{6$ zj1IORK#ee{5na>1mfAjSw!*#s{JfKfUuIrLJC&@)xsERGFoYQqV+a639^RJ+N1r7k zN7!o$2W7(xnD$!dpjS(FW6&C?4Z;KR9A*Ql^9MvA#N7%3#NF7-phLue+6Zr^a7aNn1tTf{tMpk!pnZ2X~dQ zn7TKbx;_Q{{0=ifqARoZI29rU$9Q^N&WbWl!xA2WqST5Pe%1#N@scP=yT}w6g5ktR z>Q^QQ(JOXD*U_QCX zB7lBhEIu}ze;WU~;6X_LYN3K8pGAMS)vcUejcmmwS=3aaL69K?S zzj5Ds+i-Hbcvx+~fk4g5AQ182xdZ%Rz+VQbIM@G+*xx;FWp`VwfC7Q8-hn`<|6r^} z0W%Nd82_`Ef9Xr!VaOo%> z$+IXg_CML=jjZhdGBgY#2AF$<392r@2OEq!LJSTW!3G}=lS9=7=n;ZZN7#VBMiBcy zMiArg#utTS_#3{9nX`+Fm7ST>UlIuZq1j)Z#PqS@toIFi9|a8pU6O-96#uZ!$G@Wi z{{#1bTg+}Ij{hDt-2VcP>SM!+7FE+_g8%{v_<}&B|A1#<`>)FW1O1OpQGP=M|93w9 zWe6$xf6hXre;DFK;BVL}5^{f;;O_1Jo|kMNY&e~zlQagAL7>-22oTOcbYyz>Zya!_ zCk78R2+|MYe`Dx=u;CQ8;*F=V0)al3qJc2~fgvmljvgZ5ocIUhU!BnSk52q^G|TJ2 zT_gCMzq8~2`EUAPdGUWpy!y?E1wPM1fr0*$C@PC9+{~>&BFzV%xTD+t$RMNiwnRul9b=Tj#4febxHc-PQf4 z>#lok^gz^QK_Dr~LO{ZU{xf{L%@UA^33dM=h@o5}h^c!*g3ckp!2j=rAKgC_q-hwp zMd1FQ3Ew~<5G;tX`zJ@uV&((^JO~ux4FVB?Fq6>MNdY(z#E1x-SnTfq-StBM&Ec;U z`sWMTA#nV#gOaoypDxKpA)vsvR&VJAH*WfmBhl;}+4Jw}OG3Q<_LrX-KJ1<(KDf3N zLkO6MTUyoR|I~8?CCoA=W)VPe z8je@1RB4>9_?Nsizl2%_L>0pk}L+{ zJ*IA}$?@@NHk0S1-y4#X{?Z9D+8k$Cy_ff2PLy@OpU*vG3%{KcX2+0?-Y%~Frw#xxL)ijSlSP4kn(B~H-ws8bKu%3e!Xfyp<4Jrs zZm%r^yLhsN^?oQkFEjKo|4|Mh5m6q)4cCi!YB^1U;RCpDDTwlE z{+=*POqs(IclojHm_Ttl&ec%7B^Y#=Sg=d~bM-bTFqcZ}>9K?vQ6G=bTY^pN-xQw@ zCz^sBD$-vc$P&vepJCas_9Oz#AmS;@${K4o46YMvRA_UCa2=reuOs1}zf1Z1l_URo(Zkr&_ zr!inXW)vDow#38BHx-&z4m~G#Q8ikH^dDN$-b0-{FBjLV@7jRd6x8?NGuM^UZ$T0^ z_9p@O+Gh`RiFojg97PD*N-+%qOqY?zfl+O72v_O48*tc1Y_2N7;$@V?9hk%&*wpPE z7+Ztuvmw3}MSM zn@1n^iT|%FXAn%6vCR;mRn>7(wzYRfAzwpU zx*y2!qLX4FE6$|3->c?Qa%)C9=A4%HqgIW^x5B_#GeqT~o-OQHM09PAqhXB;aZJTT zE4Ppu)oJ*g(1i00t}j@8b9Hf+9?_?XbsSerb`ubdAzkBqYP7jDTa|XXgJjds@bS63 zXyxuS|8enWz4r_r2;&jXMs(7jJ1 zzJP$vl$qxz;jjdZouB`nK6sj0XZi-B`44^hjaz5+_5V#hcr!jxDy~9!clOp|JMS2` zn_AT>7#b2|jf~B%Ot?H8XS{}ze#i3O{S@#C=R+|A6G}FA;G^Chn0B)+%Z>19(#vaR z-g9Vcy5awkI5QAu`R`TvXwPPf>q&HOcM{O_r3;KbX`fXr`B`>cpJ!##V286KC@;DF zM?>bbPL%ZA6vLy*U=ADVo&)DGtL0C0JC-P9@2^dhuo-*mcn)6C-rXDgwG~?l9wY2V z4WD^bJ`^9@pAtUGPffB-nD)9iG+rfJdF+0aYA4(i2s^*>8@GZyi}*6@3~8{Z(_#SX zx0JR43mpnyjOwb}+?4ej!ml7F)2PP&T$?Xi`Y$-QuYG#>;gydG^{?a1uQ7Uf0&97r zI?902wk>GNPtmHgIxXT16oN`oZSk*X_&wt8!oK^11HW?o#R!fi!gafxw#YGs?K6YK z{dzmt9ey|B(WYMxcb10WdBl%}k2wI#yKz^#(`T3NSZ>WGwK<|s-$eW^7Q_qm5ZWPP z12@ii8#cNFlW%@DsSjyC-W1V7(cJ_$w6BAEgY}++2MhgiU!KK36jF81CW3+?;mG=T zg(A>hQ0gA0_=zD?viop1SHhOyJ&SSWWrbVWDuGULf`|tXy9OO6Z6{L}DgjU%YSvCw z2pwu8y$0YG_GI_Z%p!n6#v7B!u*pl96rUtFP(aU;jhY~8n}IsgBVLklBW4pXDNAxE zg`Zkc+VQHV-0LsiwYtX?ygzIzzV}jtgkfv!+dMR1oV;)2mNEAPq4myuMZ5xkCn<1u zzI9)XHyOt7@nj%rW64y4MF2X{sE=gfiA8*)@cP=UCZ>tDxH{R>0JT=35-O(|1C>Vt zBZGCKCGW&GhceswH~rFyUx;1tTLVV~CfKx0>4_(FufO!ZHz30`5K%WX3`HjKgExo#*0vjERKwOPQNchL|{Su(bXkws|csJCH z;FYhY9*RbYzZkE_C3mHA1RsSOQ|2J>kRu9GV^F9ZU(?dtsRL}}L#c2xO)V1(CjMEX z-@r#9%CWIb^ix12)eKNf$+FQ*c+_A-GE)LlVK_MXM6eKlT1YKYa#^-^)awvPR*Ga& z5E7b=J1jRE3X!>g5|{$?cig>m7{`@d?#X^Ch%7`~w)%Bl_oM)MXfE6}Q=>Zxqa^ua zw)TlVs-P^pKjv0BRCQBTvUh=00Hu+o@!pjYb?Z0+1oiYVhf&6a>!ciq#6l1?%HQS3 zh8*XS0y5m_1D$Cpc3f>j_Ea_hxS{B8ISr#+>>8IDdH-+(*1o8_e>(i^rQ=-FdGE{m zg85Gh{hyHeqx&bv9$KbLEffgEKn?liRBYuXIt0Ris793`NV#P5X{lcQHD~MQj+dzVL|2c z;x2&r!>i9ZXOQs^n3;iYW%9QQA-<^fCEex{-qZDSrg(bm9SD0!iJ4Cyb~2hT6n7w36JxsDNpz z=#W9}y`N_hV{r$cu})o#`YLsm@LwYEH^kY|gaos=9uN&13?pPncGK1P=vbrP!XbU? z-xsNZqI8tMf2X0~E zlg&gHD@tRI_m+CD%mAGs9u;;~>;$kxiU`6ZO%|L-@3xf;6)|A_DfD#nY(C_}qAKNQ zrr4t78X@&c2x9aKOqc0w8Ya-)^OG5DVNu|uRq##w=UEW<<3wz!VMh0Fhzaik^A*Q@ z5s9h2ZByLqZcuN4sILqkcmrE++ze%gJX~K17T9#nB{1ne&;IIDvap(Q1_7`TdGWJo z4o8X!^Cld7>spuMlM5CzeNZ#G>#C?!m~W~{)&IU@pl)2vDW!O-B6A`g# z6F>7e8Mxcp+8SQb6z#DU#s?s(iT~}-BTr8sQ{ma2u_7@pl?+hEibMjB&5PmBd*93$ z!Z$gXBSv%}|LQv0;BNt68gvKZ5v?xve}oCN8{{_Y7~Tr%Sfy?owvt^|!y_)srLHGT zYrx;Fe(L+JeEtWjfttbyt!=!`Zqu%F^Pi>%*+ZqI0*;dtR*JP7b230cG(ZEAzLD$@ z>i>1Ref~=!pNuTz8=CMNhZ{ju+)|Zt+e)mT}?4vNMlqD<-<5Hj%Ns4cQofd znkCmP;$Mt8=*FnuaN%Z*4l>9&m<&;2e25iVreicj=_UkG!;&}W45{psvu&rnHQs=hy2@Ewwh{yf;%!!h!K)eIxOV7r+m*Q? zB*_L2HH-!Az?MQTe5$qFmeEj&247LeXLXM1C3kXFEzCe{2md=W;;YJ~uT1>9@k2AyCuDn1T#=EfTda)l9mp!R9tEo7_j2`j&EVz?w2)!8lDQPe4eBkT?H2{VkVTejS z054qcauew55RmW4n`Fg-R8!!F=iF98<2<9H<6QN7=|H39cSSj-JbUtFt!d&ZwI#3H z8X_+(I(JmkE&JCY_$>hTe;Wl%FmsNiH(oMExXb^yboig=9udr(qk7np?#u!Na!y47 zeFI@8%@ju(>PBUrusf$f~V_D}m z3){9;hYJ@`G{neYie~A+Fp`Hx{HH#{_$34|H8U!IaHSA$s@ZIE2yu}5%YluV`N!r; zmm^Em-(%li%x+$U&>^Gt2hM2hkA;;ZfCg_wm)Lw^cfhFkfrkJ}msj`dZGW%rLUGKY zEeY^FM(KTG4y+NZqaHYK`#RbKKAwmA8c^Q(rJ$dVCJr^D969v(p9NbDB%7Ro-UrU~ z5o3;Z@5kSlJGaJPcYrlZvg{pO?l z^|`t*vC_p&EYS1v8dtNwDGd-HyYGZ1UFkXuHE9FxT|F&6ckk=38I#0)@6VTK0~Q}~ zZ!p7gs}7evpF-WfanB!Rf{zbnGJv%GxjmzX!G*b zG-A4sjStl3wm#gwtf-KD+&>(DJSv_Bd_`mF27Q{+=RyZvzjM7D3v>KHVaAFe(TU7D zn=)$jojLe}&+X^y-o+^=VD0AcQnBwxw%3}-xhdn<(e3zEQ{QGK=k*Vp*%gaI_MLrsT;`VxOg!rNw(6r~jF1%LlSd|8PbpgA5JcwFhrqx@pm zQ)myre+j$iKU-gZ#`>d1*CWglp)zL($M^5QN|jeEXQGrHr@Gv9uXr7~M`&kc%-lZXt_T36E{*&PQ>JUtp@ZFt z;-LK2Hy5X5)zXR<4z_@^+|*?n?ASdgA{0yL~QUl zVdD_2op`JGZ$cX{2An~|v(-Oo(#B(jD&hF4Mf8iV9hUm3A@nc=h4|~e{=u0evQ`kX zsVIffhd?f9f(1xN92_3r{)KaI#d6FDv`5R?+BuZf_QgPdEQEc&JKv2?%{llyDaWL| z-R*`9EwU@wJi(l$(RmW|Be&-;nj~U@Csa)JpJ>udHW(F?&ah0eLc54 zTHZSxqN` z8#~Do3%FmYy>Jf1SDj**-{ijfvH`BzhJ)TeRUI)H!g}}w4C)SFcP6I@rY(x{BqoBO zCxXI?9(Dy43zc2b>^`~=1`XRh9Nazf&Y8X(e9n$McZhwz+@8$c{s^vobv?MSWX#zE z+n0oK5?8N(4vzPa6z@K5d()}nGw)veP)>%-&o^O_4c3zvDfbXmmjZuudjm#aCSt~adT+r{NPO+e@U!# z3A9NP3%qmT#0*(wzoj3n>_dEQ7z#8$t!6#F`Sgf^f41rsbse7zYFx=OK|Y-~=*{kP zUe$b^GJc)ce0_S>Qytv!yV!r`u$-Re879tst*Q1LO}%kT0z`RR{M-+9VYI|`V(wQ5 zn_+?&Box@6FLq}~Umx~AW_k{Z>jbmU0o#vvi`%EJ!@D^1JC6vr`@22A&yI>OFLuSx zGlrLeteT5Fzt0rkNj4YyTksM^k!92Igi@{`|&lxPWx0joT{ z?_OWG%bQ7uS#i7FGWxF{hhc}ebxh<5K^|hbGWTi}*m#x|O}n!rAp_R0sJEfyq#02Yg}DmAZ~Fu3zFA~%FoCz|*kuR~%(Nn9wSzP2H*Khl z*N?ioY&$oNI@(a3Q^j?lfwftL&BevV8fE9zNGcUBcU&1^N0l9?$^`8%zrMG>N#APDedk@h50Nb*?Ik$4Nb@By zsSA#&_j|he=!zrW)mKcX?B$Dx(coak{MV!#!(1IG+^PK!vrv2i=s7KIHM38FW2OL0 z*>^f#MvTM-bCXa>#FiSQnKVYu0-fT>xTn7JG@F2Pl>e()y|ttF!f*oH=gC{WOX>b< zwvhYv>n@jta}NHr_tQx2XsKsl?Pr(H?!6d1&DTd~%2%)43w@{==WgxWB#@{6`Br?J z#uPw5+2<-`E82Dm2p+Hex|{6FMX{BCxe_d&`&BgAm$;z_H5T?~z4dlS9Kf^3X2)`F zvfI+~&zR?AH}0c1AM{%Yj;f2HsQ1I9uBVd_D4*Ka^r=(Ky(Bz8=jZkAbh$ow8JPXE zFmaZnshCT2NvU^ze|RU_#Q;qf@K8k&@KEKwo4+SQ640UoJPw|r7!t%03QU7rRWCa; zX#j#<2%4tcH+`vX%oIOrV5S692k|RvpjCCDzO|6daZ0`^lyvE2uj+gcc(8$ht2P{g ztBy=S)>Rb)Khu;3Kht#kRw`{XX&*J=xM9&1s!Et7j8}ETvC=6=*MJ+cq)}8+1Ma^i4)bCvm_{wFe79}$~OP4=_>hp&6Gp3LWuXUUI&T)|zUKH%l@ z;P>srW=7TzQ3;c=?icrGIqL*B^G?EOuVvJ$(~!3?V2O;hNAMp$M^Zb zt8ucg&mgQ3wWsjB7U|W|X1m?1MOwOxfre_&r7wQyErh_Hp_x&c_L5w7P2EkR{BoBp zLiuEj$5y?fNNutLUb7gpYLazI8u#L)8*KTYniuEIn(9(L%t|~<71qcKvBG)X>ZBg~ zXT-oOfG!bn&eDt5*wZ+syo|A+(NBB$1jXNEl(B9&UAEtB{4e0!O)pP}L5a%?nRA&9Su z#7k-GUN)Q9cezwLXrSZr)9YcJLiN}A9CR8Cke3F8$VxjB&h%bQ2fmna2`i`%lqW|P z;vd*>yF^kncfqOAqq#hFE$@0jPiA5bN$MbSTN=xA zcE&BXMm2ZOnLLh7PD{J)bI`QDRZe3j*xfJx6BFij#Iyu#~1Q)A2 zPbco!l?Rbw^VsAModYTD2cs|~j!H5>*|XTzUXLC+b6W!E6#asALMhF1NhV3x95#nj zzbw6=uE;$j3ax#1g{xM?KBhPzqNzVTe0^e}Drp$<$IcI)&qH;S0KV-_FR%Celi8br zogL=7Tq40uUQe?$VF`)=Y3Kf>gvP)re<^L_pi)72W~x4WYJwiQ#%^v0^u+G~9y|HJ z-vh@P0ZS|oD+jI4V^y{BI3k8f6pO#r>^Kou+-a)b2Shh!`1jpa?RK@60xS9ZWV3g~ zA)B|F^1{!Vq@B}v;+Km*Oxt2iNgjU|Rj6Gx^Wbb%QXf^}l21D3d9KNeBcNJkZfqj; zDQr%F{jPAEvcj$NzO9aEuA!a-iht-d@=bm@Dh(rq*)3YltSSRa;Gi76R8N@0Y z3NVZyPH~Pr{SG?~N+sU0&HlJZS4!wGsGle+p;(ZqOz?Jvjz9G|P*5h$| zkP#7NJ2l%iPoTpCm8M0N9egGu<;`wkBt4bpu>1b`xmwb9Xc?W8sbri5lwa~yP|p=h zt5hZ+>x#W1R!obDS1m+}o7OD<<}4Zm&noNnEzFc75jBq+aQP*xE3%?3crNm1Sa7Ux zS_4m*bFOM_cH>AQF-ah*Dd`(IakT%c;?rXupU;c0#n&>kBri;zqTjmL%X!*rgw8I| z`F6TDu`^I>)*~EoUp$uxycf@%J}V7`2n8lK5n^uHmdvY>ExtRm3fPp(F8?ZcxG^ty zxZ%&sjIb*3QQzOLf;1J^q{qh-{l#@z&GmH?BHy&plq(SRJNFwoA=h+xciCLxaM|1` zi+WOM#`Y+7r_Q=@BxlMW3XYM}QycX(w@^P##>Xyn)MXu?=@B|Upv$f?RlYH6XhXH4 zmoW0SJb6fk*DS2gkhj^a968aqC=K2Bm}p3YF=4CLLF9ya~2}K zdcsUrLOvec%e99)V2&X&)@|3dUpjjQ2c224x9ZoNRJ-voKDuNrKKi=$?U|B09FK$4 zL7{6Z4oc;fbzfmuJ9>>?i+;Ip20LxF4%iyJ##Q#~>StkkYaPFrW_riemDKm*s}`#+ z-&v*(@`dnT4?oF5{-627VVqlNbvltJm1o=XdX1kQok&I(zM1sAm?1wvpB0^)EH6$3XytRKd*|n^npT;5r4e2j52gJX3U~HbzU%l-M zc@W)YEqhJJSsSvw3Y5=9GhS;AunT@Tk$CS}XYW}7Z;M{ODRcW(dl>_s39zM>RNkli zMvom;*2?RdyC|5meW)V6lcD8W3nrO}aac{l_5W!!Zc2xos3CnOVus0fHi+cPn4y`Wxw)CmgRmo} zeOUn?G$cu8^pV%U&aY2VO`pE|>-Z@80=K{O3Fn+ zWmvMrPgu{~;VNV!{NSiGD`cN$uvD=7VA?E{0j_C-Xoug-gw)n-zesh4PjF+f@AjzN z4h^Fmb30kOVoOi1^jbos3_Eh5Pgpf=ikN@dNym-R%X&UQM=bhvb3~#$IP9wo>;Ya9 zIpEqtsjQ~LreIo}U2XproPXa7UK>Nab=44f8q$$Ngl9k~Z+Q z&kwH3{FA$KB-QPu@Jz_;rMDITumZeDvs)jCDlShh^)oT!##)>v81o%(w5~^2rTMvi zIfK70-6P?gJ$@4;bmf@Gy*}FE^hNb5 zcKaY5|5Rm5x8W62#EJhlAMI~FpWnNWn~Fl4@&$?Re-5^G;{UirAsdw1AP`S?@)#=g zj3aE486lC7$NqDWtu>m7bV-GHs=P!zI{fX7qrJ@IMTj%w;Kn!oJ*j>I(3GE*&AR8> zIDbiouoSWsg1}?R$_Lj1(||TAk+T4A^=E8a3tR$kl%pRCL`T>m=@#}3x`swNPA+tY zXQh{-{SVm^wO%<$bDn8eQRKZOi|bDi{oT&4#W+2vipogX089hgIE5F$DhIEe&WBHg zPiLzFMVVAeu&^q#0&El#p*`j4*qGO3Mf!nCX)Lppu+GwCdbXajsGBM%xW`!R#BXFJ zD3}jqq6Tu^QE=`F2~2F$;=}FbAZ*NS6A@i8y(oC=1T;prZ1IuCW1&>0NcBTK0x6RJ z${(drdJIS2g^I7FQlZN~{nM(4W-6)OKvAbmkW>?33xsFo&krc>QDeL(pGjW03c#IS zsPhdrz|GJiHnF^mG$9UgBJQ(v4>h6;2rqMpmuj9*n5JK*)7TZYOZ=w#iDO&&eA_l{ z%eB+`*~IOcuB`La;~PCw`L`hwr!oiZx36dOvUza66#X}_C@o3U>oCj%lC04HJUbR|w~36F*WeJ6idEN)4r8D=BaUL@XSJ zdNz5s{vUe;jtUc_NGuRKEYtT$C_=GZ)og{zAOLm|UAUiEBR+^h4u*3hANuav^-Y<-zXbR~FIkv;nSH4dIB z97&`0gGX2DjCG-@oqB!;)pe!XZ_|MdY<&zibr`dev3uzAcqf+9(c!imb0}*CEI%*T z7(g|bGBeex#}Pj(^(MvJpDcfkYyUrBLlB`bTixhvOBXOINdGm%SuyHv61WTMD`3S=wG@UT01umasZ+aRBtet1 z{T2})-fx`sy|}9eEY#oFg(a8)5>|I*B1G5{?KORk0ymu^C{FDl0iHLJRT2>HSH`jX z7K}&fB*8UK6V6f@W|@_KNFHzcoDj*M7$8Y?Ivz|g;Yp5bOFD!U9z%-n0oAUIwNzb0 zh5&Et5uBqt1iI-(t?1K++EEN9KB{j;tlVuG!<0~(C`4k@s(Y~|q1G2!%@^O09xuMS zjE!jb*uEy8Ut*m zQPc#vISB341>f3MNvlg@jahoYl)Uj<%ea)t3 z26qPS&L5g5tAet3hW^}qf-Q5Mu~wGg>Rt09bjb5o?yT+WHT%0Hht@vrBKVZ?C;l{i zqbi-D{+0gI+d3(;w) zcZ5&3M4$tYm$yc+3!6BC{GT;rfZ$#o7;$iUM+-&()*#HMgVlKl#hZUO6G>ckR~v?> zQYSzd^gp*jehwEP(7ASMh#lpu%sn>EkBM$fAmtMFmB-P;5L=-z=Hx1+f-SEIv&`Z< z5J#m2%9ZdjEq(@CszJse<}D1c(y?g_^s?dEFc~-by9{*fZMpwQJ2fdX(~H7M@(`M- zudU3lf%{e#wN?z8ORbY$$f=P#gKP&7&M5owuie3ROcj}uA5ZOznpdmuE7?(1G^^To zY8T9%9Na1?pzgQG_&%faiv`e=6(fYn2mix4&N$ z>#rg+=u`H4bveF5b54fXj7J|}r4nG6X)_a!t z&@WL5CLBAEB`W)n`N>BH+QEWS8MWtPL#k9_W0vU+<)d5ZbrBIL5h!)j5<|>j<~a$$ zNv4p|Cg}{>!dj|SE}gYV{hB)>=#pV6kdV6Ck2_aNHg|(H#xJI{)#*!SWc@ zdQA&2g1N~T#wrX;z(|-XRjO3eFDa-sl>1c2V*mXYYz-Xk>-}Dp5q3nyxjkBGe{YEQ-OZ6YN zbC@Llp^v|nR1m;;I>p9DA6Up1sK^!!^6KV0g$Fg$gkU$AAv;8{=jQ=Gyhv+%A*nK0 zI6v34Xj@A3bD6c2dip6$wE&NP-o2bfH{&%@=aI<0$|WIbO`3_->48d*u*mD_trAjI zY1o9*Z=?md`qbpwW)+k_6UeP-jHSKfiqE88W5COlk6Gcj#3Sm)c_P7?mHEYd3=kE9 zm7^engcDUF5vw6qZn6Ql<48@$BaSKDEoEj3DMusOm?JbW(jD^P3JUSZ)}@X@mchYb zVHxsXU3sWFW+d!xKQ3>o=F@8OknT4II2lYQ=L;KjiVBsHjn$4v|6ftEDASv6mx>T) zvsM~`OoUpmSYTH-gQ_8klOZ05AbH)l&Tqmw6R+asF?bK0>aIX|NS(zW@svQV_fG6S zuZsXZ6?VMEQw`Uaa%o|8LP!aI@F2#Jp}|$FJd*JB*Heg>)*Njp3@EC|6e{>?YoQgw zaro0h)IqztL^zvW^9!`-F7GrVjTZf*5aF$6^|YW6hl)h1mg^9xkc?n;inprJ1AoQB z+{VAS7`ctR()&P8;}%j!lCu@kId~VAaasjs16ZeCjt~@`iaMm58vK%k&{PSElvW8I z1g%NtrhIAmvJ%D3j%$M0T(n0aIxK(7w-@qbl--`UQr(He3x}{diub>rZ)BClpnwf3 zRGe}5SAQSdVr1QR&GyQ_%YN@Q3MEC&3xJW_hFLN~p#%{`H}>UVk1t zU5#+VE@86k_!vlZwT=GvK&QiMC#X8G{!6@iN_Ae?nKt{U`4WB-r8jpJ)h~#y=3lS< zHuVWSwv+%`vF_V_z-2=+kDR=UeT2+<*8Sfs>3)fqFl*RJ!L>z7Ap%qn{J(l37$&mA zEW@eQv5dyNpz%wh#&z%S2UFJeyh+S9?V0v`oH{a33a;<=_92%*>66!Q#H&c`>9khk zfyk6hqWxdJB zsg8A0ENt_4Y)MvaRd4|YmHmKaIz5*FN_s7b04RF3B+v-#h?WNH;0AcPoX@f;lYpsD z!mwwxMgxOewPr%KQ?*6_gFQp)_Yyo=%2|id3@G-h>D)OR^g)qku|(okv{ zVwgZqS0o4g;l-fUH>yQRm?3Qr0|@t*vgf1>;{+XvEmi1TE6R!C?6 z>_xX=5K6ylV>$Xfn5&FtI{1H9IqM3+%+qT6ARd5zn87y$;O~{nsq;8OY$en4!#MkA zt2`Wnko{E~!wKfWTqo5dA%6IgjY%25y#`l4*j_1Av1xC83cFJ|wMMKAT`2%@y8_iy zjYH}H3rbz!eaQ$*w2J1Ee%qpv#?v48+Q13EZPhcfbeN>7rINm)O-~}^-ZCaX6#Kct zPuuh!oZV8xOos?NPBaP zf0)4Tx8rL(Lf3*H{a}tl_8gbZ4@kGUFZnuJ)a@4H^oIs2 z`jP|OsFwja1Cg6|qiyA$D$i{VkMgoNF z58(_kPqV@%27?43qsvi*AQr_JpwlUcKuM3oMv(B4MaRH`lP8wL;-jMti!O;mcaBVt z$&MSrVbYQgQOHFH!^Ouhps{g?42zfN!(yTt50Z*81j7f%E2FYOii`*z?}cTM*ub4Z zI79xI*qXw)HftfB40;r9X3->@d@X!M5rKN58Ow>B(+RjLNv&ZZ}R2GgXjlx-wd^dYGv=m=1ZN|bcVtvM)jsDxGI zWCU$|T=nq!PO_r-`0QYgRg4BvIwX6fWNqN4HO>gcBGiT}G{2562co(TfwR4{nMWvO z@71NeV#tI}ic0wOo0=iO`9eW9;6*0dr21A#SlP2#nR5~h4-JBF%>tvCF&Kc_19xZ# zWrFzjC{Y|4eb5es;vs}%MFNS0k!1r3!nZ`qh0BG@-Nefq?812uYS-jgOtWc zk7QARh{hNOjSCs~otpg1bS*FX1p)kX(6WzYi8!$N%d@h$>Sf9W6w87VP@pfj}tQvS(vI4>U!WG`PqwWAPbX>*(WGoo=1^vxW9zQE}ckrEe2IJcPEHl(4fmr8m$&R5)z@!CyqD zJeZjazb=AH>KuzB=vhX5P4mow&uQ}y`x^Sgb3T_KT(~&P9Eky0r~6>F;F)g^(z=s| z#zXqdt`!|P6c7N>zXE{+j`Qq>-xuF2ROfSCvdN(ZW*|I92i8k##5soK?yYOo2hpq@hp+Oh8{ zFC2$p59PRwuIg#HxTZ(SjiLpX{Z20%dc+MZ4JmEW`VFwzCHouXubSM;bc%ru`q$&5 zh9W}yZ$q%G?jzLl=()9@Ixe3r;)U`Q3(NhF7N*j*PiKv12!%yZheu3jix>vK5e`l( z(U5JK5WQ0LIO4T#B^ud0!o5zkLFZf%=3WRG7;KuIIUMLemrXxitAJv`KCy=1Yso|g zOoP)AQIZ;r*;p9D;Sod!13l|0aHb^!p^S|lP=DEo6h3GoBg^@xM<6E^7?Ux{L4{<5 zGoxLWnDm(Dry=jFu<^1H3wClvKOeEKQ5lEl(G7UEjFn-JvGW#YB$! zhN-7F-VP-BVbUZSDQ?eS+};l926O`gZuXiy{ck`g z|Dn{($ZHB=3Skp2Q`01)@I!THq6-4><)A#(@E`^WpoU+YO-mr3%F zQlVN%W)m(JaGmTm!-1`X)v3KG*Fb8oclf90T=i`6;~OwB<7Zx$ zxBid%>A3>Q&-^KOt+VX$VnW`>TQ+wij{AVbhNDmEB8xX3#~JJYXf4bxQPf_E&>q)h zKD242y!ywlF1V9iJjtircg;o7C!q}BoTW|_26?jcyQ@A~^AxXQdTDK42aElW z^IS30S&p#*0PN-Ml9(WVUn|oJx7SQ7?VmwtfR~+Y!}p;>h9dTEgRGEGhgjo z!o2kbPoNavrc|4~e|jyTR*NO1K$>H`+_>jM$j@0i7(8*A1;I^bS2g;4&V?OBZyDt6fx!~}| znVnbOb6`GV9UVFxR~*z^4CV5@e^G70TCWorA>B%hkm^Hss~0dGqMSH11Bd|du_Y?Ym&Jy3e3xFK_ zx%rNeERh_czl(0kz}yg-eEZA4u^IkEvQtFt@2R-(sUAP{zucybTdlG^YRPWv|1d`C zKm@Y)dfFdjNOnaRM#^V|!ngGd?{OKV{q zAsiu`c3Q+^a*^yQPjN#*%(R8*(QCXRdyX+yxiNb5L`K|M)AXc6#ZYlZH5Yu*N(<{u z0mvis%yFoqusz?YT;hr{@mbLGV>@-xMws$>&RU0Z;x3le(=+CLF=3{^JOc%s=P-KU zd>BCJPgFAxv1N?Jd0(^Lw|oHJn461a=Ca}~lg+HUq|Um2g8#l5*->!CiWJBpk1Fi( z6SaiDaIN%IDcphVej{91sOmjccKuB4&6Zvbwz(7v?{_c;q}3R*==6q8rN1ge0o>{> zaw(1+Yr08EXL5jBKaWvPV@!z=e6w*b+6NFV6t7{+UKxWdwTLC%Po9bzY)=U8-7JFQ z7)H62k4KrFFF`JjU;a}av7rGcg$~)Oz_B^?)x!~~9a>MdzIq+E)CvjWQEf{(#HA&< z1Drr0D2T~NY_{ste%0APUaf+L7_e?Z#o( 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

U(IVt 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 #include +#include "SDL_thread.h" #include "SDL_timer.h" #include "../SDL_timer_c.h" @@ -91,53 +92,103 @@ void SDL_StartTicks(void) static UINT WIN_timer; +#if ( _WIN32_WCE <= 420 ) + +static HANDLE timersThread = 0; +static HANDLE timersQuitEvent = 0; + +DWORD TimersThreadProc(void *data) +{ + while(WaitForSingleObject(timersQuitEvent, 10) == WAIT_TIMEOUT) + { + SDL_ThreadedTimerCheck(); + } + return 0; +} + int SDL_SYS_TimerInit(void) { - return(0); + // create a thread to process a threaded timers + // SetTimer does not suit the needs because + // TimerCallbackProc will be called only when WM_TIMER occured + + timersQuitEvent = CreateEvent(0, TRUE, FALSE, 0); + if( !timersQuitEvent ) + { + SDL_SetError("Cannot create event for timers thread"); + return -1; + } + timersThread = CreateThread(NULL, 0, TimersThreadProc, 0, 0, 0); + if( !timersThread ) + { + SDL_SetError("Cannot create timers thread, check amount of RAM available"); + return -1; + } + SetThreadPriority(timersThread, THREAD_PRIORITY_HIGHEST); + + return(SDL_SetTimerThreaded(1)); } void SDL_SYS_TimerQuit(void) { + SetEvent(timersQuitEvent); + if( WaitForSingleObject(timersThread, 2000) == WAIT_TIMEOUT ) + TerminateThread(timersThread, 0); + CloseHandle(timersThread); + CloseHandle(timersQuitEvent); return; } -/* Forward declaration because this is called by the timer callback */ -int SDL_SYS_StartTimer(void); +#else -static VOID CALLBACK TimerCallbackProc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime) +#pragma comment(lib, "mmtimer.lib") + +/* Data to handle a single periodic alarm */ +static UINT timerID = 0; + +static void CALLBACK HandleAlarm(UINT uID, UINT uMsg, DWORD dwUser, + DWORD dw1, DWORD dw2) { - Uint32 ms; - - ms = SDL_alarm_callback(SDL_alarm_interval); - if ( ms != SDL_alarm_interval ) { - KillTimer(NULL, idEvent); - if ( ms ) { - SDL_alarm_interval = ROUND_RESOLUTION(ms); - SDL_SYS_StartTimer(); - } else { - SDL_alarm_interval = 0; - } - } + SDL_ThreadedTimerCheck(); } + +int SDL_SYS_TimerInit(void) +{ + MMRESULT result; + + /* Set timer resolution */ + result = timeBeginPeriod(TIMER_RESOLUTION); + if ( result != TIMERR_NOERROR ) { + SDL_SetError("Warning: Can't set %d ms timer resolution", + TIMER_RESOLUTION); + } + /* Allow 10 ms of drift so we don't chew on CPU */ + timerID = timeSetEvent(TIMER_RESOLUTION,1,HandleAlarm,0,TIME_PERIODIC); + if ( ! timerID ) { + SDL_SetError("timeSetEvent() failed"); + return(-1); + } + return(SDL_SetTimerThreaded(1)); +} + +void SDL_SYS_TimerQuit(void) +{ + if ( timerID ) { + timeKillEvent(timerID); + } + timeEndPeriod(TIMER_RESOLUTION); +} + +#endif + int SDL_SYS_StartTimer(void) { - int retval; - - WIN_timer = SetTimer(NULL, 0, SDL_alarm_interval, TimerCallbackProc); - if ( WIN_timer ) { - retval = 0; - } else { - retval = -1; - } - return retval; + SDL_SetError("Internal logic error: WinCE uses threaded timer"); + return(-1); } void SDL_SYS_StopTimer(void) { - if ( WIN_timer ) { - KillTimer(NULL, WIN_timer); - WIN_timer = 0; - } + return; } - diff --git a/src/video/gapi/SDL_gapivideo.c b/src/video/gapi/SDL_gapivideo.c index d79a7b582..f8dd46097 100644 --- a/src/video/gapi/SDL_gapivideo.c +++ b/src/video/gapi/SDL_gapivideo.c @@ -1088,6 +1088,9 @@ static void GAPI_UpdateRectsColor(_THIS, int numrects, SDL_Rect *rects) static void GAPI_UpdateRects(_THIS, int numrects, SDL_Rect *rects) { + // we do not want to corrupt video memory + if( gapi->suspended ) return; + if( gapi->needUpdate ) gapi->videoMem = gapi->gxFunc.GXBeginDraw(); @@ -1172,10 +1175,55 @@ static void GAPI_PaletteChanged(_THIS, HWND window) OutputDebugString(TEXT("GAPI_PaletteChanged NOT IMPLEMENTED !\r\n")); } -/* Exported for the windows message loop only */ static void GAPI_WinPAINT(_THIS, HDC hdc) { - OutputDebugString(TEXT("GAPI_WinPAINT NOT IMPLEMENTED !\r\n")); + // draw current offscreen buffer on hdc + + int bpp = 16; // we always use either 8 or 16 bpp internally + + unsigned short *bitmapData; + HBITMAP hb; + HDC srcDC; + + // Create a DIB + BYTE buffer[sizeof(BITMAPINFOHEADER) + 3 * sizeof(RGBQUAD)] = {0}; + BITMAPINFO* pBMI = (BITMAPINFO*)buffer; + BITMAPINFOHEADER* pHeader = &pBMI->bmiHeader; + DWORD* pColors = (DWORD*)&pBMI->bmiColors; + + // CreateDIBSection does not support 332 pixel format on wce + if( gapi->gxProperties.cBPP == 8 ) return; + + // DIB Header + pHeader->biSize = sizeof(BITMAPINFOHEADER); + pHeader->biWidth = this->hidden->w; + pHeader->biHeight = -this->hidden->h; + pHeader->biPlanes = 1; + pHeader->biBitCount = bpp; + pHeader->biCompression = BI_RGB; + pHeader->biSizeImage = (this->hidden->w * this->hidden->h * bpp) / 8; + + // Color masks + if( bpp == 16 ) + { + pColors[0] = REDMASK; + pColors[1] = GREENMASK; + pColors[2] = BLUEMASK; + pHeader->biCompression = BI_BITFIELDS; + } + // Create the DIB + hb = CreateDIBSection( 0, pBMI, DIB_RGB_COLORS, (void**)&bitmapData, 0, 0 ); + + // copy data + // FIXME: prevent misalignment, but I've never seen non aligned width of screen + memcpy(bitmapData, this->hidden->buffer, pHeader->biSizeImage); + srcDC = CreateCompatibleDC(hdc); + SelectObject(srcDC, hb); + + BitBlt(hdc, 0, 0, this->hidden->w, this->hidden->h, srcDC, 0, 0, SRCCOPY); + + DeleteObject(hb); + DeleteDC(srcDC); } int GAPI_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors) diff --git a/src/video/gapi/SDL_gapivideo.h b/src/video/gapi/SDL_gapivideo.h index ffef78e07..99a1d0009 100644 --- a/src/video/gapi/SDL_gapivideo.h +++ b/src/video/gapi/SDL_gapivideo.h @@ -152,6 +152,7 @@ struct SDL_PrivateVideoData { int dstPixelStep; // in bytes int startOffset; // in bytes int useVga; + int suspended; // do not pu anything into video memory }; diff --git a/src/video/wincommon/SDL_sysevents.c b/src/video/wincommon/SDL_sysevents.c index 859f211a6..0f7765ff2 100644 --- a/src/video/wincommon/SDL_sysevents.c +++ b/src/video/wincommon/SDL_sysevents.c @@ -106,7 +106,7 @@ static void LoadAygshell(void) { if( !aygshell ) aygshell = SDL_LoadObject("aygshell.dll"); - if( aygshell ) + if( (aygshell != 0) && (SHFullScreen == 0) ) { SHFullScreen = (int (WINAPI *)(struct HWND__ *,unsigned long)) SDL_LoadFunction(aygshell, "SHFullScreen"); } @@ -171,7 +171,19 @@ static void GapiTransform(SDL_ScreenOrientation rotate, char hires, Sint16 *x, S static void SDL_RestoreGameMode(void) { +#ifdef _WIN32_WCE + SDL_VideoDevice *this = current_video; + if(SDL_strcmp(this->name, "gapi") == 0) + { + if( this->hidden->suspended ) + { + this->hidden->suspended = 0; + } + } +#else ShowWindow(SDL_Window, SW_RESTORE); +#endif + #ifndef NO_CHANGEDISPLAYSETTINGS #ifndef _WIN32_WCE ChangeDisplaySettings(&SDL_fullscreen_mode, CDS_FULLSCREEN); @@ -180,7 +192,21 @@ static void SDL_RestoreGameMode(void) } static void SDL_RestoreDesktopMode(void) { + +#ifdef _WIN32_WCE + SDL_VideoDevice *this = current_video; + if(SDL_strcmp(this->name, "gapi") == 0) + { + if( !this->hidden->suspended ) + { + this->hidden->suspended = 1; + } + } +#else + /* WinCE does not have a taskbar, so minimizing is not convenient */ ShowWindow(SDL_Window, SW_MINIMIZE); +#endif + #ifndef NO_CHANGEDISPLAYSETTINGS #ifndef _WIN32_WCE ChangeDisplaySettings(NULL, 0); @@ -318,7 +344,7 @@ LRESULT CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) if ( WINDIB_FULLSCREEN() ) { LoadAygshell(); - if( aygshell ) + if( SHFullScreen ) SHFullScreen(SDL_Window, SHFS_HIDESTARTICON|SHFS_HIDETASKBAR|SHFS_HIDESIPBUTTON); else ShowWindow(FindWindow(TEXT("HHTaskBar"),NULL),SW_HIDE); @@ -345,7 +371,7 @@ LRESULT CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) SDL_RestoreDesktopMode(); #if defined(_WIN32_WCE) LoadAygshell(); - if( aygshell ) + if( SHFullScreen ) SHFullScreen(SDL_Window, SHFS_SHOWSTARTICON|SHFS_SHOWTASKBAR|SHFS_SHOWSIPBUTTON); else ShowWindow(FindWindow(TEXT("HHTaskBar"),NULL),SW_SHOW);