HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Полноэкранный режим DirectX
Работает избирательно
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12923
Возраст: 32

Рейтинг



Полноэкранный режим DirectX

Пытаюсь разобраться с фуллскрином в D3D, и вроде всё работает, но только с определенными разрешениями, а вот другие вроде 320х240, 512х512 ломаются. С чем это связано? Даже если я отфильтрую рабочие разрешения, где гарантии что на других машинах они не будут ломаться? Пример на который я ориентировался, я приложил ниже.

Вложение: main.zip (3.6 кб)
Этот файл был скачан 6 раз.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | | IP: Записан
Сообщение: 220814

Старое сообщение 16-05-2024 12:36
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32254
Нанёс повреждений: 392 ед.

Рейтинг



От фуллскрина лучше отказаться в наше время. Используй безрамочное окно.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 220815

Старое сообщение 16-05-2024 16:22
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12923
Возраст: 32

Рейтинг



Дядя Миша
А как сохранить соотношение сторон тогда? При d3dpp.Windowed = TRUE; в "фуллскрине" если разрешение не соответсвует соотношениям монитора - растягивается. Единственное что остаётся самому высчитывать соотношение разрешения пользователя, а пользователю предоставлять выбирать только высоту, типа 720p, 1080p и т.д.
С одной стороны - хорошо что не будет черных полосок, с другой почему то так никто не делает, возможно есть на это какие то причины или более простые решения.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Отредактировано FiEctro 16-05-2024 в 17:55

Сообщить модератору | | IP: Записан
Сообщение: 220816

Старое сообщение 16-05-2024 17:50
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32254
Нанёс повреждений: 392 ед.

Рейтинг



Фуллскрин - это фишка для CRT-мониторов, которые при любом разрешении могли показывать не мыльную картинку. Для TFT он очевидно потерял смысл, но его использовали ещё долгие годы по инерции.

Цитата:
FiEctro писал:
При d3dpp.Windowed = TRUE; в "фуллскрине" если разрешение не соответсвует соотношениям монитора - растягивается

Ну в ксаше теперь безрамочное окно (хотя кого я обманываю?). Разве там что-то растягивается?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 220817

Старое сообщение 17-05-2024 14:47
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12923
Возраст: 32

Рейтинг



Цитата:
Дядя Миша писал:
Ну в ксаше теперь безрамочное окно (хотя кого я обманываю?). Разве там что-то растягивается?


Там OGL это раз, исходников окна ксаша у меня нет это два.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Отредактировано FiEctro 17-05-2024 в 23:11

Сообщить модератору | | IP: Записан
Сообщение: 220818

Старое сообщение 17-05-2024 23:03
- За что?
a1batross
Житель форума

Дата регистрации: May 2016
Проживает: Москва
Сообщений: 519
Возраст: 26

Рейтинг



>вроде всё работает, но только с определенными разрешениями, а вот другие вроде 320х240, 512х512 ломаются. С чем это связано?

Если ты меняешь видеорежим монитору, то тут всё очевидно -- просто в монитор не зашито такое разрешение. Его можно задать вручную, но тогда недостаточно просто указать ширину и высоту, нужно сверху ещё задать hbp, hfp, hsync, vbp, vfp, vsync и pixelclock. Могу рассказать почему так, если не в курсе

Но лучше этим не заниматься. По-хорошему не стоит выходить за пределы нативного разрешения LCD панели, а если нужно снизить разрешение, то рисовать в FBO, а там можно и сохранение соотношения сторон реализовать.

__________________
Xash3D FWGS форк

Сообщить модератору | | IP: Записан
Сообщение: 220834

Старое сообщение 19-05-2024 17:42
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32254
Нанёс повреждений: 392 ед.

Рейтинг



Я думаю, хотя и не уверен на 100%, что полноэкранный режим появился в винде специально для ускорителей 3DFX, т.к. их первые версии подключались как бы последовательно с видеокартой по VGA-разъему и не могли рендерить изображение в окошке. К тому же у них предельное разрешение обычно было ниже того, которое использовали на рабочем столе. Вполне могла быть ситуация, когда на рабочем столе 800х600, а 3Dfx тянул максимум 640х480. Опять же там был ограничение на размер текстур 128х128. И вот собственно ради них этот режим и был введён. А потом его юзали на CRT-мониторах для увеличения быстродействия. С переходом на TFT начались конкретные проблемы с разрешениями, когда какой-нибудь репак настроен на одно разрешение, ты включаешь на своём компьютере и получаешь Out Of Range. Это конечно проблема не монитора, а самого игрового движка, но я сталкивался с этим на разных движках.
Поэтому самый оптимальный выбор - полный отказ от фуллскрина и использование безрамочного окна. Ну или рамочного, т.к. безрамочное глючит. Визуально разницы всё равно нет.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 220843

Старое сообщение 20-05-2024 07:17
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12923
Возраст: 32

Рейтинг



Цитата:
a1batross писал:
Могу рассказать почему так, если не в курсе


Давай, может что то новое узнаю.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | | IP: Записан
Сообщение: 220848

Старое сообщение 20-05-2024 07:39
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4441
Возраст: 34

