Юзаю 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 писать логику, на С графику, компилировать отдельно и соединять вместе. При создании приложений (если все проблемы решаться) образуется новая графическая библиотека. Думаю, лучше будет изначально создавать ее по ООП принципам.
Советуйте, предлагайте.
Создание графических приложений в консоли linux (FrameBuffer vs SVGAlib, [C vs C++] vs D.)
Модератор: Модераторы разделов
-
clarity
- Сообщения: 14
- ОС: GNU/Linux
-
clarity
- Сообщения: 14
- ОС: GNU/Linux
Re: Создание графических приложений в консоли linux
С SVGAlib много проблем, поэтому отказываюсь от нее в пользу FB, DirectFB, SDL и ClanLib.
ClanLib поддерживает консоль?
ClanLib поддерживает консоль?
-
xoguar
- Сообщения: 45
Re: Создание графических приложений в консоли linux
Также необходимо решать задачи и использовать графику.
Только у меня проблема еще и в том что я вообще не знаю какие есть "методы".
Желательно чтобы в консоли и в то же время чтобы были большие возможности.
Пол инета облазил, можт кто книгу подскажет? Именнно графика, консоль, с++
Желательно с примерами
Только у меня проблема еще и в том что я вообще не знаю какие есть "методы".
Желательно чтобы в консоли и в то же время чтобы были большие возможности.
Пол инета облазил, можт кто книгу подскажет? Именнно графика, консоль, с++
Желательно с примерами
-
clarity
- Сообщения: 14
- ОС: GNU/Linux
Re: Создание графических приложений в консоли linux
нашел. Программировать графику в консоли при установленном фрембуфере можно с помощью низкоуровневой библиотеки <linux/fb.h>, или набором библиотек DirectFB, которые устанавливаются отдельно.
По первой библиотеке нормальных учебных материалов нету, ее особо никто не использует. но я ее изучаю и сделаю tutorials на русском языке, выложу в своем блоге, потом ссылку дам.
По DirectFB есть http://www.directfb.org/docs/DirectFB_Tutorials/.
Во фреймбуфер-консоли можно программировать графику на SDL. но перед тем как кодить на ней, нужно все-таки ознакомиться с низкоуровневыми библиотеками, иначе "китайский код" будет.
По первой библиотеке нормальных учебных материалов нету, ее особо никто не использует. но я ее изучаю и сделаю tutorials на русском языке, выложу в своем блоге, потом ссылку дам.
По DirectFB есть http://www.directfb.org/docs/DirectFB_Tutorials/.
Во фреймбуфер-консоли можно программировать графику на SDL. но перед тем как кодить на ней, нужно все-таки ознакомиться с низкоуровневыми библиотеками, иначе "китайский код" будет.
-
MiK13
- Сообщения: 1291
- ОС: Linux Debian
Re: Создание графических приложений в консоли linux
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
D вполне пригоден для написания всей программы так как он полностью совместим с С. Необходимо лишь конвертировать сишные хидеры - можно воспользоваться утилитой http://www.dsource.org/projects/bcd или утилитой h2d от создателя языка. Насчет компилятора - не советовал бы пользоваться gdc, так как он более не поддерживается(хотя если нужно 64бит - пока альтернатив нет). Рекомендую dmd на некоторое время. На подходе компилятор D с llvm бэкендом, за ним будущее D. В качестве стандартной библиотеки - несомненно tango.
-
clarity
- Сообщения: 14
- ОС: GNU/Linux
Re: Создание графических приложений в консоли linux
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, и все файлы сами найдутся.
Фреймбуффер включен? Его настройка в Ubuntu
-
MiK13
- Сообщения: 1291
- ОС: Linux Debian
Re: Создание графических приложений в консоли linux
Вернул #include <directfb.h> и добавил в строку компиляции -I/usr/include/directfb Всё стало компилироваться
pkg-config --libs directfb, как я понял, заменяется на
-ldirectfb -lfusion -ldirect -lpthread
Но у меня 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
`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
man pkg-config на предмет --cflags и других опций
все сказанное есть имхо...
-
RasenHerz
- Сообщения: 1341
- ОС: Arch Linux amd64
Re: Создание графических приложений в консоли linux
а есть ли кроссплатформенные либы для использования консольной графики? желательно чтобы либа была в стандартной поставке MS VC. SDL подойдет?
-
d_n_k
- Сообщения: 636
- ОС: Gentoo GNU/Linux
Re: Создание графических приложений в консоли linux
в стандартной поставке M$ VS из кросс платформенного только чутка POSIX'а есть.
все сказанное есть имхо...
-
RasenHerz
- Сообщения: 1341
- ОС: Arch Linux amd64
Re: Создание графических приложений в консоли linux
жаль =)
а то надо программку написать для оффтопика под Linux'oм и работать она должна с консольной графикой.
а то надо программку написать для оффтопика под Linux'oм и работать она должна с консольной графикой.