![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| MoZy |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 4.6.2006 Репутация: 1 Всего: 0 |
Как бы сделать чтобы этих полос не было и откуда они берутся?
--------------------
Experimentia est optima rerum magistra |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
Выводи изображение в окно через двойной буфер. Я так понял, ты выводишь большой битмап.
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| Sheff |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 503 Регистрация: 25.3.2002 Где: Зеленоград Репутация: нет Всего: 3 |
MoZy, создай в памяти HDC ассоциируй с ним bitmap и рисуй на нём, а потов в OnDraw или на WM_PAINT не знаю как там у тебя рисуй из HDC в памяти на окне или где нужно...
Т.е сначала:
Потом в OnDraw:
-------------------- -------------------------- Шеф всегда прав :) |
||||
|
|||||
| MoZy |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 4.6.2006 Репутация: 1 Всего: 0 |
битмап маленький. таймер быстрый. а эти полосы... периодически появляются, причем период больше чем у таймера в несколько раз.
каким это образом? Мне надо по таймеру и чтоб окно не было "прозрачным" от этого двойного буфера. И полосы все равно проходят: ![]() Это иммитация, так как соскриншотить не получается Sheff, спасибо за идейку )) Я как видишь вроде как тоже сначала операции в скрытом хдц делаю, а потом на главный вовожу, но чтоб ВСЕ делать на скрытом (то есть все движения, все декорации Спасибо! Это сообщение отредактировал(а) MoZy - 4.8.2006, 22:27 --------------------
Experimentia est optima rerum magistra |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
Sheff, показал каким еще лучше перехватить сообщение WM_ERASEBKGND и не вызывать для него обработку "по-умолчанию", вместо этого, вернуть 1. Так задний фон не будет перекрашиваться каждый раз, когда требуется обновить окно. -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| Sheff |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 503 Регистрация: 25.3.2002 Где: Зеленоград Репутация: нет Всего: 3 |
MoZy, ты делаешь что-то типа игры ?
Тогда лучше вообще наверное DirectX юзать или OGL т.к GDI очень прожорлив -------------------- -------------------------- Шеф всегда прав :) |
|||
|
||||
| MoZy |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 4.6.2006 Репутация: 1 Всего: 0 |
Sheff, конечно прожорлив, но пока и так сойдет
Это сообщение отредактировал(а) MoZy - 8.8.2006, 19:58 --------------------
Experimentia est optima rerum magistra |
|||
|
||||
| OXOTHUK |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 21.9.2005 Репутация: нет Всего: 6 |
MoZy, в DirectX(я думаю имеется в виду Direct3D) и в OpenGL тебе придётся работать с 3х мерной графикой. А так как ты мутил на GDI, предполагаю тебе легче и сподручнее 2х мерную. Тогда надо использовать DirectDraw. Он в принципе простой, но у меня появились проблемы с поворотом изображения на угол и выводом текста. Правда в GDI если при прорисовке указать RECT source нормальный, а dest меньше, то появляются какие-то чёрные полосы, а в DirectDraw такого нет, поэтому путём несложных мат. вычислений, можно сделать один движок, но при задании разного разрешения экрана, он будет просто сжимать изображение и поэтому не придётся их двигать чтоб уместились в экране. Правда я не знаю, может тормозить он от этого больше станет?
|
|||
|
||||
| Sheff |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 503 Регистрация: 25.3.2002 Где: Зеленоград Репутация: нет Всего: 3 |
OXOTHUK, DirectDraw уже не поддерживается в последних версиях библиотек DirectX, вся его функциональность была перенесена в Direct3D. Ему нужно юзать Direct3D или OpenGL в ORTHO режиме, OpenGL - графическая библиотека, и предназначена для программирования не только 3-х мерной графики.
-------------------- -------------------------- Шеф всегда прав :) |
|||
|
||||
| OXOTHUK |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 21.9.2005 Репутация: нет Всего: 6 |
Sheff, ну ему ж никто не запрещаяет пользоваться DirectDraw 4 или 5. Работать - работает и быстро. А сам он проще.
|
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Последний ДД был в 7й версии, это первое. И второе:
Модератор: еще одно сообщение не по теме - закрою топик |
|||
|
||||
| MoZy |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 4.6.2006 Репутация: 1 Всего: 0 |
Fixin, все по теме
OXOTHUK, я не хочу менять разрешение. А на счет скорости GDI меня она устраивает, ведь там есть волшебные Get/SetDIBits, что обеспечивает свободу действия в достаточной мере, чтоб свои библиотеки забацать. Но тема действиетльно закрыта Спасибо. --------------------
Experimentia est optima rerum magistra |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |