Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Потокобезопасна ли работа с графикой в новых делфях? / 25 сообщений из 58, страница 1 из 3
22.11.2018, 11:14
    #39736623
garun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
Как в новых версиях, в частности 10.1 Berlin обстоят дела с безопасностью работы с TBitmap и TJpegImage в потоках? Насколько я знаю в Firemonkey с недавних пор официально ( http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Multi-Threading_for_TBitmap,_TCanvas,_and_TContext3D ) можно работать с графикой в потоках:

FireMonkey Multi-Threading for TBitmap, TCanvas, and TContext3D TBitmap has complete multi-threading support. Instances can be created, destroyed, and modified in any thread without synchronization.

По поводу обычного VCL информации не нашел.
...
Рейтинг: 0 / 0
22.11.2018, 11:37
    #39736641
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
RTFM Canvas.Lock, Canvas.Unlock
...
Рейтинг: 0 / 0
22.11.2018, 13:13
    #39736752
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
garunПо поводу обычного VCL информации не нашел. Если ты работаешь с TBitmap или TJpegImage из одного потока, то это "потоко-безопасно". Если хочешь одновременно из разных потоков, то надо делать синхронизацию самому.
...
Рейтинг: 0 / 0
22.11.2018, 13:30
    #39736783
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
DimonkagarunПо поводу обычного VCL информации не нашел. Если ты работаешь с TBitmap или TJpegImage из одного потока, то это "потоко-безопасно". Если хочешь одновременно из разных потоков, то надо делать синхронизацию самому.

Нет. Попробуй рисовать на канве битмапа без Lock в отдельном потоке. Тебя ждут чудные открытия.
...
Рейтинг: 0 / 0
22.11.2018, 14:01
    #39736806
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
garun По поводу обычного VCL информации не нашел. Надо в исходники глянуть.
Косяки возникали потому, что в конце цикла обработки сообщений запускался "дворник", который чистил HDC у всех незалоченных Canvas-ов.
Не думаю, что его можно было выкинуть.
...
Рейтинг: 0 / 0
22.11.2018, 14:47
    #39736846
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
Соколинский Борис,

проблема ещё в том, что ряд функций из библиотек создают битмапы и не лочат их
и тут уже кроме их переписывания никак не извернёшься
...
Рейтинг: 0 / 0
22.11.2018, 14:59
    #39736859
krapotkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
в VCL надо делать Canvas.Lock/Unlock
в FMX до токио битмапы не потокобезопасны вообще
в текущем варианте должны работать в потоках
...
Рейтинг: 0 / 0
22.11.2018, 15:04
    #39736867
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
КвейдDimonkaпропущено...
Если ты работаешь с TBitmap или TJpegImage из одного потока, то это "потоко-безопасно". Если хочешь одновременно из разных потоков, то надо делать синхронизацию самому.Нет. Попробуй рисовать на канве битмапа без Lock в отдельном потоке. Тебя ждут чудные открытия. Никогда не было нужды использовать канвас для рисования по битмапу. А что ты рисуешь с помощью канваса?
...
Рейтинг: 0 / 0
22.11.2018, 15:38
    #39736905
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
DimonkaКвейдпропущено...
Нет. Попробуй рисовать на канве битмапа без Lock в отдельном потоке. Тебя ждут чудные открытия. Никогда не было нужды использовать канвас для рисования по битмапу. А что ты рисуешь с помощью канваса?
А как ещё рисовать на битмапе? Я, например рисовал графики на offscreen битмапе и копировал потом картинку на PaintBox.
...
Рейтинг: 0 / 0
22.11.2018, 15:44
    #39736910
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
s62,

да по разному можно, доступ к байтикам же есть
но конечно реальная графика и TBitmap вещи плохосовмещаемые - он так, для глянцевания и рихтовки
...
Рейтинг: 0 / 0
22.11.2018, 15:46
    #39736912
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
kealon(Ruslan)s62,

да по разному можно, доступ к байтикам же есть
но конечно реальная графика и TBitmap вещи плохосовмещаемые - он так, для глянцевания и рихтовки
Графики и диаграммы нормально рисуются.
...
Рейтинг: 0 / 0
22.11.2018, 15:50
    #39736920
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
kealon(Ruslan)s62,

да по разному можно, доступ к байтикам же есть
но конечно реальная графика и TBitmap вещи плохосовмещаемые - он так, для глянцевания и рихтовки3-D графику, понятно, рисовать через битмап наверное не очень.
...
Рейтинг: 0 / 0
22.11.2018, 16:23
    #39736973
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
kealon(Ruslan)да по разному можно, доступ к байтикам же есть
Ага, сделай вывод hello world с антиалиасингом байтиками ;)
...
Рейтинг: 0 / 0
22.11.2018, 17:10
    #39737003
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
Василий 2kealon(Ruslan)да по разному можно, доступ к байтикам же есть
Ага, сделай вывод hello world с антиалиасингом байтиками ;) Не так и сложно. Пре текущем состоянии дел даже хинтинг и "cleartext" самому можно прикрутить.
...
Рейтинг: 0 / 0
22.11.2018, 18:07
    #39737056
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
Василий 2Ага, сделай вывод hello world с антиалиасингом байтиками ;)делал, ещё в 2000-м,
не ахти какая задача
...
Рейтинг: 0 / 0
23.11.2018, 10:49
    #39737363
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
Вот прям реально без DrawText и прочего? Разбирал файл шрифта, рисовал каждый глиф?
...
Рейтинг: 0 / 0
23.11.2018, 12:07
    #39737431
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
Василий 2,
откуда такая роскошь под досом
...
Рейтинг: 0 / 0
23.11.2018, 12:10
    #39737433
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
Василий 2Вот прям реально без DrawText и прочего? Разбирал файл шрифта, рисовал каждый глиф? Файл шрифта разбирает система. Прочитай про GetGlyphOutline.
...
Рейтинг: 0 / 0
23.11.2018, 14:18
    #39737481
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
DimonkaФайл шрифта разбирает система. Прочитай про GetGlyphOutline.
Это не труЪ. Тем более что канвас используется.
...
Рейтинг: 0 / 0
23.11.2018, 14:24
    #39737488
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
Василий 2DimonkaФайл шрифта разбирает система. Прочитай про GetGlyphOutline.
Это не труЪ. Тем более что канвас используется. TCanvas не обязателен.
...
Рейтинг: 0 / 0
23.11.2018, 15:50
    #39737564
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
DimonkaTCanvas не обязателен.
Я не говорил про TCanvas, а про канвас как сущность
...
Рейтинг: 0 / 0
23.11.2018, 16:06
    #39737574
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
s62Графики и диаграммы нормально рисуются. Для графиков и диаграмм есть метафайлы.
Битмап - для растров.
Их по хорошему лучше "рисовать" через Scanline[], тогда проблем с потоками не будет. Но, по факту, для этого вместо одной строчки кода нужно писать хренову тучу операторов, что, конечно, делать влом.
...
Рейтинг: 0 / 0
23.11.2018, 16:30
    #39737598
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
Соколинский Борис,

Есть довольно много библиотек, которые это делают
Понятно что вручную мало кто пишет, как сейчас так и раньше

Просто другие библиотеки дают больше возможностей\скорости по сравнению со стандартным TCanvas

Даже просто утилизация всех возможностей GDI выходит в некоторых случаях предпочтительнее. Например, если мне будет нужна подержка принтеров под виндой, я возьму за основу GDI и все остальные реализации буду отталкивать от этого интерфейса. Ибо он ИМХО ЖЕЛЕЗНО работает.
...
Рейтинг: 0 / 0
23.11.2018, 18:06
    #39737671
garun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
ребятки, а по теме есть что-то?
...
Рейтинг: 0 / 0
23.11.2018, 18:41
    #39737695
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасна ли работа с графикой в новых делфях?
garunребятки, а по теме есть что-то? прямо в первом посте всё, что вам нужно знать
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Потокобезопасна ли работа с графикой в новых делфях? / 25 сообщений из 58, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]