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

C# Discussion :

lenteur return objet Bitmap


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Par défaut lenteur return objet Bitmap
    voilà mon problème, je débute c# et en programmation objet...
    Je suis en train de faire un jeu ou j'ai un objet "zone de jeu" qui accède à un objet "carte" qui possède des objets "cellule" qui possède des objets "élément" qui ont un objet "définition des éléments" qui lui possède un objet "bitmap"
    donc vous avez compris que zone de jeu a besoin de récupérer les bitmaps...
    j'essaye bien entendu de respecter le principe de couplage faible (ne pas transpercer tous les objets)
    ce qui fait que j'ai un tas de méthodes pour aller récupérer le bitmap
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
           public Bitmap GetBitmapCase (int x, int y, int tx, int ty)
            {
                CellBase c= (CellBase)carte[x, y];
                return c.GetBitmap(tx, ty);
            }
    résultats (j'ai fait des tests) pourra afficher le bitmap avec DrawImageUnscaled il met 0.00003 sec
    et pour simplement aller récupérer le bitmap il met 0.0008 sec dont il met 24 fois plus de temps

    j'ai trois questions:
    est-ce que ma vision de la programmation objet est bonne?
    est-ce que c'est normal qu'ils mettent autant de temps dans les appels de méthode??
    est-ce que ça serait judicieux de mettre les bitmap dans un objet de stockage directement relié à "zone de jeu"??

  2. #2
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    Pourrais-tu afficher ton code en entier ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Par défaut
    Non!

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    la lenteur peut-etre du à des opérations de boxing / unboxing ou eventuellement
    l'utilisation de liste ou de tableau qui font que cela ralenti grandement ton
    application...

    apres, ca me choque pas que l'affichage soit plus rapide que la recherche
    dans la mesure ou quand tu fais ta méthode GetBitmap() tu dois faire
    une recherche par rapport à une position et que regarder l'ensemble des images
    pour trouver la bonne doit etre lent.. .

    Peut-etre qu'un dictionnaire avec pour clé un Point et une image comme donnée pourrait résoudre le problème de performance...

    Quand au fait que tu ne montres pas le code, c'est ton droit le plus libre mais
    pour autant, t'aider sans connaitre un minimum les objets ou les types
    de structures ou listes ou tableaux que tu utilises limites les pistes ou solutions que l'on pourrait te donner ici

    Et pis, ton code, tu peux "toujours" le diminuer des infos ULTRA sensibles et confidentiel que tu y as dedans

    Maintenant, mon avis est qu'ici, beaucoup de gens sont capables de faire ton jeu (en dehors de l'aspect visuel) , donc pour moi, etre catégorique sur la non diffusion du code... c'est pour moi, euh, comment dirais-je poliement.. ridicule

    (te vexes pas

    The Monz, TOulouse

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    en faisant le test avec un Dictionnary<Point,Bitmap>

    j'arrive aux perfos suivantes :

    Temps pour obtenir la bitmap au point(800,0) = 0.00006 secondes
    soit 0.06 ms.. c'est rapide quand meme ? non ?

    The Monz, Toulouse

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Par défaut
    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
    //------------classe zone de jeu, j'ai cette instruction ci-jointe:
     
     g.DrawImageUnscaled(Carte.GetBitmapCase(ix, iy,(int) tailleHexaX, (int) tailleHexaY),xg, yg);
     
    //------------------ classe carte
            public Bitmap GetBitmapCase (int x, int y, int tx, int ty)
            {
                CellBase c= (CellBase)carte[x, y];
     
                 return c.GetBitmap(tx, ty);
             }
     
    //--------------------- classe cellules
            public Bitmap GetBitmap(int x, int y)
            {
                bt=new Bitmap(x, y);
                Graphics g= Graphics.FromImage(bt);
     
                foreach(Element el in listeElements)
                {
     
                    g.DrawImageUnscaled(el.GetBmpMini(x, y), 0, 0);
                }
                g.Dispose();
                return bt;
            }
    //--------------------------- classes éléments
            public Bitmap GetBmpMini (int x, int y)
            {
                return def.GetBmpMini(x, y);
            }
    //----------------------- classe définition éléments
    //---------------------- bmpmini est un bitmap déjà réduit
            public Bitmap GetBmpMini (int X, int Y)
            {
                if(X == tailleX && Y == tailleY)
                {
                    return bmpMini;
                }
                else
                {
                    ResizeBmpMini(X, Y);
                    return bmpMini;
                }
     
            }
    pour réaliser une image complète je dois effectuer 400 fois cette suite d'instructions +-0.20 seconde
    à chaque cycle, je récupère l'image d'un Hexagone
    par Hexagone il y a au maximum cinq images qui s'empile
    j'ai déjà optimisé ma fonction GetBmpMini en recréant une miniature si elle est différente de celle en mémoire


    j'ai trois questions:
    est-ce que ma vision de la programmation objet est bonne?
    est-ce que c'est normal qu'ils mettent autant de temps dans les appels de méthode??
    est-ce que ça serait judicieux de mettre les bitmap dans un objet de stockage directement relié à "zone de jeu"??

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    comprends pas trop mais le faire d'avoir un new Bitmap() ca bouffe un peu
    en performance puisqu'il faut créer une bitmap à chaque fois et ca,
    ca coute assez cher...

    Peut-etre faudrait-il eviter la création de la bitmap à chaque fois, tu y gagnerais
    surement en performance (c meme sur ca)

    The Monz, toulouse

  8. #8
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Que veux tu faire exactement ? Tu veux dessiner ta carte en fonction
    de l'endroit ou tu es ? c ca ?

    Explique exactement ce que tu veux faire, car il y a peut-etre des solutions
    plus efficace que celle que tu as retenue

    The Monz, Toulouse

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Par défaut
    non, j'ai déjà essayé et le gain est minime.
    Les questions sont pourtant claires.
    je veux savoir c'est normal que le passage de paramètres dans des méthodes et leur retour prend réellement beaucoup de temps(comment le diminuer)
    ensuite j'aimerais savoir si ma logique de programmation objet est bonne ou pas
    troisième point: ou placés mais définition des éléments?

    ça n'est tout de même pas si compliqué que ça donne répondre qu'aux questions précisément posées!

  10. #10
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Je dis simplement que ta vision est à mon avis correcte par rapport au découpage que tu fais entre, carte, element, zone, etc...

    Mais si je posais ma question c'était pour savoir quel était l'objectif finale
    de cette architecture ?

    Je travaille dans le domaine de la simulation et des visuels 3D, et je me rends
    compte que parfois, la façon dont sont agencés les objets n'est pas la
    meilleure pour faire le rendu visuel.. meme si en théorie, l'architecture est la
    plus adapté en terme de conception, séparation des données, il se trouve
    que pour le rendu, il vaut mieux le centraliser, etc... d'ou souvent des
    parcours transverses des données et non pas de façon arborescente

    Voila pourquoi je te posais la question par rapport au but final sous-jacent
    à cette architecture...

    Si tu me dis, au final, je veux pouvoir dessiner ma Carte, peut-etre est-il
    plus pertinent que la carte se dessine elle meme sans avoir besoin de demander à chaque zone ou chaque monde de ce dessiner

    Tu comprends la différence ?

    The Monz, Toulouse

  11. #11
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    Zarr.be, je suis désolé de te le dire, mais je te trouve bien exigent et impoli !
    N'oublies pas que les gens du forums ne te doivent rien...

    Tu veux savoir si ta logique de programmation objet est bonne ? Je pense que theMonz31 répond en partie à ta question en te suggérant de ne pas créer un bitmap à chaque fois. Mais il est difficile de pouvoir répondre plus sans avoir la définition de tes classes et une explication sur le but de ton programme. Maintenant libre à toi de le poster, mais je personnellement je ne pourrais pas t'aider avec seulement ça.

    Je peux te conseiller cet outil pour tester la performance de ton programme. Si tu ne veux pas nous monter ton code, ça t'aideras au moins à te débrouiller tout seul. La démo est gratuite.

    edit : bravo theMonz31 pour ta patience...

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Par défaut
    désolé pour me répond un peu sèche

    mais, chaque élément peut changer, se transformer,se déplacer...
    là, où il y a de l'herbe, un arbre peut pousser être abattu ou prendre feu, une tranchée est peut-être construites inondé etc.
    dont chaque élément a besoin de paramètres propres
    est d'abord une troupe avec des points de vie et de données propres aussi
    c'est pour ça que la carte est dynamique et pas statique
    c'est pour ça que la carte doit être construit par rapport aux éléments présent et leurs états

    le sujet dérape, il était général et pouvait apporter l'aide de réponse sur la programmation en C#, là, il dévie par rapport à un sujet bien précis
    c'est pour ça, que j'ai posé des questions précise et générale pour que les informations données sur ce poste puissent servir à d'autres

  13. #13
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    je comprends bien la construction de ta carte zarr.be et je comprends que
    ce coté dynamique oblige la "reconstruction" du monde...

    Mais peut-etre qu'une approche pour etre la suivante:

    si le monde ne change pas.. je ne fais rien...

    Et des que le monde change (un Event WorldChange par exemple), tu peux
    soit "reconstruire" le monde.. soit essayer de ne reconstruire que les éléments
    qui auront changé.. ainsi, le dessin de ton monde ne se fera que lorsque
    celui ci aura changé...

    En gros, tu peux travailler avec un buffer principale et un buffer secondaire
    et switcher en les deux quand le monde a changé...

    Apres, sur changement du monde, soit tu dois "tout" redessiner et mettre
    à jour, soit tu peux travailler par evolution et donc ne mettre à jour que
    ce qui doit l'etre...

    En tout cas, je te conseillerais de travailler avec un ContextBuffer. En faisant ainsi, tu ne dessineras pas dans ton object Graphics mais dans un object
    en mémoire (gain de temps appréciable) et c'est seulement une fois
    que tous les objets auront été dessiné que tu feras ton

    BufferContext.Render(Graphics g)... ainsi, tu gagneras beaucoup en performance...

    Au dela, si tu veux des perfos encore meilleurs, et si c'est pour un jeu,
    tu devrais peut-etre regarder du coté du Framework XNA qui est dédié
    à la réalisation de jeux (2D / 3D).. et qui est gratuit et qui te permet de
    faire des jeux pour PC ou XBox 360 (sachant que pour faire tourner le
    jeu sur XBox, il faut debourser 100$ ou quelque chose comme cela à l'année.. mais pour les jeux PC, c'est totalement gratuit.. la seule contrainte étant
    d'utilisé Visual C# Express (et non Visual Studio) pour faire le projet...

    Donc, perso.. si tu as un jeu à faire, regarde sérieusement du cote de XNA

    The Monz, TOulouse

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Par défaut
    revenons-en aux questions posées:
    en théorie de la programmation objet on nous dit de ne pas coupler les objets entre eux , de chaque fois appeler une méthode
    ma question était: est-ce que c'est judicieux d'appeler chaque fois une méthode ou y a-t-il un autre moyen d'aller récupérer les paramètres d'on a besoin?

    au retour d'une méthode, est qu'un objet bitmap est réellement envoyé ou juste une référence?



    j'essaye, de poser des questions le plus précisément possible le plus clairement possible de la façon la plus compréhensible
    je ne comprends pas, pourquoi, vous essayez de répondre par une autre question, ça ne m'aide vraiment pas

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Par défaut
    je connais et utilise déjà les buffers graphiques..
    mes questions sont juste théoriques, de base, simple
    j'ai besoin de ces réponses simples pour avancer,

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Par défaut
    vos réponses sont bien sympathiques et bien gentilles, je vous en remercie
    mais elles ne répondent pas à mes questions basic, elles vont trop loin par rapport à ce que j'ai besoin

    j'ai l'impression qu'on ne parle pas le même langage

  17. #17
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    peut-etre que le plus simple serait alors d'exposer ce que tu veux exactement faire, car en dehors d'un contexte, il n'est pas toujours évident de te proposer une solution...

    En ayant une vue globale (si possible) de ce que tu souhaites faire, il nous
    sera "plus" facile de t'orienter vers une architecture ou une autre...

    En restant trop "bas niveau", on n'a pas bcp de loisir de t'aider plus !!!

    The Monz, Toulouse

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Par défaut
    j'ai une autre question simple: est que c'est plus rapide de récupérer un INT ou un BITMAP???
    ne répondez pas! je vais coder un test, au moins je serais sur d'avoir une réponse sur et claire( oui ou non (avec les vitesses précises))

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Par défaut
    voici la réponse que j'attendais (simple, clair, précise)
    non, ça me met le même temps...
    pour récupérer un milliard de fois dans une arborescence de niveau cinq
    récupération int 00:00:50.2941809
    récupération bitmap 00:00:49.0037356
    réponse complémentaire:
    l'utilisation de méthodes avec retour ne devrait normalement pas ralentir ton programme, le problème devrait se situer ailleurs...

    voici le programme de tests
    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
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Diagnostics;
    namespace test_Return
    {
        public partial class Form1:Form
        {
            C1 c;
            int it;  
    #if(DEBUG)
            private Stopwatch sw=new Stopwatch();
    #endif  
            public Form1 ()
            {
                InitializeComponent();
                c= new C1();
                it= 1000000000;
                TestInt();
                TestBitmap();
            }
     
            public void TestInt()
            {
                int a,i;
    #if (DEBUG)
                sw.Start();
    #endif
                for(i=0; i<it; i++)
                {
                    a=c.GetInt();
                }
    #if (DEBUG)
                sw.Stop();
                Debug.WriteLine(string.Format(" récupération d'un int {0}", sw.Elapsed));
                sw.Reset();
    #endif
            }
     
            public void TestBitmap()
            {
                int i;
                Bitmap b;
    #if (DEBUG)
                sw.Start();
    #endif
                for(i=0; i<it; i++)
                {
                    b=c.GetBitmap();
                }
    #if (DEBUG)
                sw.Stop();
                Debug.WriteLine(string.Format(" récupération d'un bitmap{0}", sw.Elapsed));
                sw.Reset();
    #endif
            }
        }
     
        public class C1
        {
            C2 c;
            public C1 ()
            {
                c= new C2();
            }
            public int GetInt ()
            {
                return c.GetInt();
            }
            public Bitmap GetBitmap ()
            {
                return c.GetBitmap();
            }
        }
        public class C2
        {
            C3 c;
            public C2 ()
            {
                c= new C3();
            }
            public int GetInt ()
            {
                return c.GetInt();
            }
            public Bitmap GetBitmap ()
            {
                return c.GetBitmap();
            }
        }
        public class C3
        {
            C4 c;
            public C3 ()
            {
                c= new C4();
            }
            public int GetInt ()
            {
                return c.GetInt();
            }
            public Bitmap GetBitmap ()
            {
                return c.GetBitmap();
            }
        }
        public class C4
        {
            C5 c;
            public C4 ()
            {
                c= new C5();
            }
            public int GetInt ()
            {
                return c.GetInt();
            }
            public Bitmap GetBitmap ()
            {
                return c.GetBitmap();
            }
        }
        public class C5
        {
            Bitmap b;
            int a;
            public C5 ()
            {
                a=5;
                b=new Bitmap(100,100);
            }
            public int GetInt ()
            {
                return a;
            }
            public Bitmap GetBitmap ()
            {
                return b;
            }
        }
    }

    ça n'est pourtant pas compliqué de ne répondre qu'aux questions posées
    Ça fait plusieurs heures que vous m'apportez des réponses aux questions que je n'ai pas posées et que je cherche une solution à un non problème

  20. #20
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    si le problème est ailleurs, c'est peut-etre dans l'utilisation de GDI+ pour faire
    un jeu...

    Regarde XNA... ca tourne vite, c facile d'utilisation et adapté pour LES JEUX

    The Monz, Toulouse

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/12/2009, 07h27
  2. Lenteur de chargement de texture bitmap
    Par DestinyWar45 dans le forum OpenGL
    Réponses: 1
    Dernier message: 30/11/2006, 06h38
  3. [C#] objet graphics dans une bitmap
    Par lancer83 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/08/2006, 14h30
  4. [VBa-E] question(s) sur l'objet OLE "image Bitmap"!
    Par gootsu dans le forum Macros et VBA Excel
    Réponses: 41
    Dernier message: 28/07/2006, 17h37
  5. Réponses: 7
    Dernier message: 08/12/2005, 17h37

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