Перейти к содержанию
    

whale

Участник
  • Постов

    1 278
  • Зарегистрирован

  • Посещение

Репутация

-6 Плохой

Информация о whale

  • Звание
    Профессионал
    Профессионал

Посетители профиля

6 215 просмотров профиля
  1. Вроде получилось, два экранных буфера на два кадра, пока из одного в потоке скользящим окном выводим на праймери, во второй буфер в другом потоке пишем новые данные, после вывода первого буфера окно переходит на второй потом опять на первый итд, вроде выводит без задержек, секунд за 10 один кадр выводит, аллилуя !
  2. Кстати таким образом выводит 1600 кадров за 15сек хотя монитор 60Гц
  3. Такое есть давно но иногда нужна именно лента. Ленту можно остановить, она создает более полное ощущение об пространстве, часть объектов попадает на стык и разделяется на две фотки итд Самое быстрое сейчас это если копировать скользящим окном в размер области вывода, если пытаться уменьшать окно ( те сначала ширина =1 а затем линейно возрастает до полной ширины и далее уже константа) то почему то скорость падает, пока занят выяснением этого эффекта.
  4. Фоток может быть до сотни, думаю память этого не переживет, тем более иногда используют планшеты и всякий древний кал мамонта, каждая фотка 15мб итого надо полтора гектара видеопамяти или озу что хуже.
  5. Я с этой либой не знаком совсем. Вы предлагаете сделать буфер длинной на две фотки, загрузить в него сразу две фотки и копировать из него скользящим окном в праймери ? После того как окно дойдет до конца буфера перегрузить его новыми фотками и окно переставить на начало ? Тогда устраняется копирование буфера само в себя, может и сработать .....
  6. Я несколько упростил описание, необходимо создать бегущую ленту из последовательных фото, для этого после сдвига буфера на 1 пиксель влево, справа в него в крайней столбец заноситься новые данные.
  7. Есть фотка высота 3200 ширина 1600, нужно что бы она плавно выезжала справа, проходила экран и уезжала слева. Реализовано на DirectDraw lpDDSBack01->BltFast(sr.left-1,sr.top, lpDDSBack01, &sr, FALSE); lpDDSPrimary->Blt(&wr, lpDDSBack01, &sr, DDBLT_WAIT, 0); Те сдвигаем lpDDSBack01 на один столбец методом копирования и выводим на lpDDSPrimary. Все работает но как то слишком медленно, весь проход занимает аж 30сек, можно как то ускорить ? Сам цикл бегает в потоке ничего его не тормозит кроме копирования. Если копировать скажем сразу на 3 столбца то появляется замыливание изображения.
  8. Как Buildere по быстрому загрузить TBitmap pf24bit в LPDIRECTDRAWSURFACE ? Можно ручками по точкам но получается долго, гуглил выдает какую то муть, может кто подскажет. Как то можно с помощью BitBlt но надо разобраться с дискрипторами и цветностью.
  9. Конечно помогла, корпус охлаждается водой )
  10. Поставить в авто преобразователь на 220в и подключить через минвеловский, заодно и 220 в машине не помешает и ничего колхозить не надо, дешево сердито и быстро )
  11. Если вы плохо видите наденьте очки, сходите к окулисту и перечитайте тему, там написано про кпд и все остальное. А Ваши язвы оставите себе иначе плохо кончится.
  12. Еще более логично высказываться в тему а не придумывать себе ежиков в тумане.
  13. Короче, если выше код правильный то при задании time от 0 и выше происходят жесткие глюки с частотой, мало того постоянно все виснет так еще и бегает в разные стороны ) Сдвигать она конечно может на такт но вычисление q1 q2 неверно.
  14. Если свести всю вашу простыню к вот такому коду void nop_delay(unsigned int time) { int NOP_Param_1=6; int NOP_Param_2=6; unsigned int i; unsigned int q = time - NOP_Param_2; unsigned int q2 = q/NOP_Param_1; unsigned int q1 = q - q2*NOP_Param_1; i=q1; while(i>0) { asm("nop"); i--; } i=q2-q1; while(i>0) { asm("nop"); asm("nop"); i--; } return; } то при time 0..1...2 итд i в while постоянно вылетает в минус и все виснет, какие критерии для выбора time ?
×
×
  • Создать...