Цитата(AHTOXA @ Sep 3 2016, 17:16)

4,5 мс - это 222 герца. Тоже многовато.
Вы примите во внимание, что для человеческого глаза не нужна такая частота. Достаточно, скажем, 60 Гц (вернее, достаточно 25, а 60 - это будет ультра-гладкая картинка). Вот и перерисовывайте соответственно 60 раз в секунду. Пусть за одну перерисовку у вас добавляется не один, а несколько столбцов.
4,5 это не обновление картинки а добавление одного столбца, а частота окна получиться 5 сек если считать кадром обновление всего окна.
Цитата(amaora @ Sep 3 2016, 17:26)

В лоб будет больше 60 к/с, если оптимизировать как должно, немного медленнее memcpy. А можно и взять готовый memmove, останется добавлять один столбец. Выводить можно через libsdl.
Вы говорите для меня загадками )
Господа, вот такая штука виснет намертво и ничего не выводит, если без goto в таймере вызывать все отлично, в чем дело ?
int h1 = gBitmap->Height;
int w1 = 3300;
fg:
Col--;
for ( y = 0; y < h1; y++) // âàðèàíò 2 = ìåíÿåì â ìàñèâå òîëüêî îäèí ñòîëáåö
{
data_in[0][y]=random(250);
data_in[1][y]=random(250);
data_in[2][y]=random(250);
}
//-----------------------------------
TRect tRectFrom(1,0,1101,h1);
TRect tRectTo (0,0,1100,h1);
Image1->Canvas->CopyMode=cmSrcCopy;
Image1->Canvas->CopyRect(tRectTo,gBitmap->Canvas,tRectFrom);
TRect tRectFrom2(0,0,1100,h1);
TRect tRectTo2 (0,0,1100,h1);
gBitmap->Canvas->CopyRect(tRectTo2,Image1->Canvas,tRectFrom2);
for ( y = 0; y < h1; y++)
{
ptr = (Byte *)gBitmap->ScanLine[y];
ptr[w1+0] = (Byte)data_in[0][y];
ptr[w1-1] = (Byte)data_in[1][y];
ptr[w1-2] = (Byte)data_in[2][y];
}
//-----------------------------------
Sleep(100);
goto fg;