Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с видеопамятью 
:(
    Опции темы
Leksey
Дата 8.8.2005, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: 1
Всего: 1



JoyEx не поверишь.
Задавал при создании внеэкранной поверхности размещение в видеопамяти.
На моем компе все равно через HDC быстрее было(Загруз процессора меньше).
А попробовал на другом компе на котором встроенная видюха, и не позволяет создавать в видеопамяти внеэкранную поверхность(создаю в системной, видеопамяти не хватает).
На нем вариант с DirectX быстрее работал,но только меню и курсор мыши мигают почему-то?
PM MAIL   Вверх
JoyEx
Дата 8.8.2005, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

Репутация: 4
Всего: 12



Цитата(Leksey @ 8.8.2005, 14:58)
но только меню и курсор мыши мигают почему-то?

Windows получая прерывания от мышки пытается нарисовать курсор на экране, а в этот момент уже DirectX, наверное, заблокировала 1 видеостраницу.


--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
Leksey
Дата 8.8.2005, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: 1
Всего: 1



А как это исправить?
Если получается создать внеэкранную поверхность в видеопамяти, то мерцания не наблюдается.
PM MAIL   Вверх
p0s0l
Дата 8.8.2005, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 3
Всего: 112



JoyEx, теперь другая ошибка - 88760104...
(видяха поддерживает оверлеи, FX5600)...
Ладно уж буди не мучайся smile, всё равно данный способ не решает задачу в полной мере...



--------------------
С уважением, г-н Посол.
PM   Вверх
JoyEx
Дата 8.8.2005, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

Репутация: 4
Всего: 12



Цитата(p0s0l @ 8.8.2005, 16:51)
88760104

- до запуска проги уже кто-то юзает оверлей :-)

Цитата(p0s0l @ 8.8.2005, 16:51)

всё равно данный способ не решает задачу в полной мере


- тогда остается токо делать фильтры-кодеки



--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
p0s0l
Дата 8.8.2005, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 3
Всего: 112



Цитата(JoyEx @ 8.8.2005, 17:38)
- до запуска проги уже кто-то юзает оверлей :-)
Никто не пользует smile (даж перезапускал комп), а если я запускаю проигрывать, то там работает оверлей...



--------------------
С уважением, г-н Посол.
PM   Вверх
JoyEx
Дата 9.8.2005, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

Репутация: 4
Всего: 12



Цитата(p0s0l @ 8.8.2005, 16:51)
Ладно уж буди не мучайся , всё равно данный способ не решает задачу в полной мере...

Ok. smile

Leksey

Почему напрямую не берешь картинку из GDI-поверхности (из своей lpDDSurface, первичной?), через ddsd.lpSurface – это же базовый адрес “куска” видеопамяти (поверхности), который DirectDraw отобразил в твой процесс?! Будет же быстрее.
Токо вот, когда работаешь через HDC не надо думать о структуре видеопамяти, а если будешь делать типа memset(ddsd.lpSurface, 0x80, логич. ширина экрана * кол-во строк), то в режиме TrueColor24 (формат пикселя - 8:8:8), TrueColor32(8:8:8:8) всё будет хорошо, а вот в HiColor15 (1:5:5:5) или HiColor16(5:6:5) уже будут проблемы.


--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
Leksey
Дата 9.8.2005, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: 1
Всего: 1



Будет быстрее, но будет происходить мерцание меню.
Я так пробовал .
У MSVS менюшки дрожат.
Добавлено @ 13:16
JoyEx а почему будут проблемы с 16-битным режимом?
И еще почему картинка получается вверх ногами?
PM MAIL   Вверх
JoyEx
Дата 9.8.2005, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

Репутация: 4
Всего: 12



Leksey

1) 0x80 - серый цвет для 24, 32 bpp экрана, а для 16bpp уже...е не серенький smile формат пикселя уже другой

2) BITMAPINFO > BITMAPINFOHEADER:
Цитата(MSDN)

biHeight
Specifies the height of the bitmap, in pixels. If biHeight is positive, the bitmap is a bottom-up DIB and its origin is the lower-left corner. If biHeight is negative, the bitmap is a top-down DIB and its origin is the upper-left corner.


Это сообщение отредактировал(а) JoyEx - 9.8.2005, 14:30


--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
Leksey
Дата 9.8.2005, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: 1
Всего: 1



Цитата

2) BITMAPINFO > BITMAPINFOHEADER:

Я говорю про пример на DirectX.
PM MAIL   Вверх
ManiaK
Дата 9.8.2005, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 2
Всего: 29



Дык формат хранения один и тот же должон быть. Разницы никакой.
PM MAIL WWW   Вверх
JoyEx
Дата 10.8.2005, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

Репутация: 4
Всего: 12



Видеопамять отображается на экран монитора слева направо и сверху вниз, если битмап аппаратно-зависимый (HBITMAP), то тогда у него структура картинки такая же как и у видеопамяти.

Ф-цию GetDIBits() можно "попросить", чтобы она вернула перевернутую картинку, и даже заказать другой bpp.



--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0698 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.