platform/core/uifw/pepper.git
9 years agotest: Added weston's simple-shm, simple-touch test programs
Taekyun Kim [Thu, 16 Apr 2015 06:05:33 +0000 (15:05 +0900)]
test: Added weston's simple-shm, simple-touch test programs

Running them without any argument will connect to default server.
If an argument is given, it will connect to the given display name.

./simple-shm equals to ./simple-shm wayland-0

Change-Id: I677fd3809a87d29b5729244c9dadb42f375f6f1d

9 years agowayland: input: Fix some bugs
Taekyun Kim [Thu, 16 Apr 2015 05:30:21 +0000 (14:30 +0900)]
wayland: input: Fix some bugs

Change-Id: I84997592ec6aba955b78987bf524e2f149047801

9 years agowayland: pixman rendering via wl_shm_buffer
Taekyun Kim [Wed, 15 Apr 2015 09:59:52 +0000 (18:59 +0900)]
wayland: pixman rendering via wl_shm_buffer

Change-Id: If95a155db5942f3fa08b49b2c2d53bf8ad40c5bb

9 years agooutput: initial output repaint and frame control implementation
Taekyun Kim [Wed, 15 Apr 2015 07:21:57 +0000 (16:21 +0900)]
output: initial output repaint and frame control implementation

Two boolean frame state flags
    - scheduled : TRUE if repaint task is scheduled
    - pending   : TRUE if repaint is flushed but not posted

Three events affect the frame state flags
    - Frame     : called when any pending repaint is posted
    - Repaint   : Repaint the output
    - Schedule  : Schedule a repaint

<< Transition of "scheduled" state flag >>
-----------------------------------------
|        |  frame  | repaint | schedule |
-----------------------------------------
|  TRUE  |   TRUE  |   FALSE |     TRUE |
-----------------------------------------
| FALSE  |  FALSE  |   error |     TRUE |
-----------------------------------------

<< Transition of "pending" state flag >>
-----------------------------------------
|        |  frame | repaint | schedule |
-----------------------------------------
|  TRUE  |  FALSE |   error |     TRUE |
-----------------------------------------
| FALSE  |  FALSE |    TRUE |    FALSE |
-----------------------------------------

Frame event is invoked by output backend module. wayland backend invokes it
when it receives frame callback done event. DRM backend invokes it in the
vblank period.

When to call repaint is upto pepper core, currently it is called in the frame
event handler function.

Schedule can be called at any time.

We should aim following criteria.

1. Don't make clients render frames which will not be seen on the display
  This is done by sending frame done events to the clients when the compositor
is ready for following surface commits. This can be achieved by sending frame
done event once per frame at most.

2. Maximize FPS.
  We also should maximize the FPS as possible as we can while still meets the
criteria #1. If a client can render its frame within a frame period, it should
be able to render at about display refresh rate.

3. Minimize latency
  Latency means time between surface commit and actual display scanning. Short
latency is always preferable but we might have to do trade-off between FPS and
latency.

Change-Id: I9e3440ea5b79c20ed16229fcade2429afa00c767

9 years agoChange a member name in seat structure
jh13.son [Wed, 15 Apr 2015 04:15:25 +0000 (13:15 +0900)]
Change a member name in seat structure

 - capability_signal ==> capabilities_signal

Change-Id: I2e0c4bd965913b7eac018354f6d62dece1f1bb5f

9 years agobuild: Changed default option for wayland backend egl support to no
Taekyun Kim [Wed, 8 Apr 2015 06:27:43 +0000 (15:27 +0900)]
build: Changed default option for wayland backend egl support to no

We need a working EGL driver which supports wayland-egl for the wayland backend
to be properly compiled. We don't have such driver at the moment, just disable
it by default.

Change-Id: Ib45c0b7a312e3195ee37acb31231351ebc986d8d

9 years agoAdd test program template.
Taekyun Kim [Wed, 8 Apr 2015 06:21:41 +0000 (15:21 +0900)]
Add test program template.

Add test program name to TESTPROGRAMS variable in test/Makefile.am

Change-Id: I888dd46730e2ce0a0fae75028fbe477e08fec8c9

