Bonjour à tous,
Je souhaiterais savoir s'il est possible, sous Windows, d'accéder aux fonctions DirectX en Java ?
Et dans ce cas, que se passe-t-il si je passe sous Linux, puis-je installer un "patch" ?
Merci
Bonjour à tous,
Je souhaiterais savoir s'il est possible, sous Windows, d'accéder aux fonctions DirectX en Java ?
Et dans ce cas, que se passe-t-il si je passe sous Linux, puis-je installer un "patch" ?
Merci
Salut,
Tu es obligé de passer par du code natif et JNI... donc non portable...Envoyé par yomapoitiers
Envoyé par yomapoitiers
Etant donné que DirectX est une API propriétaire de Microsoft, je ne pense pas que ce soit possible
Mais que veux-tu faire exactement ?
a++
Ce que je cherche à faire ?
Et bien je développe des applis Windows en C++ qui utilisent les fonctionnalités de DirectX. Prenons un exemple simple, un video renderer d'un flux en provenance d'une camera locale. Bien entendu, je suis confronté à différents problèmes de compatibilités, notamment la version du DirectX installée, la carte graphique (les fonctions graphiques DirectX prises en charge par la carte), les drivers, bref les performances de mon appli vont dépendre du soft- comme du hardware.
Mais en plus, je souhaiterais pouvoir utiliser mon appli sous Linux, sans avoir à émuler windows !
J'imagine bien que DirectX ne tourne pas sous Linux mais y'a-t-il des librairies existantes qui permettraient de bénéficier des mêmes fonctionnalités, quitte à avoir un code différent ? Quelqu'un aurait-il été assez barjot pour développer une librairie ayant les mêmes appels que DirectX mais avec des traitements Linux derrière ? Ca serait génial de pouvoir avoir un appel de fonctions commun aux différentes plateformes, et derrière des traitements différents suivant l'OS ou le processeur comme c'est déjà le cas pour ce dernier.
Et pour l'interface graphique, qu'ai-je comme solution pour en développer une qui puisse être lancée sous Linux et Windows sans avoir à émuler l'un des OS ? En effet, le but de DirectX est la rapidité, donc si c'est pour émuler... autant aller se coucher.
Voilà, j'espère avoir été clair, merci beaucoup.
Pour les interfaces graphiques, tu peux utiliser Swing qui fait partie de l'api standard et qui fonctionnera sans problème aussi bien sous windows que sur linux.Envoyé par yomapoitiers
Sinon en ce qui concerne DirectX, pourquoi ne pas utiliser JOGL qui est basée sur OpenGl ? tu y gagnera en portabilité.
Plus d'informations dans ces articles :
Les api 3D pour java
Apprendre l'OpenGL avec Java : Introduction
Sauf erreur de lecture et de compréhension, JOGL est l'OpenGL pour Java, c'est à dire tout ce qu'il faut pour faire de la 3D sous Java. Mais ce n'est pas du tout ce que je cherche ! Il y a du y avoir confusion entre DirectX et Direct 3D qui est certes une composante de DirectX !
DirectX, c'est Direct 3D + Direct Sound + Direct Show + ...
C'est à dire un ensemble de librairies donc de fonctions permettant de gérer le multimedia dans un environnement Windows. Windows Media Player, par exemple, exploite les fonctionnalités de DirectX pour lire des sons et des videos. DirectX permet de développer des applications en s'affranchissant des drivers nécessaires pour tel ou tel périphérique. Par exemple si je veux développer une application qui enregistre ce que filme une caméra connectée à mon PC, je développe l'interface en MFC par exemple, en C++ donc, et je gère les flux audio et video via directX. Quand la caméra est branchée, j'interroge le flux pour connaître le type d'image, la taille, le nombre de couleurs, le fps... bref tout ce qui me sera nécessaire pour allouer proprement la mémoire nécessaire à la gestion du flux. Ainsi il est possible d'écrire des filtres (des DLL) qui sont des espèces de Beans, interconnectables à souhait, et permettant le développement d'applications performantes très rapidement.
Ce que je cherche à faire, dans un premier temps, c'est tout simplement réaliser une interface graphique avec des boutons, curseurs, listes déroulantes, radiobuttons... qui puisse tourner sous Windows et Linux en tant qu'application (sinon je peux toujours l'écrire en html !).
Ensuite, je vais y intégrer des fonctionnalités utilisant DirectX, telles que l'affichage d'une vidéo temps réel, l'enregistrement vocal, la lecture sonore...
Sous Windows, je sais faire, mais sous Linux, je ne sais pas faire !
Je voudrais donc savoir si :
1 - je dois renoncer à ce projet et démissionner
2 - écrire moi-même DirectX pour Linux et commencer le développement de mon application dans 110 ans
3 - Emuler Windows sous Linux et faire le café avec mon lave-vaisselle
4 - Trouver une solution qu me permette d'utiliser les fonctionnalités de DirectX sous un autre nom sous Linux mais avec le même résultat
5 - Programmer sur Amiga
Voilà, si besoin, je peux donner d'avantage d'infos sur DirectX, mais je pense que ce n'est pas difficile de trouver !
Pour la gestion du multimédia, tu peux peut-être te tourner vers JMF (Java Media Framework) : http://java.sun.com/products/java-me...ocs/index.html
a++
SAlut,
tu fais du C++ ou du Java ?
Parce qu'en C++ un combo SDL(un espece de DirectX open source, masi je sais pas s'il est portable ?) + Qt ?
[edit]
http://fr.wikipedia.org/wiki/Simple_DirectMedia_Layer
portable et meme attaquable de Java
"vaste programme"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 . . .
En terme d'interface Java est bien pourvu (swing, swt...). C'est portable, c'est chouette. Pour traiter la vidéo la proposition d'adiGuba a l'air très bien.
Le problème à mon avis sera l'aquisition du signal de la webCam qui dépend pas mal du système. J'ai peur qu'en pur Java ce soit difficile.
Sinon il est toujours possible d'appeler du C[++] depuis Java mais pour que ce soit portable il faut founir une version de la partie C pour chaque plateforme. Si le C fourni toujours les mêmes services à la partie Java, il est possible d'utiliser DX sur un système et un autre moyen sur un autre (ou une lib qui existe sur toutes les plateformes). Mais il n'y aura pas direct X tel quel ailleurs que sur Windows... encore que Wine propose certaines de ces fonctionnalités... Tu devrais peut-être regarder ce que wine peut apporter. Il ne fera pas TOUT ce que fait DX10 au complet, mais il doit pouvoir se substituer aux vieilles versions.
Pour en revenir à la webCam, SANE semble exister aussi sur Windows.
JMF le fait !!! Toutefois cela dépend des implémentations...Envoyé par Sivrît
Je m'explique : JMF permet d'encoder/décoder divers types de flux multimedia (audio, video, périphérique de capture).
JMF propose 4 implémentations :
- Une implémentation "cross-platform", et donc indépendante du système d'exploitation. Cette implémentation n'est pas forcément un bon choix car elle ne bénéficie pas des optimisations spécifique à un système, ni l'accès aux périphériques bien entendu...
- Viennent ensuite trois versions "Performance Pack" spécifique a des OS (Windows, Linux et Solaris). Ces dernières permettent de bénéficier des API du système (comme DirectX sous Windows par exemple) et d'accéder aux périphérique.
Si je ne me trompe pas, tout ce qui passe par DirectShow sous Windows peut être utilisé via JMF version Windows, et tout ce qui utilise Video4Linux sous Linux peut l'être avec la version Linux
a++
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager