Piszę i aplikacja OpenGL na Linuksie (Ubuntu 11.10) używając Xlib (X11). Jaki jest najprostszy sposób implementacji przełączania między trybem okienkowym a trybem pełnoekranowym?X11 Pełnoekranowe okno (OpenGL)
6
A
Odpowiedz
4
na poziomie protokołu, patrz właściwość _NET_WM_STATE z towarzyszącą komunikatem klienta i flagą stanu pełnego ekranu. jest to określone w specyfikacji EWMH. dla punktów bonusowych możesz chcieć ręcznie wdrożyć tryb pełnoekranowy, jeśli WM nie zgłasza wsparcia dla oficjalnej wskazówki, specyfikacja EWMH umożliwia sprawdzenie, co jest obsługiwane. Możesz również wziąć wskaźnik myszy i/lub klawiaturę , jeśli nie chcesz, aby ludzie przypadkowo opuścili tryb pełnoekranowy.
lub, aby uniknąć nauki niskiego poziomu X gunge, wystarczy użyć SDL lub GTK lub Qt lub coś podobnego i wszyscy powinni mieć proste wywołanie metody, aby przełączyć na pełny ekran.
8
Oto implementacja what Havoc P suggested, aby zapisać następna osoba wysiłek:
void fullscreen(Display* dpy, Window win) {
Atom atoms[2] = { XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False), None };
XChangeProperty(
dpy,
win,
XInternAtom(dpy, "_NET_WM_STATE", False),
XA_ATOM, 32, PropModeReplace, atoms, 1
);
}
Powiązane problemy
- 1. Okno pełnoekranowe java z przezroczystością
- 2. Umieszczanie QWidget w X11 Okno
- 3. Jak ustawić okno X11 na wielu monitorach?
- 4. iOS6 Safari pełnoekranowe wykrywanie
- 5. X11 - Jak podnieść okno innej aplikacji za pomocą Pythona
- 6. X11: podnieść istniejące okno za pomocą wiersza poleceń?
- 7. Okno dialogowe OpenGL w warstwowym oknie
- 8. Okno OpenGL GLUT bardzo wolno, dlaczego?
- 9. Jak zrobić przezroczyste okno na Linuksie
- 10. Okno pełnoekranowe nie dostanie wejścia klawiatury za pomocą KeyListener lub KeyBoardFocusManager
- 11. Jak ustawić okno na górze wszystkiego (nawet na pełnoekranowe gry!) C++/Qt
- 12. Równoważnik "Invalidate Rect"/"WM_PAINT" w X11
- 13. Tuning SSH X11
- 14. mysz w gnuplot x11
- 15. Zdarzenie Scrollwheel w X11
- 16. Wysokie użycie procesora, gdy okno GLFW/OpenGL nie jest widoczne
- 17. Pełnoekranowe sterowanie i utrzymywanie Centrum map
- 18. Jak uzyskać okno, w którym obecnie znajduje się kursor za pomocą X11?
- 19. gnuplot x11 i OSX 10.8.2
- 20. jak sprawdzić wersję Linux X11?
- 21. Znajdź bezpłatny numer wyświetlacza X11
- 22. OpenGL lub OpenGL ES
- 23. X11: Rysuj nakładkę/Usuń rysunki z nakładki
- 24. Korzystanie X11 w OSX 10.8.3: "ld: biblioteki nie znaleziono -lX11"
- 25. Zmiana tytułu okna X11 po uruchomieniu emacsa
- 26. Czy Mac X11 ma rozszerzenie XTEST?
- 27. Mac OSX Lion/X11/CImg Biblioteka
- 28. forwarding X11 z pycharm i Docker Interpreter
- 29. Serwer proxy PuTTY X11: nieobsługiwany protokół autoryzacji
- 30. Konwertuj HEX na najbliższy X11 Numer koloru
proszę wyjaśnić dlaczego ta praca, a nie tylko daje odpowiedź – ArtB
Um, gcc narzeka kiedy użyć tego fragmentu kodu. Zgodnie ze stroną podręcznika 'XChangeProperty', czy drugi do ostatniego argument powyższej funkcji nie powinien być łańcuchem, a nie tablicą atomów? – fouric
'XChangeProperty' prawdopodobnie wprowadza w błąd' unsigned char * data', ale w rzeczywistości ma to być wskaźnik do tablicy atomów, jak w powyższym fragmencie. Co to jest skarga gcc? Jeśli próbujesz skompilować to jako kod C++, musisz użyć jawnej obsady, takiej jak '(unsigned char *) atoms'. –