profile/ivi/layer-management.git
11 years agoLayerManagerService: added systemd health monitor
Timo Lotterbach [Tue, 20 Nov 2012 11:04:53 +0000 (03:04 -0800)]
LayerManagerService: added systemd health monitor

the systemd health monitor supports control of the systemd watchdog

Signed-off-by: Timo Lotterbach <timo.lotterbach@bmw-carit.de>
11 years agoLayerManagerService: added default health monitor
Timo Lotterbach [Tue, 20 Nov 2012 11:03:24 +0000 (03:03 -0800)]
LayerManagerService: added default health monitor

the default health monitor does nothing but disable the health watchdog

Signed-off-by: Timo Lotterbach <timo.lotterbach@bmw-carit.de>
11 years agoLayerManagerService: added IHealth interface
Timo Lotterbach [Tue, 20 Nov 2012 11:00:42 +0000 (03:00 -0800)]
LayerManagerService: added IHealth interface

classes implementing this interface implement a health monitor

Signed-off-by: Timo Lotterbach <timo.lotterbach@bmw-carit.de>
11 years ago3rdParty: added systemd daemon library reference implementation
Timo Lotterbach [Mon, 29 Oct 2012 10:05:38 +0000 (03:05 -0700)]
3rdParty: added systemd daemon library reference implementation

the reference implementation is available at:
http://www.freedesktop.org/software/systemd/man/sd-daemon.html

LayerManagerService links to this library

added the systemd sd-daemon license information.
sd-daemon is located in 3rdParty and is distributed together with
the LayerManagement source package.
sd-daemon is licensed under MIT license.

Signed-off-by: Timo Lotterbach <timo.lotterbach@bmw-carit.de>
11 years agoDbusIpcModule: enabled Dbus thread support
Timo Lotterbach [Mon, 5 Nov 2012 09:29:34 +0000 (01:29 -0800)]
DbusIpcModule: enabled Dbus thread support

by enabling Dbus thread support, internal locking is used by the
Dbus library.

Note: this alone seems not to be sufficient to make the Dbus library
thread-safe. Therefore the DbusIpcModule internal locking is not removed.

Signed-off-by: Timo Lotterbach <timo.lotterbach@bmw-carit.de>
11 years agoDbusIpcModule: now using private dbus connection, improved receive filters
Timo Lotterbach [Tue, 30 Oct 2012 12:19:22 +0000 (05:19 -0700)]
DbusIpcModule: now using private dbus connection, improved receive filters

- clients now open a private dbus bus connection to prevent
  side effects with other part of the application using dbus
- sender dbus interface is used for filtering messages from LayerMangerService
- removed filterDiscardUnexpected, breaks apps using multiple lib
  communciating over dbus

Signed-off-by: Timo Lotterbach <timo.lotterbach@bmw-carit.de>
11 years agoilmClient: improved error reporting during startup
Timo Lotterbach [Mon, 5 Nov 2012 07:59:48 +0000 (23:59 -0800)]
ilmClient: improved error reporting during startup

Signed-off-by: Timo Lotterbach <timo.lotterbach@bmw-carit.de>
11 years agogit: updated .gitignore to ignore KDevelop workspace files
Timo Lotterbach [Mon, 29 Oct 2012 09:28:31 +0000 (02:28 -0700)]
git: updated .gitignore to ignore KDevelop workspace files

Signed-off-by: Timo Lotterbach <timo.lotterbach@bmw-carit.de>
11 years agoLayerManagerExamples: fixed gcc 4.7.2 warnings and errors
Timo Lotterbach [Mon, 29 Oct 2012 07:20:13 +0000 (00:20 -0700)]
LayerManagerExamples: fixed gcc 4.7.2 warnings and errors

These issues have occurred using Ubuntu 12.10.

Signed-off-by: Timo Lotterbach <timo.lotterbach@bmw-carit.de>
11 years agoLayerManagerService: Updating Release Notes
Michael Schuldt [Wed, 24 Oct 2012 07:07:14 +0000 (09:07 +0200)]
LayerManagerService: Updating Release Notes

11 years agoilmClient: added detection if ilm_init() was called multiple times
Timo Lotterbach [Thu, 25 Oct 2012 12:23:40 +0000 (05:23 -0700)]
ilmClient: added detection if ilm_init() was called multiple times

11 years agoDbusIpcModule: added checks before calling dbus_watch_handle
Timo Lotterbach [Thu, 25 Oct 2012 12:12:43 +0000 (05:12 -0700)]
DbusIpcModule: added checks before calling dbus_watch_handle

11 years agoGenericCommunciator: improved logging of client names and pids
Timo Lotterbach [Thu, 25 Oct 2012 11:09:00 +0000 (04:09 -0700)]
GenericCommunciator: improved logging of client names and pids

