Code: Select all
;-******************************************************************************************************
ProcedureDLL.i ScreenWidth()
!EXTRN _PB_Screen_Width
!MOV Eax, [_PB_Screen_Width]
ProcedureReturn
EndProcedure
;******************************************************************************************************
ProcedureDLL.i ScreenHeight()
!EXTRN _PB_Screen_Height
!MOV Eax, [_PB_Screen_Height]
ProcedureReturn
EndProcedure
;******************************************************************************************************
ProcedureDLL.i ScreenDepth()
!EXTRN _PB_Screen_Depth
!MOV Eax, [_PB_Screen_Depth]
ProcedureReturn
EndProcedure
;******************************************************************************************************
ProcedureDLL.i ClipScreen3D()
Protected Clip.l, *ViewPort.D3DVIEWPORT7
Protected Sprite3DDevice.IDirect3DDevice7
!EXTRN _PB_Direct3D_Device
!MOV Eax, dword [_PB_Direct3D_Device]
!MOV dword [p.v_Sprite3DDevice], Eax
!EXTRN _PB_3DViewPort
!MOV dword [p.p_ViewPort], _PB_3DViewPort
*ViewPort\dwX = 0
*ViewPort\dwY = 0
*ViewPort\dwWidth = ScreenWidth()
*ViewPort\dwHeight = ScreenHeight()
*ViewPort\dvMinZ = 0.0
*ViewPort\dvMaxZ = 1.0
If Sprite3DDevice\SetViewport(*ViewPort) = #S_OK
Clip = #True
EndIf
ProcedureReturn Clip
EndProcedure
;******************************************************************************************************
ProcedureDLL.i ClipScreen3D2(x.l, y.l, Width.l, Height.l)
Protected Clip.l, *ViewPort.D3DVIEWPORT7
Protected Sprite3DDevice.IDirect3DDevice7
!MOV Eax, dword [_PB_Direct3D_Device]
!MOV dword [p.v_Sprite3DDevice], Eax
!MOV dword [p.p_ViewPort], _PB_3DViewPort
*ViewPort\dwX = x
*ViewPort\dwY = y
*ViewPort\dwWidth = Width
*ViewPort\dwHeight = Height
*ViewPort\dvMinZ = 0.0
*ViewPort\dvMaxZ = 1.0
If Sprite3DDevice\SetViewport(*ViewPort) = #S_OK
Clip = #True
EndIf
ProcedureReturn Clip
EndProcedure
;******************************************************************************************************
ProcedureDLL.i ClipScreen3D3(x.l, y.l, Width.l, Height.l, MinZ.f, MaxZ.f)
Protected Clip.l, *ViewPort.D3DVIEWPORT7
Protected Sprite3DDevice.IDirect3DDevice7
!MOV Eax, dword [_PB_Direct3D_Device]
!MOV dword [p.v_Sprite3DDevice], Eax
!MOV dword [p.p_ViewPort], _PB_3DViewPort
*ViewPort\dwX = x
*ViewPort\dwY = y
*ViewPort\dwWidth = Width
*ViewPort\dwHeight = Height
*ViewPort\dvMinZ = MinZ
*ViewPort\dvMaxZ = MaxZ
If Sprite3DDevice\SetViewport(*ViewPort) = #S_OK
Clip = #True
EndIf
ProcedureReturn Clip
EndProcedure