PDA

Visualizza la versione completa : [c/c++] creare una finestra di interfaccia MAC


il mandorlone
11-04-2012, 20:53
salve a tutti dopo 2 settimane di intenso lavoro con python ho deciso di inserirmi nel mondo del C/C++ oggi è il mio primo giorno ma ho già messo il turbo :)

ho già fatto molte prove con il terminale VOGLIO precisare che uso MAC per esattezza Xcode ma credo che in generale non cambi molto

allora ho fatto molte prove tra qui la più banale che è quella del hello world mi sono già stufato con il terminale vorrei passare alla grafica ora ma senza un GUI.
sono appassionato a realizzare l'interfaccia via codice non mi piace usare dei programmi che me la fanno (o son fatto così mi piace complicarmi la vita in questo sono un professionista)

con il python mi riusciva molto semplice creare una semplice finestra esempio 640x480
come posso fare con c o C++ ho visto che devo importare "windows.h" ma l'editor di testo me lo riconosce come errore

spero di non aver sparato enormi cavolate come al solito :)

shodan
11-04-2012, 21:11
Originariamente inviato da il mandorlone
...oggi è il mio primo giorno ma ho già messo il turbo :)

Meglio se togli il turbo e inserisci la retromarcia. :zizi:



...VOGLIO precisare che uso MAC per esattezza Xcode...

A meno che Microsoft acquisti Apple o viceversa, la vedo dura usare:


"windows.h"

in ambiente MAC.

il mandorlone
11-04-2012, 21:17
fin li l'avevo capito anche io che non posso usare "windows.h" per gli stessi motivi
e per questo che vi chiedo cosa devo fare
per chi conosce solo librerie per linux che si esprima ho anche quello :)
poi se sapete come fare con mac mi farebbe anche piacere grazie

il mandorlone
11-04-2012, 21:50
in pratica faccio prima a chiedere il codice per creare una finestra in c per:
LINUX e MAC quale è la differenza cosa cambia?

Who am I
11-04-2012, 22:25
Cambia la shell, che è leggermente diversa ma non è la sola differenza.
A farla breve se usi Mac Os invece che un sistema Linux hai una marea di comodità in più.
Ma nulla ti vieta di installare una macchina virtuale con virtual box e metterci Windows 7, per usare sia Mac Os che windows (come ho fatto io).
Se vuoi creare una GUI hai due opzioni:
-Sempre in C/C++ da xcode includi il framework GLUT e OpenGL e ti metti a creare una finestra (capiti a fagiolo e se vuoi un codice di esempio te lo posso mostrare);
-Cambi linguaggio e passi a studiare Objective-C, dove creare una GUI è molto molto ma molto (fai finta che l' ho detto 10 volte :D ) più facile.

In realtà le opzioni non sono soltanto due, ci stanno anche altri framework e altri linguaggi a disposizione.

il mandorlone
11-04-2012, 22:35
ho 3 computer e 1 mac in tutta la casa ti sembro tipo che installa windows quello è l'ultima cosa che farò e ne vado fiero... lo so anche io che con parallels bastano 2 clik l'ho fatto con ubuntu dato che in più mi serviva sempre a portata di mano oltre al dualboot :)

tornando a noi che codice uso allora con puro c su mac?
OpenGl non ci ho mai lavorato come dovrei fare?

se faccio l'interfaccia in OpenGl dopo lo stesso codice funziona su linux?

Who am I
11-04-2012, 22:59
ho 3 computer e 1 mac in tutta la casa ti sembro tipo che installa windows quello è l'ultima cosa che farò e ne vado fiero [...]


Dal nome non avrei saputo intuirlo :D
Il porting su linux lo puoi fare facilmente.
Per includere il framework basta che crei un progetto in C/C++, clicchi sul progetto e selezioni il nome del progetto su "TARGETS", clicchi su "link libraries", a quel punto clicchi sul simbolo "+" in basso, e aggiungi i framework OpenGL e GLUT.
Tanto per non farti partire con un segmentation fault ecco un esempio di codice che inizializza la finestra con GLUT:



glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(600, 600); // Finestra 600x600
glutCreateWindow("Nome finestra");
glutDisplayFunc(render); // puntatore alla funzione che disegna la finestra
glClearColor(1.0, 1.0, 1.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
glutMainLoop(); // Da questo momento in poi viene eseguita la funzione render
// void render(void) che disegna il buffer


Ma da qui in poi bisogna che inizi a studiare su un libro.

MItaly
12-04-2012, 07:52
Se vuoi creare GUI multipiattaforma in maniera relativamente semplice la cosa più sensata da fare è usare un toolkit grafico, ad esempio le wxWidgets o le Qt.

il mandorlone
12-04-2012, 13:53
ciao grazie ho provato ora e mi sono bloccato.. sono arrivato a link binary whit libraries non trovo il +
ma quindi ora devo seguire delle guide OpenGL per la grafica??
e dove scrivo il codice che mi hai dato in surce-main??
scusa ma è la prima volta che mi ci metto nel OpenGl :)

il mandorlone
12-04-2012, 14:14
anzi forse adesso ci sono riuscito ho apperto una lunga lista e ho inserito OpenGl e GLUT
ho provato a scrivere il codice così come me l'ho hai dato sul file main ma ogni singola riga era un errore :) cosa sbaglio ? :dhò: :dhò: :dhò: :dhò: :dhò:

Loading