Commit Graph

7990 Commits

Author SHA1 Message Date
Vladimir Chtchetkine
492332c295 Merge "Implements connection with the emulator" 2011-09-13 09:45:09 -07:00
Vladimir Chtchetkine
33bda47528 Implements connection with the emulator
Change-Id: Ie3910a98e927f7b8ea556c403f8ced27e06bcdec
2011-09-13 09:44:32 -07:00
David 'Digit' Turner
0db6e8dd27 Merge "emulator: opengl: Support named pipes on Win32" 2011-09-13 07:32:29 -07:00
David 'Digit' Turner
b065016640 Merge "emulator: opengl: Add support for unix sockets." 2011-09-13 07:02:38 -07:00
David 'Digit' Turner
bde30e7480 Merge "emulator: opengl: re-enable gralloc builds" 2011-09-13 06:20:29 -07:00
David 'Digit' Turner
3abd13d4d6 emulator: opengl: Support named pipes on Win32
This patch adds support for Win32 named pipes for the communication
channel between the Opengl renderer library and its clients.

Named pipes should be much faster than local TCP sockets on this
platform. Note that by default, TCP sockets are still used. The
emulator needs to call setStreamMode(STREAM_MODE_PIPE) to be able
to use these.

Change-Id: I86d36624cf2b7fdd50f41e1e43c908348dca4657
2011-09-13 14:04:49 +02:00
David 'Digit' Turner
3d76ec1e3c emulator: opengl: Add support for unix sockets.
This patch allows the OpenGLES rendering library to use Unix
sockets instead of TCP ones when communicating with its clients.
On certain benchmarks (e.g. 0xBench teapot), this provides a
noticeable improvement (x1.05 fps) without any other changes.

On practice, Unix sockets are faster than TCP sockets, even
local ones. Also, this introduces a moderate amount of
abstraction that will allow us to use Win32 named pipes
on Windows (where TCP sockets are much slower than they
are on Unix).

Note that by default, TCP streams are still used.
The client (emulator) must call the new API 'setStreamMode'
to change it to STREAM_MODE_UNIX between 'initLibrary' and
'startOpenglRenderer' calls.

+ Adjust callers / user appropriately.

Change-Id: I4105bbf07541f3146b50a58d1a5b51e8cf044fab
2011-09-13 14:03:32 +02:00
David 'Digit' Turner
3598af3850 emulator: opengl: add missing pthread_mutex_destroy
Change-Id: Ib6be00619e06f5ff492a080d1feb2954b626fa26
2011-09-13 14:02:37 +02:00
David 'Digit' Turner
c308bfc05f emulator: opengl: re-enable gralloc builds
This re-enables the build of the gralloc GLES emulation library.

This is only for experimentation / debugging purpose. GLES emulation
is still disabled by default in the emulator. Even if you force-enable
it by using the '-gpu on' flag, this module will not properly yet
and nothing will be displayed.

Change-Id: I8f0ca8805ed99037b011365d08507ca08bff5e75
2011-09-13 13:59:53 +02:00
Vladimir Chtchetkine
455e444a1f Merge "Fake camera implementation" 2011-09-12 08:51:18 -07:00
Vladimir Chtchetkine
b97c2f0b59 Fake camera implementation
The code submitted here builds a camera.goldfish.so module that encapsulates a camera HAL.

The major components of the camera HAL implementation are:
* Generic HAL module implemented in emulated_camera_hal.cpp There is nothing much
  to it: just exporting the required HAL header.
* EmulatedCameraFactory class that manages emulated cameras, and provides handling for
  camera_module_methods_ methods. There is only one object of this class, that is statically
  instantiated when camera.goldfish.so module is loaded.
* EmulatedCamera class that implements camera_device_ops_t API. Objects of this class are
  instantiated during EmulatedCameraFactory construction, and they interact with objects
  of EmulatedCameraDevice class to get frames.
* EmulatedCameraDevice class encapsulates an actual camera device. Objects of this class
  are contained in EmulatedCameraDevice objects, and interact with them as required by the
  API.

