各位大虾请问用汇编写游戏需要那些知识,介绍几个好的网站,谢谢!!!

czaoth 2001-09-07 02:50:32
...全文
190 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
china_boy 2001-09-10
  • 打赏
  • 举报
回复
呵呵!如果学习汇编是为了编写游戏那。。。
PP_Sky 2001-09-09
  • 打赏
  • 举报
回复
以前有人用汇编写游戏不奇怪,不过现在是不是真的有人整个游戏都是用汇编写的呢??????????????????????????????????????
CNer 2001-09-08
  • 打赏
  • 举报
回复
哇,好象没必要吧?
vBin 2001-09-07
  • 打赏
  • 举报
回复
也是用DirectDraw。
不过,用汇编写比较麻烦一些的。

以下是一个简单的DIRECTDRAW程序
---------------------------------
;---------------------------------------;
; DDRAW Plasma Demo ;
; ;
; Author : X-Calibre ;
; ASM version : Ewald Snel ;
; Copyright (C) 1999, Diamond Crew ;
; ;
; http://here.is/diamond/ ;
;---------------------------------------;

; View with TAB size 4

TITLE WIN32ASM EXAMPLE
.486
.MODEL FLAT, STDCALL
option casemap :none

;-----------------------------------------------------------;
; WIN32ASM / DDRAW PLASMA DEMO ;
;-----------------------------------------------------------;

INCLUDE \masm32\include\windows.inc
INCLUDE \masm32\include\gdi32.inc
INCLUDE \masm32\include\kernel32.inc
INCLUDE \masm32\include\user32.inc
INCLUDE \masm32\include\ddraw.inc

INCLUDELIB \masm32\lib\gdi32.lib
INCLUDELIB \masm32\lib\kernel32.lib
INCLUDELIB \masm32\lib\user32.lib
INCLUDELIB \masm32\lib\ddraw.lib

WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD
WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
nextFrame PROTO
initPlasma PROTO

RETURN MACRO arg
IFNB <arg>
mov eax, arg
ENDIF
ret
ENDM

LRETURN MACRO arg
IFNB <arg>
mov eax, arg
ENDIF
leave
ret
ENDM

FATAL MACRO msg
LOCAL @@msg
.DATA
@@msg db msg, 0
.CODE
INVOKE MessageBox, hWnd, ADDR @@msg, ADDR szDisplayName, MB_OK
INVOKE ExitProcess, 0
ENDM


.DATA?
hWnd HWND ? ; surface window
lpDD LPDIRECTDRAW ? ; DDraw object
lpDDSPrimary LPDIRECTDRAWSURFACE ? ; DDraw primary surface
ddsd DDSURFACEDESC <?> ; DDraw surface descriptor
ddscaps DDSCAPS <?> ; DDraw capabilities

palette dd 256 dup (?)
table dd 512 dup (?)

.DATA
ddwidth EQU 320 ; display mode width
ddheight EQU 200 ; display mode height
ddbpp EQU 32 ; display mode color depth

phaseA dd 0
phaseB dd 0

factor1 EQU -2
factor2 EQU -1
factor3 EQU 1
factor4 EQU -2

red REAL4 500.0
green REAL4 320.0
blue REAL4 372.0

scale1 REAL4 2.0
scale2 REAL4 127.5
scale3 REAL4 256.0

szClassName db "DDRAW Plasma Demo", 0 ; class name
szDisplayName EQU <szClassName> ; window name

wc WNDCLASSEX < sizeof WNDCLASSEX, CS_HREDRAW or CS_VREDRAW, offset WndProc, 0, 0, , 0, 0, , 0, offset szClassName, 0 >

.CODE
start:

INVOKE GetModuleHandle, NULL
INVOKE WinMain, eax, NULL, NULL, SW_SHOWDEFAULT
INVOKE ExitProcess, eax



;-----------------------------------------------------------;
; Calculate Next Plasma Frame ;
;-----------------------------------------------------------;

nextFrame PROC
push ebx
push esi
push edi

mov ecx, ddheight ; # of scanlines
mov edi, [ddsd.lpSurface] ; pixel output

@@scanline:
push ecx
push edi

mov esi, [phaseA]
mov edx, [phaseB]
sub esi, ecx
and edx, 0FFh
and esi, 0FFh
mov edx, [table][4*edx][256*4]
mov esi, [table][4*esi] ; [x] + table0[a + y]
sub edx, ecx ; [y] + table1[b]
mov ecx, ddwidth ; [x] --> pixel counter

@@pixel:
and esi, 0FFh
and edx, 0FFh
mov eax, [table][4*esi]
mov ebx, [table][4*edx][256*4]
add eax, ebx
add esi, factor3
shr eax, 1
add edx, factor4
and eax, 0FFh
add edi, 4
mov eax, [palette][4*eax]
dec ecx
mov [edi][-4], eax
jnz @@pixel

pop edi
pop ecx
add edi, [ddsd.lPitch] ; inc. display position
dec ecx
jnz @@scanline

add [phaseA], factor1
add [phaseB], factor2

pop edi
pop esi
pop ebx

ret
nextFrame ENDP


;-----------------------------------------------------------;
; Initalize Plasma Tables ;
;-----------------------------------------------------------;

initPlasma PROC

LOCAL @@i :DWORD
LOCAL @@r :DWORD
LOCAL @@g :DWORD
LOCAL @@b :DWORD
LOCAL temp :DWORD

mov [@@i], 0

.WHILE @@i < 256

mov edx, [@@i]

; Calculate table0 value

fldpi
fimul [@@i]
fmul [scale1]
fdiv [scale3]
fsin
fmul [scale2]
fadd [scale2]
fistp [table][4*edx]

; Calculate table1 value

fldpi
fimul [@@i]
fmul [scale1]
fdiv [scale3]
fcos
fmul [scale2]
fadd [scale2]
fldpi
fmulp st(1), st
fmul [scale1]
fdiv [scale3]
fsin
fmul [scale2]
fadd [scale2]
fistp [table][4*edx][4*256]

; Calculate palette value

xor eax, eax

FOR comp, <red, green, blue>
fldpi
fimul [@@i]
fmul [scale1]
fdiv [comp]
fcos
fmul [scale2]
fadd [scale2]
fistp [temp]
shl eax, 8
or eax, [temp]
ENDM

mov [palette][4*edx] , eax
inc [@@i]

.ENDW

ret
initPlasma ENDP



;-----------------------------------------------------------;
; WinMain ( entry point ) ;
;-----------------------------------------------------------;

WinMain PROC hInst :DWORD,
hPrevInst :DWORD,
CmdLine :DWORD,
CmdShow :DWORD

LOCAL msg :MSG

; Fill WNDCLASSEX structure with required variables

mov eax, [hInst]
mov [wc.hInstance], eax
INVOKE GetStockObject, BLACK_BRUSH
mov [wc.hbrBackground], eax

INVOKE RegisterClassEx, ADDR wc

; Create window at following size

INVOKE CreateWindowEx, 0, ADDR szClassName, ADDR szDisplayName, WS_POPUP, 0, 0, ddwidth, ddheight, NULL, NULL, hInst, NULL
mov [hWnd], eax

INVOKE SetFocus, hWnd
INVOKE ShowCursor, 0

; Initialize display

INVOKE DirectDrawCreate, NULL, ADDR lpDD, NULL
.IF eax != DD_OK
FATAL "Couldn't init DirectDraw"
.ENDIF

DDINVOKE SetCooperativeLevel, lpDD, hWnd, DDSCL_EXCLUSIVE or DDSCL_FULLSCREEN
.IF eax != DD_OK
FATAL "Couldn't set DirectDraw cooperative level"
.ENDIF

DDINVOKE SetDisplayMode, lpDD, ddwidth, ddheight, ddbpp
.IF eax != DD_OK
FATAL "Couldn't set display mode"
.ENDIF

mov [ddsd.dwSize], sizeof DDSURFACEDESC
mov [ddsd.dwFlags], DDSD_CAPS
mov [ddsd.ddsCaps.dwCaps], DDSCAPS_PRIMARYSURFACE
DDINVOKE CreateSurface, lpDD, ADDR ddsd, ADDR lpDDSPrimary, NULL
.IF eax != DD_OK
FATAL "Couldn't create primary surface"
.ENDIF

INVOKE ShowWindow, hWnd, CmdShow

call initPlasma

; Loop until PostQuitMessage is sent

.WHILE 1

INVOKE PeekMessage, ADDR msg, NULL, 0, 0, PM_REMOVE

.IF eax != 0
.IF msg.message == WM_QUIT
INVOKE PostQuitMessage, msg.wParam
.BREAK
.ELSE
INVOKE TranslateMessage, ADDR msg
INVOKE DispatchMessage, ADDR msg
.ENDIF
.ELSE
INVOKE GetFocus

.IF eax == hWnd

mov [ddsd.dwSize], sizeof DDSURFACEDESC
mov [ddsd.dwFlags], DDSD_PITCH

.WHILE 1
DDSINVOKE mLock, lpDDSPrimary, NULL, ADDR ddsd, DDLOCK_WAIT, NULL

.BREAK .IF eax == DD_OK

.IF eax == DDERR_SURFACELOST
DDSINVOKE Restore, lpDDSPrimary
.ELSE
FATAL "Couldn't lock surface"
.ENDIF
.ENDW

DDINVOKE WaitForVerticalBlank, lpDD, DDWAITVB_BLOCKBEGIN, NULL

call nextFrame

DDSINVOKE Unlock, lpDDSPrimary, ddsd.lpSurface

.ENDIF
.ENDIF
.ENDW

DDINVOKE RestoreDisplayMode, lpDD
.IF eax != DD_OK
FATAL "Couldn't restore displaymode"
.ENDIF

INVOKE DestroyWindow, hWnd
.IF eax == NULL
FATAL "Couldn't destroy window"
.ENDIF

.IF lpDD != NULL
.IF lpDDSPrimary != NULL
DDSINVOKE Release, lpDDSPrimary
mov [lpDDSPrimary], NULL
.ENDIF

DDINVOKE Release, lpDD
mov [lpDD], NULL

.ENDIF

LRETURN msg.wParam
WinMain ENDP


;-----------------------------------------------------------;
; Window Proc ( handle events ) ;
;-----------------------------------------------------------;

WndProc PROC hWin :DWORD,
uMsg :DWORD,
wParam :DWORD,
lParam :DWORD

.IF uMsg == WM_KEYDOWN
.IF wParam == VK_ESCAPE
INVOKE PostQuitMessage, NULL
RETURN 0
.ENDIF
.ELSEIF uMsg == WM_DESTROY
INVOKE PostQuitMessage, NULL
RETURN 0
.ENDIF

INVOKE DefWindowProc, hWin, uMsg, wParam, lParam

ret
WndProc ENDP

END start



---------------------------------
DDRAW.INC

;---------------------------------------;
; DDRAW include file ;
; ;
; Author : Ewald Snel ;
; Copyright (C) 1999, Diamond Crew ;
; ;
; http://here.is/diamond/ ;
;---------------------------------------;


STDMETHOD MACRO name, argl :VARARG
LOCAL @tmp_a
LOCAL @tmp_b

@tmp_a TYPEDEF PROTO argl
@tmp_b TYPEDEF PTR @tmp_a
name @tmp_b ?
ENDM

DDINVOKE MACRO func, this, arglist :VARARG
mov eax , [this]
mov eax , [eax]

IFB <arglist>
INVOKE [IDirectDrawVtbl. func][eax], this
ELSE
INVOKE [IDirectDrawVtbl. func][eax], this, arglist
ENDIF
ENDM

DDSINVOKE MACRO func, this, arglist :VARARG
mov eax , [this]
mov eax , [eax]

IFB <arglist>
INVOKE [IDirectDrawSurfaceVtbl. func][eax], this
ELSE
INVOKE [IDirectDrawSurfaceVtbl. func][eax], this, arglist
ENDIF
ENDM



DirectDrawCreate PROTO :DWORD, :DWORD, :DWORD
DirectDrawCreateClipper PROTO :DWORD, :DWORD, :DWORD
DirectDrawEnumerateA PROTO :DWORD, :DWORD
DirectDrawEnumerate EQU <DirectDrawEnumerateA>

EXTERNDEF C CLSID_DirectDraw:GUID
EXTERNDEF C CLSID_DirectDrawClipper:GUID
EXTERNDEF C IID_IDirectDraw:GUID
EXTERNDEF C IID_IDirectDrawSurface:GUID
EXTERNDEF C IID_IDirectDrawPalette:GUID
EXTERNDEF C IID_IDirectDrawClipper:GUID

LPDIRECTDRAW TYPEDEF PTR IDirectDraw
LPDIRECTDRAWSURFACE TYPEDEF PTR IDirectDrawSurface
LPDIRECTDRAWPALETTE TYPEDEF PTR IDirectDrawPalette
LPDIRECTDRAWCLIPPER TYPEDEF PTR IDirectDrawClipper
LPDDFXROP TYPEDEF PTR DDFXROP
LPDDSURFACEDESC TYPEDEF PTR DDSURFACEDESC
LPDDCAPS TYPEDEF PTR DDCAPS
LPDDBLTFX TYPEDEF PTR DDBLTFX
LPDDSCAPS TYPEDEF PTR DDSCAPS
LPDDCOLORKEY TYPEDEF PTR DDCOLORKEY
LPDDOVERLAYFX TYPEDEF PTR DDOVERLAYFX
LPDDPIXELFORMAT TYPEDEF PTR DDPIXELFORMAT
LPDDBLTBATCH TYPEDEF PTR DDBLTBATCH

; windows defines
LPRECT TYPEDEF PTR RECT
LPPALETTEENTRY TYPEDEF PTR PALETTEENTRY
LPRGNDATA TYPEDEF PTR RGNDATA


DDCOLORKEY STRUC
dwColorSpaceLowValue DWORD ?
dwColorSpaceHighValue DWORD ?
DDCOLORKEY ENDS


DDBLTFX STRUC
dwSize DWORD ?
dwDDFX DWORD ?
dwROP DWORD ?
dwDDROP DWORD ?
dwRotationAngle DWORD ?
dwZBufferOpCode DWORD ?
dwZBufferLow DWORD ?
dwZBufferHigh DWORD ?
dwZBufferBaseDest DWORD ?
dwZDestConstBitDepth DWORD ?
UNION
dwZDestConst DWORD ?
lpDDSZBufferDest LPDIRECTDRAWSURFACE ?
ENDS
dwZSrcConstBitDepth DWORD ?
UNION
dwZSrcConst DWORD ?
lpDDSZBufferSrc LPDIRECTDRAWSURFACE ?
ENDS
dwAlphaEdgeBlendBitDepth DWORD ?
dwAlphaEdgeBlend DWORD ?
dwReserved DWORD ?
dwAlphaDestConstBitDepth DWORD ?
UNION
dwAlphaDestConst DWORD ?
lpDDSAlphaDest LPDIRECTDRAWSURFACE ?
ENDS
dwAlphaSrcConstBitDepth DWORD ?
UNION
dwAlphaSrcConst DWORD ?
lpDDSAlphaSrc LPDIRECTDRAWSURFACE ?
ENDS
UNION
dwFillColor DWORD ?
dwFillDepth DWORD ?
lpDDSPattern LPDIRECTDRAWSURFACE ?
ENDS
ddckDestColorkey DDCOLORKEY <>
ddckSrcColorkey DDCOLORKEY <>
DDBLTFX ENDS


DDSCAPS STRUC
dwCaps DWORD ?
DDSCAPS ENDS


DDCAPS STRUC
dwSize DWORD ?
dwCaps DWORD ?
dwCaps2 DWORD ?
dwCKeyCaps DWORD ?
dwFXCaps DWORD ?
dwFXAlphaCaps DWORD ?
dwPalCaps DWORD ?
dwSVCaps DWORD ?
dwAlphaBltConstBitDepths DWORD ?
dwAlphaBltPixelBitDepths DWORD ?
dwAlphaBltSurfaceBitDepths DWORD ?
dwAlphaOverlayConstBitDepths DWORD ?
dwAlphaOverlayPixelBitDepths DWORD ?
dwAlphaOverlaySurfaceBitDepths DWORD ?
dwZBufferBitDepths DWORD ?
dwVidMemTotal DWORD ?
dwVidMemFree DWORD ?
dwMaxVisibleOverlays DWORD ?
dwCurrVisibleOverlays DWORD ?
dwNumFourCCCodes DWORD ?
dwAlignBoundarySrc DWORD ?
dwAlignSizeSrc DWORD ?
dwAlignBoundaryDest DWORD ?
dwAlignSizeDest DWORD ?
dwAlignStrideAlign DWORD ?
dwRops DWORD 8 DUP (?)
ddsCaps DDSCAPS <>
dwMinOverlayStretch DWORD ?
dwMaxOverlayStretch DWORD ?
dwMinLiveVideoStretch DWORD ?
dwMaxLiveVideoStretch DWORD ?
dwMinHwCodecStretch DWORD ?
dwMaxHwCodecStretch DWORD ?
dwReserved1 DWORD ?
dwReserved2 DWORD ?
dwReserved3 DWORD ?
dwSVBCaps DWORD ?
dwSVBCKeyCaps DWORD ?
dwSVBFXCaps DWORD ?
dwSVBRops DWORD 8 DUP (?)
dwVSBCaps DWORD ?
dwVSBCKeyCaps DWORD ?
dwVSBFXCaps DWORD ?
dwVSBRops DWORD 8 DUP (?)
dwSSBCaps DWORD ?
dwSSBCKeyCaps DWORD ?
dwSSBFXCaps DWORD ?
dwSSBRops DWORD 8 DUP (?)
dwReserved4 DWORD ?
dwReserved5 DWORD ?
dwReserved6 DWORD ?
DDCAPS ENDS


DDOVERLAYFX STRUC
dwSize DWORD ?
dwAlphaEdgeBlendBitDepth DWORD ?
dwAlphaEdgeBlend DWORD ?
dwReserved DWORD ?
dwAlphaDestConstBitDepth DWORD ?
UNION
dwAlphaDestConst DWORD ?
lpDDSAlphaDest LPDIRECTDRAWSURFACE ?
ENDS
dwAlphaSrcConstBitDepth DWORD ?
UNION
dwAlphaSrcConst DWORD ?
lpDDSAlphaSrc LPDIRECTDRAWSURFACE ?
ENDS
dckDestColorkey DDCOLORKEY <>
dckSrcColorkey DDCOLORKEY <>
dwDDFX DWORD ?
dwFlags DWORD ?
DDOVERLAYFX ENDS


DDPIXELFORMAT STRUC
dwSize DWORD ?
dwFlags DWORD ?
dwFourCC DWORD ?
UNION
dwRGBBitCount DWORD ?
dwYUVBitCount DWORD ?
dwZBufferBitDepth DWORD ?
dwAlphaBitDepth DWORD ?
ENDS
UNION
dwRBitMask DWORD ?
dwYBitMask DWORD ?
ENDS
UNION
dwGBitMask DWORD ?
dwUBitMask DWORD ?
ENDS
UNION
dwBBitMask DWORD ?
dwVBitMask DWORD ?
ENDS
UNION
dwRGBAlphaBitMask DWORD ?
dwYUVAlphaBitMask DWORD ?
ENDS
DDPIXELFORMAT ENDS


DDSURFACEDESC STRUC
dwSize DWORD ?
dwFlags DWORD ?
dwHeight DWORD ?
dwWidth DWORD ?
lPitch DWORD ?
dwBackBufferCount DWORD ?
UNION
dwMipMapCount DWORD ?
dwZBufferBitDepth DWORD ?
dwRefreshRate DWORD ?
ENDS
dwAlphaBitDepth DWORD ?
dwReserved DWORD ?
lpSurface DWORD ?
ddckCKDestOverlay DDCOLORKEY <>
ddckCKDestBlt DDCOLORKEY <>
ddckCKSrcOverlay DDCOLORKEY <>
ddckCKSrcBlt DDCOLORKEY <>
ddpfPixelFormat DDPIXELFORMAT <>
ddsCaps DDSCAPS <>
DDSURFACEDESC ENDS


DDBLTBATCH STRUC
lprDest LPRECT ?
lpDDSSrc LPDIRECTDRAWSURFACE ?
lprSrc LPRECT ?
dwFlags DWORD ?
lpDDBltFx LPDDBLTFX ?
DDBLTBATCH ENDS




IDirectDrawVtbl STRUC
; IUnknown methods
STDMETHOD QueryInterface, :PTR IDirectDraw, :PTR, :PTR PTR
STDMETHOD AddRef, :PTR IDirectDraw
STDMETHOD Release, :PTR IDirectDraw
; IDirectDraw methods
STDMETHOD Compact, :PTR IDirectDraw
STDMETHOD CreateClipper, :PTR IDirectDraw, :DWORD, :PTR LPDIRECTDRAWCLIPPER, :PTR IUnknown
STDMETHOD CreatePalette, :PTR IDirectDraw, :DWORD, :LPPALETTEENTRY, :PTR LPDIRECTDRAWPALETTE, :PTR IUnknown
STDMETHOD CreateSurface, :PTR IDirectDraw, :LPDDSURFACEDESC, :PTR LPDIRECTDRAWSURFACE, :PTR IUnknown
STDMETHOD DuplicateSurface, :PTR IDirectDraw, :LPDIRECTDRAWSURFACE, :PTR LPDIRECTDRAWSURFACE
STDMETHOD EnumDisplayModes, :PTR IDirectDraw, :DWORD, :LPDDSURFACEDESC, :PTR , :PTR
STDMETHOD EnumSurfaces, :PTR IDirectDraw, :DWORD, :LPDDSURFACEDESC, :PTR , :PTR
STDMETHOD FlipToGDISurface, :PTR IDirectDraw
STDMETHOD GetCaps, :PTR IDirectDraw, :LPDDCAPS, :LPDDCAPS
STDMETHOD GetDisplayMode, :PTR IDirectDraw, :LPDDSURFACEDESC
STDMETHOD GetFourCCCodes, :PTR IDirectDraw, :PTR DWORD, :PTR DWORD
STDMETHOD GetGDISurface, :PTR IDirectDraw, :PTR LPDIRECTDRAWSURFACE
STDMETHOD GetMonitorFrequency, :PTR IDirectDraw, :DWORD
STDMETHOD GetScanLine, :PTR IDirectDraw, :DWORD
STDMETHOD GetVerticalBlankStatus, :PTR IDirectDraw, :PTR SWORD
STDMETHOD Initialize, :PTR IDirectDraw, :PTR GUID
STDMETHOD RestoreDisplayMode, :PTR IDirectDraw
STDMETHOD SetCooperativeLevel, :PTR IDirectDraw, :HWND, :DWORD
STDMETHOD SetDisplayMode, :PTR IDirectDraw, :DWORD, :DWORD, :DWORD
STDMETHOD WaitForVerticalBlank, :PTR IDirectDraw, :DWORD, :PTR
IDirectDrawVtbl ENDS


IDirectDrawPaletteVtbl STRUC
; IUnknown methods
STDMETHOD QueryInterface, :PTR IDirectDrawPalette, :PTR, :PTR PTR
STDMETHOD AddRef, :PTR IDirectDrawPalette
STDMETHOD Release, :PTR IDirectDrawPalette
; IDirectDrawPalette methods
STDMETHOD GetCaps, :PTR IDirectDrawPalette, :PTR DWORD
STDMETHOD GetEntries, :PTR IDirectDrawPalette, :DWORD, :DWORD, :DWORD, :LPPALETTEENTRY
STDMETHOD Initialize, :PTR IDirectDrawPalette, :LPDIRECTDRAW, :DWORD, :LPPALETTEENTRY
STDMETHOD SetEntries, :PTR IDirectDrawPalette, :DWORD, :DWORD, :DWORD, :LPPALETTEENTRY
IDirectDrawPaletteVtbl ENDS


IDirectDrawClipperVtbl STRUC
; IUnknown methods
STDMETHOD QueryInterface, :PTR IDirectDrawClipper, :PTR, :PTR PTR
STDMETHOD AddRef, :PTR IDirectDrawClipper
STDMETHOD Release, :PTR IDirectDrawClipper
; IDirectDrawClipper methods
STDMETHOD GetClipList, :PTR IDirectDrawClipper, :LPRECT, :LPRGNDATA, :PTR DWORD
STDMETHOD GetHWnd, :PTR IDirectDrawClipper, :PTR HWND
STDMETHOD Initialize, :PTR IDirectDrawClipper, :LPDIRECTDRAW, :DWORD
STDMETHOD IsClipListChanged, :PTR IDirectDrawClipper, :PTR SWORD
STDMETHOD SetClipList, :PTR IDirectDrawClipper, :LPRGNDATA, :DWORD
STDMETHOD SetHWnd, :PTR IDirectDrawClipper, :DWORD, :HWND
IDirectDrawClipperVtbl ENDS


IDirectDrawSurfaceVtbl STRUC
; IUnknown methods
STDMETHOD QueryInterface, :PTR IDirectDrawSurface, :PTR, :PTR PTR
STDMETHOD AddRef, :PTR IDirectDrawSurface
STDMETHOD Release, :PTR IDirectDrawSurface
; IDirectDrawSurface methods
STDMETHOD AddAttachedSurface, :PTR IDirectDrawSurface, :LPDIRECTDRAWSURFACE
STDMETHOD AddOverlayDirtyRect, :PTR IDirectDrawSurface, :LPRECT
STDMETHOD Blt, :PTR IDirectDrawSurface, :LPRECT, :LPDIRECTDRAWSURFACE, :LPRECT, :DWORD, :LPDDBLTFX
STDMETHOD BltBatch, :PTR IDirectDrawSurface, :LPDDBLTBATCH, :DWORD, :DWORD
STDMETHOD BltFast, :PTR IDirectDrawSurface, :DWORD, :DWORD, :LPDIRECTDRAWSURFACE, :LPRECT, :DWORD
STDMETHOD DeleteAttachedSurface, :PTR IDirectDrawSurface, :DWORD, :LPDIRECTDRAWSURFACE
STDMETHOD EnumAttachedSurfaces, :PTR IDirectDrawSurface, :PTR , :PTR
STDMETHOD EnumOverlayZOrders, :PTR IDirectDrawSurface, :DWORD, :PTR , :PTR
STDMETHOD Flip, :PTR IDirectDrawSurface, :LPDIRECTDRAWSURFACE, :DWORD
STDMETHOD GetAttachedSurface, :PTR IDirectDrawSurface, :LPDDSCAPS, :PTR LPDIRECTDRAWSURFACE
STDMETHOD GetBltStatus, :PTR IDirectDrawSurface, :DWORD
STDMETHOD GetCaps, :PTR IDirectDrawSurface, :LPDDSCAPS
STDMETHOD GetClipper, :PTR IDirectDrawSurface, :PTR LPDIRECTDRAWCLIPPER
STDMETHOD GetColorKey, :PTR IDirectDrawSurface, :DWORD, :LPDDCOLORKEY
STDMETHOD GetDC, :PTR IDirectDrawSurface, :PTR HDC
STDMETHOD GetFlipStatus, :PTR IDirectDrawSurface, :DWORD
STDMETHOD GetOverlayPosition, :PTR IDirectDrawSurface, :PTR DWORD, :PTR DWORD
STDMETHOD GetPalette, :PTR IDirectDrawSurface, :PTR LPDIRECTDRAWPALETTE
STDMETHOD GetPixelFormat, :PTR IDirectDrawSurface, :LPDDPIXELFORMAT
STDMETHOD GetSurfaceDesc, :PTR IDirectDrawSurface, :LPDDSURFACEDESC
STDMETHOD Initialize, :PTR IDirectDrawSurface, :LPDIRECTDRAW, :LPDDSURFACEDESC
STDMETHOD IsLost, :PTR IDirectDrawSurface
STDMETHOD mLock, :PTR IDirectDrawSurface, :LPRECT, :LPDDSURFACEDESC, :DWORD, :PTR
STDMETHOD ReleaseDC, :PTR IDirectDrawSurface, :HDC
STDMETHOD Restore, :PTR IDirectDrawSurface
STDMETHOD SetClipper, :PTR IDirectDrawSurface, :LPDIRECTDRAWCLIPPER
STDMETHOD SetColorKey, :PTR IDirectDrawSurface, :DWORD, :LPDDCOLORKEY
STDMETHOD SetOverlayPosition, :PTR IDirectDrawSurface, :SDWORD, :SDWORD
STDMETHOD SetPalette, :PTR IDirectDrawSurface, :LPDIRECTDRAWPALETTE
STDMETHOD Unlock, :PTR IDirectDrawSurface, :PTR
STDMETHOD UpdateOverlay, :PTR IDirectDrawSurface, :LPRECT, :LPDIRECTDRAWSURFACE, :LPRECT, :DWORD, :LPDDOVERLAYFX
STDMETHOD UpdateOverlayDisplay, :PTR IDirectDrawSurface, :DWORD
STDMETHOD UpdateOverlayZOrder, :PTR IDirectDrawSurface, :DWORD, :LPDIRECTDRAWSURFACE
IDirectDrawSurfaceVtbl ENDS


IDirectDraw STRUC
lpVtbl DWORD ?
IDirectDraw ENDS

IDirectDrawPalette STRUC
lpVtbl DWORD ?
IDirectDrawPalette ENDS

IDirectDrawClipper STRUC
lpVtbl DWORD ?
IDirectDrawClipper ENDS

IDirectDrawSurface STRUC
lpVtbl DWORD ?
IDirectDrawSurface ENDS



; Direct Draw Capability Flags
DDSD_CAPS EQU 000000001h
DDSD_HEIGHT EQU 000000002h
DDSD_WIDTH EQU 000000004h
DDSD_PITCH EQU 000000008h
DDSD_BACKBUFFERCOUNT EQU 000000020h
DDSD_ZBUFFERBITDEPTH EQU 000000040h
DDSD_ALPHABITDEPTH EQU 000000080h
DDSD_PIXELFORMAT EQU 000001000h
DDSD_CKDESTOVERLAY EQU 000002000h
DDSD_CKDESTBLT EQU 000004000h
DDSD_CKSRCOVERLAY EQU 000008000h
DDSD_CKSRCBLT EQU 000010000h
DDSD_MIPMAPCOUNT EQU 000020000h
DDSD_REFRESHRATE EQU 000040000h
DDSD_ALL EQU 00007f9eeh ; all input field are valid

; DIRECTDRAWSURFACE CAPABILITY FLAGS
DDSCAPS_3D EQU 000000001h
DDSCAPS_ALPHA EQU 000000002h
DDSCAPS_BACKBUFFER EQU 000000004h
DDSCAPS_COMPLEX EQU 000000008h
DDSCAPS_FLIP EQU 000000010h
DDSCAPS_FRONTBUFFER EQU 000000020h
DDSCAPS_OFFSCREENPLAIN EQU 000000040h
DDSCAPS_OVERLAY EQU 000000080h
DDSCAPS_PALETTE EQU 000000100h
DDSCAPS_PRIMARYSURFACE EQU 000000200h
DDSCAPS_PRIMARYSURFACELEFT EQU 000000400h
DDSCAPS_SYSTEMMEMORY EQU 000000800h
DDSCAPS_TEXTURE EQU 000001000h
DDSCAPS_3DDEVICE EQU 000002000h
DDSCAPS_VIDEOMEMORY EQU 000004000h
DDSCAPS_VISIBLE EQU 000008000h
DDSCAPS_WRITEONLY EQU 000010000h
DDSCAPS_ZBUFFER EQU 000020000h
DDSCAPS_OWNDC EQU 000040000h
DDSCAPS_LIVEVIDEO EQU 000080000h
DDSCAPS_HWCODEC EQU 000100000h
DDSCAPS_MODEX EQU 000200000h
DDSCAPS_MIPMAP EQU 000400000h
DDSCAPS_ALLOCONLOAD EQU 004000000h

; DIRECTDRAW DRIVER CAPABILITY FLAGS
DDCAPS_3D EQU 000000001h
DDCAPS_ALIGNBOUNDARYDEST EQU 000000002h
DDCAPS_ALIGNSIZEDEST EQU 000000004h
DDCAPS_ALIGNBOUNDARYSRC EQU 000000008h
DDCAPS_ALIGNSIZESRC EQU 000000010h
DDCAPS_ALIGNSTRIDE EQU 000000020h
DDCAPS_BLT EQU 000000040h
DDCAPS_BLTQUEUE EQU 000000080h
DDCAPS_BLTFOURCC EQU 000000100h
DDCAPS_BLTSTRETCH EQU 000000200h
DDCAPS_GDI EQU 000000400h
DDCAPS_OVERLAY EQU 000000800h
DDCAPS_OVERLAYCANTCLIP EQU 000001000h
DDCAPS_OVERLAYFOURCC EQU 000002000h
DDCAPS_OVERLAYSTRETCH EQU 000004000h
DDCAPS_PALETTE EQU 000008000h
DDCAPS_PALETTEVSYNC EQU 000010000h
DDCAPS_READSCANLINE EQU 000020000h
DDCAPS_STEREOVIEW EQU 000040000h
DDCAPS_VBI EQU 000080000h
DDCAPS_ZBLTS EQU 000100000h
DDCAPS_ZOVERLAYS EQU 000200000h
DDCAPS_COLORKEY EQU 000400000h
DDCAPS_ALPHA EQU 000800000h
DDCAPS_COLORKEYHWASSIST EQU 001000000h
DDCAPS_NOHARDWARE EQU 002000000h
DDCAPS_BLTCOLORFILL EQU 004000000h
DDCAPS_BANKSWITCHED EQU 008000000h
DDCAPS_BLTDEPTHFILL EQU 010000000h
DDCAPS_CANCLIP EQU 020000000h
DDCAPS_CANCLIPSTRETCHED EQU 040000000h
DDCAPS_CANBLTSYSMEM EQU 080000000h

; DIRECTDRAW FX ALPHA CAPABILITY FLAGS
DDFXALPHACAPS_BLTALPHAEDGEBLEND EQU 000000001h
DDFXALPHACAPS_BLTALPHAPIXELS EQU 000000002h
DDFXALPHACAPS_BLTALPHAPIXELSNEG EQU 000000004h
DDFXALPHACAPS_BLTALPHASURFACES EQU 000000008h
DDFXALPHACAPS_BLTALPHASURFACESNEG EQU 000000010h
DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND EQU 000000020h
DDFXALPHACAPS_OVERLAYALPHAPIXELS EQU 000000040h
DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG EQU 000000080h
DDFXALPHACAPS_OVERLAYALPHASURFACES EQU 000000100h
DDFXALPHACAPS_OVERLAYALPHASURFACESNEG EQU 000000200h

; DIRECTDRAW FX CAPABILITY FLAGS
DDFXCAPS_BLTARITHSTRETCHY EQU 000000020h
DDFXCAPS_BLTARITHSTRETCHYN EQU 000000010h
DDFXCAPS_BLTMIRRORLEFTRIGHT EQU 000000040h
DDFXCAPS_BLTMIRRORUPDOWN EQU 000000080h
DDFXCAPS_BLTROTATION EQU 000000100h
DDFXCAPS_BLTROTATION90 EQU 000000200h
DDFXCAPS_BLTSHRINKX EQU 000000400h
DDFXCAPS_BLTSHRINKXN EQU 000000800h
DDFXCAPS_BLTSHRINKY EQU 000001000h
DDFXCAPS_BLTSHRINKYN EQU 000002000h
DDFXCAPS_BLTSTRETCHX EQU 000004000h
DDFXCAPS_BLTSTRETCHXN EQU 000008000h
DDFXCAPS_BLTSTRETCHY EQU 000010000h
DDFXCAPS_BLTSTRETCHYN EQU 000020000h
DDFXCAPS_OVERLAYARITHSTRETCHY EQU 000040000h
DDFXCAPS_OVERLAYARITHSTRETCHYN EQU 000000008h
DDFXCAPS_OVERLAYSHRINKX EQU 000080000h
DDFXCAPS_OVERLAYSHRINKXN EQU 000100000h
DDFXCAPS_OVERLAYSHRINKY EQU 000200000h
DDFXCAPS_OVERLAYSHRINKYN EQU 000400000h
DDFXCAPS_OVERLAYSTRETCHX EQU 000800000h
DDFXCAPS_OVERLAYSTRETCHXN EQU 001000000h
DDFXCAPS_OVERLAYSTRETCHY EQU 002000000h
DDFXCAPS_OVERLAYSTRETCHYN EQU 004000000h
DDFXCAPS_OVERLAYMIRRORLEFTRIGHT EQU 008000000h
DDFXCAPS_OVERLAYMIRRORUPDOWN EQU 010000000h

; DIRECTDRAW STEREO VIEW CAPABILITIES
DDSVCAPS_ENIGMA EQU 000000001h
DDSVCAPS_FLICKER EQU 000000002h
DDSVCAPS_REDBLUE EQU 000000004h
DDSVCAPS_SPLIT EQU 000000008h

; DIRECTDRAWPALETTE CAPABILITIES
DDPCAPS_4BIT EQU 000000001h
DDPCAPS_8BITENTRIES EQU 000000002h
DDPCAPS_8BIT EQU 000000004h
DDPCAPS_INITIALIZE EQU 000000008h
DDPCAPS_PRIMARYSURFACE EQU 000000010h
DDPCAPS_PRIMARYSURFACELEFT EQU 000000020h
DDPCAPS_ALLOW256 EQU 000000040h
DDPCAPS_VSYNC EQU 000000080h
DDPCAPS_1BIT EQU 000000100h
DDPCAPS_2BIT EQU 000000200h

; DIRECTDRAW BITDEPTH CONSTANTS
DDBD_1 EQU 000004000h
DDBD_2 EQU 000002000h
DDBD_4 EQU 000001000h
DDBD_8 EQU 000000800h
DDBD_16 EQU 000000400h
DDBD_24 EQU 000000200h
DDBD_32 EQU 000000100h

; DIRECTDRAWSURFACE SET/GET COLOR KEY FLAGS
DDCKEY_COLORSPACE EQU 000000001h
DDCKEY_DESTBLT EQU 000000002h
DDCKEY_DESTOVERLAY EQU 000000004h
DDCKEY_SRCBLT EQU 000000008h
DDCKEY_SRCOVERLAY EQU 000000010h

; DIRECTDRAW COLOR KEY CAPABILITY FLAGS
DDCKEYCAPS_DESTBLT EQU 000000001h
DDCKEYCAPS_DESTBLTCLRSPACE EQU 000000002h
DDCKEYCAPS_DESTBLTCLRSPACEYUV EQU 000000004h
DDCKEYCAPS_DESTBLTYUV EQU 000000008h
DDCKEYCAPS_DESTOVERLAY EQU 000000010h
DDCKEYCAPS_DESTOVERLAYCLRSPACE EQU 000000020h
DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV EQU 000000040h
DDCKEYCAPS_DESTOVERLAYONEACTIVE EQU 000000080h
DDCKEYCAPS_DESTOVERLAYYUV EQU 000000100h
DDCKEYCAPS_SRCBLT EQU 000000200h
DDCKEYCAPS_SRCBLTCLRSPACE EQU 000000400h
DDCKEYCAPS_SRCBLTCLRSPACEYUV EQU 000000800h
DDCKEYCAPS_SRCBLTYUV EQU 000001000h
DDCKEYCAPS_SRCOVERLAY EQU 000002000h
DDCKEYCAPS_SRCOVERLAYCLRSPACE EQU 000004000h
DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV EQU 000008000h
DDCKEYCAPS_SRCOVERLAYONEACTIVE EQU 000010000h
DDCKEYCAPS_SRCOVERLAYYUV EQU 000020000h
DDCKEYCAPS_NOCOSTOVERLAY EQU 000040000h

; DIRECTDRAW PIXELFORMAT FLAGS
DDPF_ALPHAPIXELS EQU 000000001h
DDPF_ALPHA EQU 000000002h
DDPF_FOURCC EQU 000000004h
DDPF_PALETTEINDEXED4 EQU 000000008h
DDPF_PALETTEINDEXEDTO8 EQU 000000010h
DDPF_PALETTEINDEXED8 EQU 000000020h
DDPF_RGB EQU 000000040h
DDPF_COMPRESSED EQU 000000080h
DDPF_RGBTOYUV EQU 000000100h
DDPF_YUV EQU 000000200h
DDPF_ZBUFFER EQU 000000400h
DDPF_PALETTEINDEXED1 EQU 000000800h
DDPF_PALETTEINDEXED2 EQU 000001000h

