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 :

Buffer De Grande Taille


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Buffer De Grande Taille
    Salut
    Je dispose d'une image géante que je veux la copier dans plusieur buffer de petite taille :
    voila le prtion de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Const float tableau;
    BImage<float> image1(img, inputMgr);
     
     
     tableau = image1.getImage();// pixels stocker en virgule dans le tableau
     
     
     
    w1=image1.getWidth();
    h1=image1.getHeight();
    const float* data = (float*)malloc(sizeof(data));
     
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_NV,0,0,0,w1/2,h1/2,
                    GL_LUMINANCE,GL_FLOAT,data);//permet d'envoyer l'image dans le memoire vidéo
    Est ce que quelqu'un sais comment afficher cette image de grande taille en plusieur morceau ?
    Je dois diviser le grand buffer data en plusieur buffer de petite taille mais je n'arrive pas à le faire correctement en codant ?
    Merci infiniment
    Balises code rajoutées par Miles...

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Const float tableau;
    Const n'existe pas, c'est const.
    Ton truc n'est pas un tableau du tout.

    tableau = image1.getImage();// pixels stocker en virgule dans le tableau
    Si tableau est un const float ceci devrait générer une erreur de compilation.

    const float* data = (float*)malloc(sizeof(data));
    Ça n'a aucun sens.
    Déréferencer data sera un comportement indéfini.
    De toutes façons, nous sommes en C++, où on n'utilise pas malloc.

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    oui const *tableau est un pointeur sur le tableau de pixel fourni par le class Bimage :
    BImage<float> image1(img, inputMgr);

    tableau = image1.getImage();
    mon code est faut , comment peut on alors proceder pour diviser un buffer qui contient des pixels stocker en virgule flottant sachant que image1 est declarer en const float...
    je viens de débuter en programmation alors toute aide ca sera le bienvenue...
    merci

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Commence par essayer d'écrire du code qui a du sens et qui compile.

    Les informations que tu donnes sur ce que tu veux faire et sur le pointeur retourné par image1.getImage sont incomplètes pour pouvoir t'aider.
    Bien entendu, si quelqu'un connait déjà BImage qui vient de je ne sais où, il pourra mieux t'aider.

  5. #5
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    precision : CE CODE COMPILE mais c clair que je n'ai pas bien poser le probleme dés le debut....

    Procedant autrement :
    Vous aviez un tableau de pixel stocker en virgule flottant :
    array= 4096*4096sizeof(float32) je veux avoir des petit portion de stte arry en 1024*1024 ...
    mon question c'est comment envoyer ce flux de petit buffert vers la fonction openGl :
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_NV,0,0,0,w1/2,h1/2,
    GL_LUMINANCE,GL_FLOAT,arry);

    J'espère que je suis clair cette fois ...
    merci

  6. #6
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    precision : CE CODE COMPILE
    J'ai déjà indiqué deux éléments qui l'empêchaient de compiler.

    mon question c'est comment envoyer ce flux de petit buffert vers la fonction openGl
    mon raiponsse c k kil sufi surman deux de jouai avec les arguments de la fonction en question pour déterminer où commence et finit le buffer à copier en mémoire vidéo.

  7. #7
    Membre habitué Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Points : 193
    Points
    193
    Par défaut
    Ca compile avec Const (majuscule sur le C)

    Bon et puis ton image c'est surement du char* ou float* a la rigeur, bref un tableau 1D.

    En C++:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const float* data = new float [/*La taille de ton image... surement pas sizeof( data ) qui est une constante representant la taille d'un float* si je ne m'abuse dans ce cas*/];
    Enfin pour diviser ton image en plusieurs, tu créés plusieurs tableau de la taille de tes imagette et tu stockes les pixels (ici apparement des float... mais attention aux nombre de composante / par pixel, typiquement 3 pour RGB ou 1 en niveau de gris)... Bref, utilise une librairie comme OpenCv ou SDL qui te fournira une doc t'expliquant tout ca en detail plutot qu'OpenGl qui n'est pas fait pour ca (quoique maintenant)

Discussions similaires

  1. Travailler avec un fichier XML de grande taille
    Par Jayme65 dans le forum Flash
    Réponses: 9
    Dernier message: 29/05/2006, 17h09
  2. problème de conversion de très très grande taille !
    Par Conficius dans le forum Langage
    Réponses: 2
    Dernier message: 05/11/2005, 22h14
  3. Réponses: 1
    Dernier message: 04/04/2005, 11h19
  4. Réponses: 6
    Dernier message: 19/10/2004, 13h46
  5. [firebird 1.5] Probleme sur tables de grande taille
    Par iguanevif dans le forum Débuter
    Réponses: 2
    Dernier message: 12/08/2004, 13h33

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