Hallo,
ich habe mich vor ein paar Monaten mit den Thema Overlay beschäftigt. Allerdings hatte ich damals das Problem, dass er den Overlay nicht inGame anzeigt. Sobald ich ein Spiel starte (bei den meisten Spielen so, eine ausnahme stellt Counter-Strike 1 da), kommt es mir so vor als ob er das Overlay zerstören würde. Leider wusste ich damals nicht genau an was es lag. Ich poste hier mal den Source vll. wird sich jemand dranmachen und den Code fixen

.
Gedacht war das Overlay wie gesagt zur Informationsausgabe in verschiedenen zukünftigen Programmen von mir wie dem kommenden PixPlayer oder für Dem0nZ. Dazu wollte ich das ganze in eine DLL Packen um es ein paar Leuten zu schicken die kein PB nutzen aber trotzdem interesse hätten.
Hier die 3 Codeteile:
ddovrl.pb
Code: Alles auswählen
DataSection
IID_IDirectDraw7:
Data.l $15E65EC0
Data.w $3B9C, $11D2
Data.b $B9, $2F, $00, $60, $97, $97, $EA, $5B
EndDataSection
#DD_ROP_SPACE = 256/32
Structure DDCOLORKEY
dwColorSpaceLowValue.l
dwColorSpaceHighValue.l
EndStructure
Structure DDPIXELFORMAT
dwSize.l
dwFlags.l
dwFourCC.l
dwRGBBitCount.l
dwRBitMask.l
dwGBitMask.l
dwBBitMask.l
dwRGBAlphaBitMask.l
EndStructure
Structure DDSCAPS
dwCaps.l
EndStructure
Structure DDSCAPS2
dwCaps.l
dwCaps2.l
dwCaps3.l
dwCaps4.l
EndStructure
Structure DDSURFACEDESC2
dwSize.l
dwFlags.l
dwHeight.l
dwWidth.l
lPitch.l
dwBackBufferCount.l
dwRefreshRate.l
dwAlphaBitDepth.l
dwReserved.l
lpSurface.l
ddckCKDestOverlay.DDCOLORKEY
ddckCKDestBlt.DDCOLORKEY
ddckCKSrcOverlay.DDCOLORKEY
ddckCKSrcBlt.DDCOLORKEY
ddpfPixelFormat.DDPIXELFORMAT
ddsCaps.DDSCAPS2
dwTextureStage.l
EndStructure
Structure DDOVERLAYFX
dwSize.l
dwAlphaEdgeBlendBitDepth.l
dwAlphaEdgeBlend.l
dwReserved.l
dwAlphaDestConstBitDepth.l
StructureUnion
dwAlphaDestConst.l
lpDDSAlphaDest.IDirectDrawSurface7
EndStructureUnion
dwAlphaSrcConstBitDepth.l
StructureUnion
dwAlphaSrcConst.l
lpDDSAlphaSrc.IDirectDrawSurface7
EndStructureUnion
dckDestColorkey.DDCOLORKEY
dckSrcColorkey.DDCOLORKEY
dwDDFX.l
dwFlags.l
EndStructure
Structure DDCAPS
dwSize.l
dwCaps.l
dwCaps2.l
dwCKeyCaps.l
dwFXCaps.l
dwFXAlphaCaps.l
dwPalCaps.l
dwSVCaps.l
dwAlphaBltConstBitDepths.l
dwAlphaBltPixelBitDepths.l
dwAlphaBltSurfaceBitDepths.l
dwAlphaOverlayConstBitDepths.l
dwAlphaOverlayPixelBitDepths.l
dwAlphaOverlaySurfaceBitDepths.l
dwZBufferBitDepths.l
dwVidMemTotal.l
dwVidMemFree.l
dwMaxVisibleOverlays.l
dwCurrVisibleOverlays.l
dwNumFourCCCodes.l
dwAlignBoundarySrc.l
dwAlignSizeSrc.l
dwAlignBoundaryDest.l
dwAlignSizeDest.l
dwAlignStrideAlign.l
dwRops.l[#DD_ROP_SPACE]
ddsOldCaps.DDSCAPS
dwMinOverlayStretch.l
dwMaxOverlayStretch.l
dwMinLiveVideoStretch.l
dwMaxLiveVideoStretch.l
dwMinHwCodecStretch.l
dwMaxHwCodecStretch.l
dwReserved1.l
dwReserved2.l
dwReserved3.l
dwSVBCaps.l
dwSVBCKeyCaps.l
dwSVBFXCaps.l
dwSVBRops.l[#DD_ROP_SPACE]
dwVSBCaps.l
dwVSBCKeyCaps.l
dwVSBFXCaps.l
dwVSBRops.l[#DD_ROP_SPACE]
dwSSBCaps.l
dwSSBCKeyCaps.l
dwSSBFXCaps.l
dwSSBRops.l[#DD_ROP_SPACE]
dwMaxVideoPorts.l
dwCurrVideoPorts.l
dwSVBCaps2.l
dwNLVBCaps.l
dwNLVBCaps2.l
dwNLVBCKeyCaps.l
dwNLVBFXCaps.l
dwNLVBRops.l[#DD_ROP_SPACE]
ddsCaps.DDSCAPS2
EndStructure
#DD_OK = $00000000
#DDSCL_NORMAL = $00000008
#DDPF_FOURCC = $00000004
#DDPF_RGB = $00000040
#DDOVER_SHOW = $00004000
#DDLOCK_WAIT = $00000001
#DDFLIP_WAIT = $00000001
#DDSD_CAPS = $00000001
#DDSD_HEIGHT = $00000002
#DDSD_WIDTH = $00000004
#DDSD_BACKBUFFERCOUNT = $00000020
#DDSD_PIXELFORMAT = $00001000
#DDCAPS_OVERLAY = $00000800
#DDSCAPS_BACKBUFFER = $00000004
#DDSCAPS_COMPLEX = $00000008
#DDSCAPS_FLIP = $00000010
#DDSCAPS_OVERLAY = $00000080
#DDSCAPS_PRIMARYSURFACE = $00000200
#DDSCAPS_VIDEOMEMORY = $00004000
#DDCKEYCAPS_SRCOVERLAY = $00002000
#DDOVER_KEYSRCOVERRIDE = $00002000
#DDOVER_DDFX = $00080000
#DDERR_EXCLUSIVEMODEALREADYSET = $88760245
#DDERR_WRONGMODE = $8876024B
Global m_direct_draw.IDirectDraw7
Global m_direct_draw_error.l
Global m_direct_draw_error_count.l
Global m_caps.DDCAPS
Global m_primary_surface.IDirectDrawSurface7
Global m_overlay_surface.IDirectDrawSurface7
Global m_overlay_flags.l
Global m_overlay_back_surface.IDirectDrawSurface7
Global m_overlay_fx.DDOVERLAYFX
Global m_PixelFormat.l
Global ddsd.DDSURFACEDESC2
Global m_surfaces_lost.b
Global OVERLAY_WIDTH, OVERLAY_HEIGHT
OVERLAY_WIDTH = 512
OVERLAY_HEIGHT = 20
Procedure Overlay_CheckError(Value)
If Value = #DD_OK
m_direct_draw_error_count + 1
ProcedureReturn #DD_OK
Else
m_direct_draw_error_count + 1
m_direct_draw_error = Value
ProcedureReturn Value
EndIf
EndProcedure
ProcedureDLL Overlay_Init()
If OpenLibrary(0, "ddraw.dll")
If CallFunction(0, "DirectDrawCreateEx", 0, @m_direct_draw, ?IID_IDirectDraw7, 0) = #DD_OK ; Command: 1
m_caps\dwSize = SizeOf(DDCAPS)
If Overlay_CheckError(m_direct_draw\GetCaps(@m_caps, 0)) = #DD_OK ; Command: 2
ProcedureReturn RetVal = #True
EndIf
EndIf
EndIf
ProcedureReturn RetVal
EndProcedure
ProcedureDLL Overlay_SupportAviable()
num_visible_overlays.l = 0
If m_overlay_surface
num_visible_overlays = m_caps\dwCurrVisibleOverlays - 1
EndIf
If m_caps\dwMaxVisibleOverlays > num_visible_overlays And m_caps\dwCaps & #DDCAPS_OVERLAY
RetVal = #True
EndIf
ProcedureReturn RetVal
EndProcedure
ProcedureDLL Overlay_Init_Surfaces()
If Overlay_CheckError(m_direct_draw\SetCooperativeLevel(0, #DDSCL_NORMAL)) = #DD_OK ; Command: 3
ddsda.DDSURFACEDESC2
ddsda\dwSize = SizeOf(DDSURFACEDESC2)
ddsda\dwFlags = #DDSD_CAPS
ddsda\ddsCaps\dwCaps = #DDSCAPS_PRIMARYSURFACE
If Overlay_CheckError(m_direct_draw\CreateSurface(ddsda, @m_primary_surface, 0)) = #DD_OK ; Command: 4
ddsd\dwSize = SizeOf(DDSURFACEDESC2)
ddsd\dwFlags = #DDSD_CAPS | #DDSD_HEIGHT | #DDSD_WIDTH | #DDSD_BACKBUFFERCOUNT | #DDSD_PIXELFORMAT
ddsd\ddsCaps\dwCaps = #DDSCAPS_OVERLAY | #DDSCAPS_FLIP | #DDSCAPS_COMPLEX | #DDSCAPS_VIDEOMEMORY
ddsd\dwBackBufferCount = 1
ddsd\dwWidth = OVERLAY_WIDTH
ddsd\dwHeight = OVERLAY_HEIGHT
ddsd\ddpfPixelFormat\dwSize = SizeOf(DDPIXELFORMAT)
ddsd\ddpfPixelFormat\dwFlags = #DDPF_RGB
ddsd\ddpfPixelFormat\dwRGBBitCount = 32
ddsd\ddpfPixelFormat\dwRBitMask = $00FF0000
ddsd\ddpfPixelFormat\dwGBitMask = $0000FF00
ddsd\ddpfPixelFormat\dwBBitMask = $000000FF
hr = m_direct_draw\CreateSurface(ddsd, @m_overlay_surface, 0)
If hr <> #DD_OK
ddsd\ddpfPixelFormat\dwRGBBitCount = 16
ddsd\ddpfPixelFormat\dwRBitMask = $F800
ddsd\ddpfPixelFormat\dwGBitMask = $07E0
ddsd\ddpfPixelFormat\dwBBitMask = $001F
hr = m_direct_draw\CreateSurface(ddsd, @m_overlay_surface, 0)
m_PixelFormat = 1
EndIf
If hr <> #DD_OK
ddsd\ddpfPixelFormat\dwRGBBitCount = 0
ddsd\ddpfPixelFormat\dwRBitMask = 0
ddsd\ddpfPixelFormat\dwGBitMask = 0
ddsd\ddpfPixelFormat\dwBBitMask = 0
ddsd\ddpfPixelFormat\dwFlags = #DDPF_FOURCC
ddsd\ddpfPixelFormat\dwFourCC = PeekL(@"UYVY")
hr = m_direct_draw\CreateSurface(ddsd, @m_overlay_surface, 0)
m_PixelFormat = 2
EndIf
If hr <> #DD_OK
ddsd\ddpfPixelFormat\dwRGBBitCount = 0
ddsd\ddpfPixelFormat\dwRBitMask = 0
ddsd\ddpfPixelFormat\dwGBitMask = 0
ddsd\ddpfPixelFormat\dwBBitMask = 0
ddsd\ddpfPixelFormat\dwFlags = #DDPF_FOURCC
ddsd\ddpfPixelFormat\dwFourCC = PeekL(@"YUY2")
hr = m_direct_draw\CreateSurface(ddsd, @m_overlay_surface, 0)
m_PixelFormat = 3
EndIf
If Overlay_CheckError(hr) = #DD_OK ; Command: 5
ddscaps.DDSCAPS2
ddscaps\dwCaps = #DDSCAPS_BACKBUFFER
If Overlay_CheckError(m_overlay_surface\GetAttachedSurface(ddscaps, @m_overlay_back_surface)) = #DD_OK ; Command: 6
RetVal = #True
EndIf
m_overlay_fx\dwSize = SizeOf(DDOVERLAYFX)
EndIf
EndIf
EndIf
ProcedureReturn RetVal
EndProcedure
ProcedureDLL Overlay_Clean()
m_primary_surface\Release()
m_overlay_surface\Release()
;m_direct_draw\Release()
m_surfaces_lost = #False
ProcedureReturn #True
EndProcedure
ProcedureDLL Overlay_Show(String.s)
hr = Overlay_CheckError(m_direct_draw\TestCooperativeLevel()) = #DD_OK
If hr <> #DD_OK
Select hr
Case #DDERR_EXCLUSIVEMODEALREADYSET
m_surfaces_lost = #True
Delay(1000)
ProcedureReturn #False
Case #DDERR_WRONGMODE
Overlay_Clean()
Overlay_Init_Surfaces()
Default
MessageRequester("", Hex(hr))
EndSelect
Else
If m_surfaces_lost
m_direct_draw\RestoreAllSurfaces()
m_surfaces_lost = #False
EndIf
hdc = CreateDC_("DISPLAY", 0, 0, 0)
mdc = CreateCompatibleDC_(0)
bdc = CreateCompatibleBitmap_(hdc, OVERLAY_WIDTH, OVERLAY_HEIGHT)
SelectObject_(mdc, bdc)
font.l = CreateFont_(13, 0, 0, 0, 700, 0, 0, 0, 0, 0, 0, 0, 0, "Tahoma")
SetBkMode_(mdc, #True)
SelectObject_(mdc, font)
Rectangle_(mdc, 0, 0, OVERLAY_WIDTH, OVERLAY_HEIGHT)
SetTextColor_(mdc, RGB(150, 150, 150))
TextOut_(mdc, 6, 3, @String, Len(String))
SetTextColor_(mdc, RGB(255, 0, 0))
TextOut_(mdc, 5, 2, @String, Len(String))
DeleteObject_(font)
If m_PixelFormat = 0 Or m_PixelFormat = 1
If Overlay_CheckError(m_overlay_back_surface\GetDC(@dc)) = #DD_OK ; Command: 7
BitBlt_(dc, 0, 0, OVERLAY_WIDTH, OVERLAY_HEIGHT, mdc, 0, 0, #SRCCOPY)
Overlay_CheckError(m_overlay_back_surface\ReleaseDC(dc)) ; Command: 8
EndIf
Else
If Overlay_CheckError(m_overlay_back_surface\Lock(0, ddsd, #DDLOCK_WAIT, 0)) = #DD_OK ; Command: 7
Addr = ddsd\lpSurface
Pitch = ddsd\lPitch
For y = 0 To OVERLAY_HEIGHT - 1
For x = 0 To OVERLAY_WIDTH - 1 Step 2
C1 = GetPixel_(mdc, x, y)
C2 = GetPixel_(mdc, x + 1, y)
Y0 = (Red(C1) * 29 + Green(C1) * 57 + Blue(C1) * 14) / 100
U0 = 128 + (- Red(C1) * 14 - Green(C1) * 29 + Blue(C1) * 43) / 100
V0 = 128 + (Red(C1) * 36 - Green(C1) * 29 - Blue(C1) * 07) / 100
Y1 = (Red(C2) * 29 + Green(C2) * 57 + Blue(C2) * 14) / 100
U1 = 128 + (- Red(C2) * 14 - Green(C2) * 29 + Blue(C2) * 43) / 100
V1 = 128 + (Red(C2) * 36 - Green(C2) * 29 - Blue(C2) *07) / 100
Select m_PixelFormat
Case 2
PokeL(Addr, Y1 << 24 + ((V0 + V1) / 2) << 16 + Y0 << 8 + (U0 + U1) / 2) : Addr + 4
Case 3
PokeL(Addr, ((V0 + V1) / 2) << 24 + Y1 << 16 + ((U0 + U1) / 2) << 8 + Y0) : Addr + 4
EndSelect
Next
Addr + (Pitch - OVERLAY_WIDTH * 2)
Next
Overlay_CheckError(m_overlay_back_surface\UnLock(0)) ; Command: 8
EndIf
EndIf
If Overlay_CheckError(m_overlay_surface\Flip(0, #DDFLIP_WAIT)) = #DD_OK ; Command: 9
dest_rect.RECT
dest_rect\left = 10
dest_rect\top = 10
dest_rect\right = 10 + OVERLAY_WIDTH
dest_rect\bottom = 10 + OVERLAY_HEIGHT
m_overlay_flags = #DDOVER_SHOW
If m_caps\dwCKeyCaps & #DDCKEYCAPS_SRCOVERLAY
m_overlay_fx\dckDestColorkey\dwColorSpaceLowValue = 0
m_overlay_fx\dckDestColorkey\dwColorSpaceHighValue = 0
m_overlay_flags = m_overlay_flags | #DDOVER_DDFX | #DDOVER_KEYSRCOVERRIDE
EndIf
If Overlay_CheckError(m_overlay_surface\UpdateOverlay(0, m_primary_surface, dest_rect, m_overlay_flags, m_overlay_fx)) = #DD_OK ; Command: 10
RetVal = #True
EndIf
EndIf
EndIf
ProcedureReturn RetVal
EndProcedure
ProcedureDLL Overlay_GetLastError()
ProcedureReturn m_direct_draw_error
EndProcedure
ProcedureDLL Overlay_GetErrorCount()
ProcedureReturn m_direct_draw_error_count
EndProcedure
dderrr.pb
Code: Alles auswählen
#DD_OK = $00000000
#DDERR_ALREADYINITIALIZED = $88760005
#DDERR_BLTFASTCANTCLIP = $8876023E
#DDERR_CANNOTATTACHSURFACE = $8876000A
#DDERR_CANNOTDETACHSURFACE = $88760014
#DDERR_CANTCREATEDC = $88760249
#DDERR_CANTDUPLICATE = $88760247
#DDERR_CANTLOCKSURFACE = $887601B3
#DDERR_CANTPAGELOCK = $88760280
#DDERR_CANTPAGEUNLOCK = $88760294
#DDERR_CLIPPERISUSINGHWND = $88760237
#DDERR_COLORKEYNOTSET = $88760190
#DDERR_CURRENTLYNOTAVAIL = $88760028
#DDERR_DCALREADYCREATED = $8876026C
#DDERR_DEVICEDOESNTOWNSURFACE = $887602BB
#DDERR_DIRECTDRAWALREADYCREATED = $88760232
#DDERR_EXCEPTION = $88760037
#DDERR_EXCLUSIVEMODEALREADYSET = $88760245
#DDERR_EXPIRED = $887602B3
#DDERR_GENERIC = $80004005
#DDERR_HEIGHTALIGN = $8876005A
#DDERR_HWNDALREADYSET = $8876023B
#DDERR_HWNDALREADYSET = $8876023B
#DDERR_HWNDSUBCLASSED = $8876023A
#DDERR_IMPLICITLYCREATED = $8876024C
#DDERR_INCOMPATIBLEPRIMARY = $8876005F
#DDERR_INVALIDCAPS = $88760064
#DDERR_INVALIDCLIPLIST = $8876006E
#DDERR_INVALIDDIRECTDRAWGUID = $88760231
#DDERR_INVALIDMODE = $88760078
#DDERR_INVALIDOBJECT = $88760082
#DDERR_INVALIDPARAMS = $00000005
#DDERR_INVALIDPIXELFORMAT = $88760091
#DDERR_INVALIDPOSITION = $88760243
#DDERR_INVALIDRECT = $88760096
#DDERR_INVALIDSTREAM = $88760209
#DDERR_INVALIDSURFACETYPE = $88760250
#DDERR_LOCKEDSURFACES = $887600A0
#DDERR_MOREDATA = $887602B2
#DDERR_NO3D = $887600AA
#DDERR_NOALPHAHW = $887600B4
#DDERR_NOBLTHW = $8876023F
#DDERR_NOCLIPLIST = $887600CD
#DDERR_NOCLIPPERATTACHED = $88760238
#DDERR_NOCOLORCONVHW = $887600D2
#DDERR_NOCOLORKEY = $887600D7
#DDERR_NOCOLORKEYHW = $887600DC
#DDERR_NOCOOPERATIVELEVELSET = $887600D4
#DDERR_NODC = $8876024A
#DDERR_NODDROPSHW = $88760240
#DDERR_NODIRECTDRAWHW = $88760233
#DDERR_NODIRECTDRAWSUPPORT = $887600DE
#DDERR_NOEMULATION = $88760235
#DDERR_NOEXCLUSIVEMODE = $887600E1
#DDERR_NOFLIPHW = $887600E6
#DDERR_NOFOCUSWINDOW = $8876025A
#DDERR_NOGDI = $887600F0
#DDERR_NOHWND = $88760239
#DDERR_NOMIPMAPHW = $8876024F
#DDERR_NOMIRRORHW = $887600FA
#DDERR_NONONLOCALVIDMEM = $88760276
#DDERR_NOOPTIMIZEHW = $88760258
#DDERR_NOOVERLAYDEST = $88760242
#DDERR_NOOVERLAYHW = $88760104
#DDERR_NOPALETTEATTACHED = $8876023C
#DDERR_NOPALETTEHW = $8876023D
#DDERR_NORASTEROPHW = $88760118
#DDERR_NOROTATIONHW = $88760122
#DDERR_NOSTEREOHARDWARE = $887600B5
#DDERR_NOSTRETCHHW = $88760136
#DDERR_NOSURFACELEFT = $887600B6
#DDERR_NOT4BITCOLOR = $8876013C
#DDERR_NOT4BITCOLORINDEX = $8876013D
#DDERR_NOT8BITCOLOR = $88760140
#DDERR_NOTAOVERLAYSURFACE = $88760244
#DDERR_NOTEXTUREHW = $8876014A
#DDERR_NOTFLIPPABLE = $88760246
#DDERR_NOTFOUND = $887600FF
#DDERR_NOTINITIALIZED = $800401F0
#DDERR_NOTLOADED = $88760259
#DDERR_NOTLOCKED = $88760248
#DDERR_NOTPAGELOCKED = $887602A8
#DDERR_NOTPALETTIZED = $8876024D
#DDERR_NOVSYNCHW = $8876014F
#DDERR_NOZBUFFERHW = $88760154
#DDERR_NOZOVERLAYHW = $8876015E
#DDERR_OUTOFCAPS = $88760168
#DDERR_OUTOFMEMORY = $00000007
#DDERR_OUTOFVIDEOMEMORY = $8876017C
#DDERR_OVERLAPPINGRECTS = $8876010E
#DDERR_OVERLAYCANTCLIP = $8876017E
#DDERR_OVERLAYCOLORKEYONLYONEACTIVE = $88760180
#DDERR_OVERLAYNOTVISIBLE = $88760241
#DDERR_PALETTEBUSY = $88760183
#DDERR_PRIMARYSURFACEALREADYEXISTS = $88760234
#DDERR_REGIONTOOSMALL = $88760236
#DDERR_SURFACEALREADYATTACHED = $8876019A
#DDERR_SURFACEALREADYDEPENDENT = $887601A4
#DDERR_SURFACEBUSY = $887601AE
#DDERR_SURFACEISOBSCURED = $887601B8
#DDERR_SURFACELOST = $887601C2
#DDERR_SURFACENOTATTACHED = $887601CC
#DDERR_TOOBIGHEIGHT = $887601D6
#DDERR_TOOBIGSIZE = $887601E0
#DDERR_TOOBIGWIDTH = $887601EA
#DDERR_UNSUPPORTED = $80004001
#DDERR_UNSUPPORTEDFORMAT = $887601FE
#DDERR_UNSUPPORTEDMASK = $88760208
#DDERR_UNSUPPORTEDMODE = $8876024E
#DDERR_VERTICALBLANKINPROGRESS = $88760219
#DDERR_VIDEONOTACTIVE = $887602B7
#DDERR_WASSTILLDRAWING = $8876021C
#DDERR_WRONGMODE = $8876024B
#DDERR_XALIGN = $88760230
Procedure DDErrC(Value)
If Value <> #DD_OK
Select Value
Case #DDERR_ALREADYINITIALIZED : RetErr$ = "DDERR_ALREADYINITIALIZED (0x" + Hex(#DDERR_ALREADYINITIALIZED) + ")"
Case #DDERR_BLTFASTCANTCLIP : RetErr$ = "DDERR_BLTFASTCANTCLIP (0x" + Hex(#DDERR_BLTFASTCANTCLIP) + ")"
Case #DDERR_CANNOTATTACHSURFACE : RetErr$ = "DDERR_CANNOTATTACHSURFACE (0x" + Hex(#DDERR_CANNOTATTACHSURFACE) + ")"
Case #DDERR_CANNOTDETACHSURFACE : RetErr$ = "DDERR_CANNOTDETACHSURFACE (0x" + Hex(#DDERR_CANNOTDETACHSURFACE) + ")"
Case #DDERR_CANTCREATEDC : RetErr$ = "DDERR_CANTCREATEDC (0x" + Hex(#DDERR_CANTCREATEDC) + ")"
Case #DDERR_CANTDUPLICATE : RetErr$ = "DDERR_CANTDUPLICATE (0x" + Hex(#DDERR_CANTDUPLICATE) + ")"
Case #DDERR_CANTLOCKSURFACE : RetErr$ = "DDERR_CANTLOCKSURFACE (0x" + Hex(#DDERR_CANTLOCKSURFACE) + ")"
Case #DDERR_CANTPAGELOCK : RetErr$ = "DDERR_CANTPAGELOCK (0x" + Hex(#DDERR_CANTPAGELOCK) + ")"
Case #DDERR_CANTPAGEUNLOCK : RetErr$ = "DDERR_CANTPAGEUNLOCK (0x" + Hex(#DDERR_CANTPAGEUNLOCK) + ")"
Case #DDERR_CLIPPERISUSINGHWND : RetErr$ = "DDERR_CLIPPERISUSINGHWND (0x" + Hex(#DDERR_CLIPPERISUSINGHWND) + ")"
Case #DDERR_COLORKEYNOTSET : RetErr$ = "DDERR_COLORKEYNOTSET (0x" + Hex(#DDERR_COLORKEYNOTSET) + ")"
Case #DDERR_CURRENTLYNOTAVAIL : RetErr$ = "DDERR_CURRENTLYNOTAVAIL (0x" + Hex(#DDERR_CURRENTLYNOTAVAIL) + ")"
Case #DDERR_DCALREADYCREATED : RetErr$ = "DDERR_DCALREADYCREATED (0x" + Hex(#DDERR_DCALREADYCREATED) + ")"
Case #DDERR_DEVICEDOESNTOWNSURFACE : RetErr$ = "DDERR_DEVICEDOESNTOWNSURFACE (0x" + Hex(#DDERR_DEVICEDOESNTOWNSURFACE) + ")"
Case #DDERR_DIRECTDRAWALREADYCREATED : RetErr$ = "DDERR_DIRECTDRAWALREADYCREATED (0x" + Hex(#DDERR_DIRECTDRAWALREADYCREATED) + ")"
Case #DDERR_EXCEPTION : RetErr$ = "DDERR_EXCEPTION (0x" + Hex(#DDERR_EXCEPTION) + ")"
Case #DDERR_EXCLUSIVEMODEALREADYSET : RetErr$ = "DDERR_EXCLUSIVEMODEALREADYSET (0x" + Hex(#DDERR_EXCLUSIVEMODEALREADYSET) + ")"
Case #DDERR_EXPIRED : RetErr$ = "DDERR_EXPIRED (0x" + Hex(#DDERR_EXPIRED) + ")"
Case #DDERR_GENERIC : RetErr$ = "DDERR_GENERIC (0x" + Hex(#DDERR_GENERIC) + ")"
Case #DDERR_HEIGHTALIGN : RetErr$ = "DDERR_HEIGHTALIGN (0x" + Hex(#DDERR_HEIGHTALIGN) + ")"
Case #DDERR_HWNDALREADYSET : RetErr$ = "DDERR_HWNDALREADYSET (0x" + Hex(#DDERR_HWNDALREADYSET) + ")"
Case #DDERR_HWNDALREADYSET : RetErr$ = "DDERR_HWNDALREADYSET (0x" + Hex(#DDERR_HWNDALREADYSET) + ")"
Case #DDERR_HWNDSUBCLASSED : RetErr$ = "DDERR_HWNDSUBCLASSED (0x" + Hex(#DDERR_HWNDSUBCLASSED) + ")"
Case #DDERR_IMPLICITLYCREATED : RetErr$ = "DDERR_IMPLICITLYCREATED (0x" + Hex(#DDERR_IMPLICITLYCREATED) + ")"
Case #DDERR_INCOMPATIBLEPRIMARY : RetErr$ = "DDERR_INCOMPATIBLEPRIMARY (0x" + Hex(#DDERR_INCOMPATIBLEPRIMARY) + ")"
Case #DDERR_INVALIDCAPS : RetErr$ = "DDERR_INVALIDCAPS (0x" + Hex(#DDERR_INVALIDCAPS) + ")"
Case #DDERR_INVALIDCLIPLIST : RetErr$ = "DDERR_INVALIDCLIPLIST (0x" + Hex(#DDERR_INVALIDCLIPLIST) + ")"
Case #DDERR_INVALIDDIRECTDRAWGUID : RetErr$ = "DDERR_INVALIDDIRECTDRAWGUID (0x" + Hex(#DDERR_INVALIDDIRECTDRAWGUID) + ")"
Case #DDERR_INVALIDMODE : RetErr$ = "DDERR_INVALIDMODE (0x" + Hex(#DDERR_INVALIDMODE) + ")"
Case #DDERR_INVALIDOBJECT : RetErr$ = "DDERR_INVALIDOBJECT (0x" + Hex(#DDERR_INVALIDOBJECT) + ")"
Case #DDERR_INVALIDPARAMS : RetErr$ = "DDERR_INVALIDPARAMS (0x" + Hex(#DDERR_INVALIDPARAMS) + ")"
Case #DDERR_INVALIDPIXELFORMAT : RetErr$ = "DDERR_INVALIDPIXELFORMAT (0x" + Hex(#DDERR_INVALIDPIXELFORMAT) + ")"
Case #DDERR_INVALIDPOSITION : RetErr$ = "DDERR_INVALIDPOSITION (0x" + Hex(#DDERR_INVALIDPOSITION) + ")"
Case #DDERR_INVALIDRECT : RetErr$ = "DDERR_INVALIDRECT (0x" + Hex(#DDERR_INVALIDRECT) + ")"
Case #DDERR_INVALIDSTREAM : RetErr$ = "DDERR_INVALIDSTREAM (0x" + Hex(#DDERR_INVALIDSTREAM) + ")"
Case #DDERR_INVALIDSURFACETYPE : RetErr$ = "DDERR_INVALIDSURFACETYPE (0x" + Hex(#DDERR_INVALIDSURFACETYPE) + ")"
Case #DDERR_LOCKEDSURFACES : RetErr$ = "DDERR_LOCKEDSURFACES (0x" + Hex(#DDERR_LOCKEDSURFACES) + ")"
Case #DDERR_MOREDATA : RetErr$ = "DDERR_MOREDATA (0x" + Hex(#DDERR_MOREDATA) + ")"
Case #DDERR_NO3D : RetErr$ = "DDERR_NO3D (0x" + Hex(#DDERR_NO3D) + ")"
Case #DDERR_NOALPHAHW : RetErr$ = "DDERR_NOALPHAHW (0x" + Hex(#DDERR_NOALPHAHW) + ")"
Case #DDERR_NOBLTHW : RetErr$ = "DDERR_NOBLTHW (0x" + Hex(#DDERR_NOBLTHW) + ")"
Case #DDERR_NOCLIPLIST : RetErr$ = "DDERR_NOCLIPLIST (0x" + Hex(#DDERR_NOCLIPLIST) + ")"
Case #DDERR_NOCLIPPERATTACHED : RetErr$ = "DDERR_NOCLIPPERATTACHED (0x" + Hex(#DDERR_NOCLIPPERATTACHED) + ")"
Case #DDERR_NOCOLORCONVHW : RetErr$ = "DDERR_NOCOLORCONVHW (0x" + Hex(#DDERR_NOCOLORCONVHW) + ")"
Case #DDERR_NOCOLORKEY : RetErr$ = "DDERR_NOCOLORKEY (0x" + Hex(#DDERR_NOCOLORKEY) + ")"
Case #DDERR_NOCOLORKEYHW : RetErr$ = "DDERR_NOCOLORKEYHW (0x" + Hex(#DDERR_NOCOLORKEYHW) + ")"
Case #DDERR_NOCOOPERATIVELEVELSET : RetErr$ = "DDERR_NOCOOPERATIVELEVELSET (0x" + Hex(#DDERR_NOCOOPERATIVELEVELSET) + ")"
Case #DDERR_NODC : RetErr$ = "DDERR_NODC (0x" + Hex(#DDERR_NODC) + ")"
Case #DDERR_NODDROPSHW : RetErr$ = "DDERR_NODDROPSHW (0x" + Hex(#DDERR_NODDROPSHW) + ")"
Case #DDERR_NODIRECTDRAWHW : RetErr$ = "DDERR_NODIRECTDRAWHW (0x" + Hex(#DDERR_NODIRECTDRAWHW) + ")"
Case #DDERR_NODIRECTDRAWSUPPORT : RetErr$ = "DDERR_NODIRECTDRAWSUPPORT (0x" + Hex(#DDERR_NODIRECTDRAWSUPPORT) + ")"
Case #DDERR_NOEMULATION : RetErr$ = "DDERR_NOEMULATION (0x" + Hex(#DDERR_NOEMULATION) + ")"
Case #DDERR_NOEXCLUSIVEMODE : RetErr$ = "DDERR_NOEXCLUSIVEMODE (0x" + Hex(#DDERR_NOEXCLUSIVEMODE) + ")"
Case #DDERR_NOFLIPHW : RetErr$ = "DDERR_NOFLIPHW (0x" + Hex(#DDERR_NOFLIPHW) + ")"
Case #DDERR_NOFOCUSWINDOW : RetErr$ = "DDERR_NOFOCUSWINDOW (0x" + Hex(#DDERR_NOFOCUSWINDOW) + ")"
Case #DDERR_NOGDI : RetErr$ = "DDERR_NOGDI (0x" + Hex(#DDERR_NOGDI) + ")"
Case #DDERR_NOHWND : RetErr$ = "DDERR_NOHWND (0x" + Hex(#DDERR_NOHWND) + ")"
Case #DDERR_NOMIPMAPHW : RetErr$ = "DDERR_NOMIPMAPHW (0x" + Hex(#DDERR_NOMIPMAPHW) + ")"
Case #DDERR_NOMIRRORHW : RetErr$ = "DDERR_NOMIRRORHW (0x" + Hex(#DDERR_NOMIRRORHW) + ")"
Case #DDERR_NONONLOCALVIDMEM : RetErr$ = "DDERR_NONONLOCALVIDMEM (0x" + Hex(#DDERR_NONONLOCALVIDMEM) + ")"
Case #DDERR_NOOPTIMIZEHW : RetErr$ = "DDERR_NOOPTIMIZEHW (0x" + Hex(#DDERR_NOOPTIMIZEHW) + ")"
Case #DDERR_NOOVERLAYDEST : RetErr$ = "DDERR_NOOVERLAYDEST (0x" + Hex(#DDERR_NOOVERLAYDEST) + ")"
Case #DDERR_NOOVERLAYHW : RetErr$ = "DDERR_NOOVERLAYHW (0x" + Hex(#DDERR_NOOVERLAYHW) + ")"
Case #DDERR_NOPALETTEATTACHED : RetErr$ = "DDERR_NOPALETTEATTACHED (0x" + Hex(#DDERR_NOPALETTEATTACHED) + ")"
Case #DDERR_NOPALETTEHW : RetErr$ = "DDERR_NOPALETTEHW (0x" + Hex(#DDERR_NOPALETTEHW) + ")"
Case #DDERR_NORASTEROPHW : RetErr$ = "DDERR_NORASTEROPHW (0x" + Hex(#DDERR_NORASTEROPHW) + ")"
Case #DDERR_NOROTATIONHW : RetErr$ = "DDERR_NOROTATIONHW (0x" + Hex(#DDERR_NOROTATIONHW) + ")"
Case #DDERR_NOSTEREOHARDWARE : RetErr$ = "DDERR_NOSTEREOHARDWARE (0x" + Hex(#DDERR_NOSTEREOHARDWARE) + ")"
Case #DDERR_NOSTRETCHHW : RetErr$ = "DDERR_NOSTRETCHHW (0x" + Hex(#DDERR_NOSTRETCHHW) + ")"
Case #DDERR_NOSURFACELEFT : RetErr$ = "DDERR_NOSURFACELEFT (0x" + Hex(#DDERR_NOSURFACELEFT) + ")"
Case #DDERR_NOT4BITCOLOR : RetErr$ = "DDERR_NOT4BITCOLOR (0x" + Hex(#DDERR_NOT4BITCOLOR) + ")"
Case #DDERR_NOT4BITCOLORINDEX : RetErr$ = "DDERR_NOT4BITCOLORINDEX (0x" + Hex(#DDERR_NOT4BITCOLORINDEX) + ")"
Case #DDERR_NOT8BITCOLOR : RetErr$ = "DDERR_NOT8BITCOLOR (0x" + Hex(#DDERR_NOT8BITCOLOR) + ")"
Case #DDERR_NOTAOVERLAYSURFACE : RetErr$ = "DDERR_NOTAOVERLAYSURFACE (0x" + Hex(#DDERR_NOTAOVERLAYSURFACE) + ")"
Case #DDERR_NOTEXTUREHW : RetErr$ = "DDERR_NOTEXTUREHW (0x" + Hex(#DDERR_NOTEXTUREHW) + ")"
Case #DDERR_NOTFLIPPABLE : RetErr$ = "DDERR_NOTFLIPPABLE (0x" + Hex(#DDERR_NOTFLIPPABLE) + ")"
Case #DDERR_NOTFOUND : RetErr$ = "DDERR_NOTFOUND (0x" + Hex(#DDERR_NOTFOUND) + ")"
Case #DDERR_NOTINITIALIZED : RetErr$ = "DDERR_NOTINITIALIZED (0x" + Hex(#DDERR_NOTINITIALIZED) + ")"
Case #DDERR_NOTLOADED : RetErr$ = "DDERR_NOTLOADED (0x" + Hex(#DDERR_NOTLOADED) + ")"
Case #DDERR_NOTLOCKED : RetErr$ = "DDERR_NOTLOCKED (0x" + Hex(#DDERR_NOTLOCKED) + ")"
Case #DDERR_NOTPAGELOCKED : RetErr$ = "DDERR_NOTPAGELOCKED (0x" + Hex(#DDERR_NOTPAGELOCKED) + ")"
Case #DDERR_NOTPALETTIZED : RetErr$ = "DDERR_NOTPALETTIZED (0x" + Hex(#DDERR_NOTPALETTIZED) + ")"
Case #DDERR_NOVSYNCHW : RetErr$ = "DDERR_NOVSYNCHW (0x" + Hex(#DDERR_NOVSYNCHW) + ")"
Case #DDERR_NOZBUFFERHW : RetErr$ = "DDERR_NOZBUFFERHW (0x" + Hex(#DDERR_NOZBUFFERHW) + ")"
Case #DDERR_NOZOVERLAYHW : RetErr$ = "DDERR_NOZOVERLAYHW (0x" + Hex(#DDERR_NOZOVERLAYHW) + ")"
Case #DDERR_OUTOFCAPS : RetErr$ = "DDERR_OUTOFCAPS (0x" + Hex(#DDERR_OUTOFCAPS) + ")"
Case #DDERR_OUTOFMEMORY : RetErr$ = "DDERR_OUTOFMEMORY (0x" + Hex(#DDERR_OUTOFMEMORY) + ")"
Case #DDERR_OUTOFVIDEOMEMORY : RetErr$ = "DDERR_OUTOFVIDEOMEMORY (0x" + Hex(#DDERR_OUTOFVIDEOMEMORY) + ")"
Case #DDERR_OVERLAPPINGRECTS : RetErr$ = "DDERR_OVERLAPPINGRECTS (0x" + Hex(#DDERR_OVERLAPPINGRECTS) + ")"
Case #DDERR_OVERLAYCANTCLIP : RetErr$ = "DDERR_OVERLAYCANTCLIP (0x" + Hex(#DDERR_OVERLAYCANTCLIP) + ")"
Case #DDERR_OVERLAYCOLORKEYONLYONEACTIVE : RetErr$ = "DDERR_OVERLAYCOLORKEYONLYONEACTIVE (0x" + Hex(#DDERR_OVERLAYCOLORKEYONLYONEACTIVE) + ")"
Case #DDERR_OVERLAYNOTVISIBLE : RetErr$ = "DDERR_OVERLAYNOTVISIBLE (0x" + Hex(#DDERR_OVERLAYNOTVISIBLE) + ")"
Case #DDERR_PALETTEBUSY : RetErr$ = "DDERR_PALETTEBUSY (0x" + Hex(#DDERR_PALETTEBUSY) + ")"
Case #DDERR_PRIMARYSURFACEALREADYEXISTS : RetErr$ = "DDERR_PRIMARYSURFACEALREADYEXISTS (0x" + Hex(#DDERR_PRIMARYSURFACEALREADYEXISTS) + ")"
Case #DDERR_REGIONTOOSMALL : RetErr$ = "DDERR_REGIONTOOSMALL (0x" + Hex(#DDERR_REGIONTOOSMALL) + ")"
Case #DDERR_SURFACEALREADYATTACHED : RetErr$ = "DDERR_SURFACEALREADYATTACHED (0x" + Hex(#DDERR_SURFACEALREADYATTACHED) + ")"
Case #DDERR_SURFACEALREADYDEPENDENT : RetErr$ = "DDERR_SURFACEALREADYDEPENDENT (0x" + Hex(#DDERR_SURFACEALREADYDEPENDENT) + ")"
Case #DDERR_SURFACEBUSY : RetErr$ = "DDERR_SURFACEBUSY (0x" + Hex(#DDERR_SURFACEBUSY) + ")"
Case #DDERR_SURFACEISOBSCURED : RetErr$ = "DDERR_SURFACEISOBSCURED (0x" + Hex(#DDERR_SURFACEISOBSCURED) + ")"
Case #DDERR_SURFACELOST : RetErr$ = "DDERR_SURFACELOST (0x" + Hex(#DDERR_SURFACELOST) + ")"
Case #DDERR_SURFACENOTATTACHED : RetErr$ = "DDERR_SURFACENOTATTACHED (0x" + Hex(#DDERR_SURFACENOTATTACHED) + ")"
Case #DDERR_TOOBIGHEIGHT : RetErr$ = "DDERR_TOOBIGHEIGHT (0x" + Hex(#DDERR_TOOBIGHEIGHT) + ")"
Case #DDERR_TOOBIGSIZE : RetErr$ = "DDERR_TOOBIGSIZE (0x" + Hex(#DDERR_TOOBIGSIZE) + ")"
Case #DDERR_TOOBIGWIDTH : RetErr$ = "DDERR_TOOBIGWIDTH (0x" + Hex(#DDERR_TOOBIGWIDTH) + ")"
Case #DDERR_UNSUPPORTED : RetErr$ = "DDERR_UNSUPPORTED (0x" + Hex(#DDERR_UNSUPPORTED) + ")"
Case #DDERR_UNSUPPORTEDFORMAT : RetErr$ = "DDERR_UNSUPPORTEDFORMAT (0x" + Hex(#DDERR_UNSUPPORTEDFORMAT) + ")"
Case #DDERR_UNSUPPORTEDMASK : RetErr$ = "DDERR_UNSUPPORTEDMASK (0x" + Hex(#DDERR_UNSUPPORTEDMASK) + ")"
Case #DDERR_UNSUPPORTEDMODE : RetErr$ = "DDERR_UNSUPPORTEDMODE (0x" + Hex(#DDERR_UNSUPPORTEDMODE) + ")"
Case #DDERR_VERTICALBLANKINPROGRESS : RetErr$ = "DDERR_VERTICALBLANKINPROGRESS (0x" + Hex(#DDERR_VERTICALBLANKINPROGRESS) + ")"
Case #DDERR_VIDEONOTACTIVE : RetErr$ = "DDERR_VIDEONOTACTIVE (0x" + Hex(#DDERR_VIDEONOTACTIVE) + ")"
Case #DDERR_WASSTILLDRAWING : RetErr$ = "DDERR_WASSTILLDRAWING (0x" + Hex(#DDERR_WASSTILLDRAWING) + ")"
Case #DDERR_WRONGMODE : RetErr$ = "DDERR_WRONGMODE (0x" + Hex(#DDERR_WRONGMODE) + ")"
Case #DDERR_XALIGN : RetErr$ = "DDERR_XALIGN (0x" + Hex(#DDERR_XALIGN) + ")"
EndSelect
If RetErr$ = ""
MessageRequester("Error", "Error: 0x" + Hex(Value))
Else
MessageRequester("Error", RetErr$)
EndIf
EndIf
EndProcedure
ddovrl_test.pb
Code: Alles auswählen
XIncludeFile "dderr.pb"
;MessageRequester("Lukaso's DirectDraw Overlay Test", "10-Seconds-Overlay-Example")
If OpenLibrary(0, "ddovrl.dll")
If CallFunction(0, "Overlay_Init")
Repeat
Delay(1000)
If CallFunction(0, "Overlay_SupportAviable")
If CallFunction(0, "Overlay_Init_Surfaces")
If CallFunction(0, "Overlay_Show", "Lukaso's DirectDraw Overlay Test - nVidia Sucks")
Delay(1000)
If CallFunction(0, "Overlay_Clean")
;End
EndIf
EndIf
EndIf
EndIf
ForEver
EndIf
RetVal = CallFunction(0, "Overlay_GetLastError")
DDErrC(RetVal)
RetVal = CallFunction(0, "Overlay_GetErrorCount")
MessageRequester("Error", "DirectDraw Command: " + Str(RetVal))
CloseLibrary(0)
EndIf
End
Hab diesen Code damals von einem C++ Code übersetzt. In dem C++ Beispiel hat das Overlay allderings ohne Probleme funktioniert?!
Naja, viel Spaß mit
Lukas