keng Опубликовано 12 октября, 2016 Поделиться Опубликовано 12 октября, 2016 @helldrg а ты сравни сам, чего тут советовать-то? У меня, например, отрисовка тупо по таймеру (в отдельном потоке) на 24 fps. Рисую через GDI. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 12 октября, 2016 Поделиться Опубликовано 12 октября, 2016 1 час назад, partoftheworlD сказал: Либо он умеет растягивать пространство и время Просто ищу быстро всё в игре от этого и трейнеров бывает делаю по 5 штук в день. Если трейнеров на форуме нет - значит игр нету новых ну за исключением всякой лабудени на юнити. Щас же как движок вышел, начали на нем всё подряд делать и симулятор какого не будь хирурга, президента и тому подобные бредни. Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 12 октября, 2016 Автор Поделиться Опубликовано 12 октября, 2016 Цитата а ты сравни сам, чего тут советовать-то? Вот придется сравнить =) Просто обидно будет, если мало чего изменится, а на все это время требуется =(( Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 12 октября, 2016 Поделиться Опубликовано 12 октября, 2016 19 минуту назад, helldrg сказал: Просто обидно будет, если мало чего изменится, а на все это время требуется За то будет опыт в дальнейшем и уже будешь знать как выходить из ситуации. Сейчас не решишь проблему она снова появится, рано или поздно придется её решать раз уж начал. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 13 октября, 2016 Автор Поделиться Опубликовано 13 октября, 2016 (изменено) Вроде как снизил до менее 2% цп на своем компе, можно было бы и до 1%, но перерисовывать кнопки надо - это уж в другом трейнере сделаю. Правда потребление оперативы возросло на 2,5 мб где то. Я думаю ничего страшного. Один вопрос только мучает меня. В цикле я копирую буфер попиксельно. Лучше наверно сделать сразу всю область копировать через memcpy например, но у меня ошибка вылазит постоянно. memcpy(buffer, (void*)dest, (MaxX-MinX) * (MaxY- MinY) * 4); где buffer типа void* , а dest типа int*, если это важно, то int* ссылает на glbuffer->memory типа void*. И этаже операция будет быстрее выполняться чем 200*200 операций присваивания и инкремента? Изменено 13 октября, 2016 пользователем helldrg Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 13 октября, 2016 Поделиться Опубликовано 13 октября, 2016 Я видел трейнер для игры "DiRT Rally", с минимальным системным требованием - 1 гигабайт (1000мб) оперативной памяти, в режиме ожидания. * Находится у меня на компьютере, в папке "мои трейнеры".... Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 13 октября, 2016 Поделиться Опубликовано 13 октября, 2016 6 часов назад, helldrg сказал: Вроде как снизил до менее 2% цп на своем компе, можно было бы и до 1%, StretchDIBBits? Да ты шутишь, наверное )) Для отрисовки бэкбуфера на окно нужно максимум BitBlt (прямой блиттинг) - работать будет быстрее и нагружать куда меньше. Ну и саму отрисовку делать 60 раз в секунду (60 кадросеков). Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 13 октября, 2016 Автор Поделиться Опубликовано 13 октября, 2016 Цитата Находится у меня на компьютере, в папке "мои трейнеры".... @AntonVit ахахахахха :DDDDD, у меня тоже одна из первых программ была с выводом 3d модели, и однажды я заметил, что она где то тоже гигабайт занимает оперативной памяти и я долго не мог понять в чем дело. В то время я не знал об очистке памяти =) Цитата StretchDIBBits? Да ты шутишь, наверное )) Для отрисовки бэкбуфера на окно нужно максимум BitBlt (прямой блиттинг) - работать будет быстрее и нагружать куда меньше. Ну и саму отрисовку делать 60 раз в секунду (60 кадросеков). @Xipho Да я знаю))) Просто я учусь по урокам буржуя, а он использует этот метод чтобы было понятней как данные выводятся на экран. В итоге все должно на экран выводиться через OpenGL или DirectX контекст =) Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 14 октября, 2016 Поделиться Опубликовано 14 октября, 2016 Тем более BitBlt. Так как в случае с OpenGL обмен буферов происходит через SwapBuffers, а в случае с Direct3D9 - функция Present. Растягивание битов через диб-секцию при выводе фонового буфера на экран - тот еще изврат. Даже если в фоновом буфере ты строишь картинку, используя DIB-секцию, все равно выводить фон на основной экран нужно прямым блиттингом. Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 14 октября, 2016 Автор Поделиться Опубликовано 14 октября, 2016 Xipho Цитата Так как в случае с OpenGL обмен буферов происходит через SwapBuffers, а в случае с Direct3D9 - функция Present. У него 300 с чем то уроков по 1.5 - 2 часа я еще не дошел до этой темы) А на счет BitBlt спасибо большое за объяснение. В уроках английская речь, поэтому я не все нюансы понимаю =) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения