Estoy bastante seguro de que la respuesta debe ser “No”; Glyn Williams dio parte de la respuesta de DirectX, pero en realidad hay una razón más grande por la que no apuntarías a OpenGL sin una biblioteca intermedia.
Uno de los problemas que la gente ve con frecuencia con los juegos en Mac OS X y Linux es que las texturas que se utilizan tienden hacia bucles infinitos. No se ve esto en los juegos dirigidos a DirectX porque DirectX intentará desenrollar la textura para el renderizador de DirectX, y si no puede hacerlo, lo ejecuta por un tiempo limitado o tira la textura.
Tanto Mac OS X como Linux, por otro lado, alimentan el GL directamente a la tarjeta gráfica, y durante la ejecución de la textura, se come un canal de visualización.
Otro mecanismo anti-bloqueo implementado en Windows, pero no implementado en Mac OS X o Linux, es reservar un canal GL para restablecer la tarjeta de video. La capacidad de restablecer la tarjeta en banda en un canal de gráficos era un requisito para las tarjetas de video para la certificación DirectX 9.x. Ni Linux ni Mac OS X reservan el canal para este propósito, por lo que si se encuentran en una situación de bloqueo de gráficos, no pueden recuperarse sin emitir un reinicio de hardware en la tarjeta.
- ¿Cuáles son algunos buenos juegos del mercado de valores que pueden mejorar sus habilidades comerciales?
- ¿Qué tan popular es el ajedrez en la India?
- Hearthstone: ¿Cuáles son algunos consejos para jugar con la clase Hunter?
- ¿Cómo es programar videojuegos en 3D?
- ¿Qué es todo este alboroto sobre un juego llamado Color Flip?
Esta es la razón por la que a veces ves juegos con gráficos complicados que “se ven mejor” en Mac OS X o Linux en exactamente el mismo hardware que Window, pero pueden colgarse periódicamente.
Curiosamente: Google tiene un intérprete GL que usa para Chrome y, si lo usaran profilácticamente dentro de Chrome para WebGL, podría evitar bloqueos de contenido de WebGL en Mac OS X y Linux (Google no lo usa de esta manera).
Otra cosa que sería (relativamente) trivial implementar para un programador experto sería una implementación de DirectX para plataformas que no sean Windows, sin el intérprete GL, que, en teoría, podría obtenerse de Chrome, dependiendo de la licencia que estuviera dispuesto a vivir bajo para el software agregado.
Esto facilitaría el puerto de código directamente desde Windows, con muchas advertencias (las bibliotecas de red, etc., dependiendo de qué tan dependientes de la plataforma hicieran el resto del motor del juego).