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

  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 214
    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 214
    Points : 10 140
    Points
    10 140
    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 214
    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 214
    Points : 10 140
    Points
    10 140
    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 115
    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 115
    Points : 32 967
    Points
    32 967
    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 ?

  8. #8
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    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 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Non il y'a plus de palette dans les CG depuis 20 ans environ
    Et de toute façon la SDL est software (donc ne fait pas appel à la CG), il transformera juste la palette en bitmap RGB vu que c'est comme ça que marche les ordis actuel

    Et je ne comprend pas le but de ces questions , la palette permet juste :
    -de compresser les images
    -de faites des effets ou modifier les couleurs rapidement

    Donc bon je vois pas en quoi savoir ce que ça fait derrière en détails change beaucoup de chose.

  9. #9
    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
    Et je ne comprend pas le but de ces questions

    Donc bon je vois pas en quoi savoir ce que ça fait derrière en détails change beaucoup de chose.
    Parce que sa m'intéresse, je veux un minimum comprendre comment sa fonctionne, et ne pas utiliser bêtement des fonctions sans savoir ce qu'elles font.

    Le gars qui a créée la SDL avait une parfaite maîtrise du fonctionnement d'un ordinateur les relations entres le hardware et le software etc... ; il s'est pas posé la question de savoir quel était l'intérêt d'aller dans les détails et quand on se passionne on va dans les détails non ?

    Merci pour tes réponses.

  10. #10
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    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 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par hbx360 Voir le message
    Le gars qui a créée la SDL avait une parfaite maîtrise du fonctionnement d'un ordinateur les relations entres le hardware et le software etc...
    Tu ne peux pas avoir une parfaite maîtrise du hardware quand tu fais un truc sous un OS , vu que ça sera toujours l'OS qui s'occupera du hardware.
    (et que la SDL est 100% software).

    Citation Envoyé par hbx360 Voir le message
    il s'est pas posé la question de savoir quel était l'intérêt d'aller dans les détails et quand on se passionne on va dans les détails non ?
    Je ne pense pas qu'il s'est posé la question qu'il fallait aller dans les détails , l'utilisation de la palette était courante à une époque parce que peu de mémoire RAM et que ça pouvait être par défaut sur certain PC des années 90.

  11. #11
    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
    Ok.

+ 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