Question débile entre directx7 et directx9

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Question débile entre directx7 et directx9

Message par Crystal Noir »

Bonjour bonjour la compagnie,

bon malgré mes déboires avec la compilation en directx 9 j'ai juste une question, concernant les performances, parce que vous comprenez moi yen a un peu con con sur les bords, j'arrive à pondre des codes mais encore faut il comprendre certaines choses.

Vu que directx 9 ca gazouille à fond en dual screen, je m'amuse à faire des tests. j'ai pris un code que j'avais fait qui marche très bien mais qui utilise un grand nombre de sprites (et pas des sprites3D).

Je me suis amusé à le faire compiler en directx9 (en prenant le soin de désactiver mon second écran lol) et puis ensuite essayer de le compiler en subsystem directx7.

Et là je remarque un truc qui est carrément flagrant : en Directx 7 un grand nombre de sprites mais exécution très rapide, très fluide.

Par contre en Directx9 mon dieu que ca rame, avec le même code.

Il y a t'il une raison à cela ? au besoin je pourrais vous poster le code bien entendu mais je pense que la différence vient surtout du fait que dx9 ne doit pas y (à l'auvergnate) gérer de la même manière.

Merci pour vos précisions.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Question débile entre directx7 et directx9

Message par Le Soldat Inconnu »

DX9 ou DX7, je ne vois aucune différence en sprite3D
mais niveau sprite classique, le DX7 semble plus rapide :|
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Re: Question débile entre directx7 et directx9

Message par Crystal Noir »

Le Soldat Inconnu a écrit :DX9 ou DX7, je ne vois aucune différence en sprite3D
mais niveau sprite classique, le DX7 semble plus rapide :|
Voilà c'est que je dis, et je voulais savoir pourquoi. Pourquoi les sprites tout court ca rame rapidos avec dx9.
Fred
Site Admin
Messages : 2805
Inscription : mer. 21/janv./2004 11:03

Re: Question débile entre directx7 et directx9

Message par Fred »

un exemple ?
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Re: Question débile entre directx7 et directx9

Message par Crystal Noir »

Par exemple ce code qui permet de faire exploser une image en morceaux, je l'avais appelé explosion mosaique. Voici l'image que j'utilise, le code est juste après :

Image

Code : Tout sélectionner

;Effet mosaic + explosion

;Initialisation des composants 
InitSprite()
InitKeyboard() 
InitMouse()
UseJPEGImageDecoder()


;Constantes 
#Pingouin = 0

;Variables Globales
Global Mosaic


