DirectDraw + MultiMoniteurs = pas de surface primaire....?? [VB6] - Programmation
Marsh Posté le 25-02-2001 à 02:46:28
put1
je veux pas aller fouiller dans le knowledge base de microsoft(:gun!!!!!
--Message édité par Ventilo--
Marsh Posté le 25-02-2001 à 18:59:59
il faut peut-être que tu choisisse avant le driver sur lequel tu crée la surface... j'en suis pas sûr j'ai jamais essayé de programmer du directdraw sur un système multi-moniteur (et en y repensant mes applics programmé en directdraw sur ma machien passaient très bien sur la machine d'un pote qui avait plusieurs moniteurs donc je ne sais pas...)
Marsh Posté le 25-02-2001 à 20:27:56
il s'semblerait que se soi le paramêtre DDSCAPS_VIDEOMEMORY qui cause lerreur!:fou:
D'acord le program fonctione quand je l'enlève, mais il roule 10x moin vite!!!
Vaiment la! Et puis le suele moyem de démarer le prog sans erreur c'est de "disabler" lécran secondaire! Bon vraiment faut je trouve une solution!
Marsh Posté le 25-02-2001 à 23:16:46
t'es sûr ??? normalement par défaut la surface est de toute façon crée en mémoire vidéo, donc que tu l'enlèves ou pas ne devrait rien y changer... à moins que tu ne le remplace par DDSCAP_SYSTEMMEMORY, mais j'y pense une surface primaire est forcément en mémoire vidéo ! pas logique ton truc ...
Marsh Posté le 27-02-2001 à 02:24:55
Sans raison logique, lorsque j'ai ouvert mon program il y a quelque minutes, il s'est lancé correctement sans erreures...
je me demande si c'est pas VB qui me jouait des tours parce que si effectivement une surface est crée en mémoire video par defaut pourquoi en enlevant ce paramêtre tout fonctionait?
pas grave tant que ca marche
Marsh Posté le 27-02-2001 à 13:16:25
ah oui... moi j'utilise VC habituellement... je sais pas ce que ça donne avec VB mais apparement c pas super .
Marsh Posté le 25-02-2001 à 00:20:08
Voila, quand jessaye de crée un surface comme ceci:
<code>
Dim ddsd1 As DDSURFACEDESC2
ddsd1.lFlags = DDSD_CAPS Or DDSD_BACKBUFFERCOUNT
ddsd1.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE Or DDSCAPS_FLIP Or DDSCAPS_COMPLEX Or DDSCAPS_VIDEOMEMORY
ddsd1.lBackBufferCount = 1
Set sPrimaire = DD.CreateSurface(ddsd1)
</code>
et je me demandait commen je pourait régler ce problem, c'est dans le setCooperativeLevel ??
lorque la ligne Set execcute, une erreur m'est donner...
numéro:-2005532109
bon et sa faisait pas ca lorsque javais juste un moniteur...
--Message édité par Ventilo--