Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Ср ноя 22, 2017 5:03 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 19 сообщений ]  На страницу Пред. 1 2
Автор Сообщение
 Заголовок сообщения: Re: Области пустоты в окне.
СообщениеДобавлено: Чт апр 17, 2014 5:14 pm 
Не в сети

Зарегистрирован: Вт окт 05, 2010 6:05 pm
Сообщения: 178
В данный момент при ресайзе окон или, если недорасчитать координаты, выводимые элементы интерфейса могут налезать на нижнюю или правую рамки окна (для окон с рамками). Варианты решения: 1) при окончании перерисовок обновлять нижнюю и правую рамки (перерисовывать поверх), 2) Завести дубль функции PutPixel, которая будет учитывать все рамки окна и рисовать ей элементы, а основной функцией шапку окна и рамки, 3) Возможно функция дырозаполнения сможет учитывать все рамки окна и косвенно повлияет и на другие функции рисования.


Вложения:
frame.gif
frame.gif [ 1.63 КБ | 756 просмотров ]
Вернуться к началу
 Заголовок сообщения: Re: Области пустоты в окне.
СообщениеДобавлено: Чт апр 17, 2014 6:09 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
lev писал(а):
Возможно функция дырозаполнения сможет учитывать все рамки окна и косвенно повлияет и на другие функции рисования.

Нет, моя идея подразумевала лишь добавление списка прямоугольных областей пустоты в заливке фона. То что ты предлагаешь никак не связано с моей идеей. Границы областей пустоты это по сути границы элементов, которые отрисовываются после заливки фона. Тупо составляется список этих областей и скармливается ф.0, а она уже ориентируясь по ним заливает или не заливает фон по определенным областям.

Вообще, то что ты предлагает уже делается, но только для всего окна - происходит отсечка и ничего не рисуется за пределы окна. Выводить все через PutPixel это будет очень медленно работать. В общем вопрос простым способом не решается. Тупо повторно выводить рамки - будет моргание (blink), хоть это тоже метод решения, но в случае когда нет порчи границ это лишняя отрисовка, на которую тратится время.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Области пустоты в окне.
СообщениеДобавлено: Пт апр 18, 2014 8:39 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1080
Serge писал(а):
Цитата:
В WinAPI такая фича с пустотами есть, чем мы хуже?
Фича есть, используется редко, когда надо что-то совсем нестандартное
Ну у нас-то не как у них :) Здесь, может быть, наоборот, часто будет использоваться.

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

Mario_r4 писал(а):
В общем все как обычно - в 90% случаев, когда предложишь новую полезную вещь, которая старых вещей не затрагивает, начинаются реакционные настроения.
Тот, кому это не нужно, просто не будет это использовать, а вот те, кому нужно, будут только рады.

Реализация этой идеи могла бы помочь избавиться от лишнего кода.
Оффтопик: Например, для того, чтобы избавится от мерцания в fNav(список теперь совсем не мерцает), мне потребовалось около килобайта дополнительного несжатого кода. Если попытаться это оптимизировать, то код будет совсем нечитаемый. А вот если бы у меня была возможность использовать пока ещё идею Mario, то -1K кода и +читаемость\понятность, возможно, в зависимости от реализации, это было бы даже быстрее.

Mario_r4 писал(а):
Вообще, то что ты предлагает уже делается, но только для всего окна - происходит отсечка и ничего не рисуется за пределы окна.
А неужели так сложно при отсечении учесть ещё и window.BORDER_SIZE?


Вернуться к началу
 Заголовок сообщения: Re: Области пустоты в окне.
СообщениеДобавлено: Пт апр 18, 2014 8:53 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
0CodErr писал(а):
А неужели так сложно при отсечении учесть ещё и window.BORDER_SIZE?

Наверное можно, но нужно перерабатывать код ядра под новые границы. К сожалению это будет не просто, потому что много зависимого друг от друга кода. Меняешь одно место и нужно корректировать несколько других, чтобы тупо не "разъехалось".

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 19 сообщений ]  На страницу Пред. 1 2

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB