2013-08-07 14 views
14

Próbuję eksperymentować z biblioteką Qt w systemie Windows. Na ich downloads page, zauważam, że binaria zbudowane przy użyciu VS2012 są dostępne w dwóch formach, z lub bez OpenGL. Jaka jest dokładnie różnica między tymi dwoma? Czy w wersji OpenGL mają specjalne API zaimplementowane za pomocą OpenGL, czy też renderowanie Qt zależy od OpenGL? Czy jest też wersja Qt, która używa DirectX?Qt C++ Biblioteka dla Windows i OpenGL

Odpowiedz

9

@Raman: Wariant OpenGL używa wersji OpenGL na pulpicie, podobnie jak z Qt4.

Wariant non-opengl używa kąta i musisz go zainstalować wraz z DirectX SDK, aby działał. Kąt jest adapterem między interfejsem DirectX i OpenGles API. Tylko ta ostatnia jest obsługiwana bezpośrednio przez Qt, ale niestety sterowniki DirectX działają lepiej na Windowsie niż na OpenGL (es). W Qt nie ma planów wspierania bezpośredniego backendu, więc wychodzimy z działaniem Google Angle w tym zakresie.

Jeśli chodzi o dodatkowe bity, ostatnio na liście dyskusyjnej pojawiła się dyskusja, że ​​decyzja ta nie powinna być czasem kompilacji, ale bardziej przypomina czas wykonywania. Jednak nikt jeszcze nie wstał, aby wykonać tę pracę. Mam nadzieję, że wkrótce się to zmieni. Powoduje to zamieszanie dla użytkowników końcowych, więc nie czuj się samotny. ;-)

Nadzieja to wyjaśnienie pomaga.

+1

Tak więc wersja OpenGL Qt używa sterowników OpenGL, które nie są tak dobre dla Windows. Wersja Qt, która nie jest OpenGL, pośrednio opiera się na DirectX, ale tylko dlatego, że używa biblioteki OpenGL -> DirectX emulator. Czy to prawda? –

+0

Tak, Raman, zgadza się. – lpapp

2

DirectX jest obsługiwany przez bibliotekę opartą na ANGLE.

+0

Rozumiem, że jednak mu pytanie jest to, że na ten link: http://qt-project.org/downloads, jaka jest różnica między Qt 5.1.0 dla Windows 64-bitowy (VS 2012, 525 MB) i Qt 5.1.0 dla 64-bitowych systemów Windows (VS 2012, OpenGL, 522 MB) –

1

Zauważ, że to się zmieniło i jak Qt 5.5 prekompilowanych pakietów można pobrać ze strony internetowej Qt są skonfigurowane z opcją dynamicznego -opengl. O tym właśnie mówił powyższy @lpapp. Qt domyślnie wybiera teraz natywne sterowniki OpenGL lub ANGLE w czasie wykonywania.

Qt wewnętrznie używa OpenGL do renderowania, chyba że teraz określisz inaczej. Możesz również renderować niestandardową zawartość OpenGL za pomocą funkcji QOpenGLxxx i klas QT.

For a simple introduction to Qt and OpenGL that covers this and more click here.