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

SDL Discussion :

Que veut dire mapper, palette logique et physique. [SDL 1.2]


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 431
    Points : 172
    Points
    172
    Par défaut Que veut dire mapper, palette logique et physique.
    Bonjour,

    Sur la doc SDL concernant la fonction SDL_SetPalette il est dit :

    "Palettized (8-bit) screen surfaces with the SDL_HWPALETTE flag have two palettes, a logical palette that is used for mapping blits to/from the surface and a physical palette (that determines how the hardware will map the colors to the display)."

    Que veut dire (je met en français) : "une palette logique qui est utilisée pour mapper les blits vers / depuis la surface".

    C'est le terme mapper que je ne comprends pas et aussi qu'entend-on part palette logique et palette physique ?

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 217
    Points : 10 152
    Points
    10 152
    Par défaut
    Ben je te l'avais deja dit je crois :p
    Mais la SDL est purement software ,donc il y'a la partie palette logique (qui est du coup comme son nom l'indique la logique de la SDL) est comme elle est software elle a aucune contrainte ( a part le temps CPU).
    Et ensuite la destination (ton écran) , qui a peut être une palette physique (c'est pas le cas des ordi actuel , mais c'était le cas d'ancien ordi ou console) , et donc le "mapper" voit le comme une copie/conversion entre la palette logique et la palette physique.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 431
    Points : 172
    Points
    172
    Par défaut
    Citation Envoyé par Kannagi Voir le message
    Ben je te l'avais deja dit je crois :p
    Ah et bin, ta une bonne mémoire parce que je m'en souvient plus

    Donc quand on fait ça (j'ai déclaré un écran en u8) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SDL_SetPalette(pScreen, SDL_PHYSPAL | SDL_LOGPAL, pColors, 0, 256);
    ça veut dire que l'on dit à la SDL de remplacer la palette physique et logique par la palette de couleur pColors ?

    Citation Envoyé par Kannagi Voir le message
    "mapper" voit le comme une copie/conversion
    Ok, mais que sous entends-tu par "voit le" ?

  4. #4
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 217
    Points : 10 152
    Points
    10 152
    Par défaut
    Ok, mais que sous entends-tu par "voit le" ?
    Parce que si tu es en mode VESA sur MS-DOS et sur PC , c'est pas le même délire qui se passe derrière , la SDL étant multiplate-forme j'aurais pas de réponse clair à te donner ,sur PC il fera une conversion vu que les palettes hardware n'existe plus depuis mathusalem

    Donc ma question pourquoi obligés la SDL d'avoir un framebuffer palettiser ?
    Je veux dire, c'est quand même stupide de vouloir se limiter à 256 couleurs à l'écran alors qu'une SNES/PC Engine ou Neo Geo pouvait afficher plus de couleur à l'écran
    Autant mettre le FB en RGB et avoir tes images en palette , c'est tout aussi rapide et bien plus conforme avec le matériel actuel.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 116
    Points : 32 969
    Points
    32 969
    Billets dans le blog
    4
    Par défaut
    Faire un mapping c'est créer une relation et une conversion X>Y
    Tu prends un tableau de 256 valeurs, tu mappes [0,255] vers [tab[0], tab[255]]
    https://en.wikipedia.org/wiki/Map_(mathematics)
    https://fr.wikipedia.org/wiki/Applic...C3%A9matiques)
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 431
    Points : 172
    Points
    172
    Par défaut
    Citation Envoyé par hbx360 Voir le message
    Donc quand on fait ça (j'ai déclaré un écran en u8) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SDL_SetPalette(pScreen, SDL_PHYSPAL | SDL_LOGPAL, pColors, 0, 256);
    ça veut dire que l'on dit à la SDL de remplacer la palette physique et logique par la palette de couleur pColors ?
    Est-ce que tu peux me confirmer si c'est juste.

    Citation Envoyé par Kannagi Voir le message
    Donc ma question pourquoi obligés la SDL d'avoir un framebuffer palettiser ?
    Je veux dire, c'est quand même stupide de vouloir se limiter à 256 couleurs à l'écran alors qu'une SNES/PC Engine ou Neo Geo pouvait afficher plus de couleur à l'écran
    Autant mettre le FB en RGB et avoir tes images en palette , c'est tout aussi rapide et bien plus conforme avec le matériel actuel.
    En fait j'étudie un code source du jeu arkanoïd que j'ai pris sur ce site voici l'adresse : http://oldschoolprg.x10.mx/projets.php

    Il a fait ses sprites sheets et ses background en u8.

    Il a fait de cette façon pour ce jeu mais pour le minislug il a fait autrement.
    Voilà c'est pour ça.

    Merci Kannagi pour tes éclaircissement, merci aussi Bousk.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 431
    Points : 172
    Points
    172
    Par défaut
    Donc si j'ai bien compris la carte graphique de l'ordi. à une palette physique par défaut et la SDL crée une palette logique par défaut.

    Si on fait SDL_SetPalette on pourra faire un mappage de la palette physique et de la palette logique avec la struct SDL_Colors qui contiendra notre palette (palette de la sprite sheet récupérée avec SDL_LoadBMP en lui mettant comme 2ieme argument une struct SDL_Colors) .

    Et si on ne fait pas SDL_SetPalette le compilateur (je suppose) mappera la palette par défaut de la SDL et de la carte graphique.

    Est-ce que c'est ça ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Que veut dire Architecture logique
    Par big1 dans le forum Oracle
    Réponses: 1
    Dernier message: 24/11/2006, 15h46
  2. que veut dire (nrow >= 6) && (~nrow&0x01)
    Par gronaze dans le forum C
    Réponses: 12
    Dernier message: 24/03/2006, 15h00
  3. [WD9] Que veut dire AGL?
    Par afrikha dans le forum WinDev
    Réponses: 4
    Dernier message: 24/10/2005, 11h15
  4. Que veut dire ce symbole?
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 24/06/2005, 22h25
  5. Que veut dire "volatile" devant une variable ?
    Par altahir007 dans le forum C
    Réponses: 4
    Dernier message: 23/06/2004, 15h47

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