Hi

I am developing an eInk paper based application. I have the server that runs webkit2gtk based applications and eInk devices that are connected to server via WiFi. Basically server renders image changes and sends them to device. User can use devices touchscreen to send click events to server.

The thing I want to do, but I don't know if it is possible, is to get viewport changes from draw signal. I want to get changed regions and image pixels from those regions because don't want to do full screen refreshes eInk display if it is not necessary.

As I understand I could do something like this, but I do not know how to do it exactly.
http://pastebin.com/1L8cNFfJ  (my test application)

1. Something is changed and need to be drawn.
Breakpoint 2, WebKit::PageClientImpl::setViewNeedsDisplay (this=0x78c670, rect=...)
    at ../Source/WebKit2/UIProcess/API/gtk/PageClientImpl.cpp:77
77 gtk_widget_queue_draw_area(m_viewWidget, rect.x(), rect.y(), rect.width(), rect.height());

2. WebKit Ui process draws changes to WebKitWebView widget cairo context.
Breakpoint 1, webkitWebViewBaseDraw (widget=0x782490, cr=0x7d3d80)
    at ../Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:409

3. Custom "draw" signal handler is triggered in application. I get cairo context as parameter. Can I render changes from 1. here? Is it possible? How to do it? 2014-07-01T11:54:51.499118Z web_view draw 1 {X: 150.000000, Y: 80.000000, W: 450.000000, H:225.000000} 0x0-d41d8cd98f00b204e9800998ecf8427e 2014-07-01T11:54:51.499175Z window draw 1 {X: 150.000000, Y: 80.000000, W: 450.000000, H:225.000000} 0x0-d41d8cd98f00b204e9800998ecf8427e

Breakpoint 1, webkitWebViewBaseDraw (widget=0x782490, cr=0x7d3d80)
    at ../Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:409
409    {
(gdb) c
Continuing.
2014-07-01T11:54:51.899118Z web_view draw 1 {X: 150.000000, Y: 80.000000, W: 450.000000, H:225.000000} 0x0-d41d8cd98f00b204e9800998ecf8427e




<https://www.google.si/search?q=I+am+curious&client=ubuntu&channel=fs&tbm=isch&tbo=u&source=univ&sa=X&ei=_a2zU8uXMsKN7Qa9iYGgBg&ved=0CBsQsAQ&biw=1615&bih=898>I am curious , why are there two web_view draw events for each change? What trigers the second call to webkitWebViewBaseDraw and sends the second web_view "draw" signal in point 3? I there way to avoid this? Maybe I can use window "draw" as it is triggered only once?

Thank you for answer.
Best

Miha




_______________________________________________
webkit-gtk mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-gtk

Reply via email to