9 years agoAdd missing initialization of signal and list
Taekyun Kim [Wed, 8 Apr 2015 06:20:39 +0000 (15:20 +0900)]
Add missing initialization of signal and list

Change-Id: I5730e8b175f2fcae942dba25a345e1f9346e58ec

9 years agorenderer: initial pixman renderer & wayland backend rendering functions
Taekyun Kim [Wed, 8 Apr 2015 04:50:05 +0000 (13:50 +0900)]
renderer: initial pixman renderer & wayland backend rendering functions

Change-Id: I6b906148d73405da3adc1cda5cedbb3968641507

9 years agoFix warnings
Taekyun Kim [Tue, 7 Apr 2015 10:23:16 +0000 (19:23 +0900)]
Fix warnings

EGLint might be 64 bits, so just cast uint32_t to EGLint and compare.

Change-Id: I6f8d1a03e1034b2c2592fba306bd3e85f66bacd2

9 years agoAdded vim custom config file to .gitignore
Taekyun Kim [Tue, 7 Apr 2015 08:16:17 +0000 (17:16 +0900)]
Added vim custom config file to .gitignore

Change-Id: Id8c4416735eb7c6a460b4d56a1de3f470d245e3a

9 years agoInitial renderer implementation
Taekyun Kim [Tue, 7 Apr 2015 05:58:13 +0000 (14:58 +0900)]
Initial renderer implementation

Renderer base class and initial version of GL renderer implementation.

Change-Id: I452144074a5526c1d2dde4b4bb70de40f184efa3

9 years agoFix warnings & some minor coding style fix
Taekyun Kim [Tue, 7 Apr 2015 08:09:24 +0000 (17:09 +0900)]
Fix warnings & some minor coding style fix

Change-Id: I5768588da0fe2fa60b9af14f47d79a80b305d81e

9 years agox11: disable warnings, fix indent
jaehoon01.jeong [Tue, 7 Apr 2015 07:58:58 +0000 (16:58 +0900)]
x11: disable warnings, fix indent

Change-Id: Ic32ad5e7e84571ef718f62ff16bbeae39d072a67

9 years agoX11 backend implementation
jaehoon01.jeong [Tue, 7 Apr 2015 05:34:57 +0000 (14:34 +0900)]
X11 backend implementation
    - initial version
    - partially implemented

Change-Id: I68a2f0675bfdc3f6ca110d23daf80cc88ce3b068

9 years agoShell implementation
junghoon13.son [Mon, 6 Apr 2015 05:37:25 +0000 (14:37 +0900)]
Shell implementation
    - initial version
    - partially implemented
    - wl_shell and wl_shell_surface protocol APIs are added

Change-Id: If1be160154e9ca40fad315260baf24dbe93af9ce

9 years agoShm initialize
junghoon13.son [Tue, 31 Mar 2015 07:02:41 +0000 (16:02 +0900)]
Shm initialize
    - using wayland implementation

Change-Id: I96f00065a393d25aaa10dea16e9f7f1686495287

9 years agoInput implementation
junghoon13.son [Thu, 2 Apr 2015 06:37:26 +0000 (15:37 +0900)]
Input implementation
    - initial version
    - wayland backend module
    - core module
        - wl_seat

Change-Id: I726e04421cacacf8a25d366656e5f059e810a192

9 years agoFix typo error
Taekyun Kim [Thu, 2 Apr 2015 07:39:59 +0000 (16:39 +0900)]
Fix typo error

Change-Id: I743cf48d87ad0d713170ca105ebbb35b3e555aec

9 years agoOutput: Changed output creation/destruction functions
Taekyun Kim [Wed, 1 Apr 2015 04:42:16 +0000 (13:42 +0900)]
Output: Changed output creation/destruction functions

Change-Id: I4e0d18b5f9454bff4b7b4211b3c870ea6b47d2f4

9 years agoBuild: Build backend modules by default & some bug fix
Taekyun Kim [Wed, 1 Apr 2015 04:30:03 +0000 (13:30 +0900)]
Build: Build backend modules by default & some bug fix

Change-Id: I0768a51d072863b0da4e630ffed1ee891a42d47d

9 years agoRefactor: output, backend APIs and etc
Taekyun Kim [Tue, 31 Mar 2015 06:43:12 +0000 (15:43 +0900)]
Refactor: output, backend APIs and etc

Change-Id: I2fdcd700ea541e347c44a60cdd0f3699cd1aa40d

9 years agoSurface & Buffer initial implementation
Taekyun Kim [Thu, 26 Mar 2015 09:58:43 +0000 (18:58 +0900)]
Surface & Buffer initial implementation

Change-Id: I3b703bc30b3790f8f448769b4373e7c978399074

9 years agowl_region implementation
Taekyun Kim [Thu, 26 Mar 2015 03:37:43 +0000 (12:37 +0900)]
wl_region implementation

Implemented using pixman region.

Change-Id: If83abf5a2da62ae69e3f8b5be141156cc043d619

9 years agoRefactoring
Taekyun Kim [Mon, 23 Mar 2015 05:17:49 +0000 (14:17 +0900)]
Refactoring

1. Use "-" to concatenate file name tokens.
2. Removed features which is not necessary now. Can be added later.
3. Modules are built together as a libpepper.so.
4. Modules can use only the pepper library APIs like normal applications do.
5. Modules can export its own header files.
6. pepper exports wayland display of a compositor so that applications can use wayland-server APIs.
7. Following configure arguments are added
    --enable-wayland-backend=yes or no (default no)
    --enable-drm-backend=yes or no (default no)
    --enable-pepper-server=yes or no (default yes)

Change-Id: I5e6d04a2a1af150a246f34ba32c4ce4d87b1bb30

9 years agoinput: Some minor cleanups
Taekyun Kim [Wed, 11 Mar 2015 05:47:09 +0000 (14:47 +0900)]
input: Some minor cleanups

Change-Id: I4a4c7f5da28bcd9af0d6782c62324ab22a95c609

9 years agoApply TmaxWindow's log style
jaehoon01.jeong [Tue, 10 Mar 2015 13:33:50 +0000 (22:33 +0900)]
Apply TmaxWindow's log style
    - usage
    - must be declare 'DECLARE_DEBUG_CHANNEL(module_name);' at ahead of files
        "Syntax of the DEBUGCH variable:\n"
         "  DEBUGCH=[class]+xxx,[class]-yyy,...\n\n"
         "Example: DEBUGCH=+all,warn-heap\n"
         "    turns on all messages except warning heap messages\n"
         "Available message classes: err, warn, fixme, trace\n";

Change-Id: Iaeb88a81c9884481216a13c929f9b12b7806ae3f

9 years agoSimplified initial APIs and some cleanups
Taekyun Kim [Wed, 11 Mar 2015 04:57:03 +0000 (13:57 +0900)]
Simplified initial APIs and some cleanups

Let's start with minimal APIs. Just create a compositor and run.
APIs for output, client, input and surfaces will be added later.

Moved typedefs into internal header which should not be exposed to the user
at the moment.

Change-Id: I8f08ca00a2305d79b2278bf3a5a9ffaa61cc596d

9 years agoInput implementation
junghoon13.son [Mon, 9 Mar 2015 03:36:42 +0000 (12:36 +0900)]
Input implementation
    - input module interface functions

Change-Id: I84aa7d06cef38858a87b7b0c4ecadda7f4790fbc

9 years agoInput implementation
junghoon13.son [Fri, 6 Mar 2015 05:35:07 +0000 (14:35 +0900)]
Input implementation
    1. add handlers for wl_seat, wl_pointer, wl_keyboard and wl_touch
        - handlers do nothing
    2. add input module using libinput
        - partially implemented

Change-Id: I1729eabbdcf3b41e5dbff2fb0efe9855c82ecb56

9 years agoCode indentation
junghoon13.son [Fri, 6 Mar 2015 04:45:02 +0000 (13:45 +0900)]
Code indentation
    - expand tab to space

Change-Id: I7807df9910a2e1d3bce7b344ee61740aa1c08fd9

