GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué no hay una API de DirectX para Linux?

¿Por qué no usar simplemente OpenGL? Es compatible con toda la funcionalidad que hace DirectX. ¿Tiene alguna razón específica para usar DirectX? Por una razón, Microsoft hizo DirectX y supongo que no vieron ninguna necesidad de permitir que se ejecutara en Linux.

Puedes ejecutar juegos DirectX en Linux usando Wine. Puedes programar XNA en Linux usando MonoGame. Pero todos estos usan OpenGL para proporcionar renderizado acelerado por hardware. AFAIK, OpenGL ha sido (y probablemente será) la única opción en Linux en el futuro previsible.

¿Es posible escribir su propia implementación de DirectX? Claro, pero implica escribir controladores, conocimiento patentado y probablemente demasiado costo para que alguien REALMENTE se beneficie de él.

EDITAR:En estos días, DXVK es una forma muy real y eficaz de ejecutar aplicaciones DirectX en Linux.


DirectX es un conjunto de API:

  • Direct3D (dibujar gráficos en 3D)
  • Infraestructura de gráficos DirectX (enumeración de adaptadores y monitores y gestión de cadenas de intercambio)
  • Direct2D (dibujar gráficos 2D)
  • Escritura directa (fuentes)
  • Computación directa (Informática GPU)
  • DirectSound3D (reproducción de sonidos 3D)
  • Medios DirectX (DirectAnimation para animación web 2D/3D, DirectShow para reproducción multimedia y transmisión de medios, DirectX Transform para interactividad web y modo retenido de Direct3D para gráficos 3D de nivel superior)
  • Diagnóstico de DirectX (herramienta para diagnosticar y generar informes sobre componentes relacionados con DirectX, como audio, video y controladores de entrada)
  • Objetos multimedia de DirectX (soporte para objetos de transmisión como codificadores, decodificadores y efectos)
  • Configuración directa (instalación de componentes de DirectX y detección de la versión actual de DirectX)

Componentes de DirectX en desuso, pero aún compatibles

  • Dibujo directo
  • Entrada directa
  • Reproducción directa
  • DirectSound
  • Música Directa

Como puede ver, muchas partes del conjunto DirectX de API deberían reescribirse con funcionalidad para controladores escritos para Linux. Además, es probable que algunas partes del traje de DirectX hagan llamadas al sistema operativo Windows y ese código tendría que volver a escribirse para una máquina Linux sin infringir las partes copiadas de DirectX o del sistema operativo Windows.

Sí, podría escribir un conjunto de API de código abierto que haga lo mismo que DirectX para Linux, sin embargo, sin un gran conocimiento de los controladores de sonido y gráficos/soporte de sus fabricantes para Linux, sería una tarea muy difícil de hacer.

Sin embargo, si su pregunta fue más bien "¿Puedo obtener/escribir algo para poder ejecutar juegos y programas creados con DirectX para ejecutar en Linux?" en su significado, en resumen, no debido a una infracción de derechos de autor más probable.


AFAIK, DirectX contiene 3 partes

  • Controlador de proveedor (proporcionar API de bajo nivel definida por DX)
  • Biblioteca de DirectX (use la API de bajo nivel definida por DX para acceder al hardware, proporcione la API de DirectX)
  • Software (usar DirectX API, ej. juego)

No hay un controlador que proporcione la API de bajo nivel definida por DX en Linux, por lo que incluso es posible proporcionar la biblioteca de DirectX, pero no funcionará sin el controlador del proveedor adecuado, y no puedo ver si hay algún proveedor que vaya. para crear uno para su plataforma de hardware.


Su pregunta es incorrecta en 2019. DXVK es una implementación de D3D11 y D3D10 para Linux usando Vulkan y Wine

También mesa tiene una implementación nativa de Direct3D 9 pero, que yo sepa, nadie lo usa excepto Wine


Linux
  1. Por qué mi necesidad de control me hizo cambiar a Linux

  2. ¿Por qué Linux? – Algunas razones para convertir a Linux

  3. ¿Hay una GUI de C++ gdb para Linux?

  4. Servicios de Linux:¿existe una GUI para los servicios?

  5. ¿Existe alguna alternativa para JTS TestBuilder en Linux?

Por qué me encanta usar bspwm para mi administrador de ventanas de Linux

¿Por qué elegir Xfce para su escritorio ligero de Linux?

Por qué elegir Budgie para su escritorio Linux

Por qué usar el escritorio Pantheon para Linux Elementary OS

Cómo prepararse para el mal tiempo en Linux

¿Existe un cliente de OneDrive para Linux?