Taekyun Kim [Fri, 16 Oct 2015 10:31:37 +0000 (19:31 +0900)]
pepper: Add a touch grab func for touch point cancel
Change-Id: I319eb6583ee713df732c89408063705cc5802e78
Taekyun Kim [Fri, 16 Oct 2015 10:24:56 +0000 (19:24 +0900)]
shell: Send enter/leave when keyboard focus change
Change-Id: I17e10fa28d61f896e08d50840f9ce60e971128b9
Taekyun Kim [Fri, 16 Oct 2015 10:24:32 +0000 (19:24 +0900)]
pepper: Don't internally send enter/leave event for keyboard
Change-Id: I9fff0b38d531637c40b538476d5ab636655edcca
Taekyun Kim [Fri, 16 Oct 2015 10:17:19 +0000 (19:17 +0900)]
shell: Send enter/leave when pointer focus change
Change-Id: I8e5840dae2eca90d6e67d452d85fc963d06802a2
Taekyun Kim [Fri, 16 Oct 2015 09:46:35 +0000 (18:46 +0900)]
pepper: Don't internally send enter/leave event for pointer
Users are responsible for sending enter/leave events now.
Change-Id: I02f9cb5fc1ca56808c9a11e832a054328feab57e
Taekyun Kim [Fri, 16 Oct 2015 07:51:06 +0000 (16:51 +0900)]
pepper: Touch API implementation
Basic usage scenario.
1. Add a touch point when detecting touch down event.
2. Pick a view and set the focus for the point.
3. Move the touch point when detecting touch motion event.
4. Remove the touch point when detecting touch up event.
Send protocol events using pepper_touch_send_XXX APIs when desired.
Change-Id: Ie230ead5a438c835d8330d2bba57f2b6fd9fb358
Junghoon [Thu, 15 Oct 2015 10:14:54 +0000 (19:14 +0900)]
pepper: fix memory leak
Change-Id: I5da175d116a26f01a82ba26abe29ff070d12a9c5
Junghoon [Thu, 15 Oct 2015 08:15:06 +0000 (17:15 +0900)]
render: gl-renderer: fix memory leak
Change-Id: Ib3ade3f0f8e14f2f4edae7ba5ca8ef80d50b6d98
Junghoon [Wed, 14 Oct 2015 10:51:07 +0000 (19:51 +0900)]
pepper: keep buffer reference until buffer release
- and generate textures on flush_surface_damage()
Change-Id: I5dae68a8ef4a1b2af03ba332724260a9d5b18146
Taekyun Kim [Tue, 13 Oct 2015 10:35:22 +0000 (19:35 +0900)]
pepper: Render surfaces which dropped reference to the buffer
Change-Id: I3b3f34dc2c44e780e577fc7a1a8d03662065a9d5
Taekyun Kim [Tue, 13 Oct 2015 10:03:48 +0000 (19:03 +0900)]
render: Set clear color to opaque black
Change-Id: I68cf23acd1354385c6014b979f411109a0063983
Junghoon [Thu, 8 Oct 2015 09:41:13 +0000 (18:41 +0900)]
render: gl-renderer: implement buffer age management
Change-Id: I368d7fafbed11b9204d805e78779dacbfa7385e6
Taekyun Kim [Tue, 13 Oct 2015 06:36:08 +0000 (15:36 +0900)]
pepper: Release buffer when damage has been flushed
Reference to the buffer should be hold by the backend if required.
Change-Id: Id9eaaaed10c95ffd3cfe9e32a0e788e0b19680c1
Taekyun Kim [Tue, 13 Oct 2015 06:35:22 +0000 (15:35 +0900)]
drm: Fix double-free error when a monitor is plugged
Change-Id: I68e071936b54d7efcb326ed769e48f270e3c5dd9
Taekyun Kim [Tue, 13 Oct 2015 06:34:40 +0000 (15:34 +0900)]
samples: drm-backend: Get tty number from env var
Change-Id: I90a544e5e75f1d91b403b45efda27583c40e7512
Jaehoon Jeong [Mon, 12 Oct 2015 13:40:52 +0000 (22:40 +0900)]
shell: Replace xdg-shell.xml
Change-Id: I11b809900f9e7b2ef65423de99ffadedac9ef634
Seunghun Lee [Mon, 12 Oct 2015 10:27:02 +0000 (19:27 +0900)]
pepper: decrement state reference
Change-Id: I90f7d3a792f2726c4768c1b0011fb5d55e83600b
Taekyun Kim [Wed, 7 Oct 2015 06:07:07 +0000 (15:07 +0900)]
pepper: Selectively inherit transform from parent of a view
Change-Id: Ib14da2f6c6a49fe0d41a1f24483dba6d6e7bf5a8
Jaehoon Jeong [Wed, 7 Oct 2015 06:43:46 +0000 (15:43 +0900)]
shell: bugfix in xdg_surface_set_parent
Change-Id: I51a7d3fcb91879b343414f54ea4e4a393f50f160
Taekyun Kim [Wed, 7 Oct 2015 07:00:52 +0000 (16:00 +0900)]
build: Add missing requirement for xkbcommon in pepper.spec
Change-Id: I7e65b626d6e41ef111c0bf6d2b812a9dab520060
Junghoon [Wed, 7 Oct 2015 05:32:36 +0000 (14:32 +0900)]
drm: bugfix. change back_fb_index correctly
Change-Id: I507361ef29ff850528da71a4bb583b5e6f3c1cdc
Jaehoon Jeong [Wed, 7 Oct 2015 04:46:19 +0000 (13:46 +0900)]
shell: Send ping when pointer focus view is changed
Change-Id: I6e49b9a8b2f9c668d4cb974d8c1b75672746a713
Jaehoon Jeong [Tue, 6 Oct 2015 08:58:23 +0000 (17:58 +0900)]
shell: Give keyboard focus to new toplevel shell_surface
Change-Id: I3eff7129774b76f413c6c713b3e22b264b6060f5
Jaehoon Jeong [Tue, 6 Oct 2015 07:31:33 +0000 (16:31 +0900)]
shell: Handle keyboard focus
Change-Id: I59fc00b7cf7d313db78c10372044b025dd50c684
Jaehoon Jeong [Tue, 6 Oct 2015 06:35:05 +0000 (15:35 +0900)]
shell: Add popup grab
Change-Id: I0851d7ed9611c7ae65823ddb103a90aaadf2454f
Jaehoon Jeong [Wed, 7 Oct 2015 04:34:32 +0000 (13:34 +0900)]
pepper: bugfix in pointer creation
Change-Id: I5a4b483d00d9b030afc0fa152e67598953bd3ed2
Jaehoon Jeong [Tue, 6 Oct 2015 09:11:09 +0000 (18:11 +0900)]
x11: Remove xkb feature from x11-input
Change-Id: I5cc682e8786afc63a965a408773fa07cea5ef05d
Jaehoon Jeong [Tue, 6 Oct 2015 07:30:30 +0000 (16:30 +0900)]
pepper: bugfix in keyboard creation
Change-Id: I74d30438a6526e537284c84af9bb2dca4f7a7907
Sangjin Lee [Wed, 7 Oct 2015 05:17:36 +0000 (14:17 +0900)]
Merge changes Id94140f2,Ia256af33,I43109f79,I573384b5,Ieb6f03b7, ...
* changes:
pepper: Support for setting NULL keymap
shell: Set keyboard focus when any pointer button pressed
pepper: send keyboard modifiers event
pepper: API for setting keymap
pepper: shell: Move default grab to the shell library
pepper: Bug fix when emitting seat's input object add/remove events
pepper: APIs for getting the seat of a pointer/keyboard/touch
Taekyun Kim [Tue, 6 Oct 2015 07:05:56 +0000 (16:05 +0900)]
pepper: Support for setting NULL keymap
Change-Id: Id94140f2af9ef2b90988b91a4fdca759d7107028
Jaehoon Jeong [Tue, 6 Oct 2015 06:41:26 +0000 (15:41 +0900)]
shell: Set keyboard focus when any pointer button pressed
Change-Id: Ia256af3323f8e6a0de70e2713fe261c8e18ba5bd
Junghoon [Mon, 5 Oct 2015 11:51:05 +0000 (20:51 +0900)]
pepper: send keyboard modifiers event
Change-Id: I43109f7907bc63e9189b38a7aa2c33b38ace7010
Junghoon [Mon, 5 Oct 2015 10:47:22 +0000 (19:47 +0900)]
pepper: API for setting keymap
- using xkb_keymap in libxkbcommon
Change-Id: I573384b5973c239144e2219c492171715a687c74
Taekyun Kim [Mon, 5 Oct 2015 09:40:55 +0000 (18:40 +0900)]
pepper: shell: Move default grab to the shell library
Change-Id: Ieb6f03b717b027c617bc2dd6232432a3c8094cec
Taekyun Kim [Mon, 5 Oct 2015 09:40:18 +0000 (18:40 +0900)]
pepper: Bug fix when emitting seat's input object add/remove events
Change-Id: Ided19e74761122f10ddb4fe244a4a6c009a912fc
Taekyun Kim [Mon, 5 Oct 2015 09:30:30 +0000 (18:30 +0900)]
pepper: APIs for getting the seat of a pointer/keyboard/touch
Change-Id: Id407266d85882cc042c2253297c874d1e17c15a0
Seunghun Lee [Mon, 5 Oct 2015 06:23:33 +0000 (15:23 +0900)]
pepper: Don't change given const argument of pepper_compositor_create().
Change-Id: I708cf94f0fa46a2745a90c5be6ca3b54eb05373e
Taekyun Kim [Thu, 1 Oct 2015 10:34:53 +0000 (19:34 +0900)]
pepper: Don't try to send input events when there's no focus
Change-Id: I41a6b8a163c6faf0cc335ca7160b1fb76486455e
Taekyun Kim [Thu, 1 Oct 2015 10:25:38 +0000 (19:25 +0900)]
pepper: Changed input grab APIs from start/end to set/get
Change-Id: Ie09e94355cee2e9aa2e0de7d97e235a8f7ea24f0
Taekyun Kim [Thu, 1 Oct 2015 09:49:54 +0000 (18:49 +0900)]
pepper: pepper_xxx_get_compositor() helper functions
Change-Id: I4c883dba9875337ffdde8ee9ab20e017fc9eeed8
Taekyun Kim [Thu, 1 Oct 2015 09:30:36 +0000 (18:30 +0900)]
pepper: Promote view coordinate conversion functions to APIs
Change-Id: Id884ec209120036aea4058130a088756923ef464
Taekyun Kim [Thu, 1 Oct 2015 09:23:02 +0000 (18:23 +0900)]
pepper: APIs for getting corresponding wayland object of a pepper object
Change-Id: Id5cc4777c8b1d0a3e45ac19f172f0a839b785565
Taekyun Kim [Thu, 1 Oct 2015 09:03:27 +0000 (18:03 +0900)]
pepper: Removed common focus managing object
Focus managing is different for each input objects.
Change-Id: I954468cda7aa1c41200a4f976df97f1134d0caba
Taekyun Kim [Thu, 1 Oct 2015 07:52:59 +0000 (16:52 +0900)]
pepper: API for setting pointer move velocity
Pointer position is calculated based on the following equation.
curr.x = prev.x + dx * vx;
curr.y = prev.y + dy * vy;
Velocity is not applied to absolute motion events.
Change-Id: I6bf2097eae83ef65422633b43279751cb26f6843
Taekyun Kim [Thu, 1 Oct 2015 07:45:36 +0000 (16:45 +0900)]
pepper: API for setting pointer clamp area
Pointer can never go outside the clamp area. Initial value is infinite area.
Change-Id: I832c55791cb499e17c01512fd9052cbd30946dec
Taekyun Kim [Thu, 1 Oct 2015 07:20:40 +0000 (16:20 +0900)]
pepper: Process input event before emit
There's no way to set pointer position now as it is determined by pepper as
a result of input event processing. Invoking grab functions and emitting
pointer events is just a result of the processing.
Change-Id: Iadccd1b25b97792908c47efa30593af4ce7fb1b5
Taekyun Kim [Thu, 1 Oct 2015 06:59:01 +0000 (15:59 +0900)]
pepper: Removed focus() function from pointer grab interface
Change-Id: Ie89768faafdce46d7db6d860c02ae48eebe315f3
Jaehoon Jeong [Thu, 1 Oct 2015 05:44:47 +0000 (14:44 +0900)]
shell: Add functions for view's initial position
- based on pointer position
Change-Id: I247277abb69576af6ca8e3bfad886bcdfbe82796
Taekyun Kim [Wed, 30 Sep 2015 08:47:12 +0000 (17:47 +0900)]
pepper: Add an API for getting socket name of a compositor
Change-Id: Ic3edf358096ce7c0c162a9658bb8a51c8bcd65f7
Taekyun Kim [Wed, 30 Sep 2015 08:44:44 +0000 (17:44 +0900)]
pepper: Use wl_display_add_socket_auto() for NULL socket name
Change-Id: I633a97cef42ac5be3eee1e5f9f8665d0eb5e41e9
Jaehoon Jeong [Thu, 1 Oct 2015 02:38:32 +0000 (11:38 +0900)]
shell: Fix fullscreen, maximized features
- minor bug fix for switching to maximized surface
- save correct values for unset
Change-Id: Ie774ee3589bcf22b7f09ba16d07e783636911698
Jaehoon Jeong [Wed, 30 Sep 2015 11:52:11 +0000 (20:52 +0900)]
shell: Ignore move/resize request in fullscreen, maximized, minimized state
Change-Id: Iac72a566ee187852e16213a084d4761e962f3f76
Junghoon [Tue, 29 Sep 2015 08:32:02 +0000 (17:32 +0900)]
render: pixman-renderer: implement repaint_view()
- apply transform matrix
- set filter
Change-Id: I5fb12ecceaa2247e426bec92e56ea686e78c95e7
Jaehoon Jeong [Wed, 30 Sep 2015 05:50:58 +0000 (14:50 +0900)]
shell: fix resize correctly
Change-Id: If5daa8d638f29a6411097194e2dc82b3b7647c95
Jaehoon Jeong [Wed, 30 Sep 2015 05:15:24 +0000 (14:15 +0900)]
shell: fix xdg_surface_set_window_geometry() work correctly
Change-Id: I88900f843ba420e3bc7bac6470e8e1cc5b0a3eb6
Jaehoon Jeong [Fri, 25 Sep 2015 05:29:05 +0000 (14:29 +0900)]
shell: Convert type of position to double from int
- minor code cleanup
Change-Id: I49ba0becf081abea61a08f9ccda1649152bf3b46
Junghoon [Thu, 24 Sep 2015 04:46:39 +0000 (13:46 +0900)]
render: gl-renderer: bugfix. correct vertex index for glDrawArrays()
Change-Id: Ia1647860b70fd1cc7d3bfbb1a910143059e5d621
Taekyun Kim [Wed, 23 Sep 2015 10:17:58 +0000 (19:17 +0900)]
samples: x11-backend - take socket name and renderer string as arguments
Change-Id: I21160b8a277ad8245fa8a28cd71481a3b9adcc55
Taekyun Kim [Wed, 23 Sep 2015 09:59:21 +0000 (18:59 +0900)]
render: Apply PEPPER_RENDER_CLEAR_BACKGROUND env var for gl renderer
Change-Id: Ie8a0ecb0e122b9fb4f19bc5ef9bdd806cc98fd7a
Taekyun Kim [Wed, 23 Sep 2015 09:51:04 +0000 (18:51 +0900)]
render: Clean up GL renderer code
Change-Id: I3afb2961c9e491da724f57fd8635ea3dbd4e44b0
Taekyun Kim [Wed, 23 Sep 2015 09:40:34 +0000 (18:40 +0900)]
render: x11: Fix GL renderer to work with x11 backend
Change-Id: Ied853914cd43c587a8f99f34bc12cfe8240535ac
Taekyun Kim [Wed, 23 Sep 2015 09:39:07 +0000 (18:39 +0900)]
pepper: Update output size when mode changes
Change-Id: Ic67da584ffce62405dd76879148a5e061d241185
Taekyun Kim [Tue, 22 Sep 2015 09:19:22 +0000 (18:19 +0900)]
pepper: Send focus enter event for newly bound pointer & keyboard
Change-Id: I15a442cf0d8efbb13e419f2be14beccb21074a14
Taekyun Kim [Tue, 22 Sep 2015 07:28:30 +0000 (16:28 +0900)]
pepper: Default keyboard grab
Change-Id: I6e2bf9fb6a49684445329756a876d9c438503d98
Taekyun Kim [Tue, 22 Sep 2015 07:27:01 +0000 (16:27 +0900)]
pepper: Maintain an array of pressed keys for keyboard
Change-Id: I3e78c6cffde723016f4d4631bba24132f6dc7c21
Taekyun Kim [Tue, 22 Sep 2015 06:39:47 +0000 (15:39 +0900)]
pepper: Fix error on checking keyboard and touch of a seat
Change-Id: I382fe3e14bb88f7f6c7933984c56338263966f18
Taekyun Kim [Tue, 22 Sep 2015 06:14:25 +0000 (15:14 +0900)]
pepper: Set keyboard focus when pointer left button is pressed
Change-Id: I9fee9e734dabdbb1c83e96b406fd699f48ba633f
Taekyun Kim [Tue, 22 Sep 2015 06:13:47 +0000 (15:13 +0900)]
x11: Poll for xcb event when the FD is set
Change-Id: I387942ab18662ab06a937e81e82405023251e07e
Taekyun Kim [Tue, 22 Sep 2015 02:26:03 +0000 (11:26 +0900)]
pepper: Ignore surfaces having no attached buffer
Change-Id: I9d5ca5041af3b6dd0daa63364127b6ad6bb940ac
Taekyun Kim [Tue, 22 Sep 2015 02:25:33 +0000 (11:25 +0900)]
pepper: Update surface size when attached buffer is destroyed
Change-Id: I7b7040eeef8c1b0be9d9a45b70927e6eeaf3cd67
Junghoon [Tue, 22 Sep 2015 01:59:11 +0000 (10:59 +0900)]
drm: implement assign_fb_plane()
- need to check format before create fb correctly
Change-Id: I891a21be80ed548ad7d2f956efe3116d1cf5cac5
Junghoon [Mon, 21 Sep 2015 06:27:22 +0000 (15:27 +0900)]
shell: bugfix for center position calculation
Change-Id: Iad5e27363e6c04dc7bd1e2b4e4f0336e9931fb12
Taekyun Kim [Mon, 21 Sep 2015 06:58:18 +0000 (15:58 +0900)]
pepper: Mark z-order as dirty for only modified views
Change-Id: I9f9513201db2e0ec579fa59b7c962ea36d54094c
Junghoon [Mon, 21 Sep 2015 05:47:28 +0000 (14:47 +0900)]
pepper: bugfix for view insertion & z-order setting
Change-Id: Ifa048d5c1a7c9df630a5cb2e92a72d6d970314e1
Taekyun Kim [Thu, 17 Sep 2015 08:45:55 +0000 (17:45 +0900)]
render: Clear background if PEPPER_RENDER_CLEAR_BACKGROUND is 1
Clear color is opaque black.
Change-Id: I5ae0c2f2d82aa66b4d3f44b90480adc8b95c9056
Taekyun Kim [Thu, 17 Sep 2015 08:26:21 +0000 (17:26 +0900)]
render: Use PIXMAN_OP_OVER
OVER should be default and op will reduce to SRC for XRGB formats by pixman
internally, so we can get same performance.
Change-Id: Ib4e9fceae169c35d7a54ed0e940fad441acb3fb2
Taekyun Kim [Thu, 17 Sep 2015 08:19:54 +0000 (17:19 +0900)]
pepper: Correctly manage view z-order
Views are stored in top to bottom z-order in lists.
Change-Id: Icc16e8232c650b834ca715e5bc996b84d02dfb64
Taekyun Kim [Thu, 17 Sep 2015 05:47:35 +0000 (14:47 +0900)]
shell: Use pepper grab for move and resize
Change-Id: I76c6b2ebd8e68802ca94c2d28f7026301dc9b328
Taekyun Kim [Thu, 17 Sep 2015 05:20:03 +0000 (14:20 +0900)]
common: Add gbs.conf to gitignore
Change-Id: I0f6d973d51bb17f28896702195cad592ca790949
Taekyun Kim [Thu, 17 Sep 2015 04:43:00 +0000 (13:43 +0900)]
pepper: Handle focus destroy signal correctly
Change-Id: I618c93487b48518908a06855c8209a38c2dfeb46
Taekyun Kim [Thu, 17 Sep 2015 01:06:26 +0000 (10:06 +0900)]
pepper: Pick surface views only
Other types of views (grouping, etc) are not pickable.
Change-Id: Ib77af7e058ad0947a2dbe364e5ab28608cbe6f90
Taekyun Kim [Wed, 16 Sep 2015 08:07:50 +0000 (17:07 +0900)]
pepper: Pointer default grab & event handling
Change-Id: Id4150549f7589cdacbe1af43384e6725e1809141
Taekyun Kim [Wed, 16 Sep 2015 08:06:14 +0000 (17:06 +0900)]
pepper: Emit event from input devices to logical input objects
Change-Id: Ib4b52fe79e80bad6c20712bf20ea830541519bf2
Taekyun Kim [Wed, 16 Sep 2015 08:04:04 +0000 (17:04 +0900)]
pepper: Use double for Change pointer coordinate value
Change-Id: I1e78e224031b2cc0c38084588fe7db442587a0c3
Taekyun Kim [Wed, 16 Sep 2015 08:02:17 +0000 (17:02 +0900)]
pepper: input bug fix
Change-Id: I6606b450038716aa9ba3b7be32cc25e6196b5925
Taekyun Kim [Wed, 16 Sep 2015 07:57:56 +0000 (16:57 +0900)]
pepper: use const qualifier for input grab arguments
Change-Id: I5427064d85378c43f6afa81e393df497d6091625
Taekyun Kim [Wed, 16 Sep 2015 07:51:17 +0000 (16:51 +0900)]
pepper: Relative motion as default
Absolute motion event should use PEPPER_EVENT_POINTER_MOTION_ABSOLUTE
Change-Id: I0840b1ccd704ad45eecaa380bd7b4c09e50799dc
Taekyun Kim [Wed, 16 Sep 2015 07:47:55 +0000 (16:47 +0900)]
shell: Initialize input devices when initializing shell
Shell may be loaded after input backend initialized. So, get input device
list and add them first.
Change-Id: Ie97e2601abfaf150fe5a8d38d3ac337c5f566730
Taekyun Kim [Wed, 16 Sep 2015 07:45:34 +0000 (16:45 +0900)]
pepper: input region should be infinite when not specified
Change-Id: Ibdcc54c94e8d56aab167b2ee1b493ea55a551232
Taekyun Kim [Wed, 16 Sep 2015 07:43:38 +0000 (16:43 +0900)]
pepper: Convenience function for handling events of an object itself
Change-Id: Ib82abe725ab53bd3adc2047127e26b47121a20b7
Taekyun Kim [Wed, 16 Sep 2015 05:04:40 +0000 (14:04 +0900)]
pepper: Support for input grab
Grab is a set of input event handlers for doing operations such as pointer
driven move, resize or something like navigating between windows.
Change-Id: I7b5ea467ea06e43dcd9620299724abe1a746615c
Taekyun Kim [Wed, 16 Sep 2015 04:47:26 +0000 (13:47 +0900)]
pepper: input focus & send events to clients
Change-Id: I6b4de8a6eff006202f4cc2e19abe7e7edeb1ac6d
Taekyun Kim [Wed, 16 Sep 2015 04:07:01 +0000 (13:07 +0900)]
pepper: Common behavior of pointer/keyboard/touch into a single object
1. wl_resource management
2. focus management
Change-Id: I44e7af40baf8ea490a3493acb757a1f8e9c4c4b9
Taekyun Kim [Wed, 16 Sep 2015 03:58:11 +0000 (12:58 +0900)]
shell: Remove default grab from the shell library
Default grab will be provided as a built-in functionality by the pepper.
Change-Id: Ie720c59352703770b84bf7110649d48dd74f38a0
Taekyun Kim [Wed, 16 Sep 2015 02:33:30 +0000 (11:33 +0900)]
pepper: Unified event IDs and input event structures into a single one
Change-Id: Ia324f94b2625f982aa20ecc8fdb5903999e681d0
Taekyun Kim [Mon, 14 Sep 2015 09:47:53 +0000 (18:47 +0900)]
pepper: More comprehensive name for output backend function flush_surface()
Renamed to flush_surface_damage().
Change-Id: Iaeab80b3b620edd4abf138a95c61054bdd6eadee
Taekyun Kim [Mon, 14 Sep 2015 09:20:41 +0000 (18:20 +0900)]
pepper: Fix memory leak while accumulating plane clip region
Change-Id: I0477b4b98fe3dcdfe666e5167327536ae098954e
Taekyun Kim [Mon, 14 Sep 2015 08:51:56 +0000 (17:51 +0900)]
pepper: Clear surface damage after it is flushed
If multiple views refer to a single surface, flush damage might be called
multiple times. Clearing the damage region will prevent it.
Change-Id: I04466f0f04c96cff554ad43c3dffeeccf89becf5
Taekyun Kim [Mon, 14 Sep 2015 08:51:23 +0000 (17:51 +0900)]
pepper: View update process refactoring
1. Repaint scheduling
Now, repaint is scheduled only when a view is marked as dirty.
We have four dirty flags.
PEPPER_VIEW_GEOMETRY_DIRTY : Position, Size, Transform
PEPPER_VIEW_ACTIVE_DIRTY : Activeness state
PEPPER_VIEW_Z_ORDER_DIRTY : Z order (stack order)
PEPPER_VIEW_CONTENT_DIRTY : Content of the view (surface.commit)
2. Output Repaint
We update all views in the compositor before trying to repaint an output.
Views internal state (global transform, bounding region, opaque region...)
will get updated and damages will be generated on planes where the views
belong to.
3. View picking
Picking is done using internal state that was recently updated not using
current state to pick a view that is actually rendered on the picking area.
Current state might have been changed since last rendering.
However, input region test is done using last committed surface state, but
if the client is doing the commit in response to the frame callbacks, that
should not be a problem.
If we want to pick a view based on the current state, we have to update all
views first. If this behavior is needed, we have to make a new API.
4. Surface damage flush
Surface damage is modified to be flushed only when it is actually needed.
Change-Id: I643d8efbbc24d1d404b2209097c36f248e3a9fe0
Taekyun Kim [Mon, 14 Sep 2015 07:17:41 +0000 (16:17 +0900)]
render: Fix missing pixman_image_unref() when attaching a new buffer
Change-Id: I295d6a6ddd26fae07e6e1e8012deae11b1c1aaed