TÉLÉCHARGER DIRECT3D 9 INTERFACE GRATUIT

Même s’il peut être plus lent que les versions prenant en charge le matériel, il prend en charge plusieurs threads et processeurs. Il nous faut maintenant récupérer le buffer de tracé dans la variable FBackBuffer. Premier test des pixel shader dans 3dmark La couche matérielle appelé HAL , qui utilise les fonctions 3D matérielles, c’est-à-dire celles qui sont directement gérées par le s processeur s de la carte accélératrice 3D sans faire appel au processeur central celui de votre ordinateur La couche logicielle appelée HEL, en anglais « Hardware Emulation Layer » , qui émule une carte graphique lorsque cela est nécessaire. Eisler a écrit sur son blog sur la frénésie avec laquelle les versions de DirectX 1 à 5 furent réalisés. Direct3D introduit par Eisler, Engstrom, et St.

Nom: direct3d 9 interface
Format: Fichier D’archive
Système d’exploitation: Windows, Mac, Android, iOS
Licence: Usage Personnel Seulement
Taille: 39.66 MBytes

Celle-ci nous indique si le code de retour correspond à un code d’erreur ou non. Nommez ensuite la fenêtre MainForm et enregistrez-la sous le nom MainFrm. Ces indices devront être transtypés en TObject pour pouvoir être affecté. Celui-ci est disponible en téléchargement sur le site de Microsoft: A chaque appel, nous tracerons l’image et demanderons à DirectX de l’afficher. Vous devriez obtenir dans le premier TComboBox la liste des adaptateurs disponibles.

Version PDF Version hors-ligne.

Je tiens à remercier tous particulièrement les personnes suivantes pour leur aide précieuse lors de la rédaction et de la relecture de cet article:. DirectX est une API permettant de développer des applications multimédia rapides sans avoir à manipuler le matériel directement ce qui est d’ailleurs interdit sous Windows NT. DirectX 9 la dernière version disponible au moment où cet article est écrit comprend un certain nombre de sous-systèmes que nous allons lister:.

Dans cet article nous nous limiterons à l’utilisation de DirectX Graphics pour créer une petite application de démonstration utilisant les fonctions de l’API graphique. L’avantage de ces interfaces est d’être disponibles dans n’importe quel langage capable d’utiliser COM, voire même dans certaines applications possédant un système de script ou un interpréteur embarqué la gamme Microsoft Office par exemple.

Les puristes me pardonneront cette simplification, mais cet article n’a pas pour but d’expliquer les arcanes de COM. Globalement, nous disposons de fonctions permettant de créer une des interfaces de DirectX. Celles-ci nous permettent ensuite de créer d’autres objets par l’intermédiaire de leurs méthodes une fonction ou procédure de classe est appelée méthode.

Si vous jetez un coup d’oeil aux documents traitant de DirectX 9, vous verrez que ces interfaces contiennent un numéro indiquant la version de DirectX concernée. Cette règle est guidée par un principe simple édicté par COM: L’ajout de fonctionnalités ne peut donc se faire qu’en créant de nouvelles interfaces.

DirectX n’échappe pas à cette règle et propose donc des interfaces différentes pour chaque version de DirectX. Microsoft propose un SDK Source Development Kit très complet que je vous invite à télécharger si vous avez une bonne connexion le dernier en date pèse environ Mo.

Vous y trouverez de nombreux exemples, documents et surtout l’ensemble des fichiers headers. Il existe tout de même quelques conversions ou portages de ces fichiers sous Delphi.

C’est l’une de celles-ci que nous allons utiliser pour cet article, celle d’Alexey Barkovoy. Cette conversion présente l’avantage d’être la plus complète et d’avoir été adoptée par le projet Jedi.

Ce SDK est disponible à partir du site http: Cliquez sur le lien « Delphi Graphics » et cliquez enfin sur le lien « Delphi DirectX header translations ».

Boîte de dialogue Sélection du pilote d’affichage

Attention, le site est généralement très long à s’afficher et le téléchargement des fichiers nécessaires peut prendre un certain temps. Voici la liste des fichiers indispensables à cet article:. Pour votre confort, ces fichiers ont été mis en miroir sur ce site afin de vous permettre de les télécharger si jamais vous aviez des difficultés avec le site originel. Je vous conseille toutefois de ne les utiliser qu’en dernier recours, car ils ne seront plus mis à jour après la rédaction de cet article.

  TÉLÉCHARGER NLITE FR GRATUITEMENT

Pour obtenir les dernières versions, vous devrez donc toujours passer par le site du projet Jedi. Vous trouverez les liens firect3d ces fichiers en fin d’article.

L’installation de ce SDK est simple. Je vous conseille toutefois d’utiliser la première direct33d. Même si elle est plus fastidieuse car elle vous oblige à dlrect3d ces fichiers à chaque nouveau projet, elle vous permet de ne pas mélanger d’éventuelles versions différentes de ces dll.

Vous saurez ainsi toujours quelle version est utilisée par votre programme. Enfin, il vous faudra bien évidemment avoir installé le runtime DirectX 9 sur votre machine. Celui-ci est disponible en téléchargement sur le site de Microsoft: Notre projet est divisé en 2 étapes: Le but est d’afficher en plein écran une image un sprite se déplaçant sur un fond uni et rebondissant contre les bords de celui-ci.

Je vous l’accorde, ce n’est pas encore du niveau des jeux disponibles sur le marché, mais c’est un bon début. Une version améliorée du programme sera également présentée. Celle-ci sera enrichie d’un fond changeant, d’un joli logo statique ainsi que d’une indication de la vitesse de notre programme: Si une exception survient, vous serez presque certainement obligé de « tuer » votre programme et également l’IDE Delphi.

Il vous interrace donc être extrêmement attentif à ne pas direct3c tromper dans le code que vous écrirez. Il existe bien une intetface technique mais celle-ci dépasse largement le cadre de cette initiation. Commencez par créer un nouveau projet et appelez-le MiniDemo. Nommez ensuite la fenêtre MainForm et enregistrez-la sous le nom MainFrm.

Direct3D 9 Video Enumerations – Windows applications | Microsoft Docs

Cela vous permettra d’utiliser les mêmes noms que moi. Nous allons avoir besoin d’un objet de type IDirect3D9 que nous appellerons FD3D et que nous placerons dans la section private de notre fenêtre. Cet objet représente l’objet principal nous permettant de manipuler DirectX.

C’est à partir de lui que nous pourrons créer tous les autres objets DirectX de notre exemple. Pour sélectionner un mode d’affichage parmis ceux direch3d, il nous faut bien comprendre comment DirectX gère ces modes:.

DirectX intertace un adaptateur par carte vidéo disponible. Dans la majorité des cas, vous n’en aurez donc qu’un seul. Chaque adaptateur propose un certain nombre de formats d’écran. Ces formats sont distingués par le nombre de couleurs affichables ou profondeur d’écranpar exemple la majorité des cartes vidéos proposent des modes « couleurs vraies » 24 bits ou « couleurs » 16 bits. Le nombre de bits global correspond à la somme des bits utilisés par chaque composante de couleur.

Par exemple dans le mode 24 bits classique, 8 bits sont utilisés pour chaque composante rouge, verte et bleu.

direct3d 9 interface

La couleur d’un pixel sera direc3d déterminée par la valeur de chaque composante. Il nous sera enfin possible de déterminer les modes d’affichage disponibles pour chacun de ces formats. Ce mode d’affichage correspond à la résolution associée à la fréquence de rafraîchissement.

Sans entrer dans les détails, cette fréquence nous indique combien de fois l’image est redessinée par seconde. Une fréquence de 75Hz 75 Hertz nous donnera donc 75 images par seconde. Nous allons donc avoir besoin de variables pour stocker ces valeurs. Pour simplifier inerface code au maximum, nous n’allons pas créer de variables supplémentaires mais utiliser la propriété Objects de chaque liste d’items pour stocker un indice.

Ces indices devront être transtypés en TObject pour pouvoir être affecté. Ces indices représenteront le numéro d’ordre de chaque adaptateur, format ou mode d’affichage dans leurs listes respectives. La liste des formats sera fournie par un tableau de notre création. Ce tableau contiendra les formats autorisés car tous les formats disponibles ne peuvent être utilisés pour créer un « écran » DirectX.

  TÉLÉCHARGER LOGICIEL PVGIS GRATUIT GRATUIT

Il sera appelé D3DFormats et inséré sous forme de constante après la déclaration de notre fenêtre. Nous y ajouterons un autre tableau contenant les noms en clair de ces formats.

La valeur de la propriété Style de integface 3 TComboBox devra être fixée à csDropDownList pour éviter que l’on puisse taper du texte dans ceux-ci. Maintenant que nous avons des variables et quelques composants, il nous faut utiliser tout ceci. Cette dernière méthode nous permet d’obtenir une description plus parlante qu’un simple numéro d’adaptateur.

Vous pouvez dès à présent compiler le programme et l’exécuter. Vous devriez obtenir dans le premier TComboBox la liste des adaptateurs disponibles.

Introduction à DirectX 9 en Delphi

Voici une copie d’écran du programme exécuté sur mon ordinateur. Nous aurons ainsi un remplissage automatique de chaque TComboBox en fonction du précédent. L’énumération des formats se fera en parcourant notre tableau en passant les formats non supportés alors que l’énumération des modes fera appel aux méthodes GetAdapterModeCount et EnumAdapterModes de notre instance de IDirect3D9.

Avant de démarrer l’animation, il nous faut trouver un moyen permettant de l’arrêter lorsqu’elle aura démarré. Nous allons simplement scruter le clavier et fermer l’application lors de l’appui sur la touche Echap. Pour ce faire, nous utiliserons l’événement OnKeyDown de la fenêtre avec le code suivant. N’oubliez pas de changer la valeur de la propriété KeyPreview de la fenêtre à True pour intercepter tous les événements claviers même lorsqu’un contrôle possède la focalisation.

Il nous faut maintenant ajouter un bouton nous permettant de démarrer l’animation une fois le mode d’affichage choisi. Lors du clic sur ce bouton, nous allons récupérer les 3 indices précédents et créer un dispositif servant à l’affichage ainsi que le sprite et sa texture. Ces objets devront être stockés pour pouvoir être utilisés dans le code réalisant le tracé de l’animation. Nous allons donc ajouter 4 nouvelles variables à la suite de FD3D: Le type de cette dernière variable est déclaré dans l’unité D3DX9.

Il va nous falloir également stocker la position et la vitesse de déplacement de notre sprite. Nous pouvons utiliser 4 variables, mais je trouve plus élégant de définir un nouveau type record qui contiendra tout ceci. Cela nous permettra plus tard de facilement multiplier le nombre de sprites si nous le désirons.

Nous pourrions même aller jusqu’à créer une classe contenant ces paramètres et les méthodes permettant de calculer les déplacements du sprite. Amusez-vous à le faire, c’est un très bon entraînement à la programmation orientée objet.

Note type record sera défini comme suit et inséré juste avant la déclaration de la fenêtre:. Voici enfin le moment où les choses deviennent intéressantes. Nous allons écrire le code de l’événement OnClick du bouton btnStart. Cette structure permet de passer un grand nombre de paramètres à la méthode en évitant une succession d’arguments qui serait fastidieuse. Nous n’allons pas étudier ici l’intégralité de cette structure mais seulement les valeurs importantes pour notre projet.

Voici la définition de cette structure:. Les 4 premières valeurs ont trait au back buffer. Il s’agit d’une zone de mémoire tampon dans laquelle nous allons tracer notre animation. Lorsque nous aurons terminé nos opérations de dessin, nous demanderons à DirectX de transférer cette zone vers l’écran. Cela nous permet de n’afficher que des images « complètes » et de ne pas voir l’image se tracer au fur et à mesure.

direct3d 9 interface

La vitesse d’affichage s’en trouve de plus améliorée.