2012-01-26 11 views
6

Esiste un modo semplice per trasferire un'app OpenGL C++ su un browser? È già stato trasferito su PC, Mac e iOS. Se c'è un modo relativamente semplice, sarebbe portatile tra i browser dei computer? Dovrei usare binari diversi per piattaforme diverse, ovviamente. Ricordo di aver sentito qualcosa su qualche ambiente sandbox per Chrome qualche tempo fa, ma che avrebbe escluso gli altri browser. Come hanno fatto (id?) Con Quake nel browser?Porting della mia app C++ per l'esecuzione in un browser

+1

[WebGL] (http://en.wikipedia.org/wiki/WebGL) è quello che penso tu stia parlando. –

+0

La sandbox per Chrome è denominata [Native Client] (https://developers.google.com/native-client/). –

risposta

2

Prova Google Native Client o NaCl, se si desidera una porta lazy.

Ma se si vuole fare un vero e proprio porto - fare riferimento a questi due esempi:

  • blog series sul porting del gioco esistente C++ per HTML5 (sponsorizzato da Opera)
  • short article sul porting Objective- esistente C game to html5 (sponsorizzato da Microsoft).
  • sad example di porting popolare gioco protetto da copyright da C a JavaScript (sponsorizzato da Mozilla, con l'aiuto extra di ZeniMax)

Se si chiedeva di QuakeLive - che è un plugin personalizzato, realizzato da Id Software. Funzionalità simili possono essere raggiunte con i plugin Flash o Unity.

4

Se si sta già prendendo di mira l'ES 2.0 per iOS, gli shader dovrebbero funzionare allo stesso modo di WebGL. JavaScript ahoy!

id Software utilizza un giant plugin per Quake Live.

1

Esiste un modo semplice per trasferire un'app OpenGL C++ su un browser? È già stato trasferito su PC, Mac e iOS. Se c'è un modo relativamente semplice, sarebbe portatile tra i browser dei computer?

Si può provare a ricompilarlo in JavaScript, questo è quello che i browser eseguono. Se non ti aspetti che l'utente installi un plug-in del browser, non puoi dargli il codice nativo. Ovviamente quando in un ambiente JavaScript molte delle cose che sei abituato da eseguibili nativi non funzionano. Per gli esempi non è più possibile accedere a un file system. È necessario utilizzare l'archiviazione DOM, i cookie, scaricare/caricare risorse da un server.

+0

Supporto JavaScript OpenGL in questi giorni? –

+0

@ JonasByström: Sì, si chiama WebGL. Ecco alcune demo: http://www.chromeexperiments.com/webgl – datenwolf

2

È possibile utilizzare Mandreel se si desidera la minima quantità di lavoro. Un'altra opzione è Emscripten ma che converte solo il tuo C++, non fornisce tutte le API come fa Mandreel.

Problemi correlati