home *** CD-ROM | disk | FTP | other *** search
- ╠≤δ√∩≈∞±Σ÷α Φ Φπ≡√
- ╫α±≥ⁿ VII
-
- ╦Φ±≥Φφπ 32.10 ⌠≤φΩ÷Φ MakeltSo Σδ εΩαταφΦσ ∩ε∞ε∙Φ Γ Γε±±≥αφεΓδσφΦΦ ∩εΓσ≡⌡φε±≥Φ.
-
- function TForinl. MakeltSo ( DDResult : HResult ) ; boolean ;
- begin
-
- { ≤≥ΦδΦ≥α Σδ ∩≡σΣε±≥αΓδσφΦ ∩ε∞ε∙Φ Γ Γε±±≥αφεΓδσφΦΦ ∩εΓσ≡⌡φε±≥σΘ }
- case DDResult of
- DD_OK : Result ò.= true ;
-
- DDERR_SURFACELOST : Result := RestoreSurfaces <> DD_OK ;
- else Result := DDResult <> DDERR_WASSTILLDRAWING ;
- end ;
- end ;
-
- ╧ε±δσΣφΦΘ ∞σ≥εΣ Φε±±≥αφαΦδΦΓασ≥ ∩ε÷σ≡⌡φε±≥ⁿ i3 ±δ≤≈ασ φσεß⌡εΣΦ∞ε±≥Φ Φ τα≥σ∞ Γ√τ√Γασ≥ ⌠≤φΩ÷Φ■ RestoreSurface, Ωε≥ε-
- ≡≤■ Γα∞ ±σΘ≈α± ∩≡σΣ±≥αΓδ■. ═ε ±φα≈αδα Γε≥ ΩαΩ ±δσΣ≤σ≥ σσ Φ±∩εδⁿτεΓα≥ⁿ, ∩≡Φ∞σφ Flip, ΩαΩ Γ ∩≡σΣ√Σ≤∙σ∞ ∩≡Φ∞σ≡σ:
-
- repeat
- until MakeltSo (PrimarySurf α±σ. Flip (NIL, DDFblP_WAIT));
-
- ╥σ∩σ≡ⁿ ≤Γσ≡σφ, Γ√ ±επδα±Φ≥σ±ⁿ, ≈≥ε ²≥ε φα∞φεπε αΩΩ≤≡α≥φσΘ Φ ∩≡Φ ≥φσΘ, ≈σ∞ ∩ε±≥ε φφε Σ≤ßδΦ≡εΓα≥ⁿ ΩεΣ, Ωε≥ε≡√Θ
- ∩≡εΣσ∞εφ±≥≡Φ≡εΓαδ ≡αφσσ. Flip Γ√τ√Γασ≥± φσ∩≡σ≡√Γφε, ∩εΩα φσ Σε±≥Φπφσ≥ ≤±∩σ⌡α, δΦßε ∩εΩα φσ ΓετφΦΩφσ≥ ±σ≡ⁿστφα ∩≡ε-
- ßδσ∞α. ▀ ∞επ ß√ Γ√τΓα≥ⁿ Φ±Ωδ■≈σφΦσ Γ MakeltSo, σ±δΦ ß√ ΓετφΦΩδα φσΦ±∩≡αΓΦ∞α ∩≡εßδσ∞α. ╧≡Φ∞σ≡√ Game SDK, ß≤Σ≤≈Φ
- φα∩Φ±αφφ√∞Φ φα ╤ ßστ εß≡αßε≥ΩΦ Φ±Ωδ■≈σφΦΘ, ∩≡ε±≥ε Φπφε≡Φ≡≤■≥ ≡στ≤δⁿ≥α≥√ ε°ΦßΩΦ.
- ╬ΣφαΩε, σ±δΦ Γ√ ⌡ε≥Φ≥σ Φ±∩εδⁿτεΓα≥ⁿ Φ±Ωδ■≈σφΦ , Φτ∞σφΦ≥σ MakeltSo, ΩαΩ ∩εΩαταφε Γ δΦ±≥Φφπσ 32.1 1.
-
- ╦Φ±≥Φφπ 32.11 ═σεß τα≥σδⁿφα MakeltSo, Ωε≥ε≡α Γ√τ√Γασ≥ Φ±Ωδ■≈σφΦ .
-
- function TFormI. MakeltSo ( DDResult : HResult ) : boolean ;
-
- begin '
- ( ≤≥ΦδΦ≥α Σδ ∩≡σΣε±≥αΓδσφΦ ∩ε∞ε∙Φ Γ Γε±±≥αφεΓδσφΦΦ ∩εΓσ≡⌡φε±≥σΘ - Γσ≡±Φ ± Φ±Ωδ■≈σφΦ ∞Φ }
- Result := false ;
- case DDResult of
- DD_OK : Result := true ;
- DDEKR_SURFACELOST : if RestoreSurfaces <> DD_OK then
-
- Raise Exception. Create ( 'MakeltSo failed' ) ;
- else if DDResult <> DDERR_WASSTILLDRAWING then
-
- Raise Exception. Create ( 'MakeltSo failed' ) ;
- end ;
- end ;
-
- ╒ε≡ε°ε, ≥σ∩σ≡ⁿ ∩σ≡σΘΣσ∞ Ω ∞σ≥εΣ≤ RestoreSurfaces, ∩≡Φ φσεß⌡εΣΦ∞ε±≥Φ Γ√τ√Γασ∞ε∞≤ Γ MakeltSo. ╦Φ±≥Φφπ 32.12 ∩εΩατ√-
- Γασ≥ ∞σ≥εΣ RestoreSurfaces.
-
- ╦Φ±≥Φφπ 32.12 ┬ε±±≥αφεΓδσφΦσ Φ ∩σ≡σ≡Φ±εΓΩα ∩εΓσ≡⌡φε±≥Φ DirectDraw.
-
- function TFormI. RestoreSurfaces : HResult ;
- begin
-
- { Γ√τ√Γασ≥± MakeltSo, σ±δΦ ∩εΓσ≡⌡φε±≥Φ "∩ε≥σ≡ δΦ±ⁿ" - Γε±±≥αφεΓΦ≥ⁿ Φ ∩σ≡σ≡Φ±εΓα≥ⁿ Φ⌡ }
- Result := PrimarySurface. Restore ;
- if Result = DD_OK then DrawSurfaces ;
- end ;
-
- ═Φ≈σπε ≤ΣΦΓΦ≥σδⁿφεπε. ┬√τ√Γασ≥± ∞σ≥εΣ Restore εß·σΩ≥α ε±φεΓφεΘ ∩εΓσ≡⌡φε±≥Φ. ┬ΓΦΣ≤ ≥επε, ≈≥ε Γ√ ±ετΣαδΦ σσ ΩαΩ
- Ωε∞∩δσΩ±φ√Θ εß·σΩ≥, εφ αΓ≥ε∞α≥Φ≈σ±ΩΦ Γε±±≥αφαΓδΦΓασ≥ δ■ß√σ φσ Γφ√σ ∩εΓσ≡⌡φε±≥Φ. ╧ε²≥ε∞≤ φσ≥ φσεß⌡εΣΦ∞ε±≥Φ Γ√τ√-
- Γα≥ⁿ Restore Σδ ⌠εφεΓεπε ß≤⌠σ≡α. ┼±δΦ Restore ≤±∩σ°φε Γε±±≥αφεΓΦδ ∩α∞ ≥ⁿ ∩εΓσ≡⌡φε±≥Φ, Γ√ Γ√τ√Γασ≥σ DrawSurfaces,
- Ωε≥ε≡≤■ ∞√ εß±≤ΣΦ∞ ∩εΣ≡εßφε Σαδσσ.
-
- ╨Φ±εΓαφΦσ φα ∩εΓσ≡⌡φε±≥ ∞ DirectDraw
-
- ╤≤∙σ±≥Γ≤σ≥ ΣΓα ±∩ε±εßα ≡Φ±εΓα≥ⁿ φα ∩εΓσ≡⌡φε±≥Φ DirectDraw. ┬√ ∞εµσ≥σ ∩εδ≤≈Φ≥ⁿ ≤Ωατα≥σδⁿ φσ∩ε±≡σΣ±≥Γσφφε φα εßδα±≥ⁿ
- ∩α∞ ≥Φ ∩εΓσ≡⌡φε±≥Φ Φ φσ∩ε±≡σΣ±≥Γσφφε σ■ ∞αφΦ∩≤δΦ≡εΓα≥ⁿ. ▌≥ε ε≈σφⁿ ∞ε∙φ√Θ ±∩ε±εß, φε ≥≡σß≤σ≥ φα∩Φ±αφΦ ±∩σ÷Φαδⁿφεπε ΩεΣα
- Φ ≈α±≥ε Σδ ±Ωε≡ε±≥Φ ù φα α±±σ∞ßδσ≡σ. ┬±σ-≥αΩΦ Γα∞ ≡σΣΩε ∩≡ΦΣσ≥± ²≥ε Σσδα≥ⁿ, ∩ε≥ε∞≤ ≈≥ε DirectDraw ∞εµσ≥ ±ετΣαΓα≥ⁿ Ωεφ≥σΩ±≥
- ≤±≥≡εΘ±≥Γα (DC), ±εΓ∞σ±≥Φ∞√Θ ± GDI. ▌≥ε ετφα≈ασ≥, ≈≥ε Γ√ ∞εµσ≥σ ≡Φ±εΓα≥ⁿ φα φσΘ, Φ±∩εδⁿτ≤ ±≥αφΣα≡≥φ√σ Γ√τεΓ√ GDI, α ≥αΩµσ
- δ■ßεΘ DC. ╬ΣφαΩε, Γ√τεΓ√ GDI Σε±≥α≥ε≈φε ≤≥ε∞Φ≥σδⁿφ√, Φ Delphi ≤µσ ΓΩδ■≈ασ≥ DC Γ ±ΓεΘ Ωδα±± TCanvas. ╥αΩΦ∞ εß≡ατε∞, Γ
- ∩≡Φ∞σ≡σ ±ετΣα■ TCanvas Φ Φ±∩εδⁿτ≤■ σπε Σδ εßδσπ≈σφΦ ±σßσ µΦτφΦ. ╨ατΓσ φσΓετ∞εµφε ∩εδ■ßΦ≥ⁿ Delphi τα ²≥ε!
-
- ┬±σ, ≈≥ε φσεß⌡εΣΦ∞ε ±Σσδα≥ⁿ, ù ±ετΣα≥ⁿ εß·σΩ≥ TCanvas Φ Γ√τΓα≥ⁿ ∞σ≥εΣ GetDC ∩εΓσ≡⌡φε±≥Φ. ╟α≥σ∞ Γ√ φατφα≈ασ≥σ DC
- Canvas.Handle, ≤ßσΣΦΓ°Φ±ⁿ, ≈≥ε Γ√ ∩ε ταΓσ≡°σφΦ■ ∩σ≡σ≤±≥αφεΓΦδΦ Handle Γ φεδⁿ. ╤ετΣαφΦσ ∩εδε≥φα Φ ≡ατ∞σ∙σφΦσ Ωεφ≥σΩ-
- ±≥εΓ ≤±≥≡εΘ±≥Γ ≥≡σß≤σ≥ ∩α∞ ≥Φ Φ ≡σ±≤≡±εΓ. ╩εφ≥σΩ±≥√ ≤±≥≡εΘ±≥Γα ∩≡σΣ±≥αΓδ ■≥ ±εßεΘ ε±εßσφφε ±Ω≤Σφ√Θ ≡σ±≤≡±. ╤≤∙σ±≥Γσφ-
- φε Γαµφε ε±ΓεßεΣΦ≥ⁿ Φ⌡, ΩεπΣα Γ√ ταΩεφ≈Φ≥σ. ─δ ≥επε, ≈≥εß√ ±Σσδα≥ⁿ ΩεΣ φσ∩≡εßΦΓασ∞√∞, Φ±∩εδⁿτ≤Θ≥σ ßδεΩΦ try...finally.
- ╦Φ±≥Φφπ 32.13 ∩≡σΣ±≥αΓδ σ≥ ²≥ε≥ ΩεΣ. ╬φ ∩≡ε±≥ε τα∩εδφ σ≥ ε±φεΓφ≤■ ∩εΓσ≡⌡φε±≥ⁿ πεδ≤ß√∞ ÷Γσ≥ε∞ Φ Γ√ΓεΣΦ≥ ≥σΩ±≥ "Primary
- surface" (╬±φεΓφα ∩εΓσ≡⌡φε±≥ⁿ) Γ ÷σφ≥≡σ ±δσΓα. ╘εφεΓ√Θ ß≤⌠σ≡ ταΩ≡α°ΦΓασ≥± Γ Ω≡α±φ√Θ ÷Γσ≥ Φ ±εΣσ≡µΦ≥ ≥σΩ±≥ "Back
- buffer" (╘εφεΓ√Θ ß≤⌠σ≡) Γ ÷σφ≥≡σ ±∩≡αΓα.
-
-