Ну установи тогда на окно блица коллбэк и делай его поверх всех (HWND_TOPMOST) с помощью WINAPI - SetWindowPos. Заодно можешь отправлять приложение поспать когда оно теряет фокус.
Исходник на PureBasic:
Global BlitzWindow.l
Global BlitzCallback.l
Global BlitzActived.b
Procedure WindowCallback(Window, Message, WParam, LParam)
Select Message
Case #WM_KILLFOCUS
BlitzActived = 0
SetWindowPos_(Window, #HWND_TOPMOST, 0, 0, 0, 0, #SWP_NOMOVE|#SWP_NOSIZE)
Case #WM_SETFOCUS
BlitzActived = 1
Case #WM_ACTIVATE
BlitzActived = WParam & 1
EndSelect
ProcedureReturn CallWindowProc_(BlitzCallback, Window, Message, WParam, LParam)
EndProcedure
ProcedureDLL DetachProcess(Instance)
SetWindowLong_(BlitzWindow, #GWL_WNDPROC, BlitzCallback)
EndProcedure
ProcedureDLL SetCallback(Window)
BlitzWindow = Window
BlitzCallback = SetWindowLong_(Window, #GWL_WNDPROC, @WindowCallback())
SetWindowPos_(Window, #HWND_TOPMOST, 0, 0, 0, 0, #SWP_NOMOVE|#SWP_NOSIZE)
BlitzActived = 1
EndProcedure
ProcedureDLL IsActived()
ProcedureReturn BlitzActived
EndProcedure
Юзать на блице так
Graphics3D(800, 600, 32, 2)
SetBuffer(BackBuffer())
SetCallback(SystemProperty("AppHWND"))
Camera = CreateCamera()
Repeat
If IsActived()
RenderWorld()
Flip()
Else
Delay(20)
EndIf
Until KeyDown(1)
End