From 9821d8004416b280791da440acac30abd7c1bb12 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Wed, 15 Nov 2017 06:33:31 +0100 Subject: [PATCH] add missing lock --- ddraw.dll | Bin 164864 -> 164864 bytes main.c | 7 ------- surface.c | 21 ++++++++++++++++----- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/ddraw.dll b/ddraw.dll index 63fdd7d89ee3a67f9b19a8f330d006f59c8ba146..a54de685bfdb62debcb5b5620edf7f7abde2853b 100644 GIT binary patch delta 8483 zcmchcdt6l2+Q;|W4mc_}BMgcHf`)>Mx#zNH_GK<8V0b|(L-88k#!Gl4Lo-tc0+Mmk zu&trTOPHNXvqZosuXst(z&Pdcl4g^)KrOLM5zKjidj_l1=bX;@=RM=+J8SJ{t@W&D zJ?mM|+Kf4c?Q;s-7ZuXEe_yqH1YOX6)mMFKcgIyd!u;Gci>+g!;c-MpL0Q zp4vU0J$+#|MN#=uE;)v-(olKeuu)l?DmGb=u5xaEEUm*P?y6teXR2tdVK!!;9Z3WU%I?(nF`rc+~jIsy0 zDZQu+r<=;kiiS00g6iWFWmg2ij!24vT zv?E{uSu1@Lu!JN^69Wg54bq!|Gum&cIBCzj8D76MLQ;3^N|MX_c1$NERmxLElMLxS z)xgN$?i6(_F1&`Gtn!zQ#2`(-sz+dd%H}wO6kmwRyxty zmA8;k@(y@Hwo7+9O(DtBm>@H8N~?oRq(rI->PhmYTS1Y*HQsTG6?wxS^*LMS)V4Kg8P-e6@38fD;qsFc7bperNoo zXC`{wMR_g$s{9MYK~Z@v;i~)(F+Q)Q&HQRtpuD=g7d4c#I{Sd?z%gf1owMm+liHb7 z<4UTtP@U0=|0Y$uUFyI5Xc?3!4TKS!{sNBD*q*q1LKlb zRP=_J%6k~7DmaQUts;khe2U_pLFdTAOi8HOP{%}C+2As>` zFjL-5#knOHRFx?gb_Lj-DPNtN^VK&?+~?+8aHY8&=W-0_@~g;s2Ev2isa2IHTxoUf zK6e$Sw_2`;VY2d=phvrV-|k#;@nC}*9luGscy6t%2>LI2ALNM}JilN8gFSgoMDZ_g7d0^Y)JE}em$k$Ba$pl2iZ7gVX7$#Ne# z($GP*KSv%a&zV-|>)=ya7)U4wg;5QW=$_ls7QIvj9Z_#k!y4ZlY1Ph@M{{68PaT5N zl~&z4QQ-zmosTU_M}#!Y#n+1L-q>lP%6}Ivz8%fd$c`Bcy?#aVP9porxytJVN9)0F z5YeovJmX9|b?}z@CzU#0c|PfsDmcmg%^dgnoS7JR@&3i*zFlxGIfWj{0p1=dz8;ys z_K>%xeyAGz^BwXl+|#brJ-;{HnJgQ8@WB9|#r0uw|B;Zna;ki`)u+cn^f#Xhh^YFJ z7YHTs;bX()jORIxbttnjm%JXOZ;U5IDSa5;hlEOJ!+YRHky^r|L)7K+4l9s&6);B5 zEuN4%$q>;q_M@M@_PJL;UC0$*p3Q5*!LdN!<~tCq*mV|ukq&kbl}7eZN}D3W6*r+y zD(cRZ{}2&Of*SGU3XylZ@MU?IH#e3CM;>m|{-ZU7I=4Op67S%qo=4P0Nj3Hx?T_Vo zub5Fac5lO#$3}#m!bI{SV3}`IqP-R?T^6^L5=i9VRV{PVM~57r46fWQS|3 zZa94{?%~q+(OqzH`1Se^7YEYz(q3IjfV8$(EUt!wy?S(>Eh{uc*T0UkA?Kd=POSf0 zYUhcpY9Z1kkpQD_|oCS*!rk;>f(s!|OBudis85AmSjca2z z#LhLD@}aw_@qFRJw)~~faZ(_0eS4F=(ldP@kjc`7ekr(Ew)IQIm4B<>IM_ZkE`el9 zE8}crwRAGBbMUL)v#D@~xdTVAd{pkl~(rZi?qAY)xInl=9ygFv|sJxqT zu8GJ*0j?xDpX8TfM8OxT{O;HU*CK^0$eD(8r!J^+rKnv`DP2PXoL@RquBh^H#3`3j zd$-`Y^R{Y;(wX9RB`f(8s*!(pB`XS!yU=GymckVuz#mkNIOs}ot9D#;CS4)tTuDmT z#0&k>9FQzjI@8>wrA>O2D@olZ8Q)6h=Xc|~((^fS{*@&$t|WKfQQ}-2ExQUY7s`6i zAzb!J$~NgrdBj2`y3IfLTdohK?#64P<{$Fr2ftrmEUJAw`%gL@zbSqHUn%{A3JpS6 zTLnkAUd4w(sbfhOWCv?K4Hpm)_9E?Z?cHNZZduk4ia<$oUX>lJcCp^znW*#~?M$>| zbEK7Qd%SS2WAhQR-HoGr5BD98+?PV-7l`ak*Yi;>i#)R6Zg#5YjQoD(VgsbV8izy# zpzDnzt=HWj46T0M6iGBvlqpQ!Z;L4mlZ-X(AXQR3E}X=c_vQ@$Hb}Dg*lzNSFi$CG z9yx}7mx0Rop|Z}0=%s`O&ZFL`^KJ&Xa(;d1W2AT?yt5fW>P#x};95{3QrqA)+7qIY z<_R%`lm04HkZ@_F$dEWGM-0OO+aL~x6E2HScd76WtoY-aq!DHh7B#{$LL2Rk|7d9S zhlNOtcy_U&Ua8_y&_6mIr(F@TQmv(=vl{JQrN1+^qD=ZWLDO~|5}_xgLfT{%V8l7= zW5gi+VjYh^7RK7%B2ncJYF`If=egxoC8OrAyPtB1?a3~3%HmtVS&=`*Fq ziZFZ!>`KJnH?+YyMf+k_+00 z-c)oJG2}e#3ArGbNvAv^3OQVo>Q*GVz3C{t_`x=^re7SS=#MEJHSx6_kGfpkj&!K+ldK9#}7z3NiIJ00mA(2Aj(dA!=tp`oGuPQsA*N^vKNA%Sw9a9OJIad{bemQ)u>OgqASH&o#hwb@A2)(w%nyTztHNL_x*%29kVO+G0_j^i zd`%RcNpg0rpx;+_9kss3z6k69XF$LP%n2qJKiP>s5b@fU8vAMG; zgIxEc)OhmM{i!JY^VJoQtEsF3wRR;+S^lV=L*=yAqfn!WESGCEp%lJ4O;A_M^+#@< z^_Qu0=gpg5Ib$GwoH$;cUTeQFy4GGbuGZdVe64*rm<`kuYVB)5;KW+{H|e$Zeq(Fx zPXpzoT6_0twf6NWH-iCVYVE5*!IWBi<1@APyI@sDt=(^Ot-TlOMPM@KxQ^!*;E%CE zAQSyz(W>Z9l~oD!+7Q}ZSv+nm-Q2b8NUi+{Xaw}9we}K}S)iKL7k|zr+)V5 zuxS4y|7pyB*>3bI{x3V*i&~A1tsFR>KJ1Sl+=~6D&^`T2WANipOy%QK=!@jpxA)SN z{8QW8rFac#{S4nnQ+pvx-1(bKv7e?Ul+#q>?_|l4DJy6y4t*be_Cl5j+3MfPPC>T4 z0>9;jIQF8c4qO3uf&VVwPz}nSKnI3`DIg0Jf(@VyRD(;P2`E3Jsc>KbsbC7o1}niP zunl|!z5v%jGtgAh4l1^irUrr0AR8=AnWPwE>AFKpx zK?!&dl!3jV8k_?ln?;Axm3QXRU5V64bH#z#bO)uo64wBbUrMf$O1}m4 z0UGalpDv^m97X!$`XBVfkZyR+P;9tl=*Z4ycd#efFWK)|wK3Y5Y@BLbW;|iMVcci> z(G(ez6!UuX4s)e>zd67XWr?*6usAInEq}9Yw=`QiT02`KtcliiYld}(^^o*KJ#D+ieGI*KF8)2EVhR@Mn56!x+ajW*PG?^9l1cbC3Cj z(P+c8CT*T}gZ8}kJ8iSJuWo>DxbBLskDfIQHau_m$WUw8&$cs-FpV*-Gi@~;H+^rq zZ|cwKxI}nlH1{0$S8f}3f@^{&-rzUzN8kZB-@q$`NTIK=O*|leFZ!FinyGjs85r?_ zgW1E}!o-3$T{}yASo^hBr8DS;=*H@{=yvK3=#J>V(Y5G8_5Jiu>8tfu_1)M3Y&!cK zyNKP)?q#oGlRRukW4KXkj5m%ljy2kiuNdDqb~FW>Y^Frhc+*>^cTM+99&B6?7svYSnc^O?t@$bQPV+uOGMK}>h1FP0FmjnT#Frs#U=AJ+@|+4=?gSM-PV zL56;YHw=djcMN^lHLO33kpv9N@NR>HN=K(s{cimc{Ym{=_5jutXfznhjNcmrO;*!f zQ;}(>>6FP2Avd2}!|md3a4bKGU&>z;t_i_nm?$DRN8Vg7mXve?Gl!Tg<> zSi&rhr}XZTJ0JAAtEyzr`UM)raOzdxx_?lzCG&5&JMMd9s| zqINL*n9mrsw!1b?E3heS2FqK|ThUNQQRyg}v}^QR^@sG=^t@r5p}_FAVIPjJft9fP z9~;k^9-6vv441%t#<{WYR-O?DiwndZVx{<_7-b%4o@hQ{<}J@!92+fHEPG_dZi$PXGKFB$xm*c%l561d`D(tKkc-$FBj$@6#op#=mL%(0>s1@oNKppN)ssnd zFu~dZx-8vBOwyuzO20$@x&B-IPkKMYQ>JOA1*SsNF=0Hi0eY(m1!qy~jh~v7NIVr> z9e0_d`3!y)zn(AS_wY6RY5pevGw&~`g&2WBd=Ep)nJp|83WYa?_k>S`!@@b?lJJx8 zi_k@k615^HI);mB;xcii_?Gy-SSQAs)6G-NFPdLAOXiK{a`RrCf-~kH%=gSnOAykI z){=yPvRmd_axBX&TabSCS&mx1wp_E^vplo}S;G)wBdk-b&stYosVL%&5u168d8T=h z`L^{JYnV3y`Q$G$>zHK@{UP=eJCM6C2UR@r2IGFFT>F{s6Yghgtc|w~wN0?SYok(q zgSH!6j9W~7xOce{%Nbc&2BBh6e5;+P%QuW-M+n=6C(NVFlg%5E(TfaBEJ~ZLr?8KEReF*oN3f+OlnnZ0q3I?Y7gnR&LpvZB!MZ zrol6QOa~@}iDdK)kHp?d8>#JuL+sS9(|({W)1KB|*51}OY5jFwbuqgB4rKcUx;))$ zy1(fvbk(|AT?c&+{Qy0yPt=dnzpVdGKg^J6XyMyioYrgJ^Y7d5XP7sbp1NbYE&5CB zP4*dX3i97Lv(7rs+GKstw$nzref>r2t+i9gK&sxZ}RG?@2l70 gh8UzD>W6!6oW3|KmloPgGGtfo%cT?ORgB{Q06NBVs{jB1 delta 8583 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 Ba+Cl7 diff --git a/main.c b/main.c index be460b7..7fa3abf 100644 --- a/main.c +++ b/main.c @@ -374,8 +374,6 @@ void ToggleFullscreen() LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { - RECT rc = { 0, 0, ddraw->render.width, ddraw->render.height }; - switch(uMsg) { case WM_MOVE: @@ -521,11 +519,6 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) } break; - case WM_ERASEBKGND: - EnterCriticalSection(&ddraw->cs); - FillRect(ddraw->render.hDC, &rc, (HBRUSH) GetStockObject(BLACK_BRUSH)); - LeaveCriticalSection(&ddraw->cs); - break; } return ddraw->WndProc(hWnd, uMsg, wParam, lParam); diff --git a/surface.c b/surface.c index c15aa40..70db93b 100644 --- a/surface.c +++ b/surface.c @@ -120,11 +120,22 @@ HRESULT __stdcall ddraw_surface_Blt(IDirectDrawSurfaceImpl *This, LPRECT lpDestR unsigned char* from=Source->surface + y0*Source->width + x0; int s = x1-x0; - int y; - for(y=y0; ywidth, from+=Source->width) - { - memcpy(to, from, s); - } + if((This->caps & DDSCAPS_PRIMARYSURFACE) && !(This->flags & DDSD_BACKBUFFERCOUNT)) + { + EnterCriticalSection(&ddraw->cs); + + int y; + for(y=y0; ywidth, from+=Source->width) + memcpy(to, from, s); + + LeaveCriticalSection(&ddraw->cs); + } + else + { + int y; + for(y=y0; ywidth, from+=Source->width) + memcpy(to, from, s); + } } return DD_OK;