;Création de la fenêtre principale 
MaFenetre = OpenScreen(800,600,32,"Mosaic",#PB_Screen_WaitSynchronization,60)
If MaFenetre  = 0 
  MessageRequester("Erreur", "Impossible d'ouvrir une fenêtre DirectX", #PB_MessageRequester_Ok) 
EndIf 

;Chargement des images
LoadSprite(#Pingouin,"pingouin.jpg")

;Creation de la structure
Structure Morceau
  x.f
  y.f
  sourcex.f
  sourcey.f
  Explox.f
  Exploy.f
EndStructure
Global NewList Ping.Morceau()

;Procedures du programme

Procedure Mosaic()
  For posx = 0 To 400 Step 8
    For posy = 0 To 300 Step 8
      AddElement(Ping())
      Ping()\x = posx + 200
      Ping()\y = posy + 150
      Ping()\sourcex = sourcex
      Ping()\sourcey = sourcey
      Ping()\Explox = Random(30) - 15
      Ping()\Exploy = Random(30) - 15
      sourcey = sourcey + 8
    Next
    sourcex = sourcex + 8
    sourcey = 0
  Next
EndProcedure

Procedure AfficheExplo()
  ResetList(Ping())
  While NextElement(Ping())
    Ping()\x = Ping()\x + Ping()\Explox
    Ping()\y = Ping()\y + Ping()\Exploy
    ClipSprite(0,Ping()\sourcex,Ping()\sourcey,8,8)
    DisplaySprite(0,Ping()\x,Ping()\y)
    If Ping()\x > 800 Or Ping()\x < 0 Or Ping()\y > 600 Or Ping()\y < 0
      DeleteElement(Ping())
    EndIf
  Wend
EndProcedure

Procedure AfficheMos()
  ResetList(Ping())
  While NextElement(Ping())
    ClipSprite(0,Ping()\sourcex,Ping()\sourcey,8,8)
    DisplaySprite(0,Ping()\x,Ping()\y)
  Wend
EndProcedure

Procedure AfficheCrack()
  ResetList(Ping())
  While NextElement(Ping())
    a = Random(4) - 2
    b = Random(4) - 2
    Ping()\x = Ping()\x + a
    Ping()\y = Ping()\y + b
    ClipSprite(0,Ping()\sourcex,Ping()\sourcey,8,8)
    DisplaySprite(0,Ping()\x,Ping()\y)
  Wend
EndProcedure
 
Mosaic()
AfficheMos()
FlipBuffers()
Delay(2500)
AfficheCrack()
StartDrawing(ScreenOutput())
  BackColor(RGB(0,0,0))
  FrontColor(RGB(255,255,255))
  DrawText(300,500,"Attention ca va péter !")
StopDrawing()
FlipBuffers()
Delay(2000)

Repeat
  ClearScreen(RGB(0,0,0))
  AfficheExplo()
  ExamineKeyboard()
  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Compilez le en DirectX 7 c'est niquel rapide et fluide, faites le en directx 9 l'affichage de l'explosion sera beaucoup plus lent.
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Question débile entre directx7 et directx9

Message par venom »

autre question bête :lol: comment fait ont pour choisir entre le DX 9 ou DX7 ???







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Question débile entre directx7 et directx9

Message par Le Soldat Inconnu »

Dans les options de compilation, il y a une case "subsystem", dedans, il faut choisir DX7 :)
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Question débile entre directx7 et directx9

Message par venom »

:?: :!: :lol: je ne trouve pas désolé là






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Question débile entre directx7 et directx9

Message par Le Soldat Inconnu »

La ou tu coches "Support des thèmes XP", "unicode", "Mode user sous vista", etc ...
il y a un truc "sous-système", il faut choisir directX 7
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Re: Question débile entre directx7 et directx9

Message par Crystal Noir »

Alors vous avez testé avec mon exemple ? :mrgreen:
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Question débile entre directx7 et directx9

Message par venom »

Ah d'accord c'est un stringgadget dans lequel tu ecrit "directX 7" :lol:
Moi je chercher un comboboxgadget :oops: :lol:

Et bien truck de fou, si je laisse vide ou si je met "directX 7" niquel, par contre si je met "directX 9" ou "directX 11" message d'erreur : "Le sous système est introuvable" :?

Donc Crystal Noir pour le moment ton code fonctionne bien en "directX 7" :mrgreen:







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Re: Question débile entre directx7 et directx9

Message par Crystal Noir »

Il fonctionne bien aussi en Directx 9 chez moi...par contre ca rame grave et en directx7 c'est fluide.

Juste au cas où, dans les options du compilateur, si t'as mis "DirectX9" t'auras ce message d'erreur, car par défaut pb le compile en dx9 sans option.
TARD
Messages : 12
Inscription : jeu. 08/janv./2009 18:01

Re: Question débile entre directx7 et directx9

Message par TARD »

Pour moi c'est plutot directX 9 (Donc rien d'inscrit dans la case qui fonctionne le mieux)
sous une photo de 1280x1024 car je n'y voyais aucune différence avec ton image d'origine
et bien sur :
MaFenetre = OpenScreen(1280,1024,32,"Mosaic",#PB_Screen_WaitSynchronization,60)

For posx = 0 To 1280 Step 8
For posy = 0 To 1024 Step 8

puis

If Ping()\x > 1280 Or Ping()\x < 0 Or Ping()\y > 1024 Or Ping()\y < 0

que j'ai changer pour l'avoir en pleinne page
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Question débile entre directx7 et directx9

Message par venom »

Moi c'est pareille l'explosion est plus fluide sous DX9 que DX7 surtout au début de l'explosion sous DX7 je voie un léger blocage au départ de l'explosion, que sous DX9 fluide du début a la fin.

il y a pas moyen d'ajouté les FPS pour voir il il n'y a pas de chute entre le DX7 et la DX9 ? Âpres ça n'a peut être rien a voir :?







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Re: Question débile entre directx7 et directx9

Message par Crystal Noir »

venom a écrit :Moi c'est pareille l'explosion est plus fluide sous DX9 que DX7 surtout au début de l'explosion sous DX7 je voie un léger blocage au départ de l'explosion, que sous DX9 fluide du début a la fin.

il y a pas moyen d'ajouté les FPS pour voir il il n'y a pas de chute entre le DX7 et la DX9 ? Âpres ça n'a peut être rien a voir :?

Moi c'est l'inverse tout comme LSI c'est plus rapide avec DirectX 7.
Répondre