Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227

Загрузка процессора графикой

19.09.2019, 14:45. Показов 2396. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет !

Вопрос в следующем, есть прога которая рисует графику, предложим перерисовывает точки на экране,
загрузка процессора при этом 50% но явно видно что отрисовка тормозит, это как то можно исправить ?
Как то загрузить процессор или тормозит именно видеокарта и тут уже ничего не поделать ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.09.2019, 14:45
Ответы с готовыми решениями:

Загрузка процессора в простое, при запуске диспетчера задач загрузка снижается
Добрый день. Процессор AMD FX 4300, при полном простое процессор нагружается почти на 100%. Запускаю диспетчер задач, загрузка исчезает, ни...

Проблема с встроенной графикой Vega3 процессора Athlon 200GE
Здравствуйте. Помогите решить проблему со встроенной графикой (точнее нужен совет). Две недели назад собрал себе простенький комп....

Загрузка процессора
Всем доброго времени суток Столкнулся с такой проблемой, может кто подскажет? постоянно процессор загружен на 40-50%. Загрузку...

25
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
19.09.2019, 14:49
whale2, Отрисовка где? На канве? Какими функциями - стандартного GUI или DirectX/OpenGL?
0
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
19.09.2019, 14:52  [ТС]
Form10->Image1->Canvas->Pixels[x][y]=(TColor)RGB(BrightC,BrightC1,BrightC2);
GUI я так понимаю.
Можно в bitmap загнать а потом весь копировать в канву все тоже.
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
19.09.2019, 14:58
Цитата Сообщение от whale2 Посмотреть сообщение
GUI я так понимаю.
Правильно. а так как винда еще в других процессах задействует графическое ядро и выставляет приоритеты, то соответственно и возникают тормоза. Для простейшей графики (статичная графика, копирование/перемещение Bitmap-объектов, рисование примитивов) использование методов Canvas достаточно. Для динамической графики - игры, ГИС, LAS - обработку лучше переложить на ускорители, которые заточены на работу с процессором видеокарты.
0
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
19.09.2019, 15:01  [ТС]
так где тормозит в видеокарте или проц при GUI ?
Может пока не переписывать под DirectDraw а как нить приоритет программе повысить ?
Загнать отрисовку в поток и приоритет выставить макс. поможет ?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
19.09.2019, 15:04
Может не в масть... . Но, загрузка процессора на 50% приложением как бы намекает, что оно подвисло. Вы уверены,что причина тормозов именно в отрисовке? Может в программе где-нибудь ещё какой-то бармалей засел?...
0
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
19.09.2019, 15:06  [ТС]
Не, просто слишком быстро данные приходят и нужно много точек перерисовать )
Короче я так понял придется DirectDraw изучать (
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
19.09.2019, 15:10
Цитата Сообщение от whale2 Посмотреть сообщение
тормозит в видеокарте
В данном случае видеокарта принимает только команды процессора (которые ему сообщает ядро GUI) о том, что и куда надо вывести на экран монитора. Это отрисовка окна (его местоположение, размер, цвет, прочие атрибуты), размещенного на нем компоненте Image и куда на Image->Canvas поставить точку с определенным цветом. Графический процессор видеокарты не задействован, инструкции по обработке графики не используются. А ведь помимо этого у Вас открыта IDE (ее надо тоже отрисовывать), еще какие-то программы, фон рабочего стола, панель задач... И это все на GUI. Как вы раздадите приоритеты отрисовки?
1
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
19.09.2019, 15:11  [ТС]
Мне вот достаточно быстро-быстро скопировать bitmap или массив в видеопамять, может кто нить поделиться примером как это сделать на DirectDraw ?
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
19.09.2019, 15:12
Цитата Сообщение от whale2 Посмотреть сообщение
слишком быстро данные приходят
Код бы показали

Добавлено через 1 минуту
Цитата Сообщение от whale2 Посмотреть сообщение
поделиться примером как это сделать на DirectDraw
Андрэ Ламот "Программирование игр под Windows. Советы профессионала" - все очень доступно написано.
1
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
19.09.2019, 15:19  [ТС]
Приходят данные по ip вызывается фун-ция, (без потоков все линейно) в ней после некоторой обработки, выводятся точки на канву, мне кажется весь код в одну строку укладывается что я выше постил.
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
19.09.2019, 15:25
Цитата Сообщение от whale2 Посмотреть сообщение
в ней после некоторой обработки
Так может быть все-таки в обработке тормоза происходят? Код смотреть надо.
0
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
19.09.2019, 15:36  [ТС]
К сожалению вся загрузка в одно строке
C++
1
2
Image1->Canvas->Pixels[x][y] или 
Image1->Canvas->CopyRect(tRectTo,gBitmap->Canvas,tRectFrom);
если их закоментировать загрузка меньше 1 %
без привлечения видеокарты похоже никуда не деться.
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
20.09.2019, 00:52
Под загрузкой я подразумевал
Цитата Сообщение от whale2 Посмотреть сообщение
Приходят данные по ip вызывается фун-ция
. Надо смотреть, как это реализовано.
0
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
24.09.2019, 18:34  [ТС]
На пути освоения DirectDraw вдруг возникла непонятная преграда )
В билдере есть встроенные примеры на DX, они отлично компилируются, выполняются, если их слегка покурочить то тоже все работает, даже в окне,
НО стоит создать новое приложение, переписать туда все хэдеры итд и даже тупо все скопировать из примеров вылетает ошибка
Unresolved external 'DirectDrawCreate' referenced from ...
как объяснит эту фантастику ?
Еще раз напомню что примеры работают, ничего не менял в билдере, все тупо скопировано из примеров и .h и .cpp
0
2637 / 1648 / 267
Регистрация: 19.02.2010
Сообщений: 4,371
24.09.2019, 20:13
Цитата Сообщение от whale2 Посмотреть сообщение
Unresolved external 'DirectDrawCreate' referenced from ...
как объяснит эту фантастику ?
Библиотека нужная к проекту не подключается.
Нужен ddraw.lib - посмотрите, как в проектах-примерах подключается эта либа и прописывается путь к её каталогу, и вручную свой файл проекта подправьте по этому образцу.
1
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
24.09.2019, 20:16  [ТС]
В примерах никак эта библиотека не подключается и даже не фигурирует )
Может я конечно что то упустил ?
Вот этот пример из билдера.
Вложения
Тип файла: rar DDraw1a.rar (1.89 Мб, 4 просмотров)
0
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
24.09.2019, 20:22  [ТС]
Ого скопировал в папку проекта ddraw.lib и вставил #pragma link "ddraw.lib"
вроде скомпелировалось, но в примере нет такой либы как же она работал ?
0
2637 / 1648 / 267
Регистрация: 19.02.2010
Сообщений: 4,371
24.09.2019, 20:44
Цитата Сообщение от whale2 Посмотреть сообщение
В примерах никак эта библиотека не подключается и даже не фигурирует )
Может я конечно что то упустил ?
файл ddraw1a.bpr - в нём строки (идут не рядом - это я их тут рядом поместил)
<SPARELIBS value="rtl.lib vcl.lib ddraw.lib"/>
<LIBPATH value="$(BCB)\lib\release;$(BCB)\lib\obj ;$(BCB)\lib;$(BCB)\lib\psdk"/>
Имя библиотеки в одной строке, и путь к каталогу, где она лежит - в другой строке.

Текст файла проекта можно смотреть/править через кликание в ПроджектИнспекторе правой кнопкой мыши на имени приложения (не модуля, т.е. там, где .exe) и выборе во всплывающем окне пункта Edit option source. Но каталог можно задать и через Project/Options/Directories.
1
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
25.09.2019, 00:58  [ТС]
Так и знал что где то спрятали в дебрях )

Совершенно случайно кто нить подскажет как задать цвет и интенсивность (в 16 и 32 бит изображения) в

BYTE* AdresVideo = (BYTE*)SurfaceDesc.lpSurface;
AdresVideo[]= тут цвет

уже тонну макулатуры перерыл толком не нашел
или описание где почитать, методом тыка тоже не удалось определить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.09.2019, 00:58
Помогаю со студенческими работами здесь

Загрузка процессора
Всем привет. Столкнулся со следующей проблемой: При включении компьютера загрузка процессора становится 100 процентной.Потом...

Загрузка процессора
Здраствуйте уважаемые форумчане, прошу помочь мне с проблемой, недавно перебил ось на своём пк, комп старый но не слабый, и проблема...

Загрузка процессора
Здравствуйте! Проблема в том,что когда заходишь в диспетчер задач,то на секунду процессор загружен на 50-65%,через секунду стаёт 1-15%...

Загрузка процессора
Поставил Windows 7 Maximalnaya , в холостом режиме грузит процессор почти 100% Не могу разобраться в чём дело, поставил Processor...

Загрузка процессора
Здравствуйте! Проблема в том,что когда заходишь в диспетчер задач,то на секунду процессор загружен на 50-60%,через секунду стаёт 1-15%...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru