Publié : lun. 10/déc./2007 12:58
Structure not found : D3DVIEWPORT7
J'ai la dernière version de PB.
Lio
J'ai la dernière version de PB.
Lio
T'as essayé le chatterton?Wouaaaaaaaaaaaa dur dur de programmer avec un gamin de 3ans surexité qui passe son temps a sauter, crier, taper les objets...lollllllllllll
J'ai le même problème!Structure not found : D3DVIEWPORT7
J'ai la dernière version de PB.
Code : Tout sélectionner
Structure D3DVIEWPORT7
dwX.l
dwY.l
dwWidth.l
dwHeight.l
dvMinZ.f
dvMaxZ.f
EndStructure
ProcedureDLL.l ScreenWidth()
!extrn _PB_Screen_Width
!MOV eax, [_PB_Screen_Width]
ProcedureReturn
EndProcedure
ProcedureDLL.l ScreenHeight()
!extrn _PB_Screen_Height
!MOV eax, [_PB_Screen_Height]
ProcedureReturn
EndProcedure
ProcedureDLL.l ScreenDepth()
!extrn _PB_Screen_Depth
!MOV eax, [_PB_Screen_Depth]
ProcedureReturn
EndProcedure
ProcedureDLL.l 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.l 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.l 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
InitSprite()
InitSprite3D()
OpenWindow(0, 0, 0, 640, 480, "ClipScreen3D")
OpenWindowedScreen(WindowID(0), 0, 0, 640, 480, 0, 0, 0)
CreateSprite(0, 128, 128, #PB_Sprite_Texture)
If StartDrawing( SpriteOutput(0) )
Box(0, 0, 128, 128, #Green)
Circle(64, 64, 64, #Red)
StopDrawing()
EndIf
CreateSprite3D(0, 0)
If Start3D()
;ClipScreen3D2(0, 0, 100, 100)
DisplaySprite3D(0, 50, 50)
Stop3D()
EndIf
FlipBuffers()
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow