[Development] HTML5/CSS vs Qt QML and QtCreator / Assistant

Konstantin Tokarev annulen at yandex.ru
Mon Jul 1 15:56:02 CEST 2019



01.07.2019, 13:30, "Ville Voutilainen" <ville.voutilainen at gmail.com>:
> On Sat, 29 Jun 2019 at 14:34, Konstantin Tokarev <annulen at yandex.ru> wrote:
>>  29.06.2019, 14:27, "Konstantin Tokarev" <annulen at yandex.ru>:
>>  > 29.06.2019, 14:00, "Giuseppe D'Angelo" <giuseppe.dangelo at kdab.com>:
>>  >> Il 29/06/19 12:59, Konstantin Tokarev ha scritto:
>>  >>>> This makes the exercise an couple of orders of magnitude harder, not
>>  >>>> simpler. Which cross platform, efficient, flicker-free, (possibly
>>  >>>> supported out of the box by some Qt module) ways are available right now
>>  >>>> to have a QWidget host another process' raster content?
>>  >>> Push rendered frames through QLocalSocket :)
>>  >>
>>  >> *BUZZER* wrong answer: I asked for _efficient_. :-P
>>  >
>>  > For docs it may be efficient enough: we can render whole page and then scroll it
>>  > on client side
>>
>>  Or even better: split page into "tiles" (i.e. portions of page with height of viewport) and
>>  render long page as a sequnece of tiles. This would reduce time needed to show initial
>>  content.
>>
>>  (Idea borrowed from WebKit and simplified to extreme)
>
> That sounds curiously like "reimplement how Chromium renders web pages" to me.

Not exactly:

1. We don't have any updates, so all tiles are immutable
2. We don't need to support hardware acceleration for CSS animations, so we don't need
to create dedicated tiles for some of page elements
3. We can assume that page contents is properly flowed into column, so we don't need
to support tiling in horizontal direction, and tiling system is thus reduced to one-dimensional
array of immutable images
4. We also don't necessarily need to delay rendering of tiles until they are exposed (but this
may be a good additional feature)

If we include assumption #4, we can just render document paragraph-by-paragraph, encode
resulting images of paragraphs to PNG and send to UI process.


-- 
Regards,
Konstantin



More information about the Development mailing list