seven x64 ClipSprite3D de Eddy

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

seven x64 ClipSprite3D de Eddy

Message par beauregard »

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 ?

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
philippe
config de mon ordi: seven, directx11, Pentium(R) DualCore E5700, RadeonHD 4550 512MB, PureBasic 4.61 x86
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: seven x64 ClipSprite3D de Eddy

Message par gnozal »

beauregard a écrit :Par contre, travaille avec pb4.51, ça ne marche plus vraiment comme avant. :?
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)
Le "sous-système" par défaut depuis PB4.40 est DirectX9.
En option : DirectX7 et OpenGL.
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Re: seven x64 ClipSprite3D de Eddy

Message par Cool Dji »

Salut Beauregard,

Content de te relire...
Pour windows directx; il ne faut rien mettre dans les options du compilateur (bibiliothèque sous système) = ça tourne tout seul !!
Only PureBasic makes it possible
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

Re: seven x64 ClipSprite3D de Eddy

Message par beauregard »

Cool Dji a écrit :Salut Beauregard,

Content de te relire...
Pour windows directx; il ne faut rien mettre dans les options du compilateur (bibiliothèque sous système) = ça tourne tout seul !!
mais moi aussi j'aime à vous lire, même si il est vrai que je passe moins souvent. :)

Le problème est toujours, là: les sprites 3D ne s'affichent pas en pb x64.

ps: en x86 ça marche finalement, ouf (la commande drawtext est définitivement à proscrire).
config de mon ordi: seven, directx11, Pentium(R) DualCore E5700, RadeonHD 4550 512MB, PureBasic 4.61 x86
Répondre