Создание графических приложений в консоли linux (FrameBuffer vs SVGAlib, [C vs C++] vs D.)

Модератор: Модераторы разделов

Аватара пользователя
clarity
Сообщения: 14
ОС: GNU/Linux

Создание графических приложений в консоли linux

Сообщение clarity »

Юзаю Debian. Хочу разрабатывать графические приложения для консоли linux. Пока приглядываюсь к SVGAlib, как наиболее простое для программирования решения; к языку программирования D (gdc 4.1), как тоже наиболее простого и современного решения; и к vim, которого я пока еще не знаю, но говорят что классная штука.

Возникли проблемы. Узнал, что SVGAlib-программы запускаются только с правами root, хотя эти права им нужны только для одного устройства для I/O, библиотека версии 1.9.х в этих правах уже не нуждается, но она в разработке. Установил пакет c библиотекой и пакет для разработчиков. Создал простое SVGAlib-приложение на С, скомпилировал, сменил права (chmod u+s), при запуске получаю сообщение "SVGAlib:Can not get I/O permisions", даже если запускаю от root'a. Такая проблема есть у многих. Как ее решить я так и не нашел. Хочется полностью на D кодить, а не получиться. Вместо #include <xxx.h> там используются подключение модулей import xxx. Можно конвертировать из .h в .d утилитой, но не знаю как это будет. Думаю лучше будет на D писать логику, на С графику, компилировать отдельно и соединять вместе. При создании приложений (если все проблемы решаться) образуется новая графическая библиотека. Думаю, лучше будет изначально создавать ее по ООП принципам.

Советуйте, предлагайте.
Спасибо сказали:
Аватара пользователя
clarity
Сообщения: 14
ОС: GNU/Linux

Re: Создание графических приложений в консоли linux

Сообщение clarity »

С SVGAlib много проблем, поэтому отказываюсь от нее в пользу FB, DirectFB, SDL и ClanLib.
ClanLib поддерживает консоль?
Спасибо сказали:
Аватара пользователя
xoguar
Сообщения: 45

Re: Создание графических приложений в консоли linux

Сообщение xoguar »

Также необходимо решать задачи и использовать графику.

Только у меня проблема еще и в том что я вообще не знаю какие есть "методы".
Желательно чтобы в консоли и в то же время чтобы были большие возможности.

Пол инета облазил, можт кто книгу подскажет? Именнно графика, консоль, с++
Желательно с примерами
Спасибо сказали:
Аватара пользователя
clarity
Сообщения: 14
ОС: GNU/Linux

Re: Создание графических приложений в консоли linux

Сообщение clarity »

нашел. Программировать графику в консоли при установленном фрембуфере можно с помощью низкоуровневой библиотеки <linux/fb.h>, или набором библиотек DirectFB, которые устанавливаются отдельно.

По первой библиотеке нормальных учебных материалов нету, ее особо никто не использует. но я ее изучаю и сделаю tutorials на русском языке, выложу в своем блоге, потом ссылку дам.

По DirectFB есть http://www.directfb.org/docs/DirectFB_Tutorials/.

Во фреймбуфер-консоли можно программировать графику на SDL. но перед тем как кодить на ней, нужно все-таки ознакомиться с низкоуровневыми библиотеками, иначе "китайский код" будет.
Спасибо сказали:
MiK13
Сообщения: 1291
ОС: Linux Debian

Re: Создание графических приложений в консоли linux

Сообщение MiK13 »

clarity писал(а):
27.11.2008 09:38
По DirectFB есть http://www.directfb.org/docs/DirectFB_Tutorials/.

Зашёл, попробовал сделать первую программу.
Сначала столкнулся с проблемой -- нет <directfb.h>. Исправил на
#include <directfb/directfb.h>
Вылезла вторая проблема -- в ней есть
#include <dfb_types.h>
и
#include <directfb_keyboard.h>
сделал на них ссылки в /usr/include.
Вылезли неразрешённые ссылки. Собрал, добавив -ldirectfb
Но программа не хочет запускаться -- не находит /dev/fb0.
Оказалось, что его действительно нет.
В связи с этим возникло 2 вопроса:
1. Как сделать устройство fb0
2. Что за каталог /dev/.static/dev, в котором есть куча файлов устройтв, в том числе и fb0...fb7 ?
Спасибо сказали:
ozone baby
Сообщения: 221
ОС: Ubuntu i386/Ubuntu amd64

Re: Создание графических приложений в консоли linux

Сообщение ozone baby »

D вполне пригоден для написания всей программы так как он полностью совместим с С. Необходимо лишь конвертировать сишные хидеры - можно воспользоваться утилитой http://www.dsource.org/projects/bcd или утилитой h2d от создателя языка. Насчет компилятора - не советовал бы пользоваться gdc, так как он более не поддерживается(хотя если нужно 64бит - пока альтернатив нет). Рекомендую dmd на некоторое время. На подходе компилятор D с llvm бэкендом, за ним будущее D. В качестве стандартной библиотеки - несомненно tango.
Спасибо сказали:
Аватара пользователя
clarity
Сообщения: 14
ОС: GNU/Linux

Re: Создание графических приложений в консоли linux

Сообщение clarity »

MiK13 писал(а):
28.11.2008 14:14
Зашёл, попробовал сделать первую программу.
Сначала столкнулся с проблемой -- нет <directfb.h>. Исправил на
#include <directfb/directfb.h>
Вылезла вторая проблема -- в ней есть
#include <dfb_types.h>
и
#include <directfb_keyboard.h>
сделал на них ссылки в /usr/include.
Вылезли неразрешённые ссылки. Собрал, добавив -ldirectfb

Верни все как было. Компилируй командой: gcc путь_к_исходнику `pkg-config --libs directfb` -I/usr/include/directfb, и все файлы сами найдутся.

MiK13 писал(а):
28.11.2008 14:14
Но программа не хочет запускаться -- не находит /dev/fb0.
Оказалось, что его действительно нет.

Фреймбуффер включен? Его настройка в Ubuntu
Спасибо сказали:
MiK13
Сообщения: 1291
ОС: Linux Debian

Re: Создание графических приложений в консоли linux

Сообщение MiK13 »

clarity писал(а):
01.12.2008 03:29
Верни все как было. Компилируй командой: gcc путь_к_исходнику `pkg-config --libs directfb` -I/usr/include/directfb, и все файлы сами найдутся.

Вернул #include <directfb.h> и добавил в строку компиляции -I/usr/include/directfb Всё стало компилироваться
pkg-config --libs directfb, как я понял, заменяется на
-ldirectfb -lfusion -ldirect -lpthread

clarity писал(а):
01.12.2008 03:29
Фреймбуффер включен? Его настройка в Ubuntu

Но у меня Debian. Там файла /etc/modprobe.d/blacklist-framebuffer нет. Есть просто /etc/modprobe.d/blacklist, но в нём vesa не упоминается.
Поставил hwinfo -- на hwinfo --framebuffer выдало довольно много информации про разрешения -- от 320x200 8 bits до 2048x1536 24 bits
Но времени разбираться пока нет (да и нужды пока нет -- пока хватает svgalib)
Спасибо сказали:
Аватара пользователя
clarity
Сообщения: 14
ОС: GNU/Linux

Re: Создание графических приложений в консоли linux

Сообщение clarity »

MiK13 писал(а):
01.12.2008 20:57
pkg-config --libs directfb, как я понял, заменяется на
-ldirectfb -lfusion -ldirect -lpthread

`pkg-config --libs directfb` заменяется на все, что выводит эта команда в консоли. У меня она вывела -ldirectfb -lz -lfusion -ldirect -lpthread -ldl.

MiK13 писал(а):
01.12.2008 20:57
Но у меня Debian. Там файла /etc/modprobe.d/blacklist-framebuffer нет. Есть просто /etc/modprobe.d/blacklist, но в нём vesa не упоминается.
Поставил hwinfo -- на hwinfo --framebuffer выдало довольно много информации про разрешения -- от 320x200 8 bits до 2048x1536 24 bits

У меня тоже Debian. Если файла /etc/modprobe.d/blacklist-framebuffer нет, то просто пропускай этот пункт. Я hwinfo не ставил, а взял значение из таблици. У меня 17-дюймовый ЭЛТ-монитор, я выбрал 800х600 16 млн., т.е. VGA=0x315. Но у меня в Debian и Slackware проги из туториала глючат, не раскворачиваются на весь экран, в четвертой проге клава не подает сигналы. В PClinuxOS все нормально работает. Хотя это может быть из-за железа. Разбираюсь.
Спасибо сказали:
d_n_k
Сообщения: 636
ОС: Gentoo GNU/Linux

Re: Создание графических приложений в консоли linux

Сообщение d_n_k »

man pkg-config на предмет --cflags и других опций
все сказанное есть имхо...
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: Создание графических приложений в консоли linux

Сообщение RasenHerz »

а есть ли кроссплатформенные либы для использования консольной графики? желательно чтобы либа была в стандартной поставке MS VC. SDL подойдет?
Спасибо сказали:
d_n_k
Сообщения: 636
ОС: Gentoo GNU/Linux

Re: Создание графических приложений в консоли linux

Сообщение d_n_k »

в стандартной поставке M$ VS из кросс платформенного только чутка POSIX'а есть.
все сказанное есть имхо...
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: Создание графических приложений в консоли linux

Сообщение RasenHerz »

жаль =)
а то надо программку написать для оффтопика под Linux'oм и работать она должна с консольной графикой.
Спасибо сказали: