이전 질문글 링크 http://gall.dcinside.com/board/view/?id=programming&no=806476&page=1


class CView

{

Image m_img;

POINT m_DisplayRange;

float m_zoom;

}


void CView::OnPaint()

{

unsigned char * pBufferDisplay = (unsigned char *)malloc(4 * sizeof(unsigned char) * m_DisplayRange.x * m_DisplayRange.y);

unsigned char * ptr;

unsigned char value;


for (int y = 0; y < m_DisplayRange.y; y++)

{

ptr = &pBufferDisplay[4 * m_DisplayRange.x * y];

for (int x = 0; x < m_DisplayRange.x; x++)

{

if ((int)(x / m_zoom) <= m_img->GetX() && (int)(y / m_zoom) < m_img->GetY())

value = m_img->pBuffer[m_img->GetX() * (int)(y / m_zoom) + (int)(x / m_zoom)];

else

value = 255;

//memset(ptr, value, 3);

//ptr += 4;

*ptr++ = value; // r

*ptr++ = value; // g

*ptr++ = value; // b
ptr++; // alpha

}

}

}



대충 요런 코드인데...

주석표시한건 저렇게 하면 SIMD 적용돼서 좀 빨라진다는거 같더라구?


어느 정도 성능을 원하냐고 했는데, 당연히 다다익선....

당면한 과제는 FHD 기준으로 초당 10회 반복?

가능하면 UHD 이상에서 30 FPS 수준?


아모거나 가능성있는 것들 많이 좀 알려조.... 총총