platform/core/uifw/pepper.git
9 years agopepper: Expose object event feed function as an API
Taekyun Kim [Wed, 5 Aug 2015 05:33:24 +0000 (14:33 +0900)]
pepper: Expose object event feed function as an API

Change-Id: I6bd505bb4db3c72e2345aedb9d79c6cca78b6ee1

9 years agopepper: Remove old event implementation
Taekyun Kim [Wed, 5 Aug 2015 04:59:23 +0000 (13:59 +0900)]
pepper: Remove old event implementation

Change-Id: I3d7b2b177e46d5a6c4374d38adc09a6f966fa2d6

9 years agopepper: Basic object event implementation
Taekyun Kim [Wed, 5 Aug 2015 04:31:47 +0000 (13:31 +0900)]
pepper: Basic object event implementation

1. Events are identified by 32bit unsigned integer ID.

2. Each object has its own built-in event IDs.

3. Build-in events for generic object are common to all pepper objects.

4. Higher priority listeners are called earlier.

Change-Id: Iad5e16a5a297f5a17d5f8b6b5ed15972bfd18d52

9 years agox11: bugfix in event handling
Jaehoon Jeong [Tue, 28 Jul 2015 10:43:14 +0000 (19:43 +0900)]
x11: bugfix in event handling

    - modify to always consume events, even if not using x-input-backend

Change-Id: I109cc73df771c3a190b7d6644f60f5389e7964fe

9 years agox11: samples: remove warnings
Jaehoon Jeong [Tue, 28 Jul 2015 05:30:08 +0000 (14:30 +0900)]
x11: samples: remove warnings

Change-Id: I6b773ec85655f14487b2185486d67380fd72e58e

9 years agopepper: remove some warnings
Junghoon [Tue, 28 Jul 2015 04:55:02 +0000 (13:55 +0900)]
pepper: remove some warnings

Change-Id: Iec3ba250f2d3d5b1154286305cd6ec90ecb09383

9 years agodrm: fbdev: separate libinput creation code from drm & fbdev backends
Junghoon [Tue, 28 Jul 2015 04:37:12 +0000 (13:37 +0900)]
drm: fbdev: separate libinput creation code from drm & fbdev backends

Change-Id: Ib3b4fc3b26ccaedd1e86e8ab52c6d72290e03e4e

9 years agodesktop-shell: remove warnings
Jaehoon Jeong [Tue, 28 Jul 2015 05:01:07 +0000 (14:01 +0900)]
desktop-shell: remove warnings

Change-Id: Ice633c42c993cb51a79f0c1aa50e25f03a07e3a9

9 years agopepper: add missing initialization of regions
Jaehoon Jeong [Tue, 28 Jul 2015 04:28:40 +0000 (13:28 +0900)]
pepper: add missing initialization of regions

Change-Id: I70612efd112b52cec447a9e4006a7ac0f5f1c351

9 years agofbdev: emit frame_signal
Junghoon [Tue, 28 Jul 2015 04:19:06 +0000 (13:19 +0900)]
fbdev: emit frame_signal

Change-Id: Ic00131a61a5cc14b2171fdcf125c2b9ef154e49e

9 years agopepper: libinput: wayland: x11: input refactoring
Junghoon [Mon, 27 Jul 2015 07:44:01 +0000 (16:44 +0900)]
pepper: libinput: wayland: x11: input refactoring

    - remove input backend interface
        - add input device managing code

Change-Id: I4df5d300439a4fff108198e6208c193253a36521

9 years agobuild: add each devel packages
Yuyeon Oh [Mon, 27 Jul 2015 05:45:05 +0000 (14:45 +0900)]
build: add each devel packages

Change-Id: I7e33feaea126b19d0eb492a14eb754e5484865ae

9 years agodesktop-shell: implement xdg_shell, fullscreen, maximized
Jaehoon Jeong [Wed, 22 Jul 2015 11:44:40 +0000 (20:44 +0900)]
desktop-shell: implement xdg_shell, fullscreen, maximized

    - Add init_xdg_shell() in pepper_desktop_shell_init()
    - Implement fullscreen, maximized related types
    - Handle client_destroy in shell_client

Change-Id: Ibfa25b4b4cd871414721cf153393fd73b035fbfb

9 years agobuild: fix include path for GBS build
Yuyeon Oh [Mon, 27 Jul 2015 02:30:12 +0000 (11:30 +0900)]
build: fix include path for GBS build

Change-Id: Ied85cc418224e94acc967d100be192f81cc0415d

9 years agobuild: fix doctor build
Yuyeon Oh [Fri, 24 Jul 2015 04:43:15 +0000 (13:43 +0900)]
build: fix doctor build

Include pixman-1 library in doctor build

Change-Id: Ifad0e50a442e9bf47b699139ce05afc946a2cc53

9 years agobuild: fix wrong %postun
Yuyeon Oh [Wed, 22 Jul 2015 06:03:55 +0000 (15:03 +0900)]
build: fix wrong %postun

Change-Id: I2c7145e0d6a19b36f6df9a12ed6b6d3bfd3aa4b3

9 years agobuild: Add missing libinput dependency of fbdev backend
Taekyun Kim [Fri, 24 Jul 2015 01:59:31 +0000 (10:59 +0900)]
build: Add missing libinput dependency of fbdev backend

Change-Id: I0f0e4539b754367fdb1c91af796dc025ec4bc34f

9 years agobuild: Search internal include path and libs before external ones
Taekyun Kim [Wed, 22 Jul 2015 09:31:12 +0000 (18:31 +0900)]
build: Search internal include path and libs before external ones

Include dir is moved to ${includedir}/pepper ie. /usr/include/pepper.

Change-Id: If747f0785d1cf2f7f8e0a01ff0786aac689c7755

9 years agopepper: Added a function for querying object type
Taekyun Kim [Wed, 22 Jul 2015 05:36:26 +0000 (14:36 +0900)]
pepper: Added a function for querying object type

Change-Id: I209ce1b581d7ff7ce8670d215ab9732b48a72c70

9 years agobuild: add pepper.spec for GBS build
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

9 years agopepper: view damage processing and repaint scheduling
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

9 years agogitignore: ignore generated files in procotol/
Jaehoon Jeong [Tue, 21 Jul 2015 05:58:15 +0000 (14:58 +0900)]
gitignore: ignore generated files in procotol/

Change-Id: I2723de4d501dda00e8c7b821f0c61d972ed79d75

9 years agobuild: add --disable-x11 option for tizen-wayland GBS build
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

9 years agodesktop-shell: implement set_transient
Jaehoon Jeong [Tue, 21 Jul 2015 06:02:33 +0000 (15:02 +0900)]
desktop-shell: implement set_transient

Change-Id: I5f7b8fd3dfc18848a528a13be753fe30026e7a4f

9 years agobuild: Better dependency check between internal packages
Taekyun Kim [Mon, 20 Jul 2015 07:16:09 +0000 (16:16 +0900)]
build: Better dependency check between internal packages

Change-Id: I28236cd26f0a11b4e53005d8fb5e7f9c705e67dd

9 years agodesktop-shell: Implement popup
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

9 years agodoctor: Fix compiler warnings
Taekyun Kim [Mon, 20 Jul 2015 05:53:06 +0000 (14:53 +0900)]
doctor: Fix compiler warnings

Change-Id: I7945e1fe2af4068dcf5d3836acd17cc65dd406e8

9 years agobuild: Fix build failure and some clean up
Taekyun Kim [Mon, 20 Jul 2015 05:26:30 +0000 (14:26 +0900)]
build: Fix build failure and some clean up

Change-Id: I133468f4897703ee62b6a5717cf38902804fb65b