The fake camera implementation is shared between EmulatedFakeCamera, and EmulatedFakeCameraDevice
classes. They are pretty light. In fact, EmulatedFakeCamera is nothing more than just a
placeholder for EmulatedFakeCameraDevice instance, and EmulatedFakeCameraDevice does nothing
more, than just drawing a checker board with a bouncing square.

Other components / routines are minor: helpers, wrappers, etc. The code is heavily commented,
so there will be plenty of explanations between the lines.

Change-Id: I4463e14c255c6e3b1dcca17bed5f4efde32d9879
2011-09-12 08:37:48 -07:00
Stephen Hines
bbc0bd4936 Merge "Bump minimum SDK version to 14." 2011-09-09 15:59:38 -07:00
Stephen Hines
2f8b09d926 Bump minimum SDK version to 14.
BUG=5280704

Change-Id: Ib26b93f4b41b5c910afaa49b4420d9bd4272acd9
2011-09-09 14:49:44 -07:00
Raphael
f31a96aa9f SDK packaging for unified llvm-rs-cc binary.
Change-Id: I73971ade5bddadd2f395d098e5a083a6f683c302
2011-09-08 16:42:12 -07:00
Jake Hamby
5cba0d859e Merge "Exclude some non-source folders from IntelliJ projects." 2011-09-07 13:27:10 -07:00
Scott Main
ddd0d0c656 rewrite HC Gallery app to support phones. In summary, this change:
- moves tablet-style layouts to layout-large* directories
- adds ContentActivity to host the ContentFragment when on phones
- adds an OnItemSelectedListener interface to TitlesFragment, which MainActivity
  implements in order to receive callbacks on click events to the list item and then
  pass the selected item to the ContentFragment in the manner appropriate for the
  current configuration... Specifically, when in two-pane mode, it updates the ContentFragment
  directly, and when in single-pane mode, it starts the ContentActivity with intent data
  about the selected item, which then updates the ContentFragment
- Change CameraSample.java to CameraActivity.java for name conventions
- Moves all menu strings into string resources
- Fixes camera sample to properly handle front-facing camera on other devices (was broken
  on nexus s and on g-slate)
- Fixes camera sample to handle resume state after the camera has changed (for example, when
  switched to a different camera, it would crash on resume)
- Moves various code around between classes as appropriate for the fragment handling the
  action. For example, move the ActionBar.TabListener implementation to the TitlesFragment
  (was originally impemented by the MainActivity)
- Adds logic to support devices without camera and properly declare the camera in manifest as such
- Maintains the state of hidden titles list across restarts

Change-Id: I27a39a68dee37325c0c3607aa0b56ab6c134d026
2011-09-06 18:24:49 -07:00
Raphael Moll
8ea8b906de Merge "Move sdk project ant templates into development.git" 2011-09-06 13:25:47 -07:00
David Turner
c73fe080ef Merge "emulator: opengl: Fix egl.cfg tsdefinition" 2011-09-03 03:43:51 -07:00
Raphael Moll
1fe8fd6d69 Move sdk project ant templates into development.git
These templates were previously located in sdk.git but
are actually embedded in sdk/platforms/android-n/templates
so really they should be in development.git to avoid
any multi-repo issue.

Change-Id: I88e3d8fef70c48629407faacad798f781bb1f6d9
2011-09-02 11:17:57 -07:00
Gilles Debunne
108938c95c Merge "Add switch demo" 2011-09-02 10:03:00 -07:00
David 'Digit' Turner
1cb2c5455c emulator: opengl: Fix egl.cfg tsdefinition
This fixes the definition of the emulator-specific egl.cfg file
used to indicate to our EGL system library which support modules
are available in the emulator.

We need to list two modules here:

  'emulation' corresponding to GPU emulation
  'android' corresponding to the software renderer

The indices before each name correspond to the 'display' and 'impl'
numbers that are expected by frameworks/base/opengl/libs/EGL/Loader.cpp

In a nutshell, 'display' should always be 0, and 'impl' should be 0
for the software renderer, and 1 for a hardware-based one. See the code
under framewors/base/opengl/libs/EGL/egl.cpp for mode details.

Change-Id: I52c898759200c2dfba9049ed00b31b18e8c37f69
2011-09-02 15:26:14 +02:00
Raphael Moll
169eb6ea17 Merge "Move sdk project ant templates into development.git" 2011-09-01 21:35:11 -07:00
Raphael Moll
22e4eb2957 Move sdk project ant templates into development.git
These templates were previously located in sdk.git but
are actually embedded in sdk/platforms/android-n/templates
so really they should be in development.git to avoid
any multi-repo issue.

Change-Id: I9b68f35572fa0c18001873854e1e60d2947dcb39
2011-09-01 00:51:46 -07:00
Adam Powell
758f6d0ab5 Add switch demo
Added default on state and a listener triggering a toast.

Change-Id: I79a89801d878b08fee55919e92044cd71f47108c
2011-08-31 11:23:02 -07:00
David 'Digit' Turner
1479a6cb84 am 7cd5aeb7: am dda2e51a: am 6ba16ba7: Merge "emulator: opengl: add initLibrary function to render library"
* commit '7cd5aeb7c7a109712a660c89d50fb67d35471081':
  emulator: opengl: add initLibrary function to render library
2011-08-30 09:50:49 -07:00
David 'Digit' Turner
b61218ba1b am 1ff9d194: am b6114c7b: am 7cb797f1: Merge "emulator: opengl: use bilinear filtering"
* commit '1ff9d194e3f252a03555edd90702a368a10e50cc':
  emulator: opengl: use bilinear filtering
2011-08-30 09:50:46 -07:00
David 'Digit' Turner
ad520ab701 Merge "emulator: opengl: Fix the emulator-specific builds." 2011-08-30 01:21:32 -07:00
Dianne Hackborn
96ce893673 Merge "Dang you, TabHost." 2011-08-29 18:42:41 -07:00
Dianne Hackborn
648e25f0c7 Dang you, TabHost.
Change-Id: I937cd0748fe0c44d6cd642637321aa6eb550cf91
2011-08-29 18:39:21 -07:00
David 'Digit' Turner
7cd5aeb7c7 am dda2e51a: am 6ba16ba7: Merge "emulator: opengl: add initLibrary function to render library"
* commit 'dda2e51a15ddfc44b34ec3c35e68f3bc1cfb5786':
  emulator: opengl: add initLibrary function to render library
2011-08-29 18:01:01 -07:00
David 'Digit' Turner
1ff9d194e3 am b6114c7b: am 7cb797f1: Merge "emulator: opengl: use bilinear filtering"
* commit 'b6114c7b66744729b8e0e9142e8b07eba41637d5':
  emulator: opengl: use bilinear filtering
2011-08-29 18:00:56 -07:00
David 'Digit' Turner
dda2e51a15 am 6ba16ba7: Merge "emulator: opengl: add initLibrary function to render library"
* commit '6ba16ba75232000740d0532e936df88e33b49b05':
  emulator: opengl: add initLibrary function to render library
2011-08-29 17:57:53 -07:00
David 'Digit' Turner
b6114c7b66 am 7cb797f1: Merge "emulator: opengl: use bilinear filtering"
* commit '7cb797f1fda821c0bc8498855ff8cdcd893c0985':
  emulator: opengl: use bilinear filtering
2011-08-29 17:57:52 -07:00
David 'Digit' Turner
34fa5630b7 emulator: opengl: Fix the emulator-specific builds.
The gralloc.goldfish module cannot build in master because
the gralloc interface evolved considerably since gingerbread
(which the current code is based on).

For now, disable it completely, this will make it impossible
to test GPU emulation in the internal master tree for now.

We'll have to port this module to the new world-order to solve
this.

Change-Id: I864217f9c41fd1234f0df497005499800af879e5
2011-08-29 22:20:37 +02:00
David 'Digit' Turner
ec4c093361 am 84e83659: am 13cd2cd4: am 56eca4e0: Merge "emulator: opengl: fix the build"
* commit '84e836590e5fb655c7fd1f49613a4ae9cd2fa963':
  emulator: opengl: fix the build
2011-08-29 11:05:17 -07:00
David 'Digit' Turner
8ef53760d5 am 2276a468: am 846dd223: am dbe3b024: Merge "emulator: opengl: fallback gralloc module"
* commit '2276a468202750d743848810675e62a63ace67bb':
  emulator: opengl: fallback gralloc module
