- Home
·
- Games
·
- How to draw a bitmap image using DirectX
How to draw a bitmap image using DirectX
How to draw a bitmap image using DirectX
API Declarations
Dim Caps As DDSCAPS2
Dim Dx As New DirectX7
Dim DDraw As DirectDraw7
'surfaces
'Primary Surface
Dim ddsPrimary As DirectDrawSurface7
'backbuffer surface
Dim ddsBackBuffer As DirectDrawSurface7
'Background Surfaces and RECTs
Dim Background As DirectDrawSurface7
Dim s640x480rect As RECT 'RECT Variable
'surface descriptions
Dim ddsdPrimary As DDSURFACEDESC2
Dim ddsdBackBuffer As DDSURFACEDESC2
Rate How to draw a bitmap image using DirectX
(1(1 Vote))
End
End Sub
Private Sub Form_Load()
'Create DirectDraw
Set DDraw = Dx.DirectDrawCreate("")
'show the form
Form1.Show
DDraw.SetCooperativeLevel Form1.hWnd, DDSCL_FULLSCREEN Or DDSCL_ALLOWMODEX Or DDSCL_EXCLUSIVE
DDraw.SetDisplayMode 640, 480, 16, 0, DDSDM_DEFAULT
ddsdPrimary.lFlags = DDSD_CAPS Or DDSD_BACKBUFFERCOUNT
ddsdPrimary.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE Or DDSCAPS_FLIP Or DDSCAPS_COMPLEX
ddsdPrimary.lBackBufferCount = 1 '1 back buffer
Set ddsPrimary = DDraw.CreateSurface(ddsdPrimary)
Caps.lCaps = DDSCAPS_BACKBUFFER
Set ddsBackBuffer = ddsPrimary.GetAttachedSurface(Caps)
ddsBackBuffer.GetSurfaceDesc ddsdBackBuffer
DDCreateSurface Background, App.Path & "\map.bmp", s640x480rect
ddsBackBuffer.BltColorFill s640x480rect, RGB(0, 0, 0)
ddsBackBuffer.BltFast 0, 0, Background, s640x480rect, DDBLTFAST_WAIT
ddsPrimary.Flip Nothing, DDFLIP_WAIT
End Sub
Private Sub DDCreateSurface(surface As DirectDrawSurface7, BmpPath As String, RECTVar As RECT, Optional TransCol As Integer = 0, Optional UseSystemMemory As Boolean = True)
Dim Tempddsd As DDSURFACEDESC2
Set surface = Nothing
'load sprite
Tempddsd.lFlags = DDSD_CAPS
Tempddsd.ddsCaps.lCaps = DDSCAPS_SYSTEMMEMORY Or DDSCAPS_OFFSCREENPLAIN
Set surface = DDraw.CreateSurfaceFromFile(BmpPath, Tempddsd)
'Tempddsd.ddsCaps.lCaps = DDSCAPS_SYSTEMMEMORY Or DDSCAPS_OFFSCREENPLAIN
'set the RECT dimensions
RECTVar.Right = Tempddsd.lWidth
RECTVar.Bottom = Tempddsd.lHeight
'color key
Dim ddckColourKey As DDCOLORKEY
ddckColourKey.low = TransCol
ddckColourKey.high = TransCol
surface.SetColorKey DDCKEY_SRCBLT, ddckColourKey
End Sub
How to draw a bitmap image using DirectX Comments
No comments yet — be the first to post one!
Post a Comment