9 years agobuild: autoconf all source tree at once
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

9 years agobuild: refactor source tree
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

9 years agodesktop-shell: Implement set_title, set_class, set_appid
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

9 years agopepper: Output backends correctly consume damage region
Taekyun Kim [Thu, 16 Jul 2015 05:25:14 +0000 (14:25 +0900)]
pepper: Output backends correctly consume damage region

Change-Id: I2a7f4edfa01010e1db45efb243a543fe1b77626c

9 years agopepper: Send frame callback done after finishing repaint
Taekyun Kim [Wed, 15 Jul 2015 10:47:22 +0000 (19:47 +0900)]
pepper: Send frame callback done after finishing repaint

Change-Id: I9e0ce916c4e528b40f1fc20efaefe19f32939033

9 years agopepper: Separate header file for input backend devel
Taekyun Kim [Wed, 15 Jul 2015 10:19:50 +0000 (19:19 +0900)]
pepper: Separate header file for input backend devel

Change-Id: I60d42f508c0f89900fb6922741b634d10c4b0323

9 years agopepper: Better type names for pepper objects
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

9 years agopepper: pepper_plane_t and per-plane damage processing
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

9 years agodesktop-shell: Implement set_toplevel
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

9 years agolibinput: change struct libinput_seat to struct li_seat
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

9 years agopepper: Output ID allocation.
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

9 years agopepper: Renamed pepper_xxx_interface_t to pepper_xxx_backend_t
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

9 years agodesktop-shell: Implement common ping-pong mechanism between wl_shell and xdg_shell
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

9 years agorender: fix pixman repaint()
Yuyeon Oh [Thu, 2 Jul 2015 09:47:27 +0000 (18:47 +0900)]
render: fix pixman repaint()

- Add NULL check
- Indent

Change-Id: Ieb4006cd804fc64a9d961e64e91776a1d676cfd2

9 years ago drm: bugfix: find crtc for output
Junghoon [Tue, 7 Jul 2015 07:19:58 +0000 (16:19 +0900)]
 drm: bugfix: find crtc for output

Change-Id: I65ecb0ab0ce4b2b8b3110091c46b45903c7b1895

9 years agorender: do GL extension setup once
Junghoon [Tue, 7 Jul 2015 07:15:38 +0000 (16:15 +0900)]
render: do GL extension setup once

Change-Id: I28d8a19b26b545504cde7a585f232b9be952dfa8

9 years agox11: bug fix
Jaehoon Jeong [Fri, 3 Jul 2015 07:51:32 +0000 (16:51 +0900)]
x11: bug fix

Change-Id: Ice9f5e34e250d7e4ef2e7535cc9ea6574d1ebf9e

9 years agodesktop-shell: Add dummy xdg-shell and update .gitignore
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

9 years agodesktop-shell: Add desktop_shell_t and shell_client_t
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

9 years agorender: bugfix: set context in pepper_gl_renderer_create_target()
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

9 years agorender: initial impl. of pixman repaint()
Yuyeon Oh [Tue, 23 Jun 2015 13:49:29 +0000 (22:49 +0900)]
render: initial impl. of pixman repaint()

Change-Id: I407c35b7df9448885eae25511737edb74b290510

9 years agopepper: Update view size when updating view geometry.
Taekyun Kim [Thu, 2 Jul 2015 09:24:57 +0000 (18:24 +0900)]
pepper: Update view size when updating view geometry.

Change-Id: I2dff6069f6d6e921d12f25793fcd585ed337a72d

9 years agopepper: Attach surface to outputs on surface.commit().
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

9 years agopepper: view: Correctly access pepper_view_state_t in view_list.
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

9 years agopepper: Remove useless code.
Taekyun Kim [Wed, 1 Jul 2015 07:20:50 +0000 (16:20 +0900)]
pepper: Remove useless code.

Change-Id: Ie341dfdbf42b5330410b8859f6fd000562a88c80

9 years agofbdev: bugfix: create render target using shadow image
Junghoon [Wed, 1 Jul 2015 06:12:13 +0000 (15:12 +0900)]
fbdev: bugfix: create render target using shadow image

Change-Id: I387ce73a92d4fdc24133d0e2981d635ef822b6f0

9 years agorender: pixman: Create a render target directly from a pixman image.
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

9 years agopepper: Pass rendering related view states directly through the view list.
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

9 years agopepper: View bounding, opaque and surface damage region processing.
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

9 years agopepper: utils: GLSL-like geometric primitives.
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

9 years agopepper: View size should be integer values.
Taekyun Kim [Mon, 29 Jun 2015 09:47:12 +0000 (18:47 +0900)]
pepper: View size should be integer values.

Change-Id: I2a106aac9f4b9d4e59591c7247235743645e1c7c

9 years agopepper: View API refactoring to separate z-order from parent-child relation.
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

9 years agosamples: add signal handling codes for SIGSEGV, SIGABRT
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

9 years agodrm: add renderer parameter to pepper_drm_create()
Junghoon [Thu, 25 Jun 2015 05:36:20 +0000 (14:36 +0900)]
drm: add renderer parameter to pepper_drm_create()

Change-Id: I91d307a8648a93cebf378d76dc0f6fc44fd6f73a

9 years agopepper: add pepper_view_get_visible_region()
Yuyeon Oh [Wed, 24 Jun 2015 08:02:31 +0000 (17:02 +0900)]
pepper: add pepper_view_get_visible_region()

Change-Id: I627eb9328f8886d077174015255a12cd54048982

9 years agofbdev: bugfix: correct size parameter of munmap
Junghoon [Wed, 24 Jun 2015 08:13:39 +0000 (17:13 +0900)]
fbdev: bugfix: correct size parameter of munmap

Change-Id: I8b4a0b4daaff5c559a3eb6b1bb46af5292c4ec0e

9 years agofbdev: rendering to shadow image
Junghoon [Wed, 24 Jun 2015 07:25:26 +0000 (16:25 +0900)]
fbdev: rendering to shadow image

Change-Id: Ief61664faead1304fda0db79c5d204e59c073710

9 years agopepper: move get_pixman_format() to pepper-utils
Junghoon [Wed, 24 Jun 2015 07:23:54 +0000 (16:23 +0900)]
pepper: move get_pixman_format() to pepper-utils

Change-Id: I760a6540827361435c810921b1dab39ee98f049c

9 years agopepper: implement virtual terminal setup/restore
Junghoon [Tue, 23 Jun 2015 12:12:59 +0000 (21:12 +0900)]
pepper: implement virtual terminal setup/restore

Change-Id: I7c84d04d8f2ba708fa47ae79a4a5515c042de9a3

9 years agorender: fix SIGSEGV at gl_render_target_destroy()
Junghoon [Tue, 23 Jun 2015 12:04:32 +0000 (21:04 +0900)]
render: fix SIGSEGV at gl_render_target_destroy()

Change-Id: I534727a23911c1a3b50eb84efb54e36b8a50c8ca

9 years agoetc: Added fbdev-backend binary file to gitignore
Taekyun Kim [Tue, 23 Jun 2015 08:57:41 +0000 (17:57 +0900)]
etc: Added fbdev-backend binary file to gitignore

Change-Id: I565b4e53576cd4d3556e209c994c6f2bd6c5d226

9 years agopepper: Now view list and damage is passed to the repaint function.
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

9 years agopepper: Accumulate output damage and automatically schedule repaint.
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

9 years agosamples:x11: add desktop_shell_init()
Jaehoon Jeong [Fri, 19 Jun 2015 04:14:08 +0000 (13:14 +0900)]
samples:x11: add desktop_shell_init()

Change-Id: I6ef909e34d6ac4f6740c267e315240a6271df8ff

