Я хочу рисовать пиксели, используя Xlib, я пытался оптимизировать свой код, но XDrawPoint () занимает много времени. Для 120 000 пикселей (окно 300 x 400) на рисование уходит около одной секунды.
void sp::renderer::draw(pixel& drawablePixel)
{
m_grahpics_values.foreground = drawablePixel.getColor().getHexRGB();
XChangeGC(ptr_display, m_graphic_context, GCForeground, &m_grahpics_values);
XDrawPoint(ptr_display, m_pixelMap, m_graphic_context, drawablePixel.getPosition().x, drawablePixel.getPosition().y);
}
А затем я отображаю его с помощью XcopyArea ()
void sp::renderer::display()
{
XGCValues gr_values;
GC gr_context;
XChangeGC(ptr_display, m_graphic_context, 0, &gr_values);
if(m_showFps)
{
displayFps();
XCopyArea(ptr_display, m_pixelMap, *ptr_window, gr_context, 0, 0, m_renderSpaceWiddth, m_renderSpaceHeight, 0, 0);
calculateFps();
}
else
{
XCopyArea(ptr_display, m_pixelMap, *ptr_window, m_graphic_context, 0, 0, m_renderSpaceWiddth, m_renderSpaceHeight, 0, 0);
}
}
Что можно сделать для запуска это быстрее?