Opengl și c constructor

OpenGL și C ++ Builder. Partea 1.
Configurarea programului Borland C ++ Builder 6 pentru a lucra cu OpenGL.

Scopul acestui articol este de a vă ajuta cât mai mult posibil în configurarea mediului C ++ Builder 6 și în pregătirea unor biblioteci suplimentare pentru a lucra cu sistemul grafic OpenGL.

Mai departe. În mediul BCB, există un fișier $ (BCB) \ lib \ Import32.lib, care conține linkuri către "tot ce aveți nevoie", inclusiv bibliotecile dll menționate mai sus. Când compilați un proiect din IDE sau folosind un compilator cu o legătură (bcc32 -v -Tpe test.cpp), această bibliotecă este conectată automat. Dacă conectăm din afara ilink32.exe, trebuie să conectăm explicit această bibliotecă.

În fișierele antet (în cazul în care este necesar suportul OpenGL) se introduc două rânduri

Astfel, în cazul în care proiectul în moduri prescrise includ directorul $ (BCB) \ includ, lib-director $ (BCB) \ lib și fișiere gl.h, glu.h, import32.lib în loc și nu rupt (acesta este cazul pentru implicit), atunci nimic altceva de făcut nu este necesar.

Există încă un detaliu mic referitor la prelucrarea erorilor matematice ale coprocesorului. Dacă programul dvs. "se blochează" în mod neașteptat în timpul calculelor în virgulă mobilă în bibliotecile MS, este recomandat să inserați o pereche de comenzi înainte de a desena fiecare cadru (în Win9x)

_control87 (MCW_EM, MCW_EM); / * este definit în float.h BCB * /)

sau o comandă secundară (Win2k, WinXP) în secțiunea de inițializare.

Aceste "plecări" rare apar atunci când se inițiază excitarea coprocesorului. MS ignoră aceste excepții, Borland nu. Comanda _control87 cu steagurile specificate conduce la ignorarea acestor excepții în BCB.

Acum, despre bibliotecile GLAUX și GLUT, utilizarea cărora ridică adesea multe întrebări.

Primul este în principal pentru încărcarea imaginilor în texturi și pentru construirea unor corpuri 3D standard. În al doilea rând, fiind platformennonezavisimoy, conceput pentru a crea o redare ferestre (reproducere grafică) în fereastra și ferestre mass-media, procesarea mesajului pe baza funcțiilor cadru cu apel invers (CALLBACK), suport pentru dispozitive de intrare, de lucru cu cicluri de mers în gol, temporizator programabil, Cascading meniuri, suport fonturi diferite și, de asemenea, pentru construirea de corpuri tridimensionale.

Nu este recomandat să le utilizați în aplicații avansate. sa raportat că prima conține scurgere de memorie, iar cea de-a doua are limitări și nu funcționează integral cu VCL. Distribuția lor se explică prin prezența unui număr mare de exemple cu utilizarea lor în manuale și manuale.

Dacă nu aveți un fișier antet glaux.h, verificați arhiva la sfârșitul articolului. Apoi puneți-l în $ (BCB) \ include \ gl.

Pentru GLAUX există înlocuiri (pentru lucrul cu imagini):

1. download-uri Nehe au înlocuit GLAUX pentru a încărca imagini (Misc), în același fel, există un port pentru toate clasele din C ++ Builder 6, care poate fi de lucru în BCB, să învețe OpenGL pe Win API pur.

4 cm. Exemplul $ (BCB) \ Exemple \ OpenGL \ Drawing \ GlSkel.cpp (SetupTextures), care arată cum să încărcați un .bmp fișiere folosind componenta TBitmap (chiar și setați o culoare transparentă).

Cine are nevoie de GLUT:

Pentru practică, se recomandă crearea mai multor tipuri de proiecte, utilizând exemplele din pachetul descărcat glut-3.7.6-src.zip (dosarul de exemple). Luați, de exemplu, fișierul triangle.c. În BCB, creați aplicația consola -File / New / Other și pe fila New selectați Console Wizard. Instalați caseta de selectare Specificați sursa proiectului și selectați fișierul specificat (nu uitați că extensia .c). Totul este gata! Am creat o aplicație de consolă de proiect pe C pură. Rețineți că atunci când utilizați GLUT, nu este nevoie să scrieți directive.

Numai șirul este necesar

Mai greu de creat o aplicație de proiect în C ++. Utilizând Expertul Consola, ar trebui să debifați caseta de selectare și să setați comutatorul în C ++. Salvați proiectul primit. Acum, introduceți întregul text, cu excepția pentru funcția principală, de la triangle.s în Unit1.cpp imediat după hrdstop #pragma, iar conținutul funcției principale în Unit1.cpp înlocui conținutul funcția principală a fișierului triangle.s. Încercați să compilați proiectul. Nu a mers? Nu contează. Adăugați opțiunile de proiect \ Directoare / Condiții \ Condițional definește proprietățile proiectului prin ";" GLUT_BUILDING_LIB.

Încă o dată o voi repeta. Este mai bine să nu folosiți GLAUX și GLUT (cu excepția formării) și să lucrați numai cu unelte BCB. Înțelegeți în două exemple $ (BCB) \ Examples \ OpenGL.

Opengl și c constructor
Opengl și c constructor

dplakosh / este predecesorul celui anterior (BCB5) (limba rusă puternică!).

(vedeți și arhiva de la sfârșitul articolului).

Aceste informații sunt suficiente pentru a începe să utilizați singur Borland C ++ Builder pentru a dezvolta proiecte în cadrul OpenGL. Un "but" - modul de ecran complet nu a fost luat în considerare. Dar despre el - data viitoare.

Numai C ++ Builder poate fi folosit din diferite motive:

Vreau totul. Sunt obișnuit cu asta.

Într-adevăr, produsul este grandios. Este dificil să ieși. Dar se gândea, în primul rând, la dezvoltarea rapidă a interfeței și a lucrului cu bazele de date. Pentru a rezolva alte probleme non-standard, va trebui să fie studiată mult mai adânc decât se face de obicei. Dar efortul se plătește. Pot să recomand cărțile lui Charlie Calvert.

Nu vreau să învăț toate aceste WM_SYSCOMMAND ...

Mă sinucid cu asta, mai ales că C ++ Builder maschează cu grație toate aceste complexități. Dar fără o bună cunoaștere a programului API Win în programare în Windows nu merge prea departe ...

Nu există Studio Visual.

Puteți descărca gratuit VS Express Edition. Apropo, de unde vine C ++ Builder?

Dar, cel mai important, îmi place RAD și înfășurat într-un eveniment elegant de împachetare.

Da, în acest Borland a depășit anii de la 10 ani. Și numai odată cu apariția .NET MS sa desfăcut. Dar aici este necesar să studiem noul mediu, vor apărea probleme însoțitoare ... Cercul este închis.

C GLScene este o mică dificultate. 714 de eliberare în conformitate cu Delphi și trebuie să lucreze din greu, configurarea TortouseCVS pentru descărcare de sucursale CVS GLScene pentru C ++ Builder (a se vedea. FAQ) și studiind scena. Dar, în general, este promițătoare, chiar și inter-platforma este promis! Da, scena încetinește. Dar această problemă este foarte subtilă. Apoi, prima lansare stabilă a apărut numai cu șase luni în urmă, deși dezvoltarea a avut loc de aproape 5 ani. O lansare nouă este așteptată în viitorul apropiat.

Articole similare