Рейтинг



Цитата:
Дядя Миша писал:
Я думаю, хотя и не уверен на 100%, что полноэкранный режим появился в винде специально для ускорителей 3DFX

То есть в принципе для 3д ускорителей.

Сообщить модератору | | IP: Записан
Сообщение: 220850

Старое сообщение 20-05-2024 08:26
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32254
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Crystallize писал:
То есть в принципе для 3д ускорителей.

https://3dnews.ru/963510/ti-pomnish...los/page-4.html

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 220854

Старое сообщение 20-05-2024 10:11
-
ZGreen
Житель форума

Дата регистрации: Sep 2007
Проживает: Красноярск
Сообщений: 300
Возраст: 36

Рейтинг



Цитата:
Дядя Миша писал:
Я думаю, хотя и не уверен на 100%, что полноэкранный режим появился в винде специально для ускорителей 3DFX

Секундочку. В 95й винде можно запустить условный Старкрафт, который работает в фулскрине 640*480, а в винде разрешение рабочего стола может быть любым. Ну или Диабло, для чистоты дат.

Сообщить модератору | | IP: Записан
Сообщение: 220856

Старое сообщение 20-05-2024 15:02
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32254
Нанёс повреждений: 392 ед.

Рейтинг



ZGreen это понятно. Смысл полноэкранного режима - как раз в отличии от рабочего разрешения стола. Что утратило смысл при переходе на TFT-экраны.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 220864

Старое сообщение вчера 13:40
-
a1batross
Житель форума

Дата регистрации: May 2016
Проживает: Москва
Сообщений: 519
Возраст: 26

Рейтинг



Цитата:
FiEctro писал:
Давай, может что то новое узнаю.


Если говорить о CRT, то изображение на них получается направляя луч электронов на поверхность экрана. horizontal/vertical back/front porch буквально дают некоторое время трубке перейти на следующую линию или столбец, но ещё и дают понять монитору, что этот сигнал не несёт информации. hsync/vsync немного интереснее и нужны для стабилизации изображения. Ну и частотой сигнала является pixel clock. Из них даже частоту обновления можно посчитать поделив частоту на произведение количества сигналов по высоте и по ширине.

CRT мониторы были (относительно?) проще устроены и им очень грубо говоря всё равно на параметры входящий сигнал, и если дать достаточно времени на бланк и частоту которая не выходит за его границы, то их можно, как говорят, разогнать. Задрать выше частоту, чтобы получить меньше мерцания или увеличить активную зону, чтобы получить чуть больше драгоценных пикселей. Ну ты понял.

В LCD эти оффсеты перед hsync/vsync уже не нужны, но как концепция при настройке экрана остались. На самом деле у многих LCD экранов торчит ножка display enable, которая даёт понять экрану когда передаются данные. Да, LCD панель тоже можно разогнать, но разве что немного поднять частоту обновления. С матрицей же ничего не поделаешь, меньше или больше заданного сделать всё равно нельзя. В мониторах для ПК обычно ставят дополнительную микросхему, которая будет преобразовывать сигнал, банально растягивая входящее изображение под единственное разрешение матрицы и часто это делает с очень паршивым качеством. И то она нужна чисто для совместимости (картинку в BIOS показать, например), в ноутбуках или телефонах её например не ставят за отсутствием необходимости.

И именно поэтому тебе тут не рекомендуют пытаться выставлять видеорежим с LCD мониторами, тем более выставляя случайно 320x240 или 512x512.

Кстати, в мониторах кстати есть ещё одна микросхема, которая через грубое подмножество шины I2C, передает компьютеру поддерживаемые разрешения. И часто этот список можно получить от операционной системы/дисплейного сервера. И ориентироваться уже на него, чтобы не получать Out of Range.

__________________
Xash3D FWGS форк

Отредактировано a1batross сегодня в 00:39

Сообщить модератору | | IP: Записан
Сообщение: 220881

Старое сообщение сегодня 00:36
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32254
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
a1batross писал:
чтобы получить чуть больше драгоценных пикселей

Пиксели там точно такие же физические, как и на TFT. Размер пикселя определяется диаметром щели в маске.

Цитата:
a1batross писал:
Кстати, в мониторах кстати есть ещё одна микросхема, которая через грубое подмножество шины I2C, передает компьютеру поддерживаемые разрешения.

Не в мониторах. А прямо на матрице распаяна. EDID называется.
Никакой физической связи с матрицей она не имеет, туда можно программатором зашить всё что угодно.

Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 220884

Старое сообщение сегодня 07:07
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12923
Возраст: 32

Рейтинг



Фигня какая то. Причём тут CRT когда он рисует всё тоже самое что и LCD. Хотите сказать что CRT не может рисовать безрамочное окно родного разрешения или что? Или это всё только ради vsync? Занимаетесь переливанием из пустого в порожнее. Лучше покажите пример как создавать нормально безрамочное окно по канонам.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Отредактировано FiEctro сегодня в 07:24

Сообщить модератору | | IP: Записан
Сообщение: 220886

Старое сообщение сегодня 07:18
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 08:46. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Полноэкранный режим DirectX
Работает избирательно
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024