11 years agoLayerManagerService: removed cyclic header inclusion
Timo Lotterbach [Wed, 24 Oct 2012 09:55:23 +0000 (02:55 -0700)]
LayerManagerService: removed cyclic header inclusion

LayerManager.h included Scene.h
Scene.h included LayerManager.h

LayerManager now just forwards class Scene.

11 years agoDbusIpcModule: updated Introspect response to contain input and notification API
Timo Lotterbach [Mon, 22 Oct 2012 11:47:37 +0000 (04:47 -0700)]
DbusIpcModule: updated Introspect response to contain input and notification API

New messages have been introduced for input handling and client notifications.
These commands have to be reported in the introspect response of Dbus.

11 years agoLayerManagerService: added missing API documentation
Timo Lotterbach [Mon, 22 Oct 2012 11:12:38 +0000 (04:12 -0700)]
LayerManagerService: added missing API documentation

11 years agoLayerManagerService: added creator pid to every graphical object
Timo Lotterbach [Wed, 10 Oct 2012 14:39:12 +0000 (07:39 -0700)]
LayerManagerService: added creator pid to every graphical object

11 years agoGenericCommunicator: passes the pid to every created command object
Timo Lotterbach [Wed, 17 Oct 2012 09:25:38 +0000 (02:25 -0700)]
GenericCommunicator: passes the pid to every created command object

11 years agoLayerManagerCommands: included sender pid in every received command
Timo Lotterbach [Wed, 17 Oct 2012 09:24:50 +0000 (02:24 -0700)]
LayerManagerCommands: included sender pid in every received command

Each received messages contains a unique sender handle.
During ServiceConnect call, the application registers it's process id.
this way a mapping of unique client handle to process id is possible.

11 years agoilmClient: including client application name in ServiceConnect
Timo Lotterbach [Wed, 17 Oct 2012 09:27:15 +0000 (02:27 -0700)]
ilmClient: including client application name in ServiceConnect

11 years agoWindowSystems: fixed issues caused by new compiler warning settings
Timo Lotterbach [Fri, 5 Oct 2012 11:03:56 +0000 (04:03 -0700)]
WindowSystems: fixed issues caused by new compiler warning settings

11 years agoGenericCommunicator: fixed issues caused by new compiler warning settings
Timo Lotterbach [Fri, 5 Oct 2012 11:03:33 +0000 (04:03 -0700)]
GenericCommunicator: fixed issues caused by new compiler warning settings

11 years agoBuildSystem: updated compiler warnings settings, added new build flags
Timo Lotterbach [Fri, 5 Oct 2012 11:02:08 +0000 (04:02 -0700)]
BuildSystem: updated compiler warnings settings, added new build flags

Now 3 different compiler warning presets are used:
- 3rd party libs, unit tests: cmake default compiler settings
- Examples: strict compiler settings to catch many code flaws
- other: very strict compiler settings to detect portability issues

The new build flags allow disabling build of
- LayerManagerService
- ilmClient
- GenericCommunciator
This allows building e.g. only the examples or unit tests

11 years agoLayerManagerService: added logging of command line arguments
Timo Lotterbach [Wed, 10 Oct 2012 07:35:20 +0000 (00:35 -0700)]
LayerManagerService: added logging of command line arguments

On startup LayerManagerService logs the command line it was started with.

11 years agoLayerManagerService: fixed signal handling during shutdown
Timo Lotterbach [Fri, 5 Oct 2012 09:35:47 +0000 (02:35 -0700)]
LayerManagerService: fixed signal handling during shutdown

SIGABRT was not unset.

11 years agoMaintenance: removed use of non-portable usage of map::at(), fixed compiler warnings
Timo Lotterbach [Fri, 5 Oct 2012 09:32:48 +0000 (02:32 -0700)]
Maintenance: removed use of non-portable usage of map::at(), fixed compiler warnings

map::at() function is no available on platforms, while map::operator[] is.

additionally some compiler warnings have been fixed:
- signed/unsigned mismatch
- removed unused variables

11 years agoLayerManagerUtils: included DLT default log level configuration
Timo Lotterbach [Wed, 17 Oct 2012 07:07:59 +0000 (00:07 -0700)]
LayerManagerUtils: included DLT default log level configuration

11 years agoGLESGraphicSystem: disabled DEBUG_LOG output spamming all logs
Timo Lotterbach [Tue, 9 Oct 2012 14:25:33 +0000 (07:25 -0700)]
GLESGraphicSystem: disabled DEBUG_LOG output spamming all logs

these DEBUG_LOG calls generated so much output, that no other information
could be used any more.

