Число три это магическая константа, подобранная экспериментальным путём. x, y это - смещение окна. Как раз встанет точно по размеру экрана.
У этого окна будет шапка, но она окажется за пределами экрана и никто её не увидит. Если делать настоящее безрамочное окно - оно будет как-то похитрому глючить не то на старых, не то на новых виндах.
И это не только моё наблюдение. Размер окна, ессно равен разрешению экрана.
Далеко не всегда так. Я работаю со встраиваемыми системами и почти всегда никакого EDID не получаю (а хотелось бы, сильно упростило часть работы). Нативное разрешение и границы ожидаемого pixclk просто описаны в даташите на матрицу. Как хочешь, так и выкручивайся =/
Но вообще да, тот факт, что оно _обычно_ не связано физически позволяет его положить куда угодно или забить туда любую информацию.
Цитата:
Дядя Миша писал: Размер пикселя определяется диаметром щели в маске.
Интересно. Как же тогда делали нестандартное разрешение?
Цитата:
FiEctro писал: Лучше покажите пример как создавать нормально безрамочное окно по канонам.
Могу только без канонов. Недавно безрамочное окно запилил в наш форк, но там саму фичу предоставляет SDL. Лежит в engine/platform/sdl/vid_sdl.c в сорцах.
a1batross писал: Я работаю со встраиваемыми системами и почти всегда никакого EDID не получаю
Эта микросхемка не нужна для правильной работы матрицы, поэтому запросто может отсутствовать. Она просто торчит в сторону LVDS-разъема чтобы пользователь мог её прочитать.
Цитата:
a1batross писал: Интересно. Как же тогда делали нестандартное разрешение?
Я наверное немного неверно выразился. Минимальный размер пикселя определяется диаметром щели в маске. Так-то размер пикселя - вполне актуальный параметр для CRT. Разрешения масштабировались просто за счёт физического движения луча, он зажигал несколько пикселей одним цветом.
Но вообще если приблизить лицо к CRT экрану, это выглядит довольно забавно. Особенно на кинескопах с триадами, вместо инлайнов. Там видно, что в триадах светятся все три цвета, причём при приближении практически невозможно разобрать какие ярче, а какие темнее.
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) {
Дядя Миша писал: Число три это магическая константа, подобранная экспериментальным путём.
Скорее всего это число - размер верхнего фрейма, за который тянут мышкой при изменении размеров, в разных темах и версиях Windows могут отличаться значения.
Его можно получить: