Direct2D и мультипоточность
|
|
Пятница, 21 Августа 2020 г. 12:43
+ в цитатник
Black_Dragon: В начале кода инициализации самого приложения имеем:
EnableD2DSupport(D2D1_FACTORY_TYPE_MULTI_THREADED);
В окне рисования, при его создании, создаем заготовки кистей (64 тыс)
#pragma omp parallel for num_threads(4)
for (COL r = 0; r < cColCount; ++r)
{
for (COL g = 0; g < cColCount; ++g)
for (COL b = 0; b < cColCount; ++b)
{
const UNum ind = CTreeColor::GetID(r, g, b);
m_pArrBrush[ind] = new CD2DSolidColorBrush(render, CTreeColor::GetColor(r, g, b), NULL, FALSE);
}
}
Вообщем, после создании нескольких кистей висит в ожидании из "new CD2DSolidColorBrush".
Без omp все нормально.
Просто, эта процедура занимает несколько секунд...
https://forum.sources.ru/index.php?showtopic=419404&view=findpost&p=3837403
Метки:
Программирование графики
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-