Yuyeon Oh [Mon, 20 Jul 2015 15:51:27 +0000 (00:51 +0900)]
build: add pepper.spec for GBS build
- Generate several RPM packages at once
- Change license to MIT temporarily because of build error
Change-Id: I828ec16155942192cb90979c16e4b2513b21e055
Taekyun Kim [Tue, 21 Jul 2015 12:16:38 +0000 (21:16 +0900)]
pepper: view damage processing and repaint scheduling
1. Schedule repaint on all outputs when a view is modified.
2. Each output update views in the compositor's view list.
Updating the views will inflict damage on their belonging plane.
3. Each output gathers views visible on it.
4. Assign planes for the visible views.
5. Do repaint.
Change-Id: Ie3e05107a6b31908866eb90e4d4b3d37d5872fe8
Jaehoon Jeong [Tue, 21 Jul 2015 05:58:15 +0000 (14:58 +0900)]
gitignore: ignore generated files in procotol/
Change-Id: I2723de4d501dda00e8c7b821f0c61d972ed79d75
Yuyeon Oh [Mon, 20 Jul 2015 14:36:01 +0000 (23:36 +0900)]
build: add --disable-x11 option for tizen-wayland GBS build
Change-Id: Ic2e7b792ab5049db066cccad18e1550cd48bb4c8
Jaehoon Jeong [Tue, 21 Jul 2015 06:02:33 +0000 (15:02 +0900)]
desktop-shell: implement set_transient
Change-Id: I5f7b8fd3dfc18848a528a13be753fe30026e7a4f
Taekyun Kim [Mon, 20 Jul 2015 07:16:09 +0000 (16:16 +0900)]
build: Better dependency check between internal packages
Change-Id: I28236cd26f0a11b4e53005d8fb5e7f9c705e67dd
Jaehoon Jeong [Mon, 20 Jul 2015 06:32:46 +0000 (15:32 +0900)]
desktop-shell: Implement popup
- wl_shell_surface.set_popup()
- xdg_shell.get_xdg_popup()
- TODO: add popup grab
Change-Id: Icfb8dd8d50405b8d57c734e4bb11dad28cf7353d
Taekyun Kim [Mon, 20 Jul 2015 05:53:06 +0000 (14:53 +0900)]
doctor: Fix compiler warnings
Change-Id: I7945e1fe2af4068dcf5d3836acd17cc65dd406e8
Taekyun Kim [Mon, 20 Jul 2015 05:26:30 +0000 (14:26 +0900)]
build: Fix build failure and some clean up
Change-Id: I133468f4897703ee62b6a5717cf38902804fb65b
Yuyeon Oh [Thu, 16 Jul 2015 09:43:22 +0000 (18:43 +0900)]
build: autoconf all source tree at once
Integrate all configure.ac files into one file in root directory.
You can't use sub directories' configure file any more.
TODO - enable or disable each sub module build separately
ex) --enable-pepper-core
Change-Id: I98c95563cc1fa2bcfbf9e4f902ac09a71505415d
Yuyeon Oh [Thu, 16 Jul 2015 07:35:31 +0000 (16:35 +0900)]
build: refactor source tree
before
/pepper/src
/$submodule/src
...
after
/src/pepper
/src/$submodule
...
Change-Id: If418af10a2d2f9f8018de1b4ec26211b772a4b49
Jaehoon Jeong [Wed, 8 Jul 2015 05:10:15 +0000 (14:10 +0900)]
desktop-shell: Implement set_title, set_class, set_appid
- In wl_shell_surface.set_class(), the surface class identifies the general
class of applications to which the surface belongs.
So we can use it for xdg_surface's app_id as application identifier.
Change-Id: I31a4362d0da141cc06f971736c79aa7e680ff6ad
Taekyun Kim [Thu, 16 Jul 2015 05:25:14 +0000 (14:25 +0900)]
pepper: Output backends correctly consume damage region
Change-Id: I2a7f4edfa01010e1db45efb243a543fe1b77626c
Taekyun Kim [Wed, 15 Jul 2015 10:47:22 +0000 (19:47 +0900)]
pepper: Send frame callback done after finishing repaint
Change-Id: I9e0ce916c4e528b40f1fc20efaefe19f32939033
Taekyun Kim [Wed, 15 Jul 2015 10:19:50 +0000 (19:19 +0900)]
pepper: Separate header file for input backend devel
Change-Id: I60d42f508c0f89900fb6922741b634d10c4b0323
Taekyun Kim [Wed, 15 Jul 2015 10:10:37 +0000 (19:10 +0900)]
pepper: Better type names for pepper objects
Type names are restored to original names. You should do manual type casting
when using object APIs instead.
Change-Id: I7f8d5796a53867d759fc3993c27b58da692143e2
Taekyun Kim [Wed, 15 Jul 2015 08:09:16 +0000 (17:09 +0900)]
pepper: pepper_plane_t and per-plane damage processing
Plane is a logical rendering surface maintaing its own damage region. A plane
belongs to an output and a view can be on a plane per output at a time.
<< Overall Data Relationship >>
* Compositor
- output list
- view list in sorted z-order
* Output
- plane list
* Plane
- plane entry list
- damage region
- clip region (obscured by other planes)
* View
- Geometry (position, size, transform)
- plane entries
<< Output Repaint Scheduling >>
* surface.commit() causes all outputs to be scheduled to do repaint.
* Repaint is scheduled on an output when one of its plane gets damaged.
<< Output Repaint Process >>
* Update geometry of all views in the compositor.
* Build a list of views that overlap with the output rectangle.
* Ask output backend to assign a plane of each view in the list.
* Build a list of plane entries for the views assigned to each plane.
* Accumulate damage for each plane.
* Call backend.repaint()
<< Damage Processing >>
* Geometry & Z-order change
- Inflict damage instantly with current visible region of the view on each
plane where the view belongs to.
- Mark it as damaged. Damage accumulation function should add visible region
of damaged views to the planes.
* Plane move
- Inflict damage instantly on previous plane and mark it as damaged.
* Surface damage
- Added while accumulating plane damage.
Change-Id: I7c4bd95f439f0cf0356bcbf2f060b09800ea4528
Jaehoon Jeong [Wed, 8 Jul 2015 05:01:43 +0000 (14:01 +0900)]
desktop-shell: Implement set_toplevel
- In surface type setting api cases, server tracks client's request and
actual mapping done in shell_surface_map_xxx() when surface.commmit()
called
- type setting scenario
1. client send request for shell_surface.set_something()
2. server track states
3. server send configure event
4. client post a new frame in reponse of the configure event with commit request
5. server apply changed states
Change-Id: I0dc7d731ad05e407efb69a3ed571eada3acc7830
Junghoon [Wed, 8 Jul 2015 09:55:59 +0000 (18:55 +0900)]
libinput: change struct libinput_seat to struct li_seat
- struct libinput_seat exists in libinput library
- and change function prefix in the same way
Change-Id: I92758d08dbc61996bcce839c16ac69ced67a45fc
Taekyun Kim [Wed, 8 Jul 2015 07:43:37 +0000 (16:43 +0900)]
pepper: Output ID allocation.
It is useful allocating an integer ID for an output. We allocate a bit in a
32-bits unsigned integer. In this way, we don't have to maintain a list of
outputs and checking whether an integer contains a certain output is much
easier.
Change-Id: I42a4b309b6b94b8a9ca20f4b6c526e23922b96a6
Taekyun Kim [Wed, 8 Jul 2015 06:06:35 +0000 (15:06 +0900)]
pepper: Renamed pepper_xxx_interface_t to pepper_xxx_backend_t
Functions that are used by pepper modules should be hidden from users so that
only those modules can call the functions. We need some structures to pass to
the modules for those functions. As "interface" is more natural name for that,
previous "interface" is now renamed to "backend".
Change-Id: I02d6ec5e13a98532a88746790df36248818cb185
Jaehoon Jeong [Fri, 3 Jul 2015 06:07:11 +0000 (15:07 +0900)]
desktop-shell: Implement common ping-pong mechanism between wl_shell and xdg_shell
- Move ping-pong's ownership to shell_client_t from shell_surface_t
for support xdg_shell.pong()
- Shell module may send ping to shell_surface_t,
for check that surface can take focus.
- fix typo
Change-Id: Iaeba2986991e1242d74039100052fc41a80fef8f
Yuyeon Oh [Thu, 2 Jul 2015 09:47:27 +0000 (18:47 +0900)]
render: fix pixman repaint()
- Add NULL check
- Indent
Change-Id: Ieb4006cd804fc64a9d961e64e91776a1d676cfd2
Junghoon [Tue, 7 Jul 2015 07:19:58 +0000 (16:19 +0900)]
drm: bugfix: find crtc for output
Change-Id: I65ecb0ab0ce4b2b8b3110091c46b45903c7b1895
Junghoon [Tue, 7 Jul 2015 07:15:38 +0000 (16:15 +0900)]
render: do GL extension setup once
Change-Id: I28d8a19b26b545504cde7a585f232b9be952dfa8
Jaehoon Jeong [Fri, 3 Jul 2015 07:51:32 +0000 (16:51 +0900)]
x11: bug fix
Change-Id: Ice9f5e34e250d7e4ef2e7535cc9ea6574d1ebf9e
Jaehoon Jeong [Thu, 2 Jul 2015 07:08:14 +0000 (16:08 +0900)]
desktop-shell: Add dummy xdg-shell and update .gitignore
- add xdg-shell.c
- update Makefile.am
- update .gitignore for protocol related files
Change-Id: Iaa485170cf6f3c55542082d8981ffd6f7a026bd6
Jaehoon Jeong [Thu, 2 Jul 2015 06:51:33 +0000 (15:51 +0900)]
desktop-shell: Add desktop_shell_t and shell_client_t
Change-Id: I48cbb13a3c9995d2a084017a07e3754fbe47a0d0
Junghoon [Thu, 2 Jul 2015 09:58:51 +0000 (18:58 +0900)]
render: bugfix: set context in pepper_gl_renderer_create_target()
- prevent (context == EGL_NO_CONTEXT) when calling eglMakeCurrent()
Change-Id: If81126e0bd4aa053f8305dd1c15b64d17b7b1843
Yuyeon Oh [Tue, 23 Jun 2015 13:49:29 +0000 (22:49 +0900)]
render: initial impl. of pixman repaint()
Change-Id: I407c35b7df9448885eae25511737edb74b290510
Taekyun Kim [Thu, 2 Jul 2015 09:24:57 +0000 (18:24 +0900)]
pepper: Update view size when updating view geometry.
Change-Id: I2dff6069f6d6e921d12f25793fcd585ed337a72d
Taekyun Kim [Thu, 2 Jul 2015 08:41:28 +0000 (17:41 +0900)]
pepper: Attach surface to outputs on surface.commit().
Attaching a surface is a process of notifying output backends so that they can
prepare for reading it and allocate resources for it.
For some types of buffers like EGL, the size is not known until it is queried
to the native library. although we can get the size of a shm buffer using
wl_shm, we basically assume that the buffer size should be queried to output
backends. If the backend uses pepper_render, then it can simply redirect the
request to the renderer.
Change-Id: Ie145f9029447605116a81984431cdc5235dc1eca
Taekyun Kim [Thu, 2 Jul 2015 08:12:09 +0000 (17:12 +0900)]
pepper: view: Correctly access pepper_view_state_t in view_list.
Change-Id: If49a857ccc543c2d0cac176bd5c68bec130ee426
Taekyun Kim [Wed, 1 Jul 2015 07:20:50 +0000 (16:20 +0900)]
pepper: Remove useless code.
Change-Id: Ie341dfdbf42b5330410b8859f6fd000562a88c80
Junghoon [Wed, 1 Jul 2015 06:12:13 +0000 (15:12 +0900)]
fbdev: bugfix: create render target using shadow image
Change-Id: I387ce73a92d4fdc24133d0e2981d635ef822b6f0
Taekyun Kim [Wed, 1 Jul 2015 05:06:02 +0000 (14:06 +0900)]
render: pixman: Create a render target directly from a pixman image.
Change-Id: Ida36d7e065949935093e80aee08051824e26c096
Taekyun Kim [Tue, 30 Jun 2015 08:58:42 +0000 (17:58 +0900)]
pepper: Pass rendering related view states directly through the view list.
Change-Id: I954084ab5bf809317e8bb21b3fbb1454e045ed49
Taekyun Kim [Tue, 30 Jun 2015 05:37:32 +0000 (14:37 +0900)]
pepper: View bounding, opaque and surface damage region processing.
Change-Id: Ic033ae5babe85f92b8b33649baa63173c6b61d62
Taekyun Kim [Tue, 30 Jun 2015 04:31:16 +0000 (13:31 +0900)]
pepper: utils: GLSL-like geometric primitives.
Geometric primitives are renamed similar with that of GLSL and some more
functions are added.
Change-Id: If107b46b60fee528031a4fe55e7b337ab42ec95c
Taekyun Kim [Mon, 29 Jun 2015 09:47:12 +0000 (18:47 +0900)]
pepper: View size should be integer values.
Change-Id: I2a106aac9f4b9d4e59591c7247235743645e1c7c
Taekyun Kim [Mon, 29 Jun 2015 07:31:22 +0000 (16:31 +0900)]
pepper: View API refactoring to separate z-order from parent-child relation.
Sometimes we want parent-child relationship to affect only transform of the
child not z-order. By separating z-order contraint from parent-child
relationship, we can do much more things with the APIs. For the previous style
stacked views, APIs that are changing z-order now take subtree argument
indicating whether entire subtree movement or just the individual view.
Change-Id: I7c50fae2b8dcabb336571f7dc2b93ca5d161e66c
Junghoon [Thu, 25 Jun 2015 07:05:11 +0000 (16:05 +0900)]
samples: add signal handling codes for SIGSEGV, SIGABRT
- and some change for cleanup
Change-Id: Ic52d7088b197027a443e231fe406acc0730573ea
Junghoon [Thu, 25 Jun 2015 05:36:20 +0000 (14:36 +0900)]
drm: add renderer parameter to pepper_drm_create()
Change-Id: I91d307a8648a93cebf378d76dc0f6fc44fd6f73a
Yuyeon Oh [Wed, 24 Jun 2015 08:02:31 +0000 (17:02 +0900)]
pepper: add pepper_view_get_visible_region()
Change-Id: I627eb9328f8886d077174015255a12cd54048982
Junghoon [Wed, 24 Jun 2015 08:13:39 +0000 (17:13 +0900)]
fbdev: bugfix: correct size parameter of munmap
Change-Id: I8b4a0b4daaff5c559a3eb6b1bb46af5292c4ec0e
Junghoon [Wed, 24 Jun 2015 07:25:26 +0000 (16:25 +0900)]
fbdev: rendering to shadow image
Change-Id: Ief61664faead1304fda0db79c5d204e59c073710
Junghoon [Wed, 24 Jun 2015 07:23:54 +0000 (16:23 +0900)]
pepper: move get_pixman_format() to pepper-utils
Change-Id: I760a6540827361435c810921b1dab39ee98f049c
Junghoon [Tue, 23 Jun 2015 12:12:59 +0000 (21:12 +0900)]
pepper: implement virtual terminal setup/restore
Change-Id: I7c84d04d8f2ba708fa47ae79a4a5515c042de9a3
Junghoon [Tue, 23 Jun 2015 12:04:32 +0000 (21:04 +0900)]
render: fix SIGSEGV at gl_render_target_destroy()
Change-Id: I534727a23911c1a3b50eb84efb54e36b8a50c8ca
Taekyun Kim [Tue, 23 Jun 2015 08:57:41 +0000 (17:57 +0900)]
etc: Added fbdev-backend binary file to gitignore
Change-Id: I565b4e53576cd4d3556e209c994c6f2bd6c5d226
Taekyun Kim [Tue, 23 Jun 2015 06:20:37 +0000 (15:20 +0900)]
pepper: Now view list and damage is passed to the repaint function.
Damage region and view list is required to do repaint. Now they are passed as
arguments in the repaint interface function.
Change-Id: Ib69a6322ad0e21bc273aa3f16eefee15ecb0720b
Taekyun Kim [Tue, 23 Jun 2015 05:35:58 +0000 (14:35 +0900)]
pepper: Accumulate output damage and automatically schedule repaint.
Damage is maintained per output and is passed to the repaint function.
Damage region is in output local coordinate space so an output backend should
be careful not to translate it to global compositor space.
No damage, we have nothing to repaint. So, we can safely schedule repaint
whenever damage is generated. Essentially, we don't have to expose repaint
scheduling APIs.
Change-Id: Iebff5fec5f93d764a8ea8894b7f84c8ded9c59c3
Jaehoon Jeong [Fri, 19 Jun 2015 04:14:08 +0000 (13:14 +0900)]
samples:x11: add desktop_shell_init()
Change-Id: I6ef909e34d6ac4f6740c267e315240a6271df8ff
Jaehoon Jeong [Fri, 19 Jun 2015 03:51:31 +0000 (12:51 +0900)]
desktop-shell: implement shell_surface's ping-pong
- TODO: display/undisplay the \'wait cursor\'
Change-Id: I8f725f534784fea48b000fbd26b484e1c31727e9
Junghoon [Fri, 19 Jun 2015 01:39:32 +0000 (10:39 +0900)]
drm: apply dynamic render target setup
- create gl & pixman renderers
- set render target
- minor bug fixes
Change-Id: I7f02e538b99869e22832b775478b0662f188100c
Junghoon [Fri, 19 Jun 2015 01:19:05 +0000 (10:19 +0900)]
fbdev: minor bugfix
- fix size parameter in mmap()
Change-Id: Id970f24e13ff3d455959fe4f4f0e7173263ce4b6
Taekyun Kim [Thu, 18 Jun 2015 08:29:55 +0000 (17:29 +0900)]
x11: Fixed incorrect height value on shm put image.
Typo error.
Change-Id: Iadf379715b927aaa2979b785c92417f6a8066a79
Taekyun Kim [Thu, 18 Jun 2015 08:27:17 +0000 (17:27 +0900)]
x11: Don't check success of gl renderer creation as it is optional.
Fall back to pixman renderer when gl renderer creation fails.
Change-Id: I530ae4f2e1425c13902d2b9c0e57f586513919c0
Jaehoon Jeong [Thu, 18 Jun 2015 07:45:50 +0000 (16:45 +0900)]
desktop-shell: implement wl_shell::get_shell_surface, wl_shell_surface::set_toplevel
- a little implementation
Change-Id: I72ea10abcdc781ba1c3e0141d6203cbb894aea77
Yuyeon Oh [Wed, 17 Jun 2015 07:01:17 +0000 (16:01 +0900)]
render: add dummy output_damage parameter
Change-Id: If9c18f10a85a4d1200ffe3ed1fa2a8b30fafcde0
Taekyun Kim [Wed, 17 Jun 2015 09:30:15 +0000 (18:30 +0900)]
render: Refactored to support dynamic render target setup.
Now, we can switch the render target of a renderer dynamically. With this, we
can create one EGLContext for multiple native windows so that we can save OpenGL
resources and texture download cost.
Additionally, some renderer APIs are added for surface attach and damage flush.
Modules that were using old APIs are modified to use new APIs. Essentially, the
root object (i.e. pepper_drm_t) creates renderers, and each output chooses its
desired renderer and points to the renderer. pepper_render_target_t is created
for an output and it is set as a render target of the renderer when repaint.
Some messy codes are cleaned up while rewriting for the new APIs. But still got
a lot more, especially, codes taken from weston.
Change-Id: I5c9796c44f74efa3aa735396f58c6499a817937b
Jaehoon Jeong [Wed, 17 Jun 2015 06:32:26 +0000 (15:32 +0900)]
desktop-shell: Add xdg-shell.xml and generate .c/.h from xml
Change-Id: Ida4655ac98cf0fdbfe82d4a3419f4d0733310064
Junghoon [Tue, 16 Jun 2015 07:29:32 +0000 (16:29 +0900)]
fbdev
- add renderer parameter to pepper_fbdev_create()
Change-Id: I4c153f95b502d03564f551a6257827aae2209797
Junghoon [Tue, 16 Jun 2015 07:21:59 +0000 (16:21 +0900)]
bugfix
Change-Id: Ic64fd9bfe42867ea896c46a2ada41cbf966514de
Taekyun Kim [Tue, 16 Jun 2015 04:37:56 +0000 (13:37 +0900)]
pepper: Introducing generic pepper_object_t.
Pepper objects have several similar functions, so abstracting such functions
into a generic object would be more convenient.
* List of pepper_object_t
- pepper_compositor_t
- pepper_output_t
- pepper_surface_t
- pepper_buffer_t
- pepper_view_t
- pepper_seat_t
- pepper_pointer_t
- pepper_keyboard_t
- pepper_touch_t
Change-Id: I6812a596fe2363a1261ebcd8d9fd715d29f4fda3
Taekyun Kim [Mon, 15 Jun 2015 08:31:07 +0000 (17:31 +0900)]
pepper: Commit only newly attached buffer.
As a client can attach a NULL buffer, it is impossible to know that the buffer
is newly attached or not by doing NULL check.
Change-Id: Ieeecc8530b8afa5c5058ad0cc8354265a782495a
Junghoon [Mon, 15 Jun 2015 07:49:57 +0000 (16:49 +0900)]
Remove useless "return;" statements
Change-Id: Ie0492ace4e059b4ef283bbf00ca5c8945267ca17
Junghoon [Fri, 12 Jun 2015 08:12:46 +0000 (17:12 +0900)]
fbdev: initial implementation
- use libinput & pixman renderer
- just clear screen once
Change-Id: I1b2470734d220c51a7b816a6d38a0d3bdbc9f996
Yuyeon Oh [Fri, 12 Jun 2015 07:38:49 +0000 (16:38 +0900)]
pepper: fix variable name
Change-Id: I0a4841201a9a3a26a43b936c9f0d0e67a77e5e9b
Taekyun Kim [Fri, 12 Jun 2015 04:19:45 +0000 (13:19 +0900)]
pepper: Basic matrix APIs
Matrix initialization, multiplication and some utility functions.
Change-Id: I3e40cc503d6d7109547e05739321ea64d393117b
Yuyeon Oh [Thu, 11 Jun 2015 12:36:53 +0000 (21:36 +0900)]
pepper: add initial log system
Default output file is stdout.
log example is below.
"Date: 2015-06-11 KST
"[21:36:35.164] DOCTOR: start doctor server 0
"[21:36:35.164] PEPPER: compositor.c:pepper_compositor_create: Failed to add socket display = 0xe60a20 socket_name = wayland-0
(" is added to avoid git commit ID recognition)
Change-Id: I32cf1d5fed59e5dbcef1f3ba49540df476246de6
jh01.j [Thu, 11 Jun 2015 06:17:40 +0000 (15:17 +0900)]
review: pepper: surface: add some codes
- Add pepper_surface_schedule_repaint() function
- Add wl_list_remove() for remove surface from compositor->surfaces list in destroy
Change-Id: I5ac6a701028db75c1fcd7c7c046c2329181b22dc
jh01.j [Thu, 11 Jun 2015 05:46:23 +0000 (14:46 +0900)]
x11: bug fix
- input: bug fix
- output: add pepper_pixman_renderer_set_target() function
Change-Id: I919db33f5ade8134545c1e0d9792a93b8b52c278
jh01.j [Thu, 11 Jun 2015 05:35:10 +0000 (14:35 +0900)]
pepper: input
- Add wl_seat_send_capabilities() in bind_seat()
- Add tiny pointer_motion and pointer_button event handler
Change-Id: I8d2dfd537535cda6e7b8f29896e65e86fca12f0a
Taekyun Kim [Thu, 11 Jun 2015 02:19:30 +0000 (11:19 +0900)]
pepper: View damage processing
Damage processing algorithm.
1. inflict damage for current visible area of a view when geometry or z-order
change. Mark those views as "need_damage" so that damages for updated
visible regions are getting inflicted.
2. Build a list of views sorted in z-order.
3. Do following things while traversing the view list from front to back
a. update view geometry
b. calculate visible region of the view : visible = bounding - opaque
c. inflict damage for visible region of the view if marked as "need_damage"
d. inflict damage for surface damage set by the client
e. accumulate view's opaque region on the global opaque region
Now we have total damage region in compositor->damage_region.
Change-Id: I06c7098bb7edc954172177ee36442800d2b3ce26
Taekyun Kim [Wed, 10 Jun 2015 09:43:12 +0000 (18:43 +0900)]
pepper: Fixed a bug in pepper_map_get().
Change-Id: Iecc5dccb455379637b86b365d769dd90b8c7f2ce
Taekyun Kim [Tue, 9 Jun 2015 07:07:29 +0000 (16:07 +0900)]
pepper: Merged pepper-utils package into pepper.
Change-Id: I00c82ea2e0e8745ee83a74647cfa7a35e732ec07
Taekyun Kim [Tue, 9 Jun 2015 06:38:51 +0000 (15:38 +0900)]
pepper: APIs for accessing root views of a compositor
These APIs are required for users to be able to traverse the view tree.
Change-Id: Icbd188a37ec5dca28a15a9d90182386163b27762
jh01.j [Tue, 9 Jun 2015 06:16:01 +0000 (15:16 +0900)]
x11: fix some logics
- implement destroy functions
- input: add capabilities
- output: move wl_event_source_timer_update() function to generate frame_callback in
gl-rendering case
Change-Id: Ia31e988092bb62f44febfcaf9355e94187d210e3
jh13.son [Mon, 8 Jun 2015 10:34:54 +0000 (19:34 +0900)]
drm: output - handle drm output device add/remove
Change-Id: I7e7c8dac815f9b804341033d26a138b3c85845dc
Taekyun Kim [Thu, 4 Jun 2015 09:40:02 +0000 (18:40 +0900)]
pepper: View API Refactoring
Change-Id: Ide15b28522cac54ab67ce820b3b62ae4f62258b3
Taekyun Kim [Thu, 4 Jun 2015 09:09:47 +0000 (18:09 +0900)]
Correctly specified pkgconfig Requires.private field
Change-Id: Iace43a6546fbbbe497084250fb70eba4b3bbe491
Taekyun Kim [Thu, 4 Jun 2015 08:16:02 +0000 (17:16 +0900)]
Replace wl_container_of with pepper_container_of
wl_container_of requires a variable to be declared to get the pointer to the
container. We can avoid this by using pepper_container_of by giving a type name
instead of the variable name.
Change-Id: I9afbe84f3177e41e577f0c9d6cad628e9216ceb3
Taekyun Kim [Wed, 3 Jun 2015 05:57:32 +0000 (14:57 +0900)]
pepper: APIs for accessing surface region information
Change-Id: I6d5fe86a308b757dc28b577a70a34f425a49bf86
Taekyun Kim [Wed, 3 Jun 2015 05:47:30 +0000 (14:47 +0900)]
Fixed various errors & bugs
Change-Id: I536531a3507fc493b7162e6b73fd548c12757265
Taekyun Kim [Mon, 1 Jun 2015 08:50:36 +0000 (17:50 +0900)]
Split source tree into separate libraries
Now the repository contains several packages. Each package is a separate
library or a bin program. Followings are brief descriptions of directories.
===============================================================================
pepper | Pepper core library package.
-------------------------------------------------------------------------------
render | Rendering library (pixman, OpenGL)
-------------------------------------------------------------------------------
desktop-shell | Desktop shell library
-------------------------------------------------------------------------------
drm | DRM output backend library
-------------------------------------------------------------------------------
libinput | Libinput input backend library
-------------------------------------------------------------------------------
wayland | Wayland output/input backend library
-------------------------------------------------------------------------------
x11 | X11 output/input backend library
-------------------------------------------------------------------------------
utils | Utility library
-------------------------------------------------------------------------------
samples | Sample programs for testing pepper libraries
-------------------------------------------------------------------------------
doctor | Reference server using pepper libraries
===============================================================================
Renderer is no longer a core object, instead, output libraries can freely use
it by linking against separate libpepper-render.
pepper_output_schedule_repaint() is now exposed as an API.
Put utility functions on the pepper-utils package.
Need a build script which takes options for enabling or disabling each library.
Change-Id: I5c686d158ea61056cd517f29c4eda4b2d4c7877a
jaehoon01.jeong [Mon, 1 Jun 2015 08:40:17 +0000 (17:40 +0900)]
event: function rename
pepper_compositor_remove_event_hook -> pepper_event_hook_destroy
Change-Id: Ie0a1701094a5b79f79fc34d0516c34ca459f996d
jaehoon01.jeong [Fri, 29 May 2015 05:45:33 +0000 (14:45 +0900)]
event: add event hook
1. Every modules, to want to handle input events, are use
pepper_compositor_add_event_hook() to placing event handler, even
compositor itself
2. pepper_compositor_add_hook() insert a new hook at the head of hook_list
3. pepper_seat_handle_event() traversing hook_list from head to tail, and
call hook_handlers
4. last installed hook called first.
Change-Id: I6b26754dee0c6129afd67010175df395df67fdd4
jh13.son [Wed, 27 May 2015 05:09:41 +0000 (14:09 +0900)]
gl-renderer: bugfix
Change-Id: Idb11798b139ce97eb925df67f173757bccc2380b
jh13.son [Tue, 26 May 2015 11:02:22 +0000 (20:02 +0900)]
Fix warnings
Change-Id: I1a67ad4b5ed7aec35084ae991e07590a1ccbbbe8
jh13.son [Tue, 26 May 2015 10:36:58 +0000 (19:36 +0900)]
Input implementation
- implement open & close functions for libinput library
- bug fix
Change-Id: If9a061be4a85a0385b14bd1a03f466892732e67c
jh13.son [Fri, 22 May 2015 11:07:33 +0000 (20:07 +0900)]
drm backend implementation
- output implementation
- initial version
- create framebuffers
- draw using gl-renderer or pixman-renderer
- add test code
Change-Id: I136872213c54ef887c3a58cbccad95b7f01d1801
jh13.son [Fri, 22 May 2015 10:28:54 +0000 (19:28 +0900)]
gl-renderer: bugfix
Change-Id: Ibff85542e89f4233de7b84103b90e5d8788c5490
Taekyun Kim [Fri, 22 May 2015 05:03:32 +0000 (14:03 +0900)]
gl-renderer: pixman-renderer: Refactor surface attach code
Change-Id: I14874b2b653b56ddcc22b3002f42f200f66026c4
Taekyun Kim [Wed, 20 May 2015 10:02:41 +0000 (19:02 +0900)]
gl-renderer: Surface attach.
Change-Id: I4734f39d27d6d6d43cd9b0b3bb7c1bba1b3c8a55
Taekyun Kim [Wed, 20 May 2015 05:06:21 +0000 (14:06 +0900)]
gl-renderer: EGL and GL extension initialization.
Change-Id: Id6274ac8fe46c084d38030eb574b5cb449728c7d
Taekyun Kim [Wed, 20 May 2015 04:26:58 +0000 (13:26 +0900)]
core: Added attach_surface() to the renderer interface.
In order to draw a view, the surface of the view should be attached to the
renderer first. For pixman renderer, we need a pixman_image_t for the given
surface's current buffer. For gl renderer, we need a texture.
Size of a buffer is unknown until it is attached to a renderer for some types
of buffers, for example, size of an EGL buffer can be queried via
eglQueryWaylandBufferWL() so the core should attach the buffer to a renderer
in order to get its size.
Normaly, only shm buffers can be attached to pixman renderers. But there're
platforms that can map DMABUFs into CPU address so that pixman renderer can
serve those types of buffers.
Change-Id: I4c07b48d1879a3c2d2d4c26db67b41019071458b
Taekyun Kim [Tue, 19 May 2015 08:41:25 +0000 (17:41 +0900)]
core: Surface user set/get APIs.
Given a pointer key value, one can set a user data for the key. This can be
used for maintaining user-side objects for a pepper_surface_t. For, example,
sub-compositing application can set an evas image object.
Change-Id: I791e891340d69a47b3dc566a5766e0d67760721e
Taekyun Kim [Tue, 19 May 2015 08:07:59 +0000 (17:07 +0900)]
util: Simple hash table implementation.
Change-Id: I5992e76740ea1b3d4a78539ab377d3e7146b9af7
Taekyun Kim [Tue, 19 May 2015 05:22:40 +0000 (14:22 +0900)]
core: Removed pepper-util.h from API header file.
Change-Id: I4959f5fefbb0cf0bb68b0da8a9cd667e0533136b