2009-02-23 11 views

Odpowiedz

10

Tak! możesz użyć okna pulpitu jako okna przekazanego do OpenGL - o ile nie próbujesz wyświetlać niczego na nim;)

Po prostu zadzwoń pod numer GetDesktopWindow i przekaż wynik jako argument podczas tworzenia nowego okna OpenGL.

+0

Czy to też działa dla xorg? Podczas wypróbowania wydawało się, że dobrze otwiera kontekst, ale nie próbowałem otworzyć obiektu bufora ramki i renderować. – Cheery

+0

Wiem, że działa również na DirectX, ale nigdy nie próbowałem używać tej sztuczki z xorg –

2

Tak, można wykonywać renderowanie poza ekranem przy użyciu OpenGL, ale dokładny sposób konfiguracji zależy od systemu operacyjnego. Najbliższym sposobem uzyskania niezależnego systemu operacyjnego byłoby użycie Mesa 3D, ale wtedy renderowanie poza ekranem nie byłoby przyspieszone.

+0

Czy ostatni komentarz jest nadal ważny? Jeśli dobrze zrozumiałem, przynajmniej w systemie Linux, Mesa jest zbliżona do własnościowych sterowników porównujących prędkość. –

+0

Sortuj. Mesa na linuksie umożliwia zarówno renderowanie oprogramowania, jak i sprzętu, jednak wyniki mogą być subtelnie różne między tymi dwoma, w zależności od renderera i sterownika oraz wysyłanych poleceń GL. Rendering oprogramowania Mesa ma tendencję do osiągania podobnych rezultatów w różnych systemach operacyjnych, ale niekoniecznie jest łatwy do skonfigurowania na każdym systemie operacyjnym, i podobnie jak powiedział Ronny, oprogramowanie tylko Mesa nie jest przyspieszane w trybie hw z procesorami graficznymi karty graficznej. (chociaż nowoczesny kod Mesa tylko dla oprogramowania ma ogromną ilość przyspieszeń na nowoczesnych procesorach głównych) http://www.mesa3d.org/faq.html –

5

http://www.opengl.org/wiki/Creating_an_OpenGL_Context

Według tej strony internetowej, WGL_ARB_create_context mogą być wykorzystywane do tworzenia kontekstu bez okna. Sam tego nie próbowałem. Użyłem freeGLUT do stworzenia kontekstu, a następnie renderowałem go poza ekran do bufora ramki + bufora renderowania. Opuszczam program bez wywoływania glutMainLoop. To jest nudne, ale działa dla moich celów.

+0

Aby pobrać to rozszerzenie, musisz utworzyć kontekst OpenGL za pomocą starsze rozszerzenia "WGL", które wymagają okna. – Julien

Powiązane problemy