TÉLÉCHARGER DIRECT3D 9 INTERFACE


0
Categories : Graphisme et Design

Le nombre de concurrents dans le secteur de la 3D grand public est dramatiquement tombé à trois plus deux-trois qui ramassent les miettes. 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. DirectX désigne un ensemble de pilotes et de technologies permettant l’affichage et l’exécution des éléments multimédias de certaines applications comme les animations 3D. En revanche, vous êtes peut-être surpris par l’utilisation de l’événement OnIdle de l’application. Cette version a ses propres pré-requis et nécessite le support du Shader Model 4. Cette conversion présente l’avantage d’être la plus complète et d’avoir été adoptée par le projet Jedi.

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

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:. Il nous faut donc ajouter la déclaration de notre procédure dans la section private de la fenêtre de cette façon:. DirectShow permet d’enregistrer ou de jouer des vidéos. DirectX n’échappe pas à cette règle et propose donc des interfaces différentes pour chaque version de DirectX. Le code gérant les collisions est évident. Enumération des adaptateurs, formats et modes 8. Il nous faut maintenant récupérer le buffer de tracé dans la variable FBackBuffer.

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 ».

direct3d 9 interface

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 HECKEL ET GECKEL ON NE SAIT PAS ABANDONNER GRATUIT

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

Historique de DirectX jusqu’à la version DirectX 9 | Journal

L’installation de ce SDK est simple. Je vous conseille toutefois d’utiliser la direvt3d option. Même si elle est plus fastidieuse car elle vous oblige à copier 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 niterface 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 faudra donc être extrêmement attentif à ne pas vous tromper dans le code que vous écrirez. Il existe bien une solution technique mais celle-ci dépasse largement le cadre de cette initiation.

Introduction à DirectX 9 en Delphi

Commencez par créer un nouveau projet et appelez-le MiniDemo. Nommez ensuite la fenêtre MainForm et enregistrez-la sous le nom MainFrm. 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 disponibles, il nous faut bien comprendre comment DirectX gère ces modes:.

DirectX propose 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 intefrace vraies » 24 bits ou « couleurs » 16 bits.

Le nombre de bits onterface 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. La couleur d’un pixel sera donc 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 direch3d.

Historique de DirectX jusqu’à la version DirectX 9

Pour simplifier notre code au maximum, nous direct3r 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. 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.

  TÉLÉCHARGER TORIBASH MAC GRATUIT

La valeur de la propriété Ihterface de ces 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.

Voici une digect3d 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.

direct3d 9 interface

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.

direct3d 9 interface

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.

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

Il s’agit interfacw 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. La vitesse d’affichage s’en trouve de plus améliorée.