Что нового

Перенос цветов из массива в GUI

babanty

Новичок
Сообщения
34
Репутация
1
Добрый день, товарищи! :smile:
Задумал клеточный автомат по типу "Жизнь" (см. вики).
Проще говоря есть поле, 200 на 200 клеток, в них постоянно меняются цвет клеток (в секунду как минимум 30 раз в 600та клетках из 40 000 происходят изменения), это около 18000 изменений пикселей в сек.
Так вот у меня есть массив $Color[x][y] где содержится инфа о об этих клетках, например $Color[x][y] = 0xffffffff.
ВОПРОС: как из выше указанного массива переносить в GUI эти изменения??
Пробовал через библиотеку _GDIPLUS, скорость обновления 200 клеток в секунду что в сотни раз меньше необходимой.

Код:
Func Graphics_box ($Graphics_box_X = 0, $Graphics_box_Y = 0, $Graphics_box_W = 0, _
					$Graphics_box_H = 0, $Graphics_box_color = 0) ; создание прямоугольника
				; X координата начала, Y координата начала, ширина прямоугольника, высота прямоугольника, цвет прямоугольника.
	Local $hGraphic, $hBrush
    _GDIPlus_Startup ()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND ($ID_win_1)
	$hBrush =_GDIPlus_BrushCreateSolid('0x' & $Graphics_box_color); ff - максимальная не прозрачность
    _GDIPlus_GraphicsFillRect($hGraphic, $Graphics_box_X, $Graphics_box_Y, $Graphics_box_W, $Graphics_box_H, $hBrush)
    ; Очищает ресурсы
    _GDIPlus_GraphicsDispose ($hGraphic)
	_GDIPlus_BrushDispose ($hBrush)
    _GDIPlus_Shutdown ()
EndFunc


Так же пробовал через _WinAPI_SetPixel($dc, $i * 3 + 10, $i * 3 + 10, 0xFF0000), но показалось бесперспективным (если не так сообщите пожалуйста)

P.S. В обще в обычных фильмах и играх у меня скорость обновления экрана 1920х1080 60 кадров в сек, мои жалкие требуемые 18000 операций в сек не сравнены с 124 416 000 которые он делает в играх и фильмах :(
 
Верх