11 years agoLayerManagerExamples: fixed gcc 4.7.1 warnings and errors
Timo Lotterbach [Mon, 15 Oct 2012 11:12:10 +0000 (04:12 -0700)]
LayerManagerExamples: fixed gcc 4.7.1 warnings and errors

These issues have occurred using Ubuntu 12.10 pre-release version.

11 years agoLayerManagerService: Updating Release Notes ivi-layer-management_version_0_9_8
Michael Schuldt [Tue, 2 Oct 2012 09:53:54 +0000 (11:53 +0200)]
LayerManagerService: Updating Release Notes

11 years agoTcpIpcModule: updated to new IpcModule API, added notification support
Timo Lotterbach [Mon, 10 Sep 2012 13:40:22 +0000 (06:40 -0700)]
TcpIpcModule: updated to new IpcModule API, added notification support

Added support for creating and sending notifications.

Improved handling of incoming message data structure.

removed destroyMessage:
was only used for DBusIpcModule, but lifecycle of received messages
is now handled internally. The external call is not required any more.

11 years agoDbusIpcModule: updated to new IpcModule API, added notification support
Timo Lotterbach [Tue, 2 Oct 2012 08:20:22 +0000 (01:20 -0700)]
DbusIpcModule: updated to new IpcModule API, added notification support

Send and Receive have been reimplemented to support asynchronous sending
and receiving of events. This enables the use of DBus signals as transport
for client notifications.

The implementation now features a DBus main loop based on DBusWatches,
select(), DBus filters and dbus_connection_dispatch().

Note: Layer- & SurfaceNotification messages are detected and the DBus
signal handlers are setup as required inside the DbusIpcModule.

removed destroyMessage:
was only used for DBusIpcModule, but lifecycle of received messages
is now handled internally. The external call is not required any more.

11 years agoGenericCommunicator: added notification support
Timo Lotterbach [Mon, 10 Sep 2012 13:31:45 +0000 (06:31 -0700)]
GenericCommunicator: added notification support

Updated to use new IpcModule API.

Manages internal list of registered notifications. This list is used
to remove notifications on client disconnect.

After processing an incoming command, the list of client notifications
is processed: each notification is created using the IpcModule and
sent to the appropriate list of clients.

removed destroyMessage:
was only used for DBusIpcModule, but lifecycle of received messages
is now handled internally. The external call is not required any more.

11 years agoilmClient: added internal thread, updated IpcModule API, updated tests
Timo Lotterbach [Mon, 10 Sep 2012 13:23:09 +0000 (06:23 -0700)]
ilmClient: added internal thread, updated IpcModule API, updated tests

This patch adds an internal thread thread which implements a receive loop.
The internal thread is required to process any incoming notification event
independent of the current client state.

Inside the client API a list of callbacks is stored to support different
callbacks for different layer and surface notification.

The behavior of the API is unchanged, but additionally asynchronous callbacks
can be supported.

add notification tests:
tests all possible individual notification targets for layers
and surfaces and some combinations aswell.

remove destroyMessage:
was only used for DBusIpcModule, but lifecycle of received messages
is now handled internally. The external call is not required any more.

added thread for notification delivery:
the receive thread used to execute notification callbacks directly,
but this allowed a client to block the receive loop.
Now the receive thread adds all received notifications to a queue.
This queue is processed by the new notification thread, which
triggers the callbacks for incoming notifications.
if a client blocks the notification thread, it will only affect incoming
notifications, but the receive thread will continue working.
If the notification queue is full, the receive thread discards incoming
notifications.

11 years agoIpcModuleLoader: updated IpcMpodule API to support client notifications
Timo Lotterbach [Mon, 10 Sep 2012 13:14:38 +0000 (06:14 -0700)]
IpcModuleLoader: updated IpcMpodule API to support client notifications

removed destroyMessage:
was only used for DBusIpcModule, but lifecycle of received messages
is now handled internally. The external call is not required any more.

11 years agoLayerManagerCommands: enabled notifications for surface and layer property changes
Timo Lotterbach [Mon, 10 Sep 2012 13:09:47 +0000 (06:09 -0700)]
LayerManagerCommands: enabled notifications for surface and layer property changes

Commands that change properties of layers or surfaces now add notifications
to the list of notifications.

11 years agoLayerManagerService: added internal notification queue
Timo Lotterbach [Mon, 10 Sep 2012 13:07:34 +0000 (06:07 -0700)]
LayerManagerService: added internal notification queue

The executor now has an interface to add client notifications.
This enables commands to trigger client notifications, if they
have changed a property of a graphical object.

11 years agoLayerManagerControl: added watch layer/surface function
Timo Lotterbach [Mon, 10 Sep 2012 13:05:17 +0000 (06:05 -0700)]
LayerManagerControl: added watch layer/surface function