2011-08-29 11:05:10 -07:00
David 'Digit' Turner
c6d73d7af4 am d960239d: am 43946da5: am 7f45e7c1: Merge "emulator: oops, really fix the build"
* commit 'd960239de6371c2368792c6cc75de6d59abe172c':
  emulator: oops, really fix the build
2011-08-29 11:05:01 -07:00
David 'Digit' Turner
bce8ca33d0 am fec153a7: am 9765cb8a: am 2a59fa7d: Merge "emulator: fix the build"
* commit 'fec153a765edf051f3b97610c748d1ab9526cbfa':
  emulator: fix the build
2011-08-29 11:04:57 -07:00
David 'Digit' Turner
6ba16ba752 Merge "emulator: opengl: add initLibrary function to render library" 2011-08-29 08:01:42 -07:00
David 'Digit' Turner
5d1e8b2f28 emulator: opengl: add initLibrary function to render library
This adds an initLibrary() function to libOpenglRender.

It will be used by the emulator to fallback on software rendering
if the library cannot be initialized properly, e.g. if it is not
possible to load the host EGL/GLES libraries.

Change-Id: I41e8ad73a315166e4a15cbee1db72c2552370f46
2011-08-29 16:57:38 +02:00
David 'Digit' Turner
7cb797f1fd Merge "emulator: opengl: use bilinear filtering" 2011-08-29 06:55:32 -07:00
David 'Digit' Turner
84e836590e am 13cd2cd4: am 56eca4e0: Merge "emulator: opengl: fix the build"
* commit '13cd2cd4f57ce3e005f8d5c150c0cd3c4daf386d':
  emulator: opengl: fix the build
2011-08-26 12:12:56 -07:00
David 'Digit' Turner
2276a46820 am 846dd223: am dbe3b024: Merge "emulator: opengl: fallback gralloc module"
* commit '846dd22375f3db7308fa676e9730757ec1e6c028':
  emulator: opengl: fallback gralloc module
2011-08-26 12:12:52 -07:00
David 'Digit' Turner
13cd2cd4f5 am 56eca4e0: Merge "emulator: opengl: fix the build"
* commit '56eca4e089ee51a43bf3c816773e7af51ca5c628':
  emulator: opengl: fix the build
2011-08-26 12:10:51 -07:00
David 'Digit' Turner
846dd22375 am dbe3b024: Merge "emulator: opengl: fallback gralloc module"
* commit 'dbe3b024cb81419796f01eebb64fba28eedaa301':
  emulator: opengl: fallback gralloc module
2011-08-26 12:10:49 -07:00
David 'Digit' Turner
56eca4e089 Merge "emulator: opengl: fix the build" 2011-08-26 09:18:42 -07:00
David 'Digit' Turner
2dfb7b549f emulator: opengl: fix the build
Change-Id: Ia20d15b63a059ed5d86c9087b827bdfa32c41c86
2011-08-26 18:17:13 +02:00
David 'Digit' Turner
dbe3b024cb Merge "emulator: opengl: fallback gralloc module" 2011-08-26 08:46:55 -07:00
David 'Digit' Turner
91572d15eb emulator: opengl: use bilinear filtering
This patch changes the filter used to scale the GL window
in the rendering library. Instead of nearest-neighbour, use
bi-linear, which will provide for much more pleasant results
when scaling the emulator UI window, or toggling to full-screen
mode.

Change-Id: If2d9e1300fa4878c25e1221eaedb565b9150431a
2011-08-26 17:31:58 +02:00
David 'Digit' Turner
783cc1bb53 emulator: opengl: fallback gralloc module
This patch modifies the gralloc.goldfish module to check
that the emulator does, indeed, support GPU emulation.

If this is not the case, it loads the framebuffer-based fallback
module (gralloc.default) explicitely and uses it instead.

This is necessary because sometimes the emulator will be started
in headless mode in restricted environment, i.e. without access
to the display subsystem or GL libraries, which make GPU emulation
impossible.

We check for ro.kernel.qemu.gles which will be either undefined
or set to 0 if the emulator doesn't support GPU emulation, or 1
otherwise.

Change-Id: Ib6b143e6dcdfb44ff2c5b889138d0fb4118bb461
2011-08-26 17:31:58 +02:00