; DIRECTDRAW ENUMSURFACES FLAGS
DDENUMSURFACES_ALL EQU 000000001h
DDENUMSURFACES_MATCH EQU 000000002h
DDENUMSURFACES_NOMATCH EQU 000000004h
DDENUMSURFACES_CANBECREATED EQU 000000008h
DDENUMSURFACES_DOESEXIST EQU 000000010h

; DIRECTDRAW ENUMDISPLAYMODES FLAGS
DDEDM_REFRESHRATES EQU 000000001h

; DIRECTDRAW SETCOOPERATIVELEVEL FLAGS
DDSCL_FULLSCREEN EQU 000000001h
DDSCL_ALLOWREBOOT EQU 000000002h
DDSCL_NOWINDOWCHANGES EQU 000000004h
DDSCL_NORMAL EQU 000000008h
DDSCL_EXCLUSIVE EQU 000000010h
DDSCL_ALLOWMODEX EQU 000000040h

; DIRECTDRAW BLT FLAGS
DDBLT_ALPHADEST EQU 000000001h
DDBLT_ALPHADESTCONSTOVERRIDE EQU 000000002h
DDBLT_ALPHADESTNEG EQU 000000004h
DDBLT_ALPHADESTSURFACEOVERRIDE EQU 000000008h
DDBLT_ALPHAEDGEBLEND EQU 000000010h
DDBLT_ALPHASRC EQU 000000020h
DDBLT_ALPHASRCCONSTOVERRIDE EQU 000000040h
DDBLT_ALPHASRCNEG EQU 000000080h
DDBLT_ALPHASRCSURFACEOVERRIDE EQU 000000100h
DDBLT_ASYNC EQU 000000200h
DDBLT_COLORFILL EQU 000000400h
DDBLT_DDFX EQU 000000800h
DDBLT_DDROPS EQU 000001000h
DDBLT_KEYDEST EQU 000002000h
DDBLT_KEYDESTOVERRIDE EQU 000004000h
DDBLT_KEYSRC EQU 000008000h
DDBLT_KEYSRCOVERRIDE EQU 000010000h
DDBLT_ROP EQU 000020000h
DDBLT_ROTATIONANGLE EQU 000040000h
DDBLT_ZBUFFER EQU 000080000h
DDBLT_ZBUFFERDESTCONSTOVERRIDE EQU 000100000h
DDBLT_ZBUFFERDESTOVERRIDE EQU 000200000h
DDBLT_ZBUFFERSRCCONSTOVERRIDE EQU 000400000h
DDBLT_ZBUFFERSRCOVERRIDE EQU 000800000h
DDBLT_WAIT EQU 001000000h
DDBLT_DEPTHFILL EQU 002000000h

; BLTFAST FLAGS
DDBLTFAST_NOCOLORKEY EQU 000000000h
DDBLTFAST_SRCCOLORKEY EQU 000000001h
DDBLTFAST_DESTCOLORKEY EQU 000000002h
DDBLTFAST_WAIT EQU 000000010h

; FLIP FLAGS
DDFLIP_WAIT EQU 000000001h

; DIRECTDRAW SURFACE OVERLAY FLAGS
DDOVER_ALPHADEST EQU 000000001h
DDOVER_ALPHADESTCONSTOVERRIDE EQU 000000002h
DDOVER_ALPHADESTNEG EQU 000000004h
DDOVER_ALPHADESTSURFACEOVERRIDE EQU 000000008h
DDOVER_ALPHAEDGEBLEND EQU 000000010h
DDOVER_ALPHASRC EQU 000000020h
DDOVER_ALPHASRCCONSTOVERRIDE EQU 000000040h
DDOVER_ALPHASRCNEG EQU 000000080h
DDOVER_ALPHASRCSURFACEOVERRIDE EQU 000000100h
DDOVER_HIDE EQU 000000200h
DDOVER_KEYDEST EQU 000000400h
DDOVER_KEYDESTOVERRIDE EQU 000000800h
DDOVER_KEYSRC EQU 000001000h
DDOVER_KEYSRCOVERRIDE EQU 000002000h
DDOVER_SHOW EQU 000004000h
DDOVER_ADDDIRTYRECT EQU 000008000h
DDOVER_REFRESHDIRTYRECTS EQU 000010000h
DDOVER_REFRESHALL EQU 000020000h
DDOVER_DDFX EQU 000080000h

; DIRECTDRAWSURFACE LOCK FLAGS
DDLOCK_SURFACEMEMORYPTR EQU 000000000h
DDLOCK_WAIT EQU 000000001h
DDLOCK_EVENT EQU 000000002h
DDLOCK_READONLY EQU 000000010h
DDLOCK_WRITEONLY EQU 000000020h

; DIRECTDRAWSURFACE BLT FX FLAGS
DDBLTFX_ARITHSTRETCHY EQU 000000001h
DDBLTFX_MIRRORLEFTRIGHT EQU 000000002h
DDBLTFX_MIRRORUPDOWN EQU 000000004h
DDBLTFX_NOTEARING EQU 000000008h
DDBLTFX_ROTATE180 EQU 000000010h
DDBLTFX_ROTATE270 EQU 000000020h
DDBLTFX_ROTATE90 EQU 000000040h
DDBLTFX_ZBUFFERRANGE EQU 000000080h
DDBLTFX_ZBUFFERBASEDEST EQU 000000100h

; DIRECTDRAWSURFACE OVERLAY FX FLAGS
DDOVERFX_ARITHSTRETCHY EQU 000000001h
DDOVERFX_MIRRORLEFTRIGHT EQU 000000002h
DDOVERFX_MIRRORUPDOWN EQU 000000004h

; DIRECTDRAW WAITFORVERTICALBLANK FLAGS
DDWAITVB_BLOCKBEGIN EQU 000000001h
DDWAITVB_BLOCKBEGINEVENT EQU 000000002h
DDWAITVB_BLOCKEND EQU 000000004h

; DIRECTDRAW GETFLIPSTATUS FLAGS
DDGFS_CANFLIP EQU 000000001h
DDGFS_ISFLIPDONE EQU 000000002h

; DIRECTDRAW GETBLTSTATUS FLAGS
DDGBS_CANBLT EQU 000000001h
DDGBS_ISBLTDONE EQU 000000002h

; DIRECTDRAW ENUMOVERLAYZORDER FLAGS
DDENUMOVERLAYZ_BACKTOFRONT EQU 000000000h
DDENUMOVERLAYZ_FRONTTOBACK EQU 000000001h

; DIRECTDRAW UPDATEOVERLAYZORDER FLAGS
DDOVERZ_SENDTOFRONT EQU 000000000h
DDOVERZ_SENDTOBACK EQU 000000001h
DDOVERZ_MOVEFORWARD EQU 000000002h
DDOVERZ_MOVEBACKWARD EQU 000000003h
DDOVERZ_INSERTINFRONTOF EQU 000000004h
DDOVERZ_INSERTINBACKOF EQU 000000005h


; DIRECTDRAW RETURN CODES

