Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Разные разрешения экрана для Debug и Release [Delphi, Windows]


vlk32   (28.11.19 22:26

Уважаемые форумчане, особенно те кто хорошо знаком с DirectX, к вам вопрос.
Пишу приложение с использованием библиотеки PXL (https://asphyre.net/products/pxl). Она поддерживает различные технологии рендера, но меня интересует именно DirectX. Примеры работают, все вроде бы неплохо, но есть нюанс.

Данная библиотека жестко выставляет оконный режим. Окей, не вопрос. Для имитации полноэкранного режима рекомендуется в создании главной формы написать вот так:

  BorderStyle := bsNone;
  WindowState := wsMaximized;
  Left := 0;
  Top := 0;
  Width := Screen.Width;
  Height := Screen.Height;
  DisplaySize := Point2i(Width,Height);

Теперь вроде все выглядит как в полноэкранном режине, если бы не одна странность которую я заметил. У меня разрешение монитора ноутбука 1920х1080, это его родной режим. В настройках  Windows 10 я выставил 125% размер интерфейса чтобы не сломать глаза.
Компилирую программу в режиме Debug и вижу в отладочном выводе разрешение 1536х864. При этом курсор мыши уходит в координаты по обеим осям до -1.
Компилирую Release и о чудо выставляется родное разрешение 1920х1080. Координаты мыши строго от 0 как и полагается.
Отношение между двумя этими вариантами как нетрудно догадаться в точности равно 1.25 Причем буквально вчера вроде бы все работало в родном разрешении в обоих режимах компиляции. Т.е. происходит какая то непонятна бодяга.

С чем такое поведение окна программы может быть связано? Есть какие то мысли?


dmk ©   (29.11.19 08:12[1]

Могу предложить написать свой класс окна под WINAPI.
Здесь есть рабочий примеры:
1. http://forum.delphimaster.net/cgi-bin/forum.pl?id=1549817154&n=5
2. http://forum.delphimaster.net/cgi-bin/forum.pl?id=1490153872&n=5

А по DirectX лучше сюда: https://gamedev.ru/forum/


vlk32   (29.11.19 10:12[2]

Спасибо, посмотрю обе ссылки.

На gamedev.ru тоже схожу, но там не любят делфистов. Скорее всего общая тональность ответов там будет примерно такая: не страдай фигней (delphi), используй C++


dmk ©   (29.11.19 13:29[3]

Delphis'тов там хватает. Холивор там редкость.
Там люди и на Java, Бейсике и и на WebGL пишут. Никого это не удивляет.
В основном алгоритмы и графику обсуждают. Функциональность OpenGL или DirectX не имеет никакого отношения к языкам.


dmk ©   (29.11.19 13:32[4]

А форум здесь помер давно. Вряд ли кто ответит.
Здесь человек 6-7 тусят из старых, да и те по другим темам в основном.
Я на OpenGL под Delphi пишу. Поэтому ответил.


vlk32   (29.11.19 23:43[5]

Разобрался!

Ключевые слова: 4K displays, high DPI, form / control scaling / sizing, DPI awareness, PixelsPerInch, DPI virtualization in Windows

Вот хорошая статья на тему, если кому интересно:
https://zarko-gajic.iz.hr/writing-and-enabling-delphi-application-to-support-high-dpi-displays-and-4k-screen-resolutions/

Проблема решилась настройкой манифеста в опциях приложения. Поставил "DPI Awareness" = System Aware


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо