[ Pobierz całość w formacie PDF ]
.Gdy Microsoft opracowa³ Yisual Basici umo¿­liwi³ tworzenie w³asnych kontrolek poprzez VBX, w ci¹gu dos³ownie jednejnocy po­wsta³a nowa ga³¹Ÿ przemys³u.Powsta³y nowe firmy, przynosz¹ce fortuny,zajmuj¹ce siê dostarczaniem programistom Yisual Basica nowych i interesuj¹cychprogramowych gad¿etów.Wkrótce powsta³y konkurencyjne œrodowiska (PowerBuilder,Delphi i inne), tak¿e umo¿liwiaj¹ce u¿ycie kontrolek VBX w swoich aplikacjach.To jeszcze bardziej podsyci³o zapa³ do tworzenia komponentów nadaj¹cych siê dowielokrotnego zasto­sowania.Rozdzia³ 23.OpenGL w Visual Basic S4GLPoza rozdzia³ami 21 i 22, w ca³ej ksi¹¿ce opisywaliœmy OpenGL API z punktuwidze­nia programisty C.Jednak ¿aden opis zagadnieñ zwi¹zanych zprogramowaniem Win­dows nie móg³by byæ kompletny bez dyskusji na temat jêzykówczwartej generacji (4GL) i innych popularnych wizualnych œrodowiskprogramowych.W tym rozdziale omówimy pokrótce wymagania zwi¹zane z u¿ywaniemOpenGL w niektórych z takich œrodowisk.Oprócz tego, zademonstrujemy do³¹czonedo tej ksi¹¿ki kontrolki OCX OpenGL, które mog¹ zostaæ u¿yte w dwóchnajpopularniejszych œrodowiskach progra­mowych Win32: w Yisual Basic 6.0Microsoftu oraz Delphi 2.0 Borlanda.Pisz¹c ten rozdzia³, zak³adaliœmy, ¿e potrafisz siê pos³ugiwaæ wykorzystywanymprzez siebie œrodowiskiem (Yisual Basic lub Delphi) oraz wiesz, jak u¿ywaæ iwywo³ywaæ metody kontrolek OCX.Jednak nawet jeœli nie masz doœwiadczenia zkontrolkami OCX, przekonasz siê, jak proste mog¹ one byæ w u¿yciu.Wymagany dostêp niskiego poziomuZ OpenGL mo¿e skorzystaæ ka¿dy jêzyk lub œrodowisko programowania Windows, podwarunkiem, ¿e umo¿liwia niskopoziomowy dostêp do Win32 API i innych bibliotekzawartych w plikach DLL.Wiêkszoœæ œrodowisk i narzêdzi na to pozwala, w celuumo­¿liwienia integracji aplikacji z innymi bibliotekami oraz choæby po to, abyprogramista móg³ skorzystaæ z nowych elementów systemu operacyjnego, którejeszcze nie by³y do­stêpne w momencie tworzenia danego narzêdzia.Ca³e API OpenGL mieœci siê w dwóch plikach DLL: opengl32.dll oraz glu32.dll.Tak jak wiêkszoœæ API Win32 jest dostêpnych bezpoœrednio z bibliotek DLL, tak¿ew przypa­dku bibliotek opengl32.dll, glu32.dll i innych mo¿esz wywo³ywaæ ichfunkcje bezpoœ­rednio z jêzyka programowania wy¿szego poziomu.W ka¿dymnarzêdziu i œrodowisku jest to jednak odmiennie zorganizowane.Zwykle musiszpodaæ nazwê funkcji, jej660________________________________________Czêœæ IV » OpenGL i.prostu umieœæ kontrolkê w formularzu i zacznij wywo³ywaæ jej metody, tak jakbyby³y funkcjami i poleceniami OpenGL.Ka¿de polecenie nosi nazwê tak¹ jak w OpenGL API, lecz z odrzuconymprzedrostkiem g/.Gdy kontrolkê nazwiesz g/, twój kod bêdzie wygl¹da³ bardzopodobnie do kodu C u¿y­waj¹cego OpenGL.Aby siê o tym przekonaæ, zajrzyj doprzyk³adów dla VB i Delphi w dalszej czêœci rozdzia³u.Kontrolka odpala dwa zdarzenia, które mo¿esz przechwyciæ w swojej aplikacji.Pierw­szym z nich jest SetupRC, wywo³ywane za pierwszym razem, gdy kontrolkapróbuje odrysowaæ swój obszar roboczy.W tym momencie format pikseli i kontekstrendero­wania zosta³y ju¿ utworzone i przygotowane.W swoim kodzie mo¿eszprzygotowaæ oœ­wietlenie, kolor t³a itd.Drugim zdarzeniem jest Render,wywo³ywane za ka¿dym razem, gdy kontrolka ma zostaæ odrysowana.Umieszczaj¹c wtym miejscu swój kod rendero­wania, mo¿esz efektywnie wype³niæ obszar roboczyza pomoc¹ OpenGL.Podczas u¿ywania kontrolki musisz mieæ na uwadze jeszcze parê innych rzeczy:* Poniewa¿ móg³byœ u¿yæ w swojej aplikacji wiêcej ni¿ jednej kontrolki Open­GL,kontrolka nie mo¿e zak³adaæ, ¿e kontekst renderowania zawsze jest dostê­pny dlaniej.W zwi¹zku z tym zosta³y dostarczone dwie metody: MakeCurrent orazMakeNotCurrent.Wszystkie wywo³ania OpenGL musz¹ byæ ujête pomiêdzy wywo³aniatych dwóch funkcji; dotyczy to tak¿e funkcji SetupRC i Render.* Oprócz tego, jeœli uczynisz kontekst renderowania bie¿¹cym dla kontrolki,za­wsze mo¿esz bezpoœrednio wywo³ywaæ OpenGL API.Mo¿esz to robiæ w celupoprawienia wydajnoœci lub w przypadku chêci wykorzystania nowych funkcji wnastêpnych wersjach OpenGL, które nie zosta³y zawarte na liœcie metodkontrolki.Do dyspozycji masz tak¿e kod Ÿród³owy kontrolki, wiêc jeœli maszYisual C++ i spore zaciêcie, zawsze mo¿esz sam zmodyfikowaæ kontrolkê.* Dla kontrolki jest tworzona paleta 3-3-2, realizowana za ka¿dym razem, gdyjest odpalane zdarzenie Render.Próby samodzielnego manipulowania palet¹ mog¹prowadziæ do nieprzewidzianych rezultatów.* Na koniec, okno kontrolki jest podwójnie buforowane, wiêc aby wyœwietliæobraz, zawsze musisz wywo³aæ metodê SwapBuffers.Znaczniki OpenGLNiemo¿liwe jest korzystanie z funkcji i poleceñ OpenGL bez mo¿liwoœci dostêpudo wielu specjalnych znaczników i zmiennych stanu.Ka¿da z wartoœci tychznaczników jest dostêpna poprzez metodê o nazwie odpowiadaj¹cej nazwie danegoznacznika.Nazwy tych metod zawieraj¹ jednak jedynie ma³e litery, gdy¿ przyzachowaniu oryginalnych nazw wystêpowa³y problemy z prawdziwymi definicjami wplikach nag³Ã³wkowych.Choæ w pewnych przypadkach sensowne by³obyzaimplementowanie pewnych zmien­nych stanu jako w³aœciwoœci kontrolki, jednaknie zawsze by³oby to mo¿liwe.Dla za­chowania spójnoœci zdecydowaliœmy siêzastosowaæ metody dopasowane do OpenGL na tyle, na ile to by³o mo¿liwe.Rozdzia³ 23.» OpenGL w Visual Basic i 4GL___________________________661Choæ wiele funkcji posiada kilka odmian, wszystkie zosta³y zaimplementowanejako pojedyncza metoda.Oznacza to, ¿e funkcje takie jakvoid glVertex2fv(const GLfloat *v) ;zosta³y zaimplementowane w postaci metody jakoVertex2(float x, float y)Dostêpny jest plik pomocy (WaiteGL.hlp) zawieraj¹cy spis wszystkich metodzdefinio­wanych w kontrolce WaiteGL.Zosta³y one podzielone na trzy bibliotekiOpenGL (gl, glu i glaux) oraz definicje wszystkich sta³ych.Aby skorzystaæ zpliku pomocy, odszukaj potrzebn¹ funkcjê OpenGL, a nastêpnie poszukaj opisumetody kontrolki WaiteGL dla tej funkcji.PrzejdŸmy teraz do tworzenia programów korzystaj¹cych z OpenGL w dwóchnajpopu­larniejszych œrodowiskach 4GL.W nastêpnej sekcji omówimy zagadnieniazwi¹zane z Yisual Basicem.Jeœli u¿ywasz Delphi 2.0 (w wersji 32-bitowej),mo¿esz przejœæ od razu do nastêpnej sekcji.Instalacja i u¿ycie kontrolki WaiteGL w Visual Basicu 6.0Aby u¿yæ kontrolki WaiteGL, musisz j¹ najpierw zarejestrowaæ w systemieoperacyj­nym (Windows NT lub Windows 95).Skopiuj plik ,ocx do kartotekisystemowej i uru­chom dostarczony program ocxreg.exe.W linii poleceñ tegoprogramu podaj nazwê pliku ,ocx oraz polecenie install (aby zarejestrowaækontrolkê) lub uninstall (aby j¹ wyrejestrowaæ).Na przyk³ad:ocxreg.exe WaiteGL [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • luska.pev.pl
  •