This feature allows watching all notifications sent for changes
of a layer or surface.
This basically enables monitoring the state changes of a layer or surface.

Additionally the ilmClient init and destroy was improved.

11 years agoilmClient: added notification API
Timo Lotterbach [Mon, 10 Sep 2012 12:55:44 +0000 (05:55 -0700)]
ilmClient: added notification API

added API functions for adding and removing notifications
for layers and surfaces.

11 years agoRenderer: fixed issues detected by Coverity
Timo Lotterbach [Tue, 2 Oct 2012 08:17:41 +0000 (01:17 -0700)]
Renderer: fixed issues detected by Coverity

11 years agoLayerManagerService: Add signal SIGABRT to catch asserts
Michael Schuldt [Fri, 21 Sep 2012 09:29:23 +0000 (11:29 +0200)]
LayerManagerService: Add signal SIGABRT to catch asserts

11 years agoLayerManagerClient: Cleanup of Chromakey Implementation
Michael Schuldt [Wed, 12 Sep 2012 09:37:04 +0000 (11:37 +0200)]
LayerManagerClient: Cleanup of Chromakey Implementation

- Removing do while loop in layerSetChromakey
- Removing do while loop in surfaceSetChromakey

11 years agoChromaKeyExample : Adapting to new shm protocol of wayland 0.95
Michael Schuldt [Fri, 24 Aug 2012 13:51:24 +0000 (15:51 +0200)]
ChromaKeyExample : Adapting to new shm protocol of wayland 0.95

- the shm interfaces has changed in wayland 0.95
- this patch correct the behaviour.

11 years agoLayerManagerControl: added chromakey support
Timo Lotterbach [Wed, 8 Aug 2012 07:31:22 +0000 (00:31 -0700)]
LayerManagerControl: added chromakey support

- set chromakey value for surface and layer
- disable chromakey for surface and layer

11 years agoWLChromakeyExample:Fixed path of include header of ilm_client.h
Nobuhiko Tanibata [Sat, 4 Aug 2012 13:53:41 +0000 (22:53 +0900)]
WLChromakeyExample:Fixed path of include header of ilm_client.h

11 years agoAdd test code of chromakey for layer to IlmCommandTest and GraphicalObjectTest
Nobuhiko Tanibata [Sat, 4 Aug 2012 13:52:07 +0000 (22:52 +0900)]
Add test code of chromakey for layer to IlmCommandTest and GraphicalObjectTest

11 years agoAdd implementation of chromakey for layer to LayerManagerPlugin
Nobuhiko Tanibata [Sun, 5 Aug 2012 23:21:28 +0000 (08:21 +0900)]
Add implementation of chromakey for layer to LayerManagerPlugin

GLESGraphicSystem:
-If chromakey for layer is enabled, creates temporary buffer and render surfaces to it.
-and then the buffer is texturized and composite.

11 years agoAdd implementation of chromakey for layer
Nobuhiko Tanibata [Sat, 4 Aug 2012 13:47:16 +0000 (22:47 +0900)]
Add implementation of chromakey for layer

LayerManagerClient:
-Add members into structure of ilmLayerProperties to get status of chromakey by ilm_getPropertiesOfLayer
-ilm_layerSetChromaKey and modification of ilm_getPropertiesOfLayer to get properties of chromakey

GenericCommunicator:
-Add SetLayerChromaKey and GetPropertiesOfLayer

LayerManagerCommands:
-Add LayerSetChromaKeyCommand

11 years agoLayerManagerExamples: Add Example application for chromakey
Nobuhiko Tanibata [Thu, 26 Jul 2012 05:58:15 +0000 (14:58 +0900)]
LayerManagerExamples: Add Example application for chromakey

11 years agoLayerManagerClient: Add test code of chromakey to IlmCOmmandTest and GraphicalObjectTest
Nobuhiko Tanibata [Thu, 26 Jul 2012 00:26:47 +0000 (09:26 +0900)]
LayerManagerClient: Add test code of chromakey to IlmCOmmandTest and GraphicalObjectTest

11 years agoAdd implmentation of chromakey for surface by shader program to LayerMangerPlugin
Nobuhiko Tanibata [Thu, 26 Jul 2012 00:20:47 +0000 (09:20 +0900)]
Add implmentation of chromakey for surface by shader program to LayerMangerPlugin

LayerManagerService:
-Add parameter of chromakey to ShaderProgram in order to set chromakey to shaders

X11GLESRenderer:
-renderer_frag_add_uchromakey. If chromakey and fragment color are same, the pixel is ignored.

GLESGraphicSystem:
-If chromakey is enabled, shader for chromakey is enabled.

11 years agoAdd implmentation of chromakey for surface
Nobuhiko Tanibata [Thu, 26 Jul 2012 05:55:40 +0000 (14:55 +0900)]
Add implmentation of chromakey for surface

LayerManagerClient:
-Add members into structure of ilmSurfaceProperties to get status of chromakey by ilm_getPropertiesOfSurface
-ilm_surfaceSetChromaKey and Modification of ilm_getPropertiesOfSurface to get properties of chromakey

GenericCommunicator:
-Add SetSurfaceChromaKey and GetPropertiesOfSurface

LayerManagerService
-Add colorkey's methods and valiables to GraphicalObject

LayerManagerPlugins
-Add SurfaceSetChromakeyCommand

11 years agoLayerManagerService: Updating release notes excalibur_release ivi-layer-management_version_0_9_7
Michael Schuldt [Wed, 12 Sep 2012 09:26:05 +0000 (11:26 +0200)]
LayerManagerService: Updating release notes

11 years agoilmClient: fixed memory leak, error messages were not released
Timo Lotterbach [Wed, 12 Sep 2012 09:06:52 +0000 (02:06 -0700)]
ilmClient: fixed memory leak, error messages were not released

destroyMessage() was only called for messages, if typecheck for "Command"
was successful. If type was "Error", destroy was omitted.

This patch changes the behavior to release all received events.

11 years agoIpcModule: Fix Memory Leak therefore introducing destroyMessage functionality ivi-layer-management_version_0_9_7_rc2
Michael Schuldt [Tue, 4 Sep 2012 12:18:10 +0000 (14:18 +0200)]
IpcModule: Fix Memory Leak therefore introducing destroyMessage functionality

- This patch will fix a huge memory leak on both client
  and generic communicator
- This memory leak will not occur on all ipc module only if dbus is used.
- To guarantee that the ipc message is successfull destroyed
  destroyMessage functionality is added.

11 years agoLayerManagerService: Updating Release Notes
Michael Schuldt [Mon, 3 Sep 2012 09:29:56 +0000 (11:29 +0200)]
LayerManagerService: Updating Release Notes

11 years agoX11WindowSystem: Slight changes in inheritance behaviour
Michael Schuldt [Thu, 30 Aug 2012 09:00:41 +0000 (11:00 +0200)]
X11WindowSystem: Slight changes in inheritance behaviour

- All WindowSystems which are derived from the X11WindowSystem
  can now overwrite the calculateSurfaceFps and calculateFps Method.

11 years agoLog: Introducing diagnostic callback injection
Michael Schuldt [Thu, 30 Aug 2012 08:58:59 +0000 (10:58 +0200)]
Log: Introducing diagnostic callback injection

- On the OEM side it is needed to introduce diagnostic callbacks
- Therefore it is possible to control the platform specific plugIn
  by message injection from the dlt-deamon
- Currently the functionality is complete working WITH_DLT=ON
  otherwise only the callback registration is working, but no
  callback will occur.

11 years agoX11WindowSystem : Fixing wrong composition.
Michael Schuldt [Fri, 24 Aug 2012 10:00:57 +0000 (12:00 +0200)]
X11WindowSystem : Fixing wrong composition.

- If a running application will be destroyed or the window
  will be unmapped, there was an issue that the composition will
  display garbage at top of any surfaces.

- Due to the fact that enableRendering and disableRendering is introduced
  that issue is fixed.

11 years agoWaylandBaseWindowSystem: fixing build issue.
Michael Schuldt [Fri, 24 Aug 2012 09:58:06 +0000 (11:58 +0200)]
WaylandBaseWindowSystem: fixing build issue.

11 years agoRenderers: refactor recomposition methods
Adam Cheney [Fri, 10 Aug 2012 03:23:29 +0000 (20:23 -0700)]
Renderers: refactor recomposition methods

- Adds support in GraphicSystem for accepting a LayerList to
  render, instead of only one Layer.  This enables future
  optimizations that change the rendering order.
      eg. - reverse render order to utilize depth test culling
          - draw multiple layers/surfaces at once (multitexturing)

  also includes a 'clear' flag so the background clear can be
  optimized as well.
      eg. - no need to clear obscurred pixels

- Don't reset any damage flags until after rendering has taken
  place.  Detailed damage information could be useful to the
  GraphicSystem when it is rendering.  Wait until after
  recomposition, then clear all flags. Share the routine to
  clear damage flags in the BaseWindowSystem.

11 years agoLayerManagerService : Adding Global Object search path during Plugin Load.
Michael Schuldt [Thu, 23 Aug 2012 09:59:42 +0000 (11:59 +0200)]
LayerManagerService : Adding Global Object search path during Plugin Load.

- extending the dlopen call by RTLD_GLOBAL, due to the fact that
  there is a bug in libwayland-server / client which is currently not
  working with only RTLD_NOW.

- this shoud have no side effects on other plugins.

11 years agoWindowSystem : Updating WaylandBaseWindowSystem.
Michael Schuldt [Thu, 23 Aug 2012 09:55:38 +0000 (11:55 +0200)]
WindowSystem : Updating WaylandBaseWindowSystem.

- Update WaylandBaseWindowSystem to support wayland version 0.95
- removing functions which not needed anymore.

11 years agoGraphic: Changing Log and Startup behaviour to condition signaling.
Michael Schuldt [Fri, 3 Aug 2012 10:36:57 +0000 (13:36 +0300)]
Graphic: Changing Log and Startup behaviour to condition signaling.

- Condition signaling has to be merged with master to speed up
  layermanagement startup

11 years agoRenderUtil: Activating Binary Shader support
Michael Schuldt [Thu, 2 Aug 2012 15:39:43 +0000 (18:39 +0300)]
RenderUtil: Activating Binary Shader support

11 years agoLayerManagerCommands: Adding code to calculate surface target values
Michael Schuldt [Fri, 6 Jul 2012 11:11:09 +0000 (13:11 +0200)]
LayerManagerCommands: Adding code to calculate surface target values

- If Source and Destination Region of a Layer / Surface has changed,
  the surface targetposition has to be calculated.

11 years agoViewportTransform : Calculation moved to surface object
Michael Schuldt [Fri, 6 Jul 2012 10:22:21 +0000 (12:22 +0200)]
ViewportTransform : Calculation moved to surface object

- Due to this calculation the renderer does have to update
  these value every render loop.
- The target source and destination region, has only be calculated if
  the corresponding value have changed.
- ViewportTransform moved to LayerManagerService

11 years agoLayerManagerControl: added input properties to "get surface <surfaceid>" and "get...
Timo Lotterbach [Wed, 8 Aug 2012 07:01:46 +0000 (00:01 -0700)]
LayerManagerControl: added input properties to "get surface <surfaceid>" and "get scene"

11 years agotoolchain.cmake: Improve sample file to demonstrate cross compilation
Frédéric Blain [Fri, 3 Aug 2012 08:14:52 +0000 (10:14 +0200)]
toolchain.cmake: Improve sample file to demonstrate cross compilation

This patch show the mandatory cmake variables to use when one need to cross compile LayerManager.
It also correct the type of other cmake variables.

11 years agoX11WindowSystem: Remove EGL context switching
Rahul Singhal [Wed, 1 Aug 2012 05:17:47 +0000 (10:47 +0530)]
X11WindowSystem: Remove EGL context switching

A lot of EGL context switching was going on always to support a rare
case of creating a custom shader in a different thread. Added a
spin-lock mechanism to counter the multi-threading problem. Now
context switch only happens when a shader is being created. This
gives a 2% performance improvements.

11 years agoGLESGraphicsystem: Remove some redundant state changes
Rahul Singhal [Wed, 1 Aug 2012 06:13:06 +0000 (11:43 +0530)]
GLESGraphicsystem: Remove some redundant state changes

11 years agoGLXApplicationExample: Demonstrate new IPC for Input Events
Frédéric Blain [Wed, 1 Aug 2012 14:49:32 +0000 (16:49 +0200)]
GLXApplicationExample: Demonstrate new IPC for Input Events

This patch show how to use the newly added IPC for the LM input framework.
It can serve as example for client applications.

11 years agoMake InputManager.h installable
Frédéric Blain [Wed, 25 Jul 2012 08:10:01 +0000 (10:10 +0200)]
Make InputManager.h installable

This patch ensure InputManager.h can be installed on a system. It removes dependencies toward config.h

11 years agoImprove plugin search over specific filesystem type
Frédéric Blain [Mon, 6 Aug 2012 16:48:56 +0000 (18:48 +0200)]
Improve plugin search over specific filesystem type

"man readdir" explains that only few filesystem type support a good filling of  "struct dirent.d_type". (nfs does not for instance)
To be POSIX compliant, we should use stat() instead to look if a file is a regular file.

This patch update getSharedLibrariesFromDirectory() to use  stat() when necessary & follow symlinks until reaching the real target.

12 years agoWaylandRenderer: Fixed broken build of Wayland Renderer
Timo Lotterbach [Fri, 20 Jul 2012 10:52:56 +0000 (03:52 -0700)]
WaylandRenderer: Fixed broken build of Wayland Renderer

12 years agoTcpIpcModule: fix signal handling
Timo Lotterbach [Tue, 17 Jul 2012 10:40:09 +0000 (03:40 -0700)]
TcpIpcModule: fix signal handling

