Commit graph

288 commits

Author SHA1 Message Date
Simon Fels
f7cabbf8ff Use largest layer of a window to calculate relative layer positions
As a window can be built out of multiple layers we need to take one as
the primary one which covers the entire window area. As it is not
guranteed that the layer size will match the actual window size cause
of synchronizaton delays with the Android side window manager we take
the layer as primary which covers the largest screen area. This should
solve most issues.
2016-12-23 15:38:35 +01:00
Simon Fels
3d051a4056 Update window frame when window is moved rathern when state was updated
This leads to incorrect calculations of the layer position calculation
inside the window.
2016-12-22 08:33:33 +01:00
Simon Fels
c4664603fd Check errno correctly for errors to ignore 2016-12-21 10:32:07 +01:00
Simon Fels
9f69c580af Get rid of renderer singleton 2016-12-21 10:02:02 +01:00
Simon Fels
aeff6e35df Cleanup formatting and code style 2016-12-21 08:40:40 +01:00
Simon Fels
3e70f5a548 Don't require alpha bits for the renderer config
This prevents certain client applications in the container to work.
2016-12-21 08:40:40 +01:00
Simon Fels
7ce2da3be3 Rework client renderer setup
This gets us rid of one unneeded socket based communication point which
we kept around for historic reasons (from Android QEMU) but don't really
need in our case. This allows a simplication of our setup and improves
performance.
2016-12-21 08:40:40 +01:00
Simon Fels
aa23c349a1 Merge pull request #19 from morphis/activity-launch-bounds
Allow clients to specify the launch bounds of a new activity
2016-12-21 08:40:26 +01:00
Simon Fels
324407eeaa Allow clients to specify the launch bounds of a new activity 2016-12-21 08:39:44 +01:00
Simon Fels
14d8bb2390 Calculate correct texture coordinates on created primitives 2016-12-19 09:17:11 +01:00
Simon Fels
4e72494aeb Calculate correct relative position for all renderables 2016-12-19 09:16:44 +01:00
Simon Fels
a3151b6a07 Calculate display bounds for all available displays
The hwcomposer module for Android doesn't support multi-monitor well
enough for our use case yet so we give Android a large enough primary
display. This may have negative effects performance wise for the until
we disabled all non freeform stack and wallpaper related rendering on
the Android side so that only visible windows are drawn to not waste
any GPU cycles on things we don't render anyway.
2016-12-19 08:00:50 +01:00
Simon Fels
009cbb3402 Don't stop SDL event processing thread when it is not running 2016-12-19 08:00:16 +01:00
Simon Fels
2f849059c2 Correct texture and frame size calculation to be correct in offscreen areas 2016-12-19 07:21:12 +01:00
Simon Fels
abb0497a5d Cleanup formatting 2016-12-15 09:20:36 +01:00
Simon Fels
3a55cf9189 Use correct markdown syntax to highlight shell commands 2016-12-15 08:52:21 +01:00
Simon Fels
0c234ed673 Fetch android image files from a specific subfolder 2016-12-15 08:49:26 +01:00
Simon Fels
4ec5f8f313 Drop superflous debug log message 2016-12-15 08:49:11 +01:00
Simon Fels
c9811ac804 Update and correct README 2016-12-15 08:48:19 +01:00
Simon Fels
e8438913fe Merge pull request #18 from morphis/remove-bwrap
Remove unused bubblewrap source
2016-12-15 08:29:46 +01:00
Simon Fels
4b63f8dca2 Remove unused bubblewrap source 2016-12-15 08:29:14 +01:00
Simon Fels
908469846d Merge pull request #17 from morphis/app-view
Implement simple application view
2016-12-13 21:06:02 +01:00
Simon Fels
43513ab4f2 Merge pull request #16 from morphis/kmod-support
Build and load binder/ashmem kernel modules on service start
2016-12-13 21:05:42 +01:00
Simon Fels
9ed4dd2b47 Provide desktop launcher for app view activity 2016-12-13 18:43:17 +01:00
Simon Fels
9c9eb48bf0 Implement simple activity to show all launchable applications 2016-12-13 18:42:50 +01:00
Simon Fels
7f564c55eb Build and load binder/ashmem kernel modules on service start
As both kernel modules are not part of the standard Ubuntu kernel we
need to build and load them at runtime. We bundle this together with
the container manager start and reuse the classic snap scripts to do
the actual build in a proper environment.
2016-12-13 13:51:40 +01:00
Simon Fels
eb0f691247 Merge pull request #15 from morphis/remove-test-platform-service
Get rid of test for the Android platform service
2016-12-09 17:26:11 +01:00
Simon Fels
e419b1fbd5 Get rid of test for the Android platform service 2016-12-09 17:25:43 +01:00
Simon Fels
357b1a58ec Merge pull request #14 from morphis/network-connectivity
Network connectivity
2016-12-09 17:24:58 +01:00
Simon Fels
cbb4beaac2 Restructure container manager startup script
Mount /cache and /data properly and stop bridge correctly.
2016-12-08 17:08:18 +01:00
Simon Fels
03583e360c Get rid of unwanted debug message 2016-12-08 17:07:36 +01:00
Simon Fels
fc55e2c59a Get rid of dropping capabilities as this prevents gaining relevant ones in the container 2016-12-08 17:06:52 +01:00
Simon Fels
f01ce872e8 Drop static DHCP configuration of eth0 2016-12-08 17:06:08 +01:00
Simon Fels
dd458efb38 Merge pull request #13 from morphis/bind-mount-cache-data
Bind mount cache/data on startup from writable space
2016-12-08 07:12:36 +01:00
Simon Fels
87da2f3744 Bind mount cache/data on startup from writable space 2016-12-08 07:12:09 +01:00
Simon Fels
0673c10354 Merge pull request #12 from morphis/map-dev-fuse
Map /dev/fuse to make Android volume manager happy
2016-12-08 07:11:28 +01:00
Simon Fels
e12ed13962 Map /dev/fuse to make Android volume manager happy 2016-12-08 07:10:52 +01:00
Simon Fels
c556bf4f2f Merge pull request #11 from morphis/window-movement-resize
Handle window movement/resize/close on our side and not in Android
2016-12-08 07:10:17 +01:00
Simon Fels
65531a3b82 Handle window movement/resize/close on our side and not in Android
This leads to much better performance and user interaction. Resizing
still has some flickering but that is a different area of problems.
2016-12-08 07:08:47 +01:00
Simon Fels
bd6e17ef70 Merge pull request #10 from morphis/rework-kmod-sym-access
Rework kmod sym access
2016-12-06 08:32:43 +01:00
Simon Fels
86e2ca424d kernel: exclude further build artifacts 2016-12-06 08:30:13 +01:00
Simon Fels
2095bebe0b kernel: binder: use kallsyms_lookup_name for internal symbol access 2016-12-06 08:29:59 +01:00
Simon Fels
f2110223d1 kernel: ashmem: use kallsyms_lookup_name for internal symbol access 2016-12-06 08:29:59 +01:00
Simon Fels
0887abe263 Merge pull request #9 from morphis/improve-snap-pkg
Improve snap pkg
2016-12-06 08:05:39 +01:00
Simon Fels
6860338c4b Use disk images instead of a rootfs tarball 2016-12-05 10:06:48 +01:00
Simon Fels
0c4668d029 Extend README with installation and build details 2016-12-05 07:10:21 +01:00
Simon Fels
637523b8cf Drop scripts we don't need anymore 2016-12-04 17:20:21 +01:00
Simon Fels
457bd794ff Don't load kernel modules anymore 2016-12-04 17:17:33 +01:00
Simon Fels
a86a5847f8 Start bridge as part of the container manager 2016-12-04 17:16:55 +01:00
Simon Fels
a8704556da Unload AppArmor profile for container management process
If we run the management process with the AppArmor profile loaded
from snap-confine various ashmem/binder operations are failing with
permission denied errors. To workaround this until this problem
is fixed we simply unload the AppArmor profile and continue to
execute completely without any profile loaded.
2016-12-04 17:07:44 +01:00