9 years agoMore utility macros, memory & string functions, coding style fix
Taekyun Kim [Tue, 3 Mar 2015 10:44:27 +0000 (19:44 +0900)]
More utility macros, memory & string functions, coding style fix

1. Do not use __inline__ directly, use PEPPER_INLINE instead.
2. Always use PEPPER_ASSERT() instead of assert().
3. Use PEPPER_IGNORE() to avoid warning on unsed variables.
4. Always use pepper_malloc/pepper_calloc/pepper_free.
5. Don't use multiple new lines, put some meaningful comments instead.
6. Removed excessive error handling for OOM.

Change-Id: Idab2f85457c9ff093eb47ffc7c97373e338fd6d1

9 years agoadd global object creation and handler codes for basic functionality
jaehoon01.jeong [Tue, 3 Mar 2015 08:26:00 +0000 (17:26 +0900)]
add global object creation and handler codes for basic functionality

 - remove white-space
 - remove 'pepper_' prefix in internal static functions
 - modify function names and fn table names
    - bind_xxx
    - xxx_implementation

Change-Id: I89aa27a312964986e8a3245b8e3667dbfe5a411b

9 years agocommon: Implementation starting point
Taekyun Kim [Mon, 2 Mar 2015 10:51:06 +0000 (19:51 +0900)]
common: Implementation starting point

APIs for pepper library are located in pepper.h
API implementations should go to their object files. (ex. output.c)
Utilities, macros and other stuffs should go to common.h
Internal structures and functions should go to pepper_internal.h

Change-Id: I6cf48d256cc3a2e5c4ac0424558ec3738e35688a

9 years agoAdded .gitignore file
Taekyun Kim [Fri, 27 Feb 2015 04:49:57 +0000 (13:49 +0900)]
Added .gitignore file

Change-Id: I69f2b2bc392c482e6e5a8cea4022332b209952af

9 years agoSource directory hierarchy
Taekyun Kim [Fri, 27 Feb 2015 04:44:37 +0000 (13:44 +0900)]
Source directory hierarchy

Change-Id: I7572a5bebc51740777d5624bae2e26cd9d78e62e

9 years agoModifled pepper.c to apply coding style guide line
Taekyun Kim [Fri, 27 Feb 2015 04:18:58 +0000 (13:18 +0900)]
Modifled pepper.c to apply coding style guide line

Change-Id: Ie9b19eeb5b191f0770875e3fe257dc3f7fd7f6ef

9 years agoAdded coding style guide line
Taekyun Kim [Fri, 27 Feb 2015 04:18:32 +0000 (13:18 +0900)]
Added coding style guide line

Change-Id: I4901a0d4638f4e08efae1d3fcbdf88be9bf4c4c1

9 years agoBuild: Added initial RPM spec file for GBS build
Taekyun Kim [Wed, 25 Feb 2015 09:19:17 +0000 (18:19 +0900)]
Build: Added initial RPM spec file for GBS build

Change-Id: Ie06260e6e565b451e82e09fdfb457d1d8dcaa4fd

9 years agoCompositor: Basic compositor main loop
Taekyun Kim [Wed, 25 Feb 2015 08:08:05 +0000 (17:08 +0900)]
Compositor: Basic compositor main loop

Starting point for implementing pepper server.

Change-Id: I6981231d22351754ceb95cb3c4a9baeda5eee72d

9 years agoCompositor: Added build configurations for wayland server
Taekyun Kim [Wed, 25 Feb 2015 07:46:48 +0000 (16:46 +0900)]
Compositor: Added build configurations for wayland server

COMPOSITOR_MODULES should contain all necessary packages to build pepper
executable. These modules will be checked by PKG_CHECK_MODULES at the end of
the configure.

Change-Id: I043b69802dff938a1250ef47302b3facaaa0b872

9 years agoInitial project configuration
Taekyun Kim [Wed, 25 Feb 2015 07:27:37 +0000 (16:27 +0900)]
Initial project configuration

We start from this tiny hello world project :-)

Change-Id: I3043952401effdcdfdeae59cd990f97777098148

9 years agoInitial empty repository
JeongHoon Jeon [Wed, 27 May 2015 09:49:34 +0000 (18:49 +0900)]
Initial empty repository