Syntax

dbSetD3DDeviceCallback(ProcAddress, CallbackType)

Description

This command can be used to set a callback function for events that the D3D device might experience during a failure. These callbacks can be used to back up important data stored in video memory before the device is reset and also to reload your program's data before the program continues. This command will not work after OpenDBWnd has been called.

The 'CallbackType' parameter can be any one of the following values:

#GDK_Callback_DeviceLost : The D3D render device has been lost (backup your data here)
#GDK_Callback_DeviceNotReset
: The D3D render device has not been reset
#GDK_Callback_DeviceReset
: The D3D render device has been reset (restore your data here)

Example:

; Show the PureGDK render window
hDBWnd=OpenDBWnd(0,0,640,480,32,#GDK_Window_SystemMenu|#GDK_Window_ScreenCentered)

Procedure D3DDeviceLost()
 ; Backup your project data here
 dbMessage("Info","D3DDeviceLost")
EndProcedure

Procedure D3DDeviceReset()
 ; Reload your project data here
 dbMakeObjectCube(1,3)
 dbScaleObject(1,88,88,88)
 dbColorBackdrop(RGB(Random(255),Random(255),Random(255)))
 dbMessage("Info","D3DDeviceReset")
EndProcedure

dbSetD3DDeviceCallback(@D3DDeviceLost(),#GDK_Callback_DeviceLost)
dbSetD3DDeviceCallback(@D3DDeviceReset(),#GDK_Callback_DeviceReset)

dbMakeObjectCube(1,3)
dbScaleObject(1,88,88,88)
dbColorBackdrop(RGB(0,0,0))

Repeat: Delay(1)
 x.f+0.1: y.f+0.4: z.f+0.7
 dbRotateObject(1,x.f,y.f,z.f)
 dbSync()
ForEver