Docs: Adding new diagram images
Adding new images for TV and HAL components. Minor edits to adjust image float/flow.
Adding new images for DRM. Minor edits to correct orphans.
Adding changes to audio diagram
Bug: 18947698
Change-Id: I7bf808fc0bbd99a8fa77f333f933a88a4942bf80
diff --git a/src/devices/graphics/index.jd b/src/devices/graphics/index.jd
index 67e9d12..e86a42f 100644
--- a/src/devices/graphics/index.jd
+++ b/src/devices/graphics/index.jd
@@ -2,7 +2,7 @@
@jd:body
<!--
- Copyright 2014 The Android Open Source Project
+ Copyright 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -25,6 +25,8 @@
</div>
</div>
+<img style="float: right; margin: 0px 15px 15px 0px;" src="images/ape_fwk_hal_graphics.png" alt="Android Graphics HAL icon" width="175" />
+
<p>The Android framework offers a variety of graphics rendering APIs for 2D and
3D that interact with manufacturer implementations of graphics drivers, so it
is important to have a good understanding of how those APIs work at a higher
@@ -65,7 +67,7 @@
<p>Android implementers can test OpenGL ES functionality using the <a href="DeqpUserGuide.pdf">drawElements Quality Program</a>, also known as deqp.</p>
-<h2 id=android_graphics_components>Android graphics components</h2>
+<h2 id="android_graphics_components">Android graphics components</h2>
<p>No matter what rendering API developers use, everything is rendered onto a
"surface." The surface represents the producer side of a buffer queue that is
@@ -75,19 +77,19 @@
<p>The following diagram shows how the key components work together:</p>
-<img src="images/graphics_surface.png" alt="image-rendering components">
+<img src="images/ape_fwk_graphics.png" alt="image-rendering components">
<p class="img-caption"><strong>Figure 1.</strong> How surfaces are rendered</p>
<p>The main components are described below:</p>
-<h3 id=image_stream_producers>Image Stream Producers</h3>
+<h3 id="image_stream_producers">Image Stream Producers</h3>
<p>An image stream producer can be anything that produces graphic buffers for
consumption. Examples include OpenGL ES, Canvas 2D, and mediaserver video
decoders.</p>
-<h3 id=image_stream_consumers>Image Stream Consumers</h3>
+<h3 id="image_stream_consumers">Image Stream Consumers</h3>
<p>The most common consumer of image streams is SurfaceFlinger, the system
service that consumes the currently visible surfaces and composites them onto
@@ -99,7 +101,7 @@
app consuming a camera preview image stream. Non-GL applications can be
consumers too, for example the ImageReader class.</p>
-<h3 id=window_manager>Window Manager</h3>
+<h3 id="window_manager">Window Manager</h3>
<p>The Android system service that controls a window, which is a container for
views. A window is always backed by a surface. This service oversees
@@ -108,7 +110,7 @@
The Window Manager sends all of the window metadata to SurfaceFlinger so
SurfaceFlinger can use that data to composite surfaces on the display.</p>
-<h3 id=hardware_composer>Hardware Composer</h3>
+<h3 id="hardware_composer">Hardware Composer</h3>
<p>The hardware abstraction for the display subsystem. SurfaceFlinger can
delegate certain composition work to the Hardware Composer to offload work from
@@ -125,14 +127,14 @@
<p>See the <a href="{@docRoot}devices/graphics.html#hardware_composer_hal">Hardware Composer
HAL</a> section for more information.</p>
-<h3 id=gralloc>Gralloc</h3>
+<h3 id="gralloc">Gralloc</h3>
<p>The graphics memory allocator is needed to allocate memory that is requested
by image producers. See the <a
href="{@docRoot}devices/graphics.html#gralloc">Gralloc HAL</a> section for more
information.</p>
-<h2 id=data_flow>Data flow</h2>
+<h2 id="data_flow">Data flow</h2>
<p>See the following diagram for a depiction of the Android graphics
pipeline:</p>
@@ -146,7 +148,7 @@
the home screen, status bar, and system UI. SurfaceFlinger is the compositor
and Hardware Composer is the composer.</p>
-<h3 id=bufferqueue>BufferQueue</h3>
+<h3 id="bufferqueue">BufferQueue</h3>
<p>BufferQueues provide the glue between the Android graphics components. These
are a pair of queues that mediate the constant cycle of buffers from the
@@ -200,7 +202,7 @@
<p>The Hardware Composer HAL conducts the other half of the work. This HAL acts
as the central point for all Android graphics rendering.</p>
-<h3 id=synchronization_framework>Synchronization framework</h3>
+<h3 id="synchronization_framework">Synchronization framework</h3>
<p>Since Android graphics offer no explicit parallelism, vendors have long
implemented their own implicit synchronization within their own drivers. This