Quanto difficile sarebbe alla porta un directx 7 applicazione per l'esecuzione su Windows 7?

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

  •  19-09-2019
  •  | 
  •  

Domanda

Abbiamo avuto un gioco arcade / rimborso in esecuzione su Win98, ma l'hardware che può essere eseguito è finalmente andato obsoleto. Il gioco utilizza una serie di effetti di scala, alcuni attraverso il percorso in 3D, e ha giocato alcuni trucchi in movimento le cose dentro e fuori di memoria video. Se dovessi intraprendere porting per funzionare su Windows 7, quanti problemi sarebbe probabilmente essere? Sarebbe soprattutto essere ricompilazione, o hanno le API sottoposti tale trasformazione che tanto valeva riscrivere le interfacce del dispositivo?

È stato utile?

Soluzione

Non pensare ad esso come porting su Win7. Basta semplicemente porta per DX9 e lasciare DX fare il lavoro con le parti Win7. Infatti, si potrebbe probabilmente solo lasciare così com'è e shuold correre - ma parlare di fare cose folli con memoria video che suppongo non ha nulla a che fare con DX. (Vale a dire sia attraverso GDI o qualche altro trucco?). In ogni caso, il DX7, 8 e 9 API tutti hanno differenze piuttosto drastiche. Ma la cosa bella è che sono tutti compatibili. Se il codice che hai è puro DX7, provare a compilare contro l'ultimo SDK e vedere se funziona su win7 di getto.

Altri suggerimenti

E 'stato un po' da quando ho scritto alcun codice DirectX7 (o codice Direct X a tutti), ma se non ricordo c'erano alcune API cambiamenti significativi eventi tra il 7 e 8 - lasciate lungo 9 o 10 - che avrebbe fatto una tale cambiare un po 'più difficile. In particolare credo che il maggiore cambiamento è stato che essi refactoring del sistema dopo 7 a fondersi DirectDraw in Direct3D in modo che i due sistemi non sono più completamente separati tra il 7 e 8. Non ho guardare da allora, ma ho il sospetto che, dato il numero di nuovi metodi di codifica e come che l'API è cambiata un po 'in modo che è destinata probabilmente ad essere un po' di un progetto per apportare queste modifiche, piuttosto che per lo più ricompilazione, come si potrebbe avere sperato.

Hai mai spostato le cose dentro e fuori dalla memoria video? brivido

Ancora ... la sua più veloce per farlo ora di quando DX7 era intorno. Che cosa esattamente stavi facendo? Dalla tua descrizione è impossibile dire come sarebbe facile. Un app DX7 dovrebbe ancora funzionare su Windows 7, non riesco a pensare a quali caratteristiche dispari potrebbe essere utilizzato che potrebbe causare la rottura.

Anche la conversione di un'applicazione per DX9 da 7 non è in realtà così difficile (la conversione in DX10 + sarebbe un incubo). Sono ancora relativamente simili ... la cosa principale che è cambiato da quei giorni è l'accorciamento delle cose come D3DTRANSFORMSTAGESTATE_ * o D3DRENDERSTATE_ * a * D3DTSS_ o D3DRS _ *.

Modifica: Il cambiamento più grande che posso pensare che è successo dal DX7 è che i produttori di schede grafiche hanno cessato il supporto per le texture palettised che "potrebbe" rompere alcune vecchie applicazioni su macchine moderne. Questo è davvero molto semplice correzione se ...

Edit2: decompressione cose dal disco in una texture può essere un po 'di dolore. Il problema principale è il fatto che si finisce per subire un calo di prestazioni quando si crea la texture. Tuttavia, se si dispone di un carico di trame già creato e aperto poi si può caricare la consistenza rilevante come e quando vuoi. Si soffre solo un colpo di blocco / sblocco. Che possono essere mitigati caricando una risorsa pochi fotogrammi in anticipo. Se si esegue questa operazione, però, sarà senza dubbio bisogno di multi-threading e D3D chiamando da più thread. Se si esegue questa operazione impostato il flag multi-thread sul dispositivo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top