пятница, 12 декабря 2014 г.

Проблема отсечения фреймов

И осталось-то всего ничего, воткнуть меню и радоваться работе новой оконной системы. Но, как говорится, джек-пот подкрался незаметно. Конечно, незаметность тут условная, причины затыка были очевидны с самого начала пиления буфера на OpenGL, только не было повода хорошенько разобраться с проблемой.

Итак, вот она, матрёшка. Тёмное отображение (оно ещё с зелёным перекрестьем) встроено в серое (синее перекрестье) со сдвигом, а серое врезано в белое (красный периметр) без сдвига. И результат отсечения на эталонном Блэкбоксе выглядит так, как и должен выглядеть:

Фрейм серого отображения отсекает нарисованное в тёмном автоматическим образом.

 А вот та же самая матрёшка на SDL-хосте. Как видим, отсечения не произошло и невидимые линии тёмного отображения отлично видны:

Фон тёмного отображения рисуется на системном уровне модуля Views, поэтому заполнение тёмным цветом делается автоматически и только в видимой части тёмного фрейма. А вот перекрестье рисуется клиентским компонентом, и вот тут уже должны работать платформенные механизмы, а они пока не работают :(

Так что меню втыкать рано, надо сперва победить отсечение.

Постоянные читатели