Newsgroup: it.comp.lang.c++
Titolo: La grafica con il C++

Visto che sono un neofita mi chiedevo se con il C++ si possono creare
programmi grafici
(leggi giochi o simili) utilizzando delle librerie che differiscono da
DirectX e fratelli, un po'
come con il Turbo Pascal.
Esistono?
Quali sono e come si usano?

rove wrote:

Per essere molto breve, si`.
Il fatto e` che non sono standard, visto che il C++ e` stato progettato
per funzionare su *qualsiasi* macchina, ed evidentemente ci sono macchine
che la grafica non sanno nemmeno che sia.
Se stai programmando sotto Winzozz, impara come si usano le API GDI che
comprendono generazione di curve, linee (convari stili), archi, campiture,
ecc.
Visto che parli di grafici, se ti serve fare cose tipo istogrammi, torte
(in faccia (son simpatico:P ) o cose simili per quanto ne so' puoi usare
controlli inclusi in pacchetti tipo C++Builder (la versione 1.0 tra
l'altro e` distribuita ratuitamente da un po', ma non so se nella versione
a-gratis siano inclusi questi controlli che so esistere nella versione
professional).
In pratica se non vuoi usare API di Windows (come DirectX) devi dipendere
dal corredo del tuo compilatore. Ovviamente sciegli anche in
considerazione di cio` che vuoi realizzare (se cerchi di fare un
simulatore di volo ti sconsiglio le GDI).
Saluti.
    (_mm_)                                          (_mm_)
     (Oo)        ^     |         (    |              (--)
~,-,_/(같)      / \ n o| r e a    ) a | m a $ o     (같)\_,-,~
 /      O          e-mail: 
ci...@iname.com
           ~   WW \
 \   (  )                                            (  )   /
  |~| ||    Do NOT Reply!! Use the address above!     || |~|
   n n nn      O==m PGPkeyavailable ICQ5242052       nn n n

In pratica se non vuoi usare API di Windows (come DirectX) devi dipendere
Le API sono una cosa e DirectX è un'altra.
GDI = API del sistema operativo
DirectX = interfacce COM
Programmare mediante l'SDK è completamente diverso dal programmare servendosi di
oggetti COM.
Ciao
AB
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Andrea Baruzzo
Via Circonvallazione, 26
Muzzana del Turgnano (UD) - Italy
e-mail: 
andrea....@ud.nettuno.it
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

su più piattaforme, OpenGL è quasi obbligatoria).
Io preferirei usare OpenGL in ogni occasione... Direct3D sono incredibilmente
pesanti da programmare. Per inizializzare il sistema grafico devi enumerare i
driver DirectDraw, sceglire quello desiderato, inizializzare DirectDraw,
enumerare i driver Direct3D del driver DirectDraw appena scelto, ecc, insomma 11
passi. 
Con OpenGl ottieni il Device Context della finestra, con una chiamata ad una
funzione crei il rendering context e puoi subito cominciare il rendering.
Bye,
            Daniele
--- Per rispondere in e-mail, togliere "cutme" dall'indirizzo.

...

Inoltre DirectX non è molto semplice da debuggare. La scelta di DirectX nel mio
post precedente era motivata solo per questioni di prestazione. In Windows95/98
la libreria grafica che è meglio armonizzata con i device driver delle schede
video e, alla fine, con l'hardware stesso è DirectX. OpenGL è portabile, e in
questo senso paghi sempre qualcosa. Oh, intendiamoci, non è una critica verso
quest'ultima. Assolutamente.
Devo ammettere che, negli ultimi tempi, sto spostando anch'io il mio interesse
verso tale libreria.  Quanto a DirectX, è una delle rare volte in cui non mi
sono sentito a mio agio con l'uso di oggetti COM e ho preferito aggiungerci un
wrap in C++. Ti semplifica molto la programmazione e, alla fine, quelle 11 cose
tornano ad essere due o tre. Ma questo è un altro paio di maniche.