12 years agoGenericCommunicator: refactored header file dependencies, logging
Timo Lotterbach [Mon, 16 Jul 2012 11:01:00 +0000 (04:01 -0700)]
GenericCommunicator: refactored header file dependencies, logging

12 years agoAdd keyboard support to GLXApplicationExample
Frédéric Blain [Wed, 11 Jul 2012 10:08:11 +0000 (12:08 +0200)]
Add keyboard support to GLXApplicationExample

This patch adds keyboard support to the sample application GLXApplicationExample (Just print stuffs on std ouput when a key is pressed or released).
It can be used for input framework validation.

12 years agoAdd input event support for X11WindowSystem
Frédéric Blain [Wed, 11 Jul 2012 09:47:55 +0000 (11:47 +0200)]
Add input event support for X11WindowSystem

This patch adds support for pointer & keyboard events to X11 window system.
It can serve as example to introduce input events support for other window system.

Note that MultiTouch is _not_ yet supported for the following reasons:
 1- I don't have any plateform runing a recent X11, which is needed for validation
 2- We would need to upgrade the whole X11WindowSystem to use XInput2, & I don't have the time for the moment
I've added comments in X11WindowSystem.cpp to indicate what has to be done. If someone wants to takeover this task .. ;)

12 years agoUpdate layerManagerControl with new IPCs
Frédéric Blain [Wed, 11 Jul 2012 08:29:45 +0000 (10:29 +0200)]
Update layerManagerControl with new IPCs

12 years agoUnit tests for new IPC
Frédéric Blain [Tue, 10 Jul 2012 10:51:28 +0000 (12:51 +0200)]
Unit tests for new IPC

This patch adds unit tests for the new IPC introduced by the Input Event framework. DBUSCommunicatorTest & IlmCommandTest have been completed.

12 years agoAdd new ipc for Input Events management from client
Frédéric Blain [Mon, 9 Jul 2012 11:09:11 +0000 (13:09 +0200)]
Add new ipc for Input Events management from client

This patch adds 3 new IPC :
 + SurfaceSetKeyboardFocusOn()
   -> Synchronous
   -> Set the keyboard focus on a particular surface
 + SurfaceGetKeyboardFocus()
   -> Synchronous
   -> Get the identifier of the surface which currently hold the keyboard focus
 +SurfaceUpdateInputEventAcceptanceOn()
   -> Asynchronous
   -> Indicate from which input devices type a surface can accept input events.

The patch also updates the IPC SurfaceGetProperties() so that it now returns the list of type of devices from which a surface can accept input events.

Modules changed are :
 + LayerManagerCommands : Add the 3 new commands
 + GenericCommunicator : Add support for the new commands
 + ilmClient : Make the new commands available for the clients

12 years agoAdd Unit Tests for InputManager
Frédéric Blain [Fri, 6 Jul 2012 17:47:09 +0000 (19:47 +0200)]
Add Unit Tests for InputManager

12 years agoAdd new input event framework
Frédéric Blain [Fri, 6 Jul 2012 13:30:35 +0000 (15:30 +0200)]
Add new input event framework

This patch adds the new input event framework to LayerManager:
 + InputManager : New class created to centralized all input management.
 + Irenderer: New method getInputManager() has been added. Will be used later on by LM commands to access to InputManager
 + BaseRenderer: Instanciate automatically the InputManager to be used by concrete renderer.
 + BaseWindowSystem: New attribute to hold a pointer to the InputManager. This pointer is filled at construct time. Concrete WindowSystems will receive the InputManager from their concrete renderer.
 + GraphicalSurface: DestToSourceCoordinates() now takes int instead of unsigned int as in/out coordinates. If the coordinates are outside the surface, negative values are returned.
 + Surface: New thread safe methods updateInputEventAcceptanceFrom() & isInputEventAcceptedFrom() to control which input events are accepted by the Surface

12 years agoRemove cmake flag WITH_INPUT_EVENTS
Frédéric Blain [Thu, 5 Jul 2012 15:38:59 +0000 (17:38 +0200)]
Remove cmake flag WITH_INPUT_EVENTS

Input events are now activated permanently to LayerManager. This won't add any rutime overhead with the new Input frameworkt as long as the methods report[Key/Pointer/Touch] events are not called. Thus, no impact for people that do not wan't to use input events.

12 years agoRemove previous input event management
Frédéric Blain [Thu, 5 Jul 2012 15:20:46 +0000 (17:20 +0200)]
Remove previous input event management

Scene & X11WindowSystem are now clean from input events management, waiting for the new framework to be introduced.

12 years agoLayerManagerSerivce: removed some minor compiler warnings
Timo Lotterbach [Fri, 20 Jul 2012 07:04:13 +0000 (00:04 -0700)]
LayerManagerSerivce: removed some minor compiler warnings

