seven x64 ClipSprite3D de Eddy
Publié : lun. 14/mars/2011 23:08
Bonsoir,
Il y a peu j'ai changé de machine, caractéristique:
pentium(R) dual-core
GeForce315
Windows 7 édition familiale premium 64 bits
je suis content de la machine, mes jeux fait sous pb et les jeux homebrew et commerciaux tournent sans accroc, c'est cool.
Par contre, travaille avec pb4.51, ça ne marche plus vraiment comme avant.
en x86: chute de fps
en x64: chute de fps + sprites3D ne s'affichent pas
Si dans option du compilateur, Bibliothèque sous-système je met directx9 ou directx11,
Alors Compiler Error: Le sous-système suivant est introuvable: directx9 (ou 11)
Peut-être que cela vient aussi du ClipSprite3D de Eddy qui n'est plus valable en x64 ?
philippe
Il y a peu j'ai changé de machine, caractéristique:
pentium(R) dual-core
GeForce315
Windows 7 édition familiale premium 64 bits
je suis content de la machine, mes jeux fait sous pb et les jeux homebrew et commerciaux tournent sans accroc, c'est cool.

Par contre, travaille avec pb4.51, ça ne marche plus vraiment comme avant.

en x86: chute de fps
en x64: chute de fps + sprites3D ne s'affichent pas
Si dans option du compilateur, Bibliothèque sous-système je met directx9 ou directx11,
Alors Compiler Error: Le sous-système suivant est introuvable: directx9 (ou 11)
Peut-être que cela vient aussi du ClipSprite3D de Eddy qui n'est plus valable en x64 ?
Code : Tout sélectionner
; ClipSprite3D DirectX7 / DirectX9 pour pb 4.30
Structure D3DTLVERTEX
x.f
y.f
z.f
rhw.f
Color.l
tu.f
tv.f
EndStructure
Structure PB_DX9Sprite3D
TexRes.l ; TexRes
Vertice.D3DTLVERTEX[4] ; The 4 vertices for the rectangle sprite
TmpVertice.D3DTLVERTEX[4] ; The 4 vertices for the rectangle sprite
Width.l ; width set with ZoomSprite3D()
Height.l ; height set with ZoomSprite3D()
RealWidth.l
RealHeight.l
Angle.f
Transformed.l
EndStructure
Procedure ClipSprite3D(Sprite3D,ClipX,ClipY,ClipWidth,ClipHeight)
Protected *ptr.PB_DX9Sprite3D = IsSprite3D(Sprite3D)
If *ptr = 0 : ProcedureReturn #False : EndIf
If ClipX < 0 : ClipX = 0 : EndIf
If ClipY < 0 : ClipY = 0 : EndIf
If ClipWidth < 0 : ClipWidth = 0 : EndIf
If ClipHeight < 0 : ClipHeight = 0 : EndIf
If ClipX > *ptr\RealWidth : ClipX = *ptr\RealWidth : EndIf
If ClipY > *ptr\RealHeight : ClipY = *ptr\RealHeight : EndIf
If ClipX + ClipWidth > *ptr\RealWidth : ClipWidth = *ptr\RealWidth - ClipX : EndIf
If ClipY + ClipHeight > *ptr\RealHeight : ClipHeight = *ptr\RealHeight - ClipY : EndIf
*ptr\Vertice[0]\tu = ClipX / *ptr\RealWidth
*ptr\Vertice[0]\tv = ClipY / *ptr\RealHeight
*ptr\Vertice[1]\tu = (ClipX + ClipWidth) / *ptr\RealWidth
*ptr\Vertice[1]\tv = ClipY / *ptr\RealHeight
*ptr\Vertice[2]\tu = ClipX / *ptr\RealWidth
*ptr\Vertice[2]\tv = (ClipY + ClipHeight) / *ptr\RealHeight
*ptr\Vertice[3]\tu = (ClipX + ClipWidth) / *ptr\RealWidth
*ptr\Vertice[3]\tv = (ClipY + ClipHeight) / *ptr\RealHeight
ProcedureReturn #True
EndProcedure