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

API, COM et SDKs Delphi Discussion :

DIB, Palette et DC


Sujet :

API, COM et SDKs Delphi

  1. #1
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut DIB, Palette et DC
    Bonjour,

    je possède un netbook équipé d'une puce Intel GMA 500.

    première surprise, alors que la puce support OpenGL 2.0, le driver Intel n'offre aucun support OpenGL !

    deuxième surprise, et c'est l'objet de ce message, le driver ne support pas les résolutions en 256 couleurs.

    Du coup, un jeu comme Age Of Empire qui utilise ce mode vidéo, ne tourne pas sur la machine.

    J'ai cependant presque réussit à contourner le problème. Le jeu exploite DDRAW.DLL et sa fonction DirectDrawCreate() pour initialiser DirectDraw. J'ai donc développé une nouvelle version de cette DLL sous Delphi avec un objet qui implémente IDirectDraw afin de répondre correctement au jeu.

    - première tentative, au lieu d'initialiser une surface primaire en 8bits (non supportée), je crée - en m'appuyant sur la vraie DLL DirectDraw - une surface 32bits primaire et une surface 8bits secondaire (supportée) que je retourne à AOE. Cela fonctionne, cependant les textes affichés par AOE le sont via un appel à GetDC sur la surface...et la patatra, DirectDraw refuse d'allouer un DC pour une surface 8 bits

    - dans ma seconde tentative, j'ai remplacé toutes les DirectDrawSurfaces par des Bitmap (en fait des DIB avec CreateDIBSection) ! et miracle du gain de puissance des CPU, le jeu fonctionne très bien en émulation 100% software...à un détail près Quand AOE me réclame un DC, j'en crée un par CreateCompatibleDC dans lequel je place mon DIB...AOE affiche effectivement son texte à l'intérieur, mais j'ai un problème de couleur de texte ! J'ai essayé différentes approches, rien n'y fait, j'ai beau créer une palette et la placer dans le DIB, le texte reste généralement noir

    Voila , si quelqu'un a une idée, je suis preneur !
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    héhé ça marche ! les palettes de couleurs n'étaient pas à jour
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/02/2004, 04h30
  2. Mode 13h et palette
    Par Biglo dans le forum Assembleur
    Réponses: 10
    Dernier message: 31/05/2003, 16h19
  3. Changer les couleurs de la palette avec du RGB
    Par le mage tophinus dans le forum x86 16-bits
    Réponses: 11
    Dernier message: 13/01/2003, 08h55
  4. [xmlrad] item (palette) & item (treview)
    Par Pm dans le forum XMLRAD
    Réponses: 2
    Dernier message: 08/01/2003, 11h21
  5. [Kylix] la palette de composants de kylix
    Par ybouarour dans le forum EDI
    Réponses: 4
    Dernier message: 11/07/2002, 20h50

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