AIMP Forum

AIMP для Windows => Skin Editor / Skin Engine => Ошибки / Замечания => Topic started by: Killy on October 01, 2018, 00:37:57

Title: [-] [1042][2080] Несоответствие размеров элемента в редакторе и в скриптах
Post by: Killy on October 01, 2018, 00:37:57
Дано: объект размером WxH пикселей.
К объекту применяется текстура большего размера.
Теперь (1) объект занимает места на экране согласно  размерам текстуры и (2) диалог Element placement показывает новый размер.
Однако в скриптах PlaceInfo.Size.Width и PlaceInfo.Size.Height возвращают старый размер WxH.
После кнопки Apply в диалоге Element placement новый размер работает везде.

PlaceInfo.ActualWidth и PlaceInfo.ActualHeight показывают актуальные значения. Однако, как я понимаю, я буду получать разные значения на дисплеях с разной плотностью пиксела (ещё не успел это проверить).

В любом случае расхождение между диалогом Element placement и тем что получают скрипты сбивает с толку - потратил много времени пытаясь найти ошибку у себя в скриптах.

Если вдруг это "не баг а фича", то я хотел бы видеть в редакторе заданный и фактический размеры в случае если они расходятся.

В прикреплённом проекте слева панель с большой текстурой.
Справа два текстовых поля, заполняемых в OnLoaded. Верхнее - PlaceInfo.Size...., нижнее - PlaceInfo.Actual...
Я ожидаю что верхнее значение должно совпадать с тем, что я вижу в редакторе.
Title: Re: [1042][2080] Несоответствие размеров элемента в редакторе и в скриптах
Post by: Artem on October 01, 2018, 08:37:49
PlaceInfo - это то, что вы вручную задали, оно никак не соотносится с тем, что показывается на экране, т.к. помимо PlaceInfo на финальное положение объекта влияет куча всего.
Title: Re: [-] [1042][2080] Несоответствие размеров элемента в редакторе и в скриптах
Post by: Killy on October 01, 2018, 15:00:03
Так я и говорю. Если это фича, то помогите мне не тратить время на отладку и видеть заданное значение в редакторе.

Пока что редактор обманывает меня и показывает только фактический размер.
Реально заданный размер редактор нигде не показывает.
Title: Re: [-] [1042][2080] Несоответствие размеров элемента в редакторе и в скриптах
Post by: Artem on October 01, 2018, 15:09:41
Так я и говорю. Если это фича, то помогите мне не тратить время на отладку и видеть заданное значение в редакторе.

Пока что редактор обманывает меня и показывает только фактический размер.
Реально заданный размер редактор нигде не показывает.

Вами заданный размер показывается ровно там, где вы его и задаете. Сам же редактор показывает актуальный размер элемента.
Title: Re: [-] [1042][2080] Несоответствие размеров элемента в редакторе и в скриптах
Post by: Killy on October 01, 2018, 16:20:09
Вами заданный размер показывается ровно там, где вы его и задаете.
Где я его задаю?
Дана панель какого-то размера. Может быть даже заданного вручную.
Я применяю к ней нужную текстуру другого размера и получаю то что мне нужно на экране.
Любые индикаторы размера в редакторе показывают то же, что я вижу.
Больше нет никакой возможности узнать, что я там задавал ранее.
Ровно до тех пор, пока не полезут баги, если вдруг я этот размер использую в скрипте.

Сам же редактор показывает актуальный размер элемента.
Нужно хоть где-то показывать два значения, особенно если они расходятся.
Title: Re: [-] [1042][2080] Несоответствие размеров элемента в редакторе и в скриптах
Post by: Artem on October 01, 2018, 16:36:15
1. Редактор показывает только актуальные значения.
2. Значения, заданные вручную, отображаются в разделе PlaceInfo.
3. Вы в скрите лезете не туда, поэтому и получаете не то.
Title: Re: [-] [1042][2080] Несоответствие размеров элемента в редакторе и в скриптах
Post by: Killy on October 01, 2018, 16:54:49
Куда я должен залезть, чтобы увидеть 100 на 100?

(https://i.imgur.com/8iKbNYA.png)
Title: Re: [-] [1042][2080] Несоответствие размеров элемента в редакторе и в скриптах
Post by: Soolo on October 01, 2018, 16:59:02
Куда я должен залезть, чтобы увидеть 100 на 100?
Минимальный размер элемента задаётся, в частности, размером текстуры. Соответственно, нужно "лезть" в текстуру.
Title: Re: [-] [1042][2080] Несоответствие размеров элемента в редакторе и в скриптах
Post by: Killy on October 01, 2018, 17:01:49
Минимальный размер элемента задаётся, в частности, размером текстуры. Соответственно, нужно "лезть" в текстуру.
См. скриншот.
Размер текстуры 200x200.
Скрипт получает 100x100.
Я хочу в редакторе видеть эти самые 100x100 в дополнение к 200x200.
Title: Re: [-] [1042][2080] Несоответствие размеров элемента в редакторе и в скриптах
Post by: Soolo on October 01, 2018, 17:03:39
Скрипт получает 100x100.
Что значит эта фраза? Как, откуда и что скрипт получает?
Title: Re: [-] [1042][2080] Несоответствие размеров элемента в редакторе и в скриптах
Post by: Killy on October 01, 2018, 20:31:50
Что значит эта фраза? Как, откуда и что скрипт получает?

Code: [Select]
FindObject('Panel').Get('PlaceInfo.Size.Width')внутри OnLoaded в проекте, прикреплённом к ОП-посту - возвращает 100.
В то время как в редакторе эти несчастные 100 я найти не могу.
Title: Re: [-] [1042][2080] Несоответствие размеров элемента в редакторе и в скриптах
Post by: Black_AVP on October 01, 2018, 20:58:21
Цитата из справки:
Quote
PlaceInfo.Size.XXX - размеры элемента, заданные в редакторе скинов (в некоторых случаях, не используются в расчетах)
Просто не надо использовать эти параметры для определения текущих размеров элемента, для того существует PlaceInfo.ActualXXX .
Title: Re: [-] [1042][2080] Несоответствие размеров элемента в редакторе и в скриптах
Post by: Killy on October 01, 2018, 22:14:43
Цитата из справки:Просто не надо использовать эти параметры для определения текущих размеров элемента, для того существует PlaceInfo.ActualXXX .

"Вы держите ваш телефон неправильно." (c)

Ещё цитата из справки:
Quote
PlaceInfo.Size.XXX - sizes of control that has been defined in Skin Editor.
PlaceInfo.ActualXXX - real sizes of control (read only) according to 96 dpi

Вот эти 96 dpi оставили сомнение насчёт того, что именно возвращает ActualXXX.
Сейчас, наконец, проверил на другом ноутбуке со всевозможными значениями dpi.
В итоге, все координаты включая PlaceInfo.ActualXXX выполняются в одном и том же масштабе, PlaceInfo.ActualXXX ведёт себя предсказуемо, можно пользоваться. Акцент на dpi применительно только к одной паре параметров лишь сбивает с толку.

Тут можно отметить, что я использую английский язык в редакторе. И из меню Help открывается англоязычная справка.
Сейчас сравнил, и вижу, что есть разница между двумя справками.
На странице "Properties and methods of objects", в частности, не хватает некоторых фраз. Где-то из-за кривой сборки, видимо, а где-то по недосмотру.


Русскоязычная справка:
PlaceInfo.Size.XXX - размеры элемента, заданные в редакторе скинов (в некоторых случаях, не используются в расчетах)
PlaceInfo.ActualXXX - реальные размеры элемента (только чтение) при 96 dpi.
"(в некоторых случаях, не используются в расчетах)" - чуть лучше, но всё равно слишком мутно.

Как работает масштабирование под разные dpi - заслуживает отдельной страницы в справке.
Вообще к справке много претензий - плохо структурирована, косноязычна, много пробелов.



Возвращаясь к теме поста.

С практической точки зрения, теперь понятно как в моей ситуации получать нужное мне значение в скриптах.
Хотелось бы, конечно, видеть слона (https://ru.wikipedia.org/wiki/Слепые_и_слон) целиком через все доступные средства, но редактор показывает только хвост. В этом я, видимо, понимания не встречу.
Title: Re: [-] [1042][2080] Несоответствие размеров элемента в редакторе и в скриптах
Post by: Artem on October 01, 2018, 22:28:58
Как работает масштабирование под разные dpi - заслуживает отдельной страницы в справке.
Вообще к справке много претензий - плохо структурирована, косноязычна, много пробелов.

Если есть что-то конкретное - говорите, поправим. DPI применяется к размерам автоматически.