¿Qué tan difícil sería para un puerto 7 aplicación DirectX para funcionar en Windows 7?

StackOverflow https://stackoverflow.com/questions/1522039

  •  19-09-2019
  •  | 
  •  

Pregunta

Tuvimos un juego de arcade / reembolso que se ejecuta en Windows 98, pero el hardware que puede funcionar Finalmente ha ido obsoleto. El juego utiliza una serie de efectos de escala, algunos a través de la ruta de 3D, y jugó algunos trucos que se mueven las cosas dentro y fuera de la memoria de vídeo. Si tuviera que realizar la portabilidad que se ejecute en Windows 7, la cantidad de problemas que sería probable que sea? ¿Sería su mayoría ser recompilación, o tiene las API sido sometidos a ese transformación que bien podría volver a escribir las interfaces de dispositivos?

¿Fue útil?

Solución

No pensar en ella como la migración a Win7. Simplemente puerto para DX9 y dejar DX haga el trabajo con las partes Win7. De hecho, probablemente podría simplemente dejarlo como está y que shuold correr - pero se menciona que haces cosas locas con memoria de vídeo que supongo no tiene nada que ver con DX. (Es decir, ya sea a través de GDI o algún otro truco?). De todos modos, el DX7, 8 y 9 API todos tienen diferencias bastante drásticas. Pero lo bueno es que todos son compatibles hacia atrás. Si el código que tienes es DX7 pura, tratar de compilar contra el último SDK y ver si funciona en win7 directamente hacia afuera.

Otros consejos

Ha sido un tiempo desde que he escrito ningún código DirectX 7 (o código de Direct X en absoluto), pero si recuerdo había algunos API significativa cambia evento entre 7 y 8 - y mucho menos 9 o 10 - que haría tal cambiar un poco más difícil. Específicamente Creo que el cambio importante fue que refactorizan el sistema después de 7 a fusionarse en DirectDraw Direct3D modo que los dos sistemas ya no estaban completamente separados entre 7 y 8. No he mirarlo desde entonces, pero sospecho que, dada la número de nuevos métodos de codificación y al igual que la API tiene cambiar un poco por lo que probablemente va a ser un poco de un proyecto para hacer estos cambios en lugar de en su mayoría recompilación de que se puede haber esperado.

movida cosas dentro y fuera de la memoria de vídeo? estremecimiento

Sin embargo ... es más rápido que hacerlo ahora que cuando DX7 fue de alrededor. ¿Qué es exactamente estabas haciendo? Desde su descripción es imposible decir lo fácil que sería. Una aplicación DX7 todavía debería funcionar en Windows 7, no puedo pensar en qué características extraña que pueda haber utilizado que podría causar que se rompa.

también la conversión de una aplicación a DX9 de 7 no es en realidad todo lo que dura (la conversión a DX10 + sería una pesadilla). Todavía son relativamente similares ... lo principal que ha cambiado desde aquellos días es el acortamiento de cosas como D3DTRANSFORMSTAGESTATE_ * o * D3DRENDERSTATE_ a D3DTSS_ * o D3DRS _ *.

Edit: El cambio más grande que puedo pensar que ha ocurrido desde DX7 es que los fabricantes de tarjetas gráficas han abandonado el soporte para texturas palettised que "podría" romper algunas aplicaciones antiguas en las máquinas modernas. Eso sí que es una solución muy simple, aunque ...

Edit2: Descomprimir cosas desde el disco en una textura puede ser un poco de dolor. Su principal problema es el hecho de que se acaba de sufrir un impacto en el rendimiento cuando se crea la textura. Sin embargo, si usted tiene una carga de texturas ya creado y abierto, puede cargar a la textura pertinente para el momento que quiera. Sólo se sufre un golpe de bloqueo / desbloqueo. Que pueden ser mitigados mediante la carga de un recurso de unos cuantos fotogramas por adelantado. Si lo hace, sin embargo, que, sin duda, requieren multi-threading y D3D llamando desde varios subprocesos. Si hace esto establece el indicador de multi-hilo en el dispositivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top