Page 2 sur 2

Publié : dim. 31/mai/2009 7:03
par Ollivier
@Dobro

Ceci est la gueule de la gestion d'affichage dans une boucle principale d'un programme fini et performant (pas de saturation du CPU):

(Pour moi, ça ne me semble pas extrêmement lourd : AUCUN StartDrawing dans la boucle principale...)

Code : Tout sélectionner

Delay(1)

Usebuffer(spriteA)
DisplaySprite()
Etc...

Usebuffer(spriteB)
DisplaySprite()
Etc...

Usebuffer(#pb_any) ; Affichage à l'écran
DisplaySprite()

FlipBuffers()

Publié : dim. 31/mai/2009 9:26
par beauregard
KrisJNT a écrit :Euh... j'ai pas trop compris : où dois-je taper DirectX9 ?
Sinon, j'ai un peu de mal avec les log, mais je peux toujours essayer de le comprendre.
Menu/Compilateur/Options du compilateur...

...Bibliothèque sous système: là

Publié : dim. 31/mai/2009 9:37
par KrisJNT
J'ai tapé DirectX9 : même résultat (on s'en sortira jamais ^^)
Voici le code qui Bug en me disant :
Line 5 : #Sprite not initialized

Code : Tout sélectionner

InitEngine3D()
InitSprite()
OpenScreen(1024, 768, 32, "")
CreateSprite(0, 100, 100)
Debug SpriteOutput(0)

Publié : dim. 31/mai/2009 10:07
par djes
Comme tu utilises Ogre (avec InitEngine3D()), tu dois t'assurer d'avoir mis, comme beauregard l'a dit, la bibliothèque sous-système DirectX9 dans les options. Tu dois ensuite vérifier le retour de chacune des fonctions que tu appelles. Si ça ne fonctionne toujours pas, c'est que tu as un souci avec DirectX9 (genre installation de pilotes, ou ta carte graphique non compatible)

Voici un petit code qui vérifie tout ça.

Code : Tout sélectionner

CompilerIf Subsystem("DirectX9")
  Debug "Compiling with the DirectX9 subsystem"
CompilerElse
  Debug "Not compiling with the DirectX9 subsystem"
  End
CompilerEndIf

If InitEngine3D()
  If InitSprite()
    If OpenScreen(800, 600, 16, "")
      If CreateSprite(0, 32, 32)
        Debug SpriteOutput(0) 
      Else
        Debug "Probleme avec CreateSprite"
      EndIf
    Else
      Debug"Probleme avec OpenScreen"
    EndIf
  Else
    Debug "Probleme avec InitSprite"
  EndIf
Else
  Debug "Probleme avec InitEngine3D"
EndIf

Publié : dim. 31/mai/2009 10:15
par KrisJNT
J'ai bien DX9, ça doit venir de la carte graphique parce que je tombe sur le cas où je ne peux pas compiler avec DX9. J'essaierai sur mon autre ordi (plus puissant) et je vous en dirai des nouvelles !
Juste pour info, on est réellement obligé de fournir cette bibliothèque ? Elle n'est pas compilée par défaut ?

Publié : dim. 31/mai/2009 10:17
par djes
Non, par défaut c'est DirectX7 qui est choisi, parce qu'il est plus compatible je pense. On a demandé une liste déroulante pour la prochaine version :)

Publié : dim. 31/mai/2009 12:39
par Ollivier
Salut KrisJNT,

Je vois que Djes a mis un code qui diagnostique bien: quelle message exact vois-tu apparaître grâce à ce code?

Ollivier

Publié : dim. 31/mai/2009 21:54
par beauregard
djes a écrit :On a demandé une liste déroulante pour la prochaine version :)
bonne idée :)