9 years agodesktop-shell: implement shell_surface's ping-pong
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

9 years agodrm: apply dynamic render target setup
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

9 years agofbdev: minor bugfix
Junghoon [Fri, 19 Jun 2015 01:19:05 +0000 (10:19 +0900)]
fbdev: minor bugfix

    - fix size parameter in mmap()

Change-Id: Id970f24e13ff3d455959fe4f4f0e7173263ce4b6

9 years agox11: Fixed incorrect height value on shm put image.
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

9 years agox11: Don't check success of gl renderer creation as it is optional.
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

9 years agodesktop-shell: implement wl_shell::get_shell_surface, wl_shell_surface::set_toplevel
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

9 years agorender: add dummy output_damage parameter
Yuyeon Oh [Wed, 17 Jun 2015 07:01:17 +0000 (16:01 +0900)]
render: add dummy output_damage parameter

Change-Id: If9c18f10a85a4d1200ffe3ed1fa2a8b30fafcde0

9 years agorender: Refactored to support dynamic render target setup.
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

9 years agodesktop-shell: Add xdg-shell.xml and generate .c/.h from xml
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

9 years agofbdev
Junghoon [Tue, 16 Jun 2015 07:29:32 +0000 (16:29 +0900)]
fbdev

    - add renderer parameter to pepper_fbdev_create()

Change-Id: I4c153f95b502d03564f551a6257827aae2209797

9 years agobugfix
Junghoon [Tue, 16 Jun 2015 07:21:59 +0000 (16:21 +0900)]
bugfix

Change-Id: Ic64fd9bfe42867ea896c46a2ada41cbf966514de

9 years agopepper: Introducing generic pepper_object_t.
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

9 years agopepper: Commit only newly attached buffer.
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

9 years agoRemove useless "return;" statements
Junghoon [Mon, 15 Jun 2015 07:49:57 +0000 (16:49 +0900)]
Remove useless "return;" statements

Change-Id: Ie0492ace4e059b4ef283bbf00ca5c8945267ca17

9 years agofbdev: initial implementation
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

9 years agopepper: fix variable name
Yuyeon Oh [Fri, 12 Jun 2015 07:38:49 +0000 (16:38 +0900)]
pepper: fix variable name

Change-Id: I0a4841201a9a3a26a43b936c9f0d0e67a77e5e9b

9 years agopepper: Basic matrix APIs
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

9 years agopepper: add initial log system
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

9 years agoreview: pepper: surface: add some codes
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

9 years agox11: bug fix
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

9 years agopepper: input
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

9 years agopepper: View damage processing
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

9 years agopepper: Fixed a bug in pepper_map_get().
Taekyun Kim [Wed, 10 Jun 2015 09:43:12 +0000 (18:43 +0900)]
pepper: Fixed a bug in pepper_map_get().

Change-Id: Iecc5dccb455379637b86b365d769dd90b8c7f2ce

9 years agopepper: Merged pepper-utils package into pepper.
Taekyun Kim [Tue, 9 Jun 2015 07:07:29 +0000 (16:07 +0900)]
pepper: Merged pepper-utils package into pepper.

Change-Id: I00c82ea2e0e8745ee83a74647cfa7a35e732ec07

9 years agopepper: APIs for accessing root views of a compositor
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

9 years agox11: fix some logics
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

9 years agodrm: output - handle drm output device add/remove
jh13.son [Mon, 8 Jun 2015 10:34:54 +0000 (19:34 +0900)]
drm: output - handle drm output device add/remove

Change-Id: I7e7c8dac815f9b804341033d26a138b3c85845dc

9 years agopepper: View API Refactoring
Taekyun Kim [Thu, 4 Jun 2015 09:40:02 +0000 (18:40 +0900)]
pepper: View API Refactoring

Change-Id: Ide15b28522cac54ab67ce820b3b62ae4f62258b3