12 years agoGLXlibrary: fixed linker settings in build system
Timo Lotterbach [Fri, 20 Jul 2012 06:17:09 +0000 (23:17 -0700)]
GLXlibrary: fixed linker settings in build system

GLXlibrary was not linked to required libraries as X11.

12 years agoTcpIpcModule: support multiple data buffers for send/receive
Timo Lotterbach [Mon, 16 Jul 2012 11:01:00 +0000 (04:01 -0700)]
TcpIpcModule: support multiple data buffers for send/receive

This is a preparation to introduce asynchronous client notifications.

Having multiple buffers is required in these situations:
- a client is just creating a message and is about to send it
- a client notification is received, overwriting the clients message

or:
- a message was received, the client is just about to read the data from it
- a client notification is received, overwriting the clients message

To handle these situations, 1 sendBuffer and 2 separate receive buffer have been created.

12 years agoCleaning: Remove compiler warning for LayerManagerService_Test
Frédéric Blain [Wed, 4 Jul 2012 12:46:54 +0000 (14:46 +0200)]
Cleaning: Remove compiler warning for LayerManagerService_Test

12 years agoCleaning: Remove compiler warning on X11WindowSystem.cpp
Frédéric Blain [Wed, 4 Jul 2012 12:45:01 +0000 (14:45 +0200)]
Cleaning: Remove compiler warning on X11WindowSystem.cpp

12 years agoLayerManagement: fixed plugin path handling
Timo Lotterbach [Fri, 6 Jul 2012 11:42:57 +0000 (04:42 -0700)]
LayerManagement: fixed plugin path handling

The generic communicator and the GLESGraphicSystem now use
the configuration flag CMAKE_INSTALL_PREFIX to
determine the default plugin search path.

Additionally the GeniviDemo.sh script was updated, since exporting
LM_PLUGIN_PATH is not required any more.
The script still contains a hint, that the plugin search path may
be modified.

12 years agoTextureBinders: Remove redundant texture uploads on every texture bind
Rahul Singhal [Mon, 25 Jun 2012 09:50:26 +0000 (15:20 +0530)]
TextureBinders: Remove redundant texture uploads on every texture bind

EGLImages can be created once and reused so we don't need to specify
& upload them every time we use them.

12 years agoWindowSystem: Forced composition should also redraw HW layers
Rahul Singhal [Fri, 22 Jun 2012 10:26:41 +0000 (15:56 +0530)]
WindowSystem: Forced composition should also redraw HW layers

12 years agoWaylandWindowSystems: Correct a previous overwritten method name change
Rahul Singhal [Tue, 12 Jun 2012 10:09:08 +0000 (15:39 +0530)]
WaylandWindowSystems: Correct a previous overwritten method name change

Change checkForNewSurface function name to checkForNewSurfaceNativeContent

This change was overwritten during the wayland window system
refactoring.

12 years agoX11GLESRenderer: fixed shader file search path
Timo Lotterbach [Fri, 6 Jul 2012 06:21:16 +0000 (23:21 -0700)]
X11GLESRenderer: fixed shader file search path

The renderer now uses the configuration flag CMAKE_INSTALL_PREFIX to
determine it's default shader search path.

12 years agoUpdate default plugin directory search path to match CMAKE_INSTALL_PREFIX
Frédéric Blain [Thu, 5 Jul 2012 15:11:59 +0000 (17:11 +0200)]
Update default plugin directory search path to match CMAKE_INSTALL_PREFIX

Currently default plugin directory is hard coded to /usr/lib in several places. This patch takes into consideration the installation directory specified with cmake.
IpcModuleLoader.cpp has also been slightly modified to avoid compiler warnings

12 years agoConfig: removed Log dependency from autogenerated config.h file
Timo Lotterbach [Thu, 5 Jul 2012 14:46:23 +0000 (07:46 -0700)]
Config: removed Log dependency from autogenerated config.h file

config.h now contains a string array with the build configuration,
that is logged by the LayerManagerService is required.
Additionally for each flag the log level is defined.

12 years agoGenericCommunicator: fixed crash during shutdown, if no ipcModule was loaded
Timo Lotterbach [Thu, 5 Jul 2012 09:51:26 +0000 (02:51 -0700)]
GenericCommunicator: fixed crash during shutdown, if no ipcModule was loaded

the GenericCommunicator always tried to destroy the ipcModule. this failed
and resulted in a crash, if no ipcModule was loaded during startup.

12 years agoClean type sharing between ilm types & internal types
Frédéric Blain [Thu, 28 Jun 2012 10:02:57 +0000 (12:02 +0200)]
Clean type sharing between ilm types & internal types