public IrrlichtDevice(DriverType type, dimension2d dim, int bits, bool fullscreen, bool stencil, bool vsync, bool antialias, IntPtr windowHandle)
{
Console.WriteLine("Irrlicht.NET CP v" + CPVersion + " running");
exeption ----> Initialize(CreateDeviceA(type, dim.ToUnmanaged(), bits, fullscreen, stencil, vsync, antialias, windowHandle.ToInt32()));
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
MainNativeEvent = OnNativeEvent;
Device_SetCallback(_raw, MainNativeEvent);
}
J'ai déjà réalisé quelques maquettes avec irrlicht/newton/openAl mais jamais avec .net et c#. Je réalise un soft MDI qui me permet, entre autre, de visualiser en 3D les trajectoires de planeurs radio-commandés équipés de télémétrie. Bref, pour débuter, je fait tourner l'exemple dispo dans le SDK de irr CP dans une de mes fenetres dans un thread à part.
Lorsque j'utilise le debugger, une fois sur deux une exeption est levée sur l'init du device. J'ai pas constaté de pb sans debug. N'y connaissans pas grand chose quant aux exeptions et aux particularités de irr CP, je me tourne vers vous.
Y a t'il une solution à ce pb ?
merci d'avance.
Hors ligne
Bon, j'ai pas trop cherché mais il semble que le bug se produise lorque le volet winform dans laquelle tourne irrlicht n'est pas développé au moins une fois. J'utilise la lib winform "weifenluo". Peut etre s'agit-il d'un pb lié au handle du winform non lié à irrlicht. A creuser...
J'ai un autre souci avec les évènements. Le rendu est effectué dans un panel en marge d'un property grid dans un winform. Les évènements logtext sont bien remontés mais pas les claviers.
Je pense qu'il s'agit d'un pb lié au panel, aussi ma question :
Dans quel type de form doit on afficher irrlicht ?
merci d'avance de votre aide.
Hors ligne
Le débuggueur de Visual Studio est un vrai créateur de problèmes... Et de lenteur... Mais bon on peut pas s'en passer...
Donne le code d'initialisation de ton device stp
Hors ligne
instance
device = new IrrlichtDevice(drivertype,
optimalmode.Resolution,
optimalmode.Depth, fullscreen,
true, //Stencil Buffer (for shadow)
false, //Vertical Synchronisation (use it if you want your application not to go over 70 FPS)
false, //Anti Aliasing
this.myDeviceHDLE); //
def
IntPtr myDeviceHDLE;
IrrlichtDevice device;
myDeviceHDLE = this.panel1.Handle;
irr tourne dans un thread different du document.
voilà, tout me parrait normal...
Hors ligne
irr tourne dans un thread different du document.
Ca peut venir de là, mais là j'avoue que j'ai jamais trop creusé la manière dont Irrlicht se débrouillait pour se lier à un handle... Regarde sur les tutos d'Irrlicht .NET CP (ou sur le forum), il doit y en avoir un qui montre comment se débrouiller sans deux threads.
Hors ligne
J'ai mis à jour mon framework MDI, passant du Dockpalnel suite 1.2 au 2.0 tout frais démoulé. Je n'observe plus le pb. Pour l'éviter, il fallait "dé-docker" la fenetre au moins une fois...le pointeur (handle) ne devait pas etre le bon je pense.
Voilà, j'ai d'autres soucis extérieur à irrlicht qui tourne correctement, j'ai rajouté une mise en sommeil légère pour laisser du temp proc au rafraichissement des autres fenetres filles et l'intégration me parait jouable. J'avais un autre probleme concernant les évènements clavier (mais pas souris) que je n'arrive pas à intercepter, aussi bien dans la messagerie irr que Dockpanel. Je vais creuser ça une fois résolu les autres soucis.
A+
Hors ligne
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 59 invités en ligne Aucun membre connecté RSS Feed |