Vb6Malade
Messages postés43Date d'inscriptionmercredi 25 février 2004StatutMembreDernière intervention 1 septembre 2008
-
15 août 2007 à 10:53
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 2012
-
15 août 2007 à 14:32
Salut a toi qui viens partager mes soucis mais laisse moi te les exposer.
Voila apres quelques lectures a propos de directdraw sur le sdk et sur le Net je me suis essayé au codage d'une animation avec directdraw.
avant la catastrophe que tu vas lire(càd le code) je tiens a te preciser que ce code fonctionne uniquement si je le met en fullscreenexclusive or je souhaite l'afficher dans une form toute conne alors j'ai mi normal mais la ca marche PAS!!
Si tu comprends d'où vient l'erreur,ou que mes commentaires parraissent faux ou bien encore que c'est bourré de trucs inutils fais-le
moi savoir.
Merci voici le code(ne pas oublier les references directx et directdraw)
ps:j'utilise directx9.c et vb20005
pps:moi j'ai l'erreur a cette ligne:Surface = New Surface(SDescription, Device)
'====================code=====================
Imports Microsoft.DirectX
Imports
Microsoft.DirectX.DirectDraw
Public
Class
Form1
Dim
Device
As
Device
Dim
Surface
As
Surface
Dim
Surface_Temp
As
Surface
Dim
Clip
As
Clipper
Dim
Fin
As
Boolean
=
False
Private
Sub
Form1_Leave(
ByVal
sender
As
Object
,
ByVal
e
As
System.EventArgs)
Handles
Me
.LeaveFin =
True
End
Sub
Private
Sub
Form1_Load(
ByVal
sender
As
System.Object,
ByVal
e
As
System.EventArgs)
Handles
MyBase
.LoadDevice =
New
Device()Device.SetCooperativeLevel(
Me
, CooperativeLevelFlags.Normal)
'pas en gd ecran
Initialisation()
LaBoucle()
End
Sub
Public
Sub
Initialisation()
Dim
SDescription
As
New
SurfaceDescription
'variable de description des surfaces utilisées
SDescription.SurfaceCaps.PrimarySurface =
True
'on utilise une primarysurf
SDescription.SurfaceCaps.Flip =
True
'moyen de remplissage
SDescription.SurfaceCaps.Complex =
True
'plus d'une surface est crée
SDescription.BackBufferCount = 1
'c'est le nbre de surface 2daires
Dim
caps
As
New
SurfaceCapscaps.PrimarySurface =
True
SDescription.SurfaceCaps = caps
Clip =
New
Clipper(Device)
'initialise le clipper
Clip.Window =
Me
Surface =
New
Surface(SDescription, Device)
'initialise la surface principale
Surface.Clipper = Clip
SDescription.Clear()
'on vide SDescription pour pouvoir initialiser surface_temp sans creer une autre var
Dim
SDescription1 =
New
SurfaceDescriptionSDescription.SurfaceCaps.BackBuffer =
True
'indique que cette surface sera le buffer
Surface_Temp =
New
Surface(SDescription1, Device)Surface_Temp = Surface.GetAttachedSurface(SDescription.SurfaceCaps)
'on relie les 2 surfaces
End
Sub
Public
Sub
LaBoucle()
Do
While
Not
FinAfficher()
Application.DoEvents()
Loop
Fermer()
End
Sub
Public
Sub
Fermer()Surface.Dispose()
Surface_Temp.Dispose()
Device.Dispose()
Clip.Dispose()
End
End
Sub
Public
Sub
Afficher()Surface_Temp.ColorFill(Color.Chartreuse)
'rempli la surface d'une couleur a la con
Surface.Flip(Surface_Temp, FlipFlags.DoNotWait)
'pis on colle la surface temp dans la surface principale
Vb6Malade
Messages postés43Date d'inscriptionmercredi 25 février 2004StatutMembreDernière intervention 1 septembre 2008 15 août 2007 à 10:59
si qqun sait comment supprimer et modifier un message qu'il me dise comment et si un modo passe par la je lui serait gré de supprimer ce message et celui d'avant merci.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 15 août 2007 à 14:32
Salut
puisque greg ... bref, on va etre oblige de mettre son message d'erreur a sa place...
<Greg> L'exception Microsoft.DirectX.DirectDraw.NoExclusiveModeException n'a pas été gérée
<Greg> error string "DDERR_NOEXCLUSIVEMODE"
<Greg> error code -2005532447
selon ce qu'il a dit sur irc avant de s'enerver...