Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.02.20;
Скачать: CL | DM;

Вниз

Загрузочный экран.   Найти похожие ветки 

 
@!!ex ©   (2007-08-30 15:33) [0]

Суть в том, что в процессе загрузки нужно обновлять экран и как то отображать, что игра не зависла.
Проблема реально в том, что в процессе загрузки прога буквально висит, и соответственно экран не обновляеться.
Была идея сделать мультимедийный тайм и по событию у него перерисовывать экран и рисовать часики, но пока не получаеться реализовать, отказываеться нормально рисовать, вернее не отказываеться... вообще ничего не рисует.


 
Dib@zol ©   (2007-08-30 16:17) [1]

Параллельный потокЪ ?


 
@!!ex ©   (2007-08-30 18:10) [2]

> [1] Dib@zol ©   (30.08.07 16:17)

Да. Вот дуаю, как научиьт паралельный потом, работать с ГЛ зарегестрированном в основном потоке.


 
DeadMeat ©   (2007-08-30 18:11) [3]

А как данные грузятся?
Если один целый ReadFile, то вариантов два:
считывать кусками и вызывать "коллбэк" для рисования после каждого куска;
использовать асинхронное чтение.

Вообщем идея в том, чтобы насовать вызов этих "коллбэков" в местах, где идет долгий цикл. Чуток может затормозить сам процесс загрузки, но думаю не сильно. Зато всегда точно будет отображаться процесс.


 
@!!ex ©   (2007-08-30 18:29) [4]

> [3] DeadMeat ©   (30.08.07 18:11)

Думал над этим варинатом.
Проблема в том, что данные динамические.
Получаеться загрузка в виде дерева. ГРузиться элемент. Он за собой тащит еще элементы, некоторые из загруженных тащат за собой еще элементы и т.д.
Чтобы сделать нормальное отображение, нужно либо много вызовов натыкать, и тогда бдует потеря скорости примерно 50%, либо будет дергаться загрузка.


 
Dib@zol ©   (2007-08-30 20:07) [5]

А что если ввести специальную переменную-счётчик? Т.е. в подгрузку каждого узла дерева добавить Inc(Counter), а независимый таймер будет этот каунтер смотреть, и если он больше предыдущего значения на некоторую определённую величину, то рисовать...


 
@!!ex ©   (2007-08-30 20:48) [6]

> [5] Dib@zol ©   (30.08.07 20:07)

Игра не стоит свечь. уже давно сделал примерно как описано в [3].


 
DeadMeat ©   (2007-08-30 21:48) [7]

> [4] @!!ex ©   (30.08.07 18:29)

Если я правильно понимаю, то все они так или иначе сводятся к загрузке данных с диска? Т.е. опять же ReadFile.. Так?
Тогда что мешает сделать обертку над ней? Когда надо загрузить, будет вызываться все время ваша обертка с нужными параметрами, а она, в свою очередь, уже рисовать процесс или считать процент... Тут уже воображение.


 
DeadMeat ©   (2007-08-30 21:50) [8]

Хотя многое зависит от того, КАК вы отображаете процесс. Если там пофиг на дергания, то можно и доп. поток. В нем активировать контекст и делать все, что надо. Либо наоборот. В доп. потоке грузить, а в основном рисовать.
Просто по опыту знаю, что с потоками рисование не самое плавное.


 
XProger ©   (2007-08-30 23:16) [9]

[1] + wglShareLists


 
Jkot ©   (2007-08-31 15:09) [10]

Хм думаю не надо извращатся во многих игровых хитах загрузка идёт именно рывками по 10 -20 пикселей и ничего зазорного не будет если загрузка будет дёргатся...



Страницы: 1 вся ветка

Текущий архив: 2011.02.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
11-1227450180
Дмитрий
2008-11-23 17:23
2011.02.20
Полоса прокрутки


15-1289337316
Kerk
2010-11-10 00:15
2011.02.20
Катастрофа


15-1289331890
porter
2010-11-09 22:44
2011.02.20
Как послушать порт?


15-1289299836
luzer
2010-11-09 13:50
2011.02.20
Настройка печати по сети hp officejet 7000


15-1289651203
Медвежонок Пятачок
2010-11-13 15:26
2011.02.20
вопрос ембеддерщикам (ардуино)