Board.KolibriOS.org

Official KolibriOS board
It is currently Sat May 25, 2019 12:18 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 19 posts ]  Go to page Previous 1 2
Author Message
PostPosted: Thu Apr 17, 2014 5:14 pm 
Offline

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


Attachments:
frame.gif
frame.gif [ 1.63 KiB | Viewed 1252 times ]
Top
   
PostPosted: Thu Apr 17, 2014 6:09 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
lev wrote:
Возможно функция дырозаполнения сможет учитывать все рамки окна и косвенно повлияет и на другие функции рисования.

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

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

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


Top
   
PostPosted: Fri Apr 18, 2014 8:39 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Serge wrote:
Quote:
В WinAPI такая фича с пустотами есть, чем мы хуже?
Фича есть, используется редко, когда надо что-то совсем нестандартное
Ну у нас-то не как у них :) Здесь, может быть, наоборот, часто будет использоваться.

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

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

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

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


Top
   
PostPosted: Fri Apr 18, 2014 8:53 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
0CodErr wrote:
А неужели так сложно при отсечении учесть ещё и window.BORDER_SIZE?

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

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 19 posts ]  Go to page Previous 1 2

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited