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

WinDev Discussion :

Image 2D en 3D (API SDK bas niveau)


Sujet :

WinDev

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    486
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 486
    Points : 875
    Points
    875
    Par défaut Image 2D en 3D (API SDK bas niveau)
    Pour ceux intéressés par la programmation des API bas niveaux.

    J'ai posté sur le forum "hors sujet" de PC-Soft un projet GDImage/OpenGL qui fait du rendu 3D à partir d'une image 2D.

    Tous les détails sont là

    Capture d'écran


    ...

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Je suis impressionné. Chapeau bas.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut
    Bonjour

    Merci pour ce partage

    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Expérience, Réalisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    486
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 486
    Points : 875
    Points
    875
    Par défaut
    Voici une fonction qui peut se substituer à zGetDIBits.
    Elle permet de charger directement les pixels d'un bitmap dans un tableau[x,y] d'entiers, sans utiliser l'API GetDIBits qui oblige de créer au préalable un DC et un CompatibleBitmap à la volée.

    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
     
    FUNCTION zGetPixels(LOCAL hBitmap is system int, LOCAL lpArray is system int)
    nRet is int
    IF (hBitmap) THEN
    	bm is BITMAP
    	GetObject(hBitmap, &bm)
    	bmW is int = bm.bmWidth
    	bmH is int = bm.bmHeight
    	bmBPix is int = bm.bmBitsPixel / 8
    	// Have to revert raw order
    	lpArray += (bmW * bmH * bmBPix)
    	nScanLine is int = bmW * bmBPix
    	lpBits is system int = bm.bmBits
    	y is int
    	FOR y = 1 TO bmH
    		lpArray -= nScanLine
    		Transfer(lpArray, lpBits, nScanLine)
    		lpBits += nScanLine
    	END
    	nRet = -1
    END
    RESULT nRet
    Notez l'inversion effectuée sur l'axe Y, car l'origine des pixels d'un bitmap mémoire se trouve en bas à gauche au lieu d'être en haut à gauche lorsqu'on dessine dans un DC.

    ...

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/06/2015, 16h57
  2. Réponses: 11
    Dernier message: 28/07/2009, 10h10
  3. API bas niveau
    Par Shinitoku dans le forum Windows
    Réponses: 8
    Dernier message: 28/05/2009, 16h27
  4. Programmation bas niveau de la carte vidéo !!
    Par Invité dans le forum Assembleur
    Réponses: 3
    Dernier message: 03/03/2005, 11h05
  5. [API][Cup] problem niveau compilation
    Par KoLziG dans le forum Général Java
    Réponses: 1
    Dernier message: 02/01/2005, 19h30

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