Страница 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 писал(а): Пусть не в полноэкранном режиме, а в оконном, т.е.


То есть? Иксы запускать в принцепе можно ? Тогда вообще не вопрос.

А без них наверное нужно сделать клиент-серверную штуку.
Чтобы построение в виде команд (или графики) отсылалось
на сервер-демон. Им может быть и какой нибудь вьювер графики
(посмотри в менеджере пакетов) сьюднутый по руту.

Да, блин, загвоздка с рутом получается.