IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XNA/Monogame Discussion :

Thread pour le chargement de la scene


Sujet :

XNA/Monogame

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut Thread pour le chargement de la scene
    Bonjour pour le chargement de mes scene qui sont sous format XML j'utilise un thread et sur le main thread j'affiche un ecran de chargement.

    Le seul probleme c'est que l'ecran de chagement ne tourne pas a 60 fps :s

    Sur le pc j'arrive a 40fps et sur la XBOX seulement 20.

    Evidement lors du Load mon code est bourre de GetType et de Activator.CreateInstance...

    Y-aurait-il un moyen pour a la limite pour ralentir le chargement mais obtenir + de fps sur l'ecran de loading.

    Il me semble que le Thread.SetPriority n'existe pas sous xbox...

    Merci a vous.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Si vous avez un thread pour le chargement et un autre pour la boucle principale du jeu (affichage du loader), alors il ne devrait pas avoir de ralentissement.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Bonjour

    Comme toujours, quand on a un problème de performance : profiling !

    Sans le code, difficile de deviner s'il y a un problème et où il pourrait se situer mais le problème peut venir de mises à jour trop régulière. Si tu tentes de mettre à jour l'écran de chargement trop souvent (par exemple à chaque ligne du XML, 1000 fois par seconde), tu vas saturer ton affichage. Il faut simplement mettre à jour moins souvent.
    Par exemple, tu peux mettre à jour toutes les 100 lignes ou 1000 lignes (valeur fixé à l'avance). Ou faire un calcul rapide et mettre à jour que quand c'est nécessaire (par exemple, si tu as 50 000 points dans ta scène et que ta barre de progression fait 100 pixels, chaque pixel correspond à 500 points ; tant que tu n'as pas charger 500 points, l'affichage ne change pas)

  4. #4
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    Citation Envoyé par saturn1 Voir le message
    Bonjour pour le chargement de mes scene qui sont sous format XML j'utilise un thread et sur le main thread j'affiche un ecran de chargement.

    Le seul probleme c'est que l'ecran de chagement ne tourne pas a 60 fps :s

    Sur le pc j'arrive a 40fps et sur la XBOX seulement 20.

    Evidement lors du Load mon code est bourre de GetType et de Activator.CreateInstance...

    Y-aurait-il un moyen pour a la limite pour ralentir le chargement mais obtenir + de fps sur l'ecran de loading.

    Il me semble que le Thread.SetPriority n'existe pas sous xbox...

    Merci a vous.
    Ce sample contient la solution sur la manière de procéder à du chargement multithreadé :
    http://create.msdn.com/en-US/educati...ate_management

    Pour ma part j'utilise ça + un export/import en binaire qui a divisé environ par 10 le temps de chargement sur xbox !
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut re
    Dans le sample il fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                while (!backgroundThreadExit.WaitOne(1000 / 30))
                {
                    GameTime gameTime = GetGameTime(ref lastTime);
     
                    DrawLoadAnimation(gameTime);
     
                    UpdateNetworkSession();
                }
    Si je met un WaitOne et attendre le timeout a chaque fois ca va beacoup moins lagger mais ca va etre sacrement + lent.

    PS : MoDDiB tu utilises la serialisation binaire?

    Pour la serialisation binaire il faut que les classes ne prennent pas d'argument?

    Ce qui est legerement embettant dans ma Game car tous mes Nodes prennent en parametre la Game et un Tag.

    Merci.

    Edit: Si tu serializes en binaire avec un scene graph on serialise donc la scene qui va serialiser aussi tous ses children.

    Mais pour deserialiser on est obliger de proceder en deux etages?

    1. On deserialise = instanciation...
    2. On sette les parametres du contructeurs (par exemple la game)
    ... on continue le process normal.

    Merci

  6. #6
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Si je met un WaitOne et attendre le timeout a chaque fois ca va beacoup moins lagger mais ca va etre sacrement + lent
    Oui l'idéal ca serait de pouvoir fragmenter facilement la lecture des assets mais avec le content pipeline c'est vraiment galère...

    PS : MoDDiB tu utilises la serialisation binaire?
    Non au final j'ai opté pour la bonne vieille méthode d'écriture dans un buffer à la main....
    Même avec un grand nombre de données ce n'est pas si long à coder et ça change réellement sur Xbox ( sur pc tu ne verras pas beaucoup de différence ).
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut re
    Un buffer a la main?

    C'est a dire?

    Merci.

  8. #8
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    Citation Envoyé par saturn1 Voir le message
    Un buffer a la main?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    public void Export(GameScene scene , string filename)
            {
                using (FileStream stream = new FileStream(filename, FileMode.Create))
                {
                    BinaryWriter bw = new BinaryWriter(stream);
     
                    // Write Lights
                    bw.Write(scene.AmbientColor);
                    bw.Write(scene.LightColor);
                    bw.Write(scene.LightDirection);
     
                    // Write World entities
                    bw.Write((int)scene.Entities.Count);
     
                    foreach (WorldEntityInstance entity in scene.Entities)
                    {
                        bw.Write(entity.ExportPhysics);
                        bw.Write(entity.ModelName);
                        bw.Write(entity.Position);
                        bw.Write(entity.Rotation);
                        bw.Write(entity.Scale);
                        bw.Write(entity.UpDirection);
                    }
     
                    // Write Physics Entities
                    bw.Write((int)scene.EntitiesPhysic.Count);
     
                    foreach (PhysicEntityInstance entity in scene.EntitiesPhysic)
                    {
                        bw.Write(entity.Position);
                        bw.Write(entity.Rotation);
                        bw.Write(entity.Size);
                        bw.Write((short)entity.Type);
                    }
     
                    // Write Lights
                    bw.Write((int)scene.PointLights.Count);
     
                    foreach (PointLightInstance light in scene.PointLights)
                    {
                        bw.Write(light.Attenuation);
                        bw.Write(light.Color);
                        bw.Write(light.Position);
                        bw.Write(light.Radius);
                    }
     
                    // Write WorldTags
                    bw.Write((int)scene.WorldTags.Count);
     
                    foreach (WorldTag worldTag in scene.WorldTags)
                    {
                        if (String.IsNullOrEmpty(worldTag.Id))
                            worldTag.Id = String.Empty;
     
                        bw.Write(worldTag.Position);
                        bw.Write(worldTag.Id);
                        bw.Write(worldTag.IntId);
                        bw.Write(worldTag.Type);
                    }
     
                    // Write Actors
                    bw.Write((int)scene.Actors.Count);
     
                    foreach (ActorInstance instance in scene.Actors)
                    {
                        string instanceName = String.Empty;
     
                        if (String.IsNullOrEmpty(instance.InstanceName) == false)
                            instanceName = instance.InstanceName;
     
                        bw.Write(instance.ActorName);
                        bw.Write(instanceName);
                        bw.Write(instance.Position);
                        bw.Write(instance.Rotation);
                        bw.Write(instance.Scale);
                        bw.Write(instance.TagInt);
                        bw.Write(instance.UpDirection);
                    }
     
                    // Write Particles
                    bw.Write((int)scene.Particles.Count);
     
                    foreach (ParticlesInstance instance in scene.Particles)
                    {
                        bw.Write(instance.ParticleId);
                        bw.Write(instance.Position);
                    }
     
     
                    // Write Triggers
                    bw.Write((int)scene.Triggers.Count);
     
                    foreach (Trigger trigger in scene.Triggers)
                    {
                        bw.Write(trigger.Name);
                        bw.Write(trigger.TagInt);
                        bw.Write(trigger.TagString);
                        bw.Write(trigger.PhysicObject.Position);
                        bw.Write(trigger.PhysicObject.Size);
                    }
     
     
                }
     
            }
        }
    XD

    Il faut le projet content processor qui permettra de lire ce type de fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     [ContentImporter(".bin", DefaultProcessor = "BinaryProcessor",
              DisplayName = "Binary Importer")]
        class BinaryImporter : ContentImporter<byte[]>
        {
            public override byte[] Import(string filename,
                ContentImporterContext context)
            {
                return System.IO.File.ReadAllBytes(filename);
            }
        }
    et la lecture fonctionne de la même manière.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      byte[] datas = content.Load<byte[]>(sceneName);
     
                using ( MemoryStream stream = new MemoryStream(datas))
                {
                    BinaryReader br = new BinaryReader(stream);
     
                    // Read Global Light
                    scene.AmbientColor = br.ReadVector3();
                    scene.LightColor = br.ReadVector3();
                    scene.LightDirection = br.ReadVector3();
    Courage
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

  9. #9
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut re
    Merci.

    Dans ton chargement tu fais Activator.CreateInstance et ca ne lag pas?

    Car la on voit que tu settes juste des values... ce qui n'est pas tres lourd effectivement.

    Edit: pour info mon code de chargement est le suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    //update function
                    if (this.LoadingThread == null)
                    {
                        this.LoadingThread = new Thread(new ThreadStart(this.ManageLoading));
                        this.LoadingThread.Start();
                    }
                    else if (!this.LoadingThread.IsAlive)
                        this.CurrentState = State.Playing;
     
     
     
     
     
     
     
            private void ManageLoading()
            {
                if (FirstUpdateThreadLoading)
                {
    #if XBOX
                    Thread.CurrentThread.SetProcessorAffinity(new int[] { 5 });
    #endif
                    this.FirstUpdateThreadLoading = false;
                }
                bool ret = true;
     
                while (ret)
                {
                    ret = this.MultiTreeLoader.Load();
                }
                this.FlushLoading();
    Et apres le multi tree Loader est bourrer de CreateInstance et GetType effectivement. Et le GetType ressort avec 15% exclusif et 14% pour le CreateInstance...

    J'ai deja essayer d'optimiser en mettant le GetType en cache (map string, type) mais bon ca lag toujours.

    Merci de votre aide.

  10. #10
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    Citation Envoyé par saturn1 Voir le message
    Dans ton chargement tu fais Activator.CreateInstance et ca ne lag pas?
    Je n'ai des createInstance que dans mes editeurs et pas dans le jeu.
    C'est vachement lourd, si tu as la possibilité de faire ta factory autrement n'hésites pas !
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

  11. #11
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut re
    Je n'ai des createInstance que dans mes editeurs et pas dans le jeu.
    Des create instances que dans le jeu ?!? moai...

    Et quand tu lances ton jeu, tes instances sont creer comment ?

    PS: merci pour l'article ca a l'air interessant.

  12. #12
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    Citation Envoyé par saturn1 Voir le message
    Et quand tu lances ton jeu, tes instances sont creer comment ?
    WorldEntity entity = new WorldEntity(); ?
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

  13. #13
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut re
    Ok donc si dans l'editeur je creer 4 entite apres dans ta scene tu rajoutes du code
    public Scene()
    {
    this.actives.add(new Entity); // *4
    }

    En gros tu as des stubs de code que tu injectes dans tes scenes?
    C'est fait automatiquement?

  14. #14
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    Citation Envoyé par saturn1 Voir le message
    Ok donc si dans l'editeur je creer 4 entite apres dans ta scene tu rajoutes du code
    public Scene()
    {
    this.actives.add(new Entity); // *4
    }

    En gros tu as des stubs de code que tu injectes dans tes scenes?
    C'est fait automatiquement?
    Et bien pour les entités ca donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    // Read Entities
                    int entitiesCount = br.ReadInt32();
                    scene.Entities = new List<WorldEntityInstance>(entitiesCount);
     
                    for (int i = 0; i < entitiesCount; i++)
                    {
                        WorldEntityInstance instance = new WorldEntityInstance();
     
                        instance.ExportPhysics = br.ReadBoolean();
                        instance.ModelName  = br.ReadString();
                        instance.Position = br.ReadVector3();
                        instance.Rotation = br.ReadSingle();
                        instance.Scale = br.ReadVector3();
                        instance.UpDirection = br.ReadVector3();
     
                        scene.Entities.Add(instance);
                    }
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

  15. #15
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut re
    Ok merci je pense que je vais rester en XML pour le moment juste que je vais faire une Pool pour chaque type.

    Lors de la lecture du xml je compte chaque type puis je vais les instancier avec un new.

    Merci, je vous dis si c'est plus rapide une fois que c'est implementer.

  16. #16
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut re
    Pour info c'est toujours aussi lent niveau FPS.

    Est-ce que je vais gagner en FPS si le draw je le fais carrement dans le thread qui LOAD. (j'essaie de le faire mais j'ai quelques exception a cause du thread).

    Merci

  17. #17
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    Citation Envoyé par saturn1 Voir le message
    Pour info c'est toujours aussi lent niveau FPS.
    Tu as un fps bas constant ou un fps inconstant ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Est-ce que je vais gagner en FPS si le draw je le fais carrement dans le thread qui LOAD. (j'essaie de le faire mais j'ai quelques exception a cause du thread).
    Même si ça fonctionne je ne pense pas que tu gagneras grand chose.
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

  18. #18
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut re
    fps inconstant qui varie entre 15 et 30 a peu pres sur xbox...


    Bon le pire c'est que je me suis amuser a faire un chargement continue in game.

    En gros au debut je ne charge que ce qui est a un perimetre restreint de la camera puis des que je me deplace je charge un peu plus.

    Le chargement est dans un thread, mais bon des que ca charge des entites en plus ca fait descendre les fps...

    Merci.

  19. #19
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut re
    J'ai gagne environ 20 fps sur xbox avec ta technique du binaire MoDDiB.

    Merci

  20. #20
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    Citation Envoyé par saturn1 Voir le message
    J'ai gagne environ 20 fps sur xbox avec ta technique du binaire MoDDiB.

    Merci
    Niquel, si tu as encore des soucis tu peux jeter un oeil aux sources du IndieFreaks Game framework qui gère le loading en background :
    http://igf.codeplex.com/

    "You can also easily asynchronously preload content while rendering a custom thread safe loading screen."
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [C#] Plusieurs Thread pour éviter le freeze du chargement
    Par mister3957 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 15/09/2006, 19h00
  2. [MFC] Creation d'un thread pour un popup d'attente
    Par firejocker dans le forum MFC
    Réponses: 8
    Dernier message: 07/02/2006, 09h15
  3. fenetre sans bords pour attente chargement page
    Par k4eve dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/11/2004, 10h17
  4. Réponses: 3
    Dernier message: 11/02/2004, 12h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo