- Mar 20, 2015
-
-
Pekka Paalanen authored
Create a new function weston_compositor_read_presentation_clock() to wrap the clock_gettime() call for the Presentation clock. Reading the presentation clock is never supposed to fail, but if it does, this will notify about it. I have not seen it fail yet, though. This prepares for new testing features in the future that might allow controlling the presentation clock. Right now it is just a convenience function for clock_gettime(). All presentation clock readers are converted to call this new function except rpi-backend's rpi_flippipe_update_complete(), because it gets its clock id via a thread-safe mechanism. There shouldn't be anything really thread-unsafe in weston_compositor_read_presentation_clock() at the moment, but might be in the future, and weston core is not expected to need to be thread-safe. This is based on the original patch by Cc: Derek Foreman <derekf@osg.samsung.com> Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Bryce Harrington <bryce@osg.samsung.com>
-
Jonas Ådahl authored
If the client calls wl_pointer.set_cursor with the same surface and hot spot coordinate that is already set, don't do anything as no state was changed. This avoids an issue where a client setting the same cursor surface multiple times would receive wl_surface.leave/enter on that surface every time. Signed-off-by:
Jonas Ådahl <jadahl@gmail.com> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com>
-
- Mar 19, 2015
-
-
./ivi-shell/README:19: protocal ==> protocol ./src/compositor.h:596: seperate ==> separate ./src/version.h.in:33: actualy ==> actually ./src/cms-helper.h:44: embeded ==> embedded ./protocol/fullscreen-shell.xml:65: seperate ==> separate ./protocol/xdg-shell.xml:150: auxilliary ==> auxiliary ./clients/window.c:1035: preferrably ==> preferably Signed-off-by:
Bryce Harrington <bryce@osg.samsung.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
first is for getting and binding to globals and the other one is for getting wl_shm.formats that are emitted after binding to wl_shm Signed-off-by:
Marek Chalupa <mchqwerty@gmail.com> Reviewed-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Mar 18, 2015
-
-
Derek Foreman authored
Now clamping width and height to a minimum of 1, 1 when drag resizing. Signed-off-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jasper St. Pierre <jstpierre@mecheye.net> Reviewed-by:
Bryce Harrington <bryce@osg.samsung.com>
-
The pixman-renderer is already performing transformations when compositing into the shadow buffer, we just need to get the damage co-ordinates right when copying from shadow to front. Signed-off-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Tested-by:
Thilo Cestonaro <thilo@cestona.ro>
-
Signed-off-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Tested-by:
Thilo Cestonaro <thilo@cestona.ro>
-
Signed-off-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
If an output is unnamed and devices are in seats, the strcmp will crash. Signed-off-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
If you have devices configured in seats with udev then the output names are tested with string compare. This fixes a potential crash on startup and device insertion. Signed-off-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Mar 11, 2015
-
-
Pekka Paalanen authored
Only needed in the source-clipped case, otherwise the boundingbox is already doing the necessary clipping. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Pekka Paalanen authored
Implement a way to do composition clipping with a region32 given in source image space. Pixman does not directly support this kind of operation at all. If you pixman_image_set_clip_region32() on a source image, it will be ignored unless you also pixman_image_set_source_clipping(image, 1); pixman_image_set_has_client_clip(image, 1); but then it takes the region from source image and still uses it in the destination coordinate space. For reference: http://lists.freedesktop.org/archives/pixman/2015-March/003501.html That is actually the intended behaviour in Pixman. This patch implements source clipping by taking each rectangle of the source clip region, wrapping that sub-rect of the source image in a new pixman_image_t, and compositing it separately. This might be very heavy as we are painting the whole damage the number of rectangles times, but practically always the number of rectangles is one. An alternative solution would be to use mask images of type PIXMAN_a1, render the source clip region in it, and set the transformation. You'd probably also want to cache those images. And because we use the mask to apply view->alpha, you'd have to use PIXMAN_a8 in those cases. v2: Fix a comment. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Pekka Paalanen authored
Move code from draw_view() into a new function draw_view_translated(). This new function is correct only if view_transformation_is_translation(). The test for view->alpha is moved into draw_view_translated() too, so we don't need to pass the pixman_op from draw_view(). The non-translation path is already using PIXMAN_OP_OVER, so it does not care about the alpha. v2: Fixed commit message. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Pekka Paalanen authored
Change the region argument types in repaint_region(), moving the final_region computation to the caller. The caller is in a better position deciding if source clipping is needed or if it can be intersected into the final_region via a simple translation. This avoids surf_region or source clip implying that the transformation is only a translation. The region_global_to_output() call is also moved into the callers so that repaint_region() would not modify caller-provided data. Modifying caller provided data could be surprising. This patch does not change the rendering output. v2: Remove unused source_clip argument. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Pekka Paalanen authored
Move code into a new helper function. No changes. v3: Add assert, and reorder this patch with adding view_transformation_is_translation(). Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Pekka Paalanen authored
A simple refactoring just to help readability. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Pekka Paalanen authored
Move the code computing the end-to-end transformation from repaint_region() into a new function pixman_renderer_compute_transform(). The code itself is not modified. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Pekka Paalanen authored
This will be used by pixman-renderer. v2: Fix doc typo. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Now that we have a buffer-to-surface matrix and the global-to-output matrix is in pixels, we can remove a large chunk of confusing code from the pixman renderer. Hopefully, having this stuff in weston core will keep the pixman renderer from gettin broken quite as often. This patch makes attempting zoom on the pixman-renderer render funny stuff. We didn't support zoom before, now it renders wrong instead of not zooming at all. [Pekka: adjust commit message] Tested-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Add matrix representations of these two transformations. Future patches will leverage these to simplify the coordinate transformation code. [Pekka: commit message] Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
We can greatly simplify weston_output_transform_coordinate now by simply multiplying by the output matrix and converting the result to fixed point. This patch fixes zoomed input behaviour on the nested backends (x11, wayland) which use absolute input coordinates. And probably also absolute input devices. The patch that broke this was "zoom: Use pixels instead of GL coordinates". Signed-off-By:
Derek Foreman <derekf@osg.samsung.com> [Pekka: adjusted coding style and message] Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Pekka Paalanen authored
The patch "zoom: Use pixels instead of GL coordinates" changed the meaning of weston_output_zoom::trans_x,trans_y from GL coordinate system to global coordinates. This patch is a minimal untested change to the rpi-renderer to try and follow up on that change. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Previously, the zoom functions used GL coordinates natively which doesn't work with the new output matrix calculations. This changes zoom to work in pixel coordinates to match the new output matrix format. This also cleans up the math in the zoom code substantially. This patch changes the meaning of weston_output_zoom::trans_x,trans_y, and doing so probably breaks zoom on the rpi-renderer and all absolute input devices. These problems are fixed by the following patches: rpi-renderer: minimal fix to zoom coordinates compositor: use weston_matrix_transform for weston_output_transform_coordinate [Pekka: added a comment] Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Previously, weston_output.matrix was in GL coordinates and therefore only really useful for the GL backend. This breaks zoom, which will be fixed by the following patch: zoom: Use pixels instead of GL coordinates [Pekka: added a comment to compositor.h, message] Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Pekka Paalanen authored
Also remove the now dead code from weston_output_update_zoom(). Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Pekka Paalanen authored
Remove several fields from struct weston_output_zoom as a consequence of removing animation_xy from it. Animation_xy was always empty, unused. Animation_xy was likely used by text_cursor_position implementation, but that was removed in commit a7af7043. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Rviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
This `for` statement needs corresponding braces. Signed-off-by:
Ryo Munakata <ryomnktml@gmail.com> Reviewed-by:
Giulio Camuffo <giuliocamuffo@gmail.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Mar 09, 2015
-
-
Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Signed-off-by:
Ryo Munakata <ryomnktml@gmail.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Mar 05, 2015
-
-
Certain circumstances may lead to the "force" clause in input_set_pointer_image() being reached when the current cursor is blank or unset. These are special cursors that don't have images, and they need to be handled differently than image cursors. This patch puts the special cursor handling in its own function and calls it from both places that need it. Previously only the frame callback handler did this correctly. Signed-off-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Mar 04, 2015
-
-
Pekka Paalanen authored
Implement support for weston_view_set_mask(). Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Tested-by:
Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com>
-
Pekka Paalanen authored
Support for scissor not implemented yet on cursor overlay or for direct scanout. Overlays OTOH use the boundingbox to compute their coordinates, so that should probably work. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Tested-by:
Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com>
-
Pekka Paalanen authored
Add API for setting a clip ('scissor' in the code) rectangle per view, in surface coordinates. Ivi-shell requires this feature to be able to implement the IVI Layer Manager API, which includes clipping of surfaces. The names weston_view_set_mask() and weston_view_set_mask_infinite() mirror the existing weston_layer_set_mask*() functions. This view clipping complements the weston_layer clipping, because view clipping is defined in surface local coordinates, while layer mask/clipping is defined in global coordinates. View clipping requires explicit support from the renderers. Therefore a new Weston capability bit is added: WESTON_CAP_VIEW_CLIP_MASK. Shells (and all users) of this new API are required to check the capability bit is set before using the API. Otherwise the rendering will not be what they expect. View clips are inherited through the transformation inheritance mechanism. However, there are restrictions. The clip rectangle can be set only on the root view of a transformation inheritance tree. The additional transformations in child views must not rotate the coordinate axes. These restrictions avoid corner cases in clip inheritance, and keep the renderer implementations as simple as they are right now. Renderers only need to do an additional intersection with the clip rectangle which is always aligned to the surface coordinate system. For more details, see the API documentation in the patch. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Tested-by:
Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com>
-
Pekka Paalanen authored
Expand weston_compositor_pick_view() so it is easier to read. Use short-hand variables, that make it easier to add one more test in the future. Write the output coordinate pointers only when returning non-NULL. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Tested-by:
Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Reviewed-By:
Derek Foreman <derekf@osg.samsung.com>
-
- Mar 02, 2015
-
-
Pekka Paalanen authored
Let's me easily exit ivi-shell when testing with the DRM-backend. Only available in ivi-shell developer mode. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Acked-by:
Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
Pekka Paalanen authored
Add a weston.ini option for ivi-shell to enable "developer mode". When developer mode is enabled, hook up the debug key bindings. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Acked-by:
Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
Pekka Paalanen authored
The code for the key binding that triggers debug key bindings, that is, the code that makes mod+SHIFT+SPACE work, used to live in shell.c. I want to make the debug key bindings available in ivi-shell too, so this code should be shared. Move it to core. The code was originally introduced in commit c509d2b1 so update the copyright in binding.c to reflect that. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Acked-by:
Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
Thanks Pekka for pointing that out. Signed-off-by:
Carlos Olmedo Escobar <carlos.olmedo.e@gmail.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Feb 27, 2015
-
-
Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
This rewrites basically all of the text inside xdg-shell to be up to date, clearer, and rid of wl_shell and X11 terminology. [jadahl: Added paragraph about popup surface mapping order.] Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-