Страница 1 из 2
FP и рисование в графическом режиме (Linux)

Добавлено:
12.10.2007 11:43:20
lillgrinn
Как работать в графическом режиме?
Среда IDE - Geany. При компиляции выходит ошибка:
- Код: Выделить всё
/usr/bin/ld: cannot find -lvga
В Linux я новичок, поэтому не знаю как бытьв этой ситуации.
Версия Linux: Xubuntu 7.04

Добавлено:
12.10.2007 12:49:10
Attid
попробуй
- Код: Выделить всё
apt-cache search vga | grep lib
и ставишь пакеты начинающие на lib и кончающиеся на dev

Добавлено:
12.10.2007 21:47:05
Alexander
В Линуксе несколько типов графических библиотек и ещё XOrg.
VGALib, SVGALib, Frame Buffer, ... XOrg стоит особняком но он тоже
по сути библиотека, только продвинутая. Все они обращаются
напрямую к аппаратуре.
Есть ещё надстройки над несколькими такими сразу для унификации,
например SDL. Они не обращаютя напрямую.
Какого рода задачу нужно решить ?

Добавлено:
15.10.2007 09:30:47
lillgrinn
Надо в рамках школьного курса работать с графикой в Pascal (построение простейших рисунков).

Добавлено:
15.10.2007 10:49:50
bw
Рисунков? Наверное графиков? Ну тогда стандартного модуля Graphic хватит. Судя по ошибке, о которой сообщает линковщик, нехватает статической библиотеки libvga.a. Как её установить тебе объяснили. Так же можешь использовать aptitude или synaptic для установки пакетов, если они есть в твоём дистрибутиве.
..bw

Добавлено:
15.10.2007 11:42:11
lillgrinn
При запуске выходит ошибка:
- Код: Выделить всё
svgalib: Cannot get I/O permission.
Это что, под root ее надо запускать что ли?
Программа (взято из примера):
- Код: Выделить всё
Program inigraph1;
{ Program to demonstrate static graphics mode selection }
uses graph;
const
TheLine = 'We are now in 640 x 480 x 256 colors!'+
' (press <Return> to continue)';
var
gd, gm, lo, hi, error,tw,th: integer;
found: boolean;
begin
{ We want an 8 bit mode }
gd := D8bit;
gm := m640x480;
initgraph(gd,gm,'');
{ Make sure you always check graphresult! }
error := graphResult;
if (error <> grOk) Then
begin
writeln('640x480x256 is not supported!');
halt(1)
end;
{ We are now in 640x480x256 }
setColor(cyan);
rectangle(0,0,getmaxx,getmaxy);
{ Write a nice message in the center of the screen }
setTextStyle(defaultFont,horizDir,1);
tw:=TextWidth(TheLine);
th:=TextHeight(TheLine);
outTextXY((getMaxX - TW) div 2,
(getMaxY - TH) div 2,TheLine);
{ Wait for return }
readln;
{ Back to text mode }
closegraph;
end.

Добавлено:
15.10.2007 11:44:48
Alexander
Попробуй. Если запустится будем думать о правах.

Добавлено:
15.10.2007 11:52:17
lillgrinn
Alexander писал(а):Попробуй. Если запустится будем думать о правах.
С правами root - заработала, Однако это не выход.
Что же мне, учеников под root в систему пускать?

Добавлено:
15.10.2007 11:57:57
bw
Учи их работать в X и/или Gtk+/Qt

.
..bw

Добавлено:
15.10.2007 11:58:03
lillgrinn
Наверное переключение в полноэкранный режим требует привелегии root.
Тогда может быть кто-нибудь подскажет другой способ работать с выводом графики? Пусть не в полноэкранном режиме, а в оконном, т.е. перенаправление вывода на новое окно и в нем отображать график функции или какой-нибудь другой рисуно. построенный при помощи линй и т.п.

Добавлено:
15.10.2007 11:59:58
lillgrinn
bw писал(а):Учи их работать в X и/или Gtk+/Qt

.
..bw
А по подробнее можно? Мне собственно надо бы и самому хотя бы разобраться, прежде чем что-то ученикам показывать.

Добавлено:
15.10.2007 12:08:58
bw
Набери в google: freepascal x
..bw

Добавлено:
15.10.2007 12:23:33
Attid
lillgrinn
лучше ну бубунту форум или иркканал вылезь, тебе скажут куда копать, может где права сильно урезал.

Добавлено:
16.10.2007 16:27:53
noch
не хочу расстраивать, попробуйте покопаться, но
"Detailed answer: SVGAlib accesses the video card directly. In order to
access a piece of hardware directly, you must be root, or else setuid
root"
я вижу такой выход - портировать wingraph на linux или где ни-будь найти модуль подобный graph-у для linux-a.
Потому что canvas использовать не актуально для детей.
Хотя задачка сложная, сам не знаю что делать - может судо покрутить?

Добавлено:
18.10.2007 20:15:13
Alexander
lillgrinn писал(а): Пусть не в полноэкранном режиме, а в оконном, т.е.
То есть? Иксы запускать в принцепе можно ? Тогда вообще не вопрос.
А без них наверное нужно сделать клиент-серверную штуку.
Чтобы построение в виде команд (или графики) отсылалось
на сервер-демон. Им может быть и какой нибудь вьювер графики
(посмотри в менеджере пакетов) сьюднутый по руту.
Да, блин, загвоздка с рутом получается.