HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Полноэкранный режим DirectX
Работает избирательно
Страницы (2): « 1 [2]   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
FiEctro писал:
Хотите сказать что CRT не может рисовать безрамочное окно родного разрешения или что?

Может конечно. Но тогда так делать было непринято.

Цитата:
FiEctro писал:
Лучше покажите пример как создавать нормально безрамочное окно по канонам.

Создавай рамочное.

C++ Source Code:
1
stylebits = WS_POPUP|WS_VISIBLE|WS_BORDER|WS_CAPTION;
2
exstyle = WS_EX_TOPMOST;
3
y = -( GetSystemMetrics( SM_CYCAPTION ) + 3 );
4
x = -3;

Число три это магическая константа, подобранная экспериментальным путём. x, y это - смещение окна. Как раз встанет точно по размеру экрана.
У этого окна будет шапка, но она окажется за пределами экрана и никто её не увидит. Если делать настоящее безрамочное окно - оно будет как-то похитрому глючить не то на старых, не то на новых виндах.
И это не только моё наблюдение. Размер окна, ессно равен разрешению экрана.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 22-05-2024 13:34
-
a1batross
Житель форума

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

Рейтинг



Цитата:
Дядя Миша писал:
А прямо на матрице распаяна

Далеко не всегда так. Я работаю со встраиваемыми системами и почти всегда никакого EDID не получаю (а хотелось бы, сильно упростило часть работы). Нативное разрешение и границы ожидаемого pixclk просто описаны в даташите на матрицу. Как хочешь, так и выкручивайся =/

Но вообще да, тот факт, что оно _обычно_ не связано физически позволяет его положить куда угодно или забить туда любую информацию.

Цитата:
Дядя Миша писал:
Размер пикселя определяется диаметром щели в маске.

Интересно. Как же тогда делали нестандартное разрешение?

Цитата:
FiEctro писал:
Лучше покажите пример как создавать нормально безрамочное окно по канонам.

Могу только без канонов. Недавно безрамочное окно запилил в наш форк, но там саму фичу предоставляет SDL. Лежит в engine/platform/sdl/vid_sdl.c в сорцах.

__________________
Xash3D FWGS форк

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

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

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

Рейтинг



Цитата:
a1batross писал:
Я работаю со встраиваемыми системами и почти всегда никакого EDID не получаю

Эта микросхемка не нужна для правильной работы матрицы, поэтому запросто может отсутствовать. Она просто торчит в сторону LVDS-разъема чтобы пользователь мог её прочитать.

Цитата:
a1batross писал:
Интересно. Как же тогда делали нестандартное разрешение?

Я наверное немного неверно выразился. Минимальный размер пикселя определяется диаметром щели в маске. Так-то размер пикселя - вполне актуальный параметр для CRT. Разрешения масштабировались просто за счёт физического движения луча, он зажигал несколько пикселей одним цветом.

Но вообще если приблизить лицо к CRT экрану, это выглядит довольно забавно. Особенно на кинескопах с триадами, вместо инлайнов. Там видно, что в триадах светятся все три цвета, причём при приближении практически невозможно разобрать какие ярче, а какие темнее.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 23-05-2024 05:31
-
Unit
Новичок

Группа: Неопытный
Дата регистрации: Jun 2024
Проживает: Краснодарский край
Сообщений: 1

Рейтинг



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

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


Нужно получить список доступных разрешений, далее из этого списка выбрать подходящий, что-то типа этого:

C++ Source Code:
1
#include <Windows.h>
2
 
3
struct DisplayMode {
4
  uint32_t width;
5
  uint32_t height;
6
  uint32_t frequency;
7
};
8
 
9
std::vector<DisplayMode> m_modes;
10
 
11
while (true) {
12
  DEVMODE deviceMode;
13
 
14
  if (EnumDisplaySettings(nullptr, static_cast<DWORD>(m_modes.size()), &deviceMode) != TRUE) {
15
    break;
16
  }
17
 
18
  DisplayMode displayMode;
19
  displayMode.width = static_cast<uint32_t>(deviceMode.dmPelsWidth);
20
  displayMode.height = static_cast<uint32_t>(deviceMode.dmPelsHeight);
21
  displayMode.frequency = static_cast<uint32_t>(deviceMode.dmDisplayFrequency);
22
 
23
  m_modes.push_back(displayMode);
24
}


Цитата:
Дядя Миша писал:
Число три это магическая константа, подобранная экспериментальным путём.


Скорее всего это число - размер верхнего фрейма, за который тянут мышкой при изменении размеров, в разных темах и версиях Windows могут отличаться значения.
Его можно получить:

C++ Source Code:
GetSystemMetrics(SM_CYFRAME)

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

Старое сообщение 04-07-2024 06:56
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
Unit писал:
Скорее всего это число - размер верхнего фрейма, за который тянут мышкой

Да, возможно.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 04-07-2024 07:42
-
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 11:25. Новая тема    Ответить
Страницы (2): « 1 [2]   Предыдущая тема   Следующая тема
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