home *** CD-ROM | disk | FTP | other *** search
- ╚π≡εΓεΘ SDK
-
- ├δαΓα 32
-
-
-
- // Γ√ß≡α≥ⁿ Φτεß≡αµσφΦσ Σδ memoryDC, ≈≥εß√ σπε Φ±∩εδⁿτεΓα≥ⁿ.
- ImageDC : = CreateCompatibleDC ( 0 ) ;
-
- try
-
- Select0bject( ImageDC, Bitmap ) ;
- // ∩εδ≤≈Φ≥ⁿ ≡ατ∞σ≡ Φτεß≡αµσφΦ .
- Get0bject( Bitinap, Size0f( BM ), @BM ) ;
- if Width = 0 then Width :== BM.bmWidth ;
- if Height == 0 then Height :== BM.bmHeight ;
- // ∩εδ≤≈Φ≥ⁿ ≡ατ∞σ≡ ∩εΓσ≡⌡ε±≥Φ.
- SurfaceDesc.dwSize := SizeOfC SurfaceDesc ) ;
- SurfaceDesc.dwFlags := DDSD_HEIGHT or DDSDJWIDTH ;
- Surf ace .GetSurfaceDesc( SurfaceDesc ) ;
- if Surf ace .GetDC( DC ) <> DD_OK then
- Raise Exception. Create ( 'GetDC failed for DirectDraw surface^ )
-
- try
- StretchBlt( DC, 0, 0, SurfaceDesc.dwWidth, SurfaceDesc.dwHeight,
-
- ImageDC, x, y. Width, Height, SRCCOPY ) ;
-
- finally
-
- Surface. ReleaseDC ( DC ) ;
- end ;
- finally
-
- DeleteDC ( ImageDC ) ;
- end ;
- end ;
-
- ╧ε±δσ ∩≡εΓσ≡ΩΦ φσΩε≥ε≡√⌡ ∩α≡α∞σ≥≡εΓ DDCopyBitmap Γ√τ√Γασ≥ Restore, ≈≥εß√ εßσ±∩σ≈Φ≥ⁿ Ωε≡≡σΩ≥φε±≥ⁿ ∩α∞ ≥ⁿ ∩εΓσ≡-
- ⌡φε±≥Φ, ╟α≥σ∞ εφα εß≡α∙ασ≥± Ω εß√≈φεΘ ∩≡επ≡α∞∞σ Windows Σδ Ωε∩Φ≡εΓαφΦ ≡α±≥≡εΓεπε Φτεß≡αµσφΦ ± εΣφεπε DC φα
- Σ≡≤πεΘ. ╚±⌡εΣφεσ ≡α±≥≡εΓεσ Φτεß≡αµσφΦσ Γ√ßΦ≡ασ≥± Σδ ∩σ≡Γεπε DC, ±≥αφΣα≡≥φα ∩α∞ ≥ⁿ DC εßσ±∩σ≈ΦΓασ≥± Γ√τεΓε∞
- CreateCompatibleDC. ╧σ≡σΣα≈α φ≤δσΓ√⌡ ∩α≡α∞σ≥≡εΓ °Φ≡Φφ√ Φ Γ√±ε≥√ Γ ∩≡επ≡α∞∞≤ τα±≥αΓδ σ≥ Φ±∩εδⁿτεΓα≥ⁿ ⌠αΩ≥Φ≈σ±Ω≤■
- °Φ≡Φφ≤ Φ Γ√±ε≥≤ ≡α±≥≡εΓεπε Φτεß≡αµσφΦ . ─δ ≥επε, ≈≥εß√ ∩εδ≤≈Φ≥ⁿ ²≥≤ Φφ⌠ε≡∞α÷Φ■, ∩≡επ≡α∞∞α Φ±∩εδⁿτ≤σ≥ ⌠≤φΩ÷Φ■
-
- GetObject
-
- ╟α≥σ∞ ταπε≥αΓδΦΓασ≥± τα∩Φ±ⁿ SurfaceDesc ∩≤≥σ∞ ΓΩδ■≈σφΦ ⌠δαµΩεΓ DDSD_HEIGHT Φ DDSD_WIDTH. ▌≥ε ∩σ≡σΣασ≥-
- ± Γ GetSurfaceDesc, Ωε≥ε≡εσ ≡σαπΦ≡≤σ≥ ∩≤≥σ∞ τα∩εδφσφΦ ∩εδσΘ dwHeight Φ dwWidth Σσ±Ω≡Φ∩≥ε≡α. ╧≡επ≡α∞∞α ∩εδ≤≈ασ≥
- Γ≥ε≡εΘ DC Φτ ∩εΓσ≡⌡φε±≥Φ, Φ±∩εδⁿτ≤ Γ√τεΓ GetDC Φ ε±≤∙σ±≥Γδ ∩≡ε±≥εσ StretchBIt ╩αΩ εß√≈φε, ßδεΩΦ try..-Anally Φ±-
- ∩εδⁿτ≤■≥± Σδ εß τα≥σδⁿφεπε ε±ΓεßεµΣσφΦ DC. ┬±σ ²≥ε ΣεΓεδⁿφε ∩≡ε±≥√σ Γσ∙Φ. ▌≥ε ≡ατΓσΦΓασ≥ ∩ε Γσ≥≡≤ ≤±≥α≡σΓ°≤■
- Φ±≥Φφ≤ ε ≥ε∞, ≈≥ε ΩεΣ εß≡αßε≥ΩΦ ≡α±≥≡εΓ√⌡ Φτεß≡αµσφΦΘ Σδ Windows ≥ µσδε ∩Φ±α≥ⁿ. ╩ ±≈α±≥ⁿ■, ≥σ∩σ≡ⁿ Γ√ ±∞εµσ≥σ ∩≡Φßσπ-
- φ≤≥ⁿ Ω ±ε≈ΦφσφΦ■ ∩εΣεßφεπε ΩεΣα ßστ ≈≤Γ±≥Γα ε∩α±σφΦ τα ß≤Σ≤∙σσ!
-
- K^'DrawSurface ≤∩≡ε∙ασ≥± σ∙σ ßεδⁿ°σ, ∩ε≥ε∞≤ ≈≥ε ⌠εφεΓ√Θ ß≤⌠σ≡ ≥σ∩σ≡ⁿ ∞εµφε ταπ≡≤µα≥ⁿ πΣσ ≤πεΣφε, Φ±∩εδⁿτ≤
- DDReLoaBitmap. ╙∩≡ε∙σφφ√Θ DrawSurface ∩≡σΣ±≥αΓδσφ Γ δΦ±≥Φφπσ 32.19.
-
- ╦Φ±≥Φφπ 32.19 DrawSurface ßστ ΩεΣα ε≥≡Φ±εΓΩΦ ⌠εφεΓεΘ ∩εΓσ≡⌡φε±≥Φ.
-
- procedure TFormI ò DrawSurfaces ;
- var ARect : TRect ;
-
- ATopPos : integer ;
- begin
-
- // Γ√ΓεΣ φα ε±φεΓφεσ ∩εδε≥φε.
- ARect := Rect( 0, 0, 640, 480 ) ;
- with PrimaryCanvas do try
- Brush .Color := clBlue ;
- FiliRect( ARect ) ;
- Brush .Style :== bsClear ;
- Font .Name :== * Arial ' ;
- Font. Size :== 24 ;
- Font .Color := clWhite ;
-
- ATopPos :^ ( 480 - TextHeight( 'A* ) ) div 2 ;
- Text0ut( 10, ATopPos, 'Primary surface' ) ;
-
- finally
-
- // ≤ßσΣΦ≥ⁿ± , ≈≥ε ∞√ ±≡ατ≤ µσ ε±ΓεßεΣΦδΦ DC,
- // ∩ε±ΩεδⁿΩ≤ Windows τα∞ε≡αµΦΓασ≥± , ∩εΩα ∞√ ΓδαΣσσ∞ DC.
- Release ;
- end ;
-
- { ταπ≡≤τΦ≥ⁿ Φτεß≡αµσφΦσ Γ ⌠εφεΓ√Θ ß≤⌠σ≡ }
- DDReloadBitmap( BackBuffer, GetBitiilapName ) ;
- end ;
-
- └ ≈≥ε ∩ε ∩εΓεΣ≤ ∩αδΦ≥≡?
-
- ▀ τφαδ, ≈≥ε εß ²≥ε∞ Γ√ εß τα≥σδⁿφε ß√ ∞σφ ±∩≡ε±ΦδΦ! ╒ε≡ε°ε, ∞√ Γ±σ σ∙σ Γ√φ≤µΣσφ√ ≡αßε≥α≥ⁿ ± ∩αδΦ≥≡α∞Φ- ═α±≥αδε
- Γ≡σ∞ ∩≡σΣ±≥αΓΦ≥ⁿ σ∙σ εΣΦφ ╤╬╠-εß·σΩ≥ DirectDraw, ═α ²≥ε≥ ≡ατ ²≥ε lDirectDrawPalette. ▌≥ε≥ ∞αδσφⁿΩΦΘ ∩εδστφ√Θ εß·σΩ≥
- εß±δ≤µΦ≥ ßεδⁿ°Φφ±≥Γε Ωε∞∩εφσφ≥ ∩αδΦ≥≡√, φ± ≤≥≡≤µΣα ²≥Φ∞ φα± ± Γα∞Φ. ─δ ≥επε, ≈≥εß√ Φ±∩εδⁿτεΓα≥ⁿ IDirectDraw, Γ√
-
- 41 6-214
-
-