Strona 1 z 1

C++, wyświetlanie obrazków, kursora itp.

: 16 lipca 2012, 21:55
autor: HeliumPL
Witam.
Na wstępie, nie wiem czy dobrze sformułowałem tytuł, ale przejdźmy do rzeczy.

Czy ktoś z was wie może, jak mogę napisać program(C++), który w zwykłej konsoli tty wyświetli mi obrazek i kursor(nic więcej! żadnych okienek!). Chodzi o to, że nie chcę pisać czegoś w stylu GNOME czy XFCE, KDE itd.(i tak bym nie napisał ;P), tylko zwykły obrazek i kursor(nie tekstowy, w formie obrazka np. png). Poza tym, na ekranie nie może być widoczny tekst z konsoli. Dałoby się zmienić także rozdzielczość ekranu?

Liczę na waszą pomoc, pozdrawiam.

P.S. Program NIE może integrować z żadnym środowiskiem graficznym. Ma być na tyle niezależny, by można go było odpalić w konsoli, bez dodatkowych bibliotek(o ile to możliwe). W ostateczności mogę użyć xserver i zrobić z programu sesję jak xde.

: 16 lipca 2012, 23:02
autor: Rafal_F
Skoro nie ma być dodatkowych bibliotek to sam będziesz musiał takie napisać. Samą grafikę możesz wyświetlić przy pomocy bufora ramki, wystarczy żeby był wkompilowany w jądro, i do tego trzeba napisać obsługę myszki itp., a jak to ma być przenośne to musisz praktycznie napisać własny serwer X. Prościej oprzeć się o sesję X (Xlib - na tym działają GDK i QT) bo masz już zintegrowaną myszkę i grafikę, ale pisanie tego od podstaw będzie skomplikowane, bo praktycznie musisz napisać własny ,,toolkit''. A skąd aż takie zastrzeżenia?

Edycja:
Programy graficzne można odpalać bez menedżera plików itp wystarczy, że do pliku:

Kod: Zaznacz cały

.xinitrc
znajdującego się w katalogu domowym wpiszesz nazwę programu i po wywołaniu sesji X.
Np. przez polecenie:

Kod: Zaznacz cały

startx
uruchomi się od razu ten program bez żadnych belek tytułowych itp.

: 17 lipca 2012, 22:16
autor: diabolic3
Tak się wtrącę, ale Qt też może działać na samym framebufforze. Stosuje się to głównie w systemach embedded w celu zmniejszenia zasobożerności.

: 18 lipca 2012, 11:00
autor: HeliumPL
Tak więc co bardziej polecacie? O ile dobrze zrozumiałem, wyświetlając grafikę przez bufor ramki na pełnym ekranie, przykryję konsolę. Nie obniży to wydajności? A co do sesji X to trochę skomplikowane.

Pozdrawiam.

: 18 lipca 2012, 13:37
autor: Rafal_F
O ile się nie mylę konsola w Debianie i tak jest wyświetlana właśnie przy pomocy bufora ramki (ang. framebuffer) (oferuje wyższe rozdzielczości), więc o wydajność się nie martw.

Jest jeszcze coś takiego: http://directfb.org/.

Jak chcesz wyświetlić tylko grafikę i kursor to spróbuj directfb (chociaż poradniki nie są dostosowane do najnowszej wersji biblioteki i trzeba je trochę poprawić żeby się skompilowały).

Nie wiem jak wygląda sprawa z Qt, bo sam nigdy w nim nie pisałem ale to biblioteka z dobrym wsparciem (dużo materiałów) i bardziej rozbudowana (kompletny toolkit) więc też może być dobrym wyborem.