LINUX.ORG.RU

си, xorg, режимы и рисование


0

0

Маньяк на компьютерной графике хочет рисование на си на самом низком уровне. (C#, C++ и directx/opengl забанили за простоту, а ASM забанили за нечитабельность)
Какие либы для рисования использовать ? Как выбирать разрешение и цветность ? Может быть можно сделать это с использованием вывода в x11 ?


Ответ на: комментарий от vertexua

Нельзя. Запретили всё что не тупой вывод в графическую систему оси.
Для win можно юзать WinApi и борландовский модуль graph. Для линукса можно вроде x11

jreznot
() автор топика
Ответ на: комментарий от jreznot

Ааа... Искуственные условия. Ты попал, никто нормальный сейчас не будет рисовать прямо в X11. Или юзают тулкит или либу какую нибудь

vertexua ★★★★★
()

Напиши свой загрузчик, который будет рисовать в VGA, там как раз простой массив байтов.

Artificial_Thought ★★★★
()
Ответ на: комментарий от anon_666

Спасибо :-) Надо таки делать man XDrawLine и тд

jreznot
() автор топика

проще найти биндинги к брейнфаку для xlib

Reset ★★★★★
()

SDL очевидно же — низкоуровнево и кроссплатформенно (под виндой юзает directx)

там простой массив байтов, и емнип перекидывание двух страниц для безмерцания

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

Никаких либ, окромя тех про которые он знает. У него от всего неизвестного шок наступает и негодование :-D
Вот мануал тоже нашёл старенький http://www.sbin.org/doc/Xlib/

jreznot
() автор топика

Можно рисовать в directfb. Тогда ОС берет на себя лишь поддержку фреймбуфера, все остальное надо делать ручками.

dmitry_vk ★★★
()

а что конкретно надо рисовать? стандартные функции xlib намного более ограничены, чем gdi в винде. при этом намного более сложные для понимания и применения. лучше уж тогда GDI+winelib.

waker ★★★★★
()
Ответ на: комментарий от waker

У меня задание сделать простую игру жизнь, мне и голых иксов хватит :-)

jreznot
() автор топика

Выбери режим в xorg.conf 640x480x16, какие проблемы. X11 тебе позволит нарисовать и точки, и полигоны, и прямые, и дуги. Функции XDraw* библиотеки xlib тебе в помощь.

Zubok ★★★★★
()
Ответ на: комментарий от jreznot

Он жаждет поделки на паскале в режимах 640x480x16, 640x480x2

Так и сделай на турбо паскале, с использованием VESA. Или зассал, ибо сильно сложно? =)

Deleted
()
Ответ на: комментарий от Deleted

Легко, просто ещё в школе надоело. Никакая веса там и не нужна, всё делается двумя вызовами функций из паскалёвых модулей.

jreznot
() автор топика
Ответ на: комментарий от Zubok

Не, я на лету уже сделал переключение в нужный режим, а при выходе восстанавливаю.

jreznot
() автор топика
Ответ на: комментарий от Deleted

И вообще блин, он запретил ассамблер. А вот там всё прелестно делается и очень низко, и очень шустро.

jreznot
() автор топика
Ответ на: комментарий от jreznot

А чтобы оно еще и без ОС работало, не надо?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от jreznot

Ну а ты сделай на VESA в труколоре, с зарницей и пионерками =).

Deleted
()
Ответ на: комментарий от www_linux_org_ru

Не, как показала дока по xlib, поменять разрешение, порисовать и обработать клавиатуру с мышью можно вполне нормально и без SDL.

jreznot
() автор топика
Ответ на: комментарий от jreznot

Только без всяких страшных расширений ты не сможешь рисовать bitmap-ы быстро. А расширения твоего препода напугают (и он прав, я щитаю).

anonymous
()

Может быть можно сделать это с использованием вывода в x11 ?

Бери xcb. Это 1) низкоуровнево 2) современно (недавно проскакивала отличная статья на эту тему, мол, xlib устарел), 3) самое стандартное средство для иксов, которое можно представить 4) мозгосношательно до ужаса.

Вот тебе пример, там они рисуют линии да квадратики.

http://xcb.freedesktop.org/tutorial/basicwindowsanddrawing/

Enjoy your AIDS

anonymous
()
Ответ на: комментарий от jreznot

Рисуй на маке. Там нет низкоуровневой библиотеке... Ниже cocoa не опустишься (по идее)

namezys ★★★★
()
Ответ на: комментарий от jreznot

>Для win можно юзать WinApi и борландовский модуль graph. Для линукса можно вроде x11

Рисовать через винапи? о_О Преподу вашему надо руки поотрывать. Хотя мб он и прав, для познания там, все такое.

Zhbert ★★★★★
()

тебе нужен только putpixel(x,y,z,color) на кусок памяти, а потом этот кусок памяти переносить на экран.

dimon555 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.