; Issued by: DirectDraw Commands and all callbacks
DD_OK EQU 0 ; Status is OK

; DIRECTDRAW ENUMCALLBACK RETURN VALUES
DDENUMRET_CANCEL EQU 0 ; stop the enumeration
DDENUMRET_OK EQU 1 ; continue the enumeration

; DIRECTDRAW ERRORS
DDERR_ALREADYINITIALIZED EQU 088760005h
DDERR_CANNOTATTACHSURFACE EQU 08876000ah
DDERR_CANNOTDETACHSURFACE EQU 088760014h
DDERR_CURRENTLYNOTAVAIL EQU 088760028h
DDERR_EXCEPTION EQU 088760037h
DDERR_GENERIC EQU 080004005h
DDERR_HEIGHTALIGN EQU 08876005ah
DDERR_INCOMPATIBLEPRIMARY EQU 08876005fh
DDERR_INVALIDCAPS EQU 088760064h
DDERR_INVALIDCLIPLIST EQU 08876006eh
DDERR_INVALIDMODE EQU 088760078h
DDERR_INVALIDOBJECT EQU 088760082h
DDERR_INVALIDPARAMS EQU 080070057h
DDERR_INVALIDPIXELFORMAT EQU 088760091h
DDERR_INVALIDRECT EQU 088760096h
DDERR_LOCKEDSURFACES EQU 0887600a0h
DDERR_NO3D EQU 0887600aah
DDERR_NOALPHAHW EQU 0887600b4h
DDERR_NOCLIPLIST EQU 0887600cdh
DDERR_NOCOLORCONVHW EQU 0887600d2h
DDERR_NOCOOPERATIVELEVELSET EQU 0887600d4h
DDERR_NOCOLORKEY EQU 0887600d7h
DDERR_NOCOLORKEYHW EQU 0887600dch
DDERR_NODIRECTDRAWSUPPORT EQU 0887600deh
DDERR_NOEXCLUSIVEMODE EQU 0887600e1h
DDERR_NOFLIPHW EQU 0887600e6h
DDERR_NOGDI EQU 0887600f0h
DDERR_NOMIRRORHW EQU 0887600fah
DDERR_NOTFOUND EQU 0887600ffh
DDERR_NOOVERLAYHW EQU 088760104h
DDERR_NORASTEROPHW EQU 088760118h
DDERR_NOROTATIONHW EQU 088760122h
DDERR_NOSTRETCHHW EQU 088760136h
DDERR_NOT4BITCOLOR EQU 08876013ch
DDERR_NOT4BITCOLORINDEX EQU 08876013dh
DDERR_NOT8BITCOLOR EQU 088760140h
DDERR_NOTEXTUREHW EQU 08876014ah
DDERR_NOVSYNCHW EQU 08876014fh
DDERR_NOZBUFFERHW EQU 088760154h
DDERR_NOZOVERLAYHW EQU 08876015eh
DDERR_OUTOFCAPS EQU 088760168h
DDERR_OUTOFMEMORY EQU 08007000eh
DDERR_OUTOFVIDEOMEMORY EQU 08876017ch
DDERR_OVERLAYCANTCLIP EQU 08876017eh
DDERR_OVERLAYCOLORKEYONLYONEACTIVE EQU 088760180h
DDERR_PALETTEBUSY EQU 088760183h
DDERR_COLORKEYNOTSET EQU 088760190h
DDERR_SURFACEALREADYATTACHED EQU 08876019ah
DDERR_SURFACEALREADYDEPENDENT EQU 0887601a4h
DDERR_SURFACEBUSY EQU 0887601aeh
DDERR_CANTLOCKSURFACE EQU 0887601b3h
DDERR_SURFACEISOBSCURED EQU 0887601b8h
DDERR_SURFACELOST EQU 0887601c2h
DDERR_SURFACENOTATTACHED EQU 0887601cch
DDERR_TOOBIGHEIGHT EQU 0887601d6h
DDERR_TOOBIGSIZE EQU 0887601e0h
DDERR_TOOBIGWIDTH EQU 0887601eah
DDERR_UNSUPPORTED EQU 080004001h
DDERR_UNSUPPORTEDFORMAT EQU 0887601feh
DDERR_UNSUPPORTEDMASK EQU 088760208h
DDERR_VERTICALBLANKINPROGRESS EQU 088760219h
DDERR_WASSTILLDRAWING EQU 08876021ch
DDERR_XALIGN EQU 088760230h
DDERR_INVALIDDIRECTDRAWGUID EQU 088760231h
DDERR_DIRECTDRAWALREADYCREATED EQU 088760232h
DDERR_NODIRECTDRAWHW EQU 088760233h
DDERR_PRIMARYSURFACEALREADYEXISTS EQU 088760234h
DDERR_NOEMULATION EQU 088760235h
DDERR_REGIONTOOSMALL EQU 088760236h
DDERR_CLIPPERISUSINGHWND EQU 088760237h
DDERR_NOCLIPPERATTACHED EQU 088760238h
DDERR_NOHWND EQU 088760239h
DDERR_HWNDSUBCLASSED EQU 08876023ah
DDERR_HWNDALREADYSET EQU 08876023bh
DDERR_NOPALETTEATTACHED EQU 08876023ch
DDERR_NOPALETTEHW EQU 08876023dh
DDERR_BLTFASTCANTCLIP EQU 08876023eh
DDERR_NOBLTHW EQU 08876023fh
DDERR_NODDROPSHW EQU 088760240h
DDERR_OVERLAYNOTVISIBLE EQU 088760241h
DDERR_NOOVERLAYDEST EQU 088760242h
DDERR_INVALIDPOSITION EQU 088760243h
DDERR_NOTAOVERLAYSURFACE EQU 088760244h
DDERR_EXCLUSIVEMODEALREADYSET EQU 088760245h
DDERR_NOTFLIPPABLE EQU 088760246h
DDERR_CANTDUPLICATE EQU 088760247h
DDERR_NOTLOCKED EQU 088760248h
DDERR_CANTCREATEDC EQU 088760249h
DDERR_NODC EQU 08876024ah
DDERR_WRONGMODE EQU 08876024bh
DDERR_IMPLICITLYCREATED EQU 08876024ch
DDERR_NOTPALETTIZED EQU 08876024dh
DDERR_UNSUPPORTEDMODE EQU 08876024eh
DDERR_NOMIPMAPHW EQU 08876024fh
DDERR_INVALIDSURFACETYPE EQU 088760250h
DDERR_DCALREADYCREATED EQU 08876026ch
DDERR_CANTPAGELOCK EQU 088760280h
DDERR_CANTPAGEUNLOCK EQU 088760294h
DDERR_NOTPAGELOCKED EQU 0887602a8h
DDERR_NOTINITIALIZED EQU 0800401f0h

---------------------------
qiangsheng 2001-09-07
  • 打赏
  • 举报
回复
用汇编写游戏?不是你疯了就是我疯了。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