This moves the copy/strip/rm logic for the Windows SDK
from the patch_windows_sdk.sh to a regular sdk-windows-x86.atree.
The bash script is still here to invoke atree and do whatever
cleanup we might want to do later.
This should make it easier to maintain the Windows SDK
by providing a structure similar to tools.atree.
This change requires build.git Change-Id: I22aae7a8 to
have rm/strip support in atree.
Change-Id: If937eef4a819e7da21aa993459111fc5d99474a8
We are moving to a single llvm executable able to handle all
API levels so this file (helping select the llvm exe depending
on target API is not needed anymore).
Change-Id: Iea7b59de182ceb4e5f8a9ba9fe712d47834d39e0
These two tasks (starting the camera device, and starting working thread that pulls frames
from the started camera device) should be clearly separated, and should not be combined in
one method (as it was with the 'startCapturing' method).
Change-Id: I779bee924d99d9a87257c6b76791545b76795e72
Holding an object lock while macking the callbacks cause deadlocks
due to reentrance to the callabck notifier.
Change-Id: I5f2780989798ebf5c5d7aab34ac233bb5952079d
When stopping the camera, the working thread should be stopped before sending
"stop" query to the emulator: we don't want "frame" queries to be floating around
while we're in the process of stopping the camera.
Change-Id: I16dc56ca1c2e304a07a074302001d2e27100f2ac
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
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
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
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
- 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
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
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
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