Как нарисовать круг при помощи Cairo?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 25.02.18 08:06
Оценка:
Мне собственно не круг нужен, а подчёркивать слова в предложении по-разному (двумя линиями, волнистой, штрих-пунктиром красным).

Интересуют примеры на sbcl для wayland.
Re: Как нарисовать круг при помощи Cairo?
От: kov_serg Россия  
Дата: 25.02.18 08:48
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Мне собственно не круг нужен, а подчёркивать слова в предложении по-разному (двумя линиями, волнистой, штрих-пунктиром красным).


ЭФ>Интересуют примеры на sbcl для wayland.


А в чем именно затык?
https://cairographics.org/tutorial/
http://zetcode.com/gfx/cairo/basicdrawing/

EGLDisplay edpy;
EGLConfig  ecfg;
EGLContext ectx;
EGLSurface esrf;

/* - Wayland - */
struct wl_surface    *wlsurface;
struct wl_egl_window *wlwindow;

/* - Cairo - */
cairo_device_t  *device;
cairo_surface_t *surface;
cairo_t         *cr; 

wlsurface = wl_compositor_create_surface(wlcompositor);
wlwindow  = wl_egl_window_create(wlsurface,320,240); 

esrf = eglCreateWindowSurface(edpy,ecfg,wlwindow,NULL); 

device  = cairo_egl_device_create(edpy,ectx);
surface = cairo_gl_surface_create_for_egl(device,esrf,320,240);
cr = cairo_create(surface);
cairo_rectangle(cr,0,0,320,240);
cairo_set_operator(cr,CAIRO_OPERATOR_SOURCE);
cairo_set_source_rgba(cr,0,0,0,1);
cairo_paint(cr);

Как на лиспе черт его знает https://github.com/rpav/cl-cairo2/blob/master/tutorial/cairo-tutorial.lisp
Re[2]: Как нарисовать круг при помощи Cairo?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 25.02.18 09:46
Оценка:
мне непонятно различие между EGL и Cairo. И то и другое — API для абстрагирования графики. Зачем лишний слой?

Допустим, что EGL занимается созданием контекстов и буферов, OpenGL рисует, а Cairo оборачивает.

Как мне рисовать одновременно в разных потоках (на разных ядрах ЦП)?

Как мне при этом рисовать на графическом сопроцессоре, а не на центральном процессоре?

Если у меня на видеокарте два графических процессора (чипа), то как выбирать на каком рисовать?

Бывает ли Xinerama для wayland и как она называется?

Умеет ли Cairo работать с Vulkan API? (и есть ли в этом смысл)

GTK+ Scene Graph Kit, released on March 2017 as part of GTK+ 3.90, has a Vulkan rendering path.


Если два графических чипа располагаются не на одной видеокарте, а на разных,
то как сделать один общий рабочий стол на все эти мониторы?
Отредактировано 25.02.2018 10:43 Эйнсток Файр . Предыдущая версия . Еще …
Отредактировано 25.02.2018 10:25 Эйнсток Файр . Предыдущая версия .
Отредактировано 25.02.2018 10:21 Эйнсток Файр . Предыдущая версия .
Отредактировано 25.02.2018 10:11 Эйнсток Файр . Предыдущая версия .
Отредактировано 25.02.2018 10:11 Эйнсток Файр . Предыдущая версия .
Отредактировано 25.02.2018 10:10 Эйнсток Файр . Предыдущая версия .
Отредактировано 25.02.2018 10:09 Эйнсток Файр . Предыдущая версия .
Отредактировано 25.02.2018 10:08 Эйнсток Файр . Предыдущая версия .
Отредактировано 25.02.2018 9:59 Эйнсток Файр . Предыдущая версия .
Отредактировано 25.02.2018 9:53 Эйнсток Файр . Предыдущая версия .
Re[3]: Как нарисовать круг при помощи Cairo?
От: kov_serg Россия  
Дата: 25.02.18 10:57
Оценка: 2 (1)
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Как мне рисовать одновременно в разных потоках (на разных ядрах ЦП)?

ЭФ>Как мне при этом рисовать на графическом сопроцессоре, а не на центральном процессоре?
ЭФ>Если у меня на видеокарте два графических процессора (чипа), то как выбирать на каком рисовать?
Что именно вам нужно?

https://vulkan.lunarg.com/doc/sdk/1.0.68.0/windows/tutorial/html/02-enumerate_devices.html
https://www.imgtec.com/blog/understanding-opengl-es-multi-thread-multi-window-rendering/
https://devblogs.nvidia.com/egl-eye-opengl-visualization-without-x-server/
Re[4]: Как нарисовать круг при помощи Cairo?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 25.02.18 11:26
Оценка:
_>Что именно вам нужно?

По этим ссылкам очень интересная информация, почитаю внимательно. Однако вопрос как из всего этого сделать одну поверхность так и не яснен. Например если у меня одно рабочее место, на нём стоят три монитора (из четырёх возможных), которые управляются двумя графическими процессорами (по два монитора каждым процессором), процессоры работают на одной видеокарте. Как мне сделать так, чтобы мышка переходила с одного монитора на другой, окна перетаскивались и т.д.? Путь мне виден один — это Xinerama, значит никакого wayland, никакого ускорения от OpenGL (и то прийдётся сильно помучаться с отключением XRandr путём патчинга исходников). Это очень грустно...

Хотелось бы понять, появилась ли альтернатива для Wayland.
Re[5]: Как нарисовать круг при помощи Cairo?
От: kov_serg Россия  
Дата: 25.02.18 12:45
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Как мне сделать так, чтобы мышка переходила с одного монитора на другой, окна перетаскивались и т.д.? Путь мне виден один — это Xinerama, значит никакого wayland, никакого ускорения от OpenGL (и то прийдётся сильно помучаться с отключением XRandr путём патчинга исходников). Это очень грустно...


ЭФ>Хотелось бы понять, появилась ли альтернатива для Wayland.

Может вам xdmx посмотреть?
https://www.ibm.com/developerworks/ru/library/os-mltihed/index.html
Re[6]: Как нарисовать круг при помощи Cairo?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 25.02.18 13:01
Оценка:
_>Может вам xdmx посмотреть?

"If Xinerama is enabled (e.g., with +xinerama on the command line), the clients see a single large screen."
Xinerama же deprecated в пользу xrandr, т.е. недостатки такие же как у моего варианта (необходимость выпиливания xrandr)
Re[7]: Как нарисовать круг при помощи Cairo?
От: kov_serg Россия  
Дата: 25.02.18 13:18
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>"If Xinerama is enabled (e.g., with +xinerama on the command line), the clients see a single large screen."

ЭФ>Xinerama же deprecated в пользу xrandr, т.е. недостатки такие же как у моего варианта (необходимость выпиливания xrandr)
Не очень понимаю чем вам мешает xrandr и зачем его выпиливать
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.