This change also removes the use of SoftReferences for View's
drawing cache.
A bitmap now creates a PhantomReference enqueued in a reference
queue provided by the new Finalizers class. This queue is polled
from a thread started after forking zygote. That thread is in charge
of clearing the references after GC runs and of calling reclaim()
on them. The reclaim() method is now how finalizers are run.
Note that a PhantomReference cannot be kept in the instance it
refers to, which is why they are kept in a separate List.
Change-Id: If3c1a5e9dc23fa49e34857860d730f5cf5ad5926
The makefile variable USE_OPENGL_RENDERER must be set to true to compile
libhwui and the related code in the JNI layer.
This change also removes obsolete APIs from Canvas that must not be used
and would be confusing if left in. These APIs were remnants of our first
attempt at an OpenGL renderer for the view hierarchy and had not been
taken out before Android 1.0 was released.
Change-Id: I2475ff1307212bab26c926724f3c508681c7dae1
Rendering is implementing by rasterizing the paths into A8 textures.
This cna be extremely inefficient if the path changes often.
Change-Id: I609343f304ae38e0d319359403ee73b9b5b3c93a
With this change, Skia shaders can easily be applied to any mesh. This change also
supports ComposeShader. For instance, this can be used to blend a gradient and a
bitmap togehter and paint a string of text with the result.
Change-Id: I701c2f9cf7f89b2ff58005e8a1d0d80ccf4a4aea
This change adds a new DrawLinearGradientProgram class to enable the drawing
of linear gradients. Two new vertex and fragment shaders are introduced,
based on DrawTextureProgram's shaders.
Change-Id: I885afc076bb6cef8cd3962ae21a086fa6a03bf96
The LinearGradient class keeps a copy of the various parameters that
define the gradient. The copies are native arrays to avoid copying
Java arrays on every draw call. The gradient code path is implemented
until OpenGLRenderer::drawRect() (see TODO.) The actual gradient
implementation will be added in a latter change.
Change-Id: I9300d250ef5e2e9c2e097c3116ee71dfc9d752d8
This change also modifies the way the clip is stored. The clip is now
always stored in screen-space coordinates.
Change-Id: I96375784d82dfe975bc6477a159e6866e7052487
This is for better correspondence with the Builder pattern.
See also: Effective Java, 2nd edition.
Change-Id: Iecccd42be49dea2ed8e4b8cc38ce96379cf3c11c
Merge commit '4fd416880e53c172bac4a51b2eafea699b58badf'
* commit '4fd416880e53c172bac4a51b2eafea699b58badf':
docs: lots of additions to the resources docs
Merge commit '5352d2378d2f92ebe0657e4caedb4498492fc404' into gingerbread-plus-aosp
* commit '5352d2378d2f92ebe0657e4caedb4498492fc404':
docs: lots of additions to the resources docs
Merge commit '38137d7a27b037611c70a9d900aa53b4c15563bf' into gingerbread
* commit '38137d7a27b037611c70a9d900aa53b4c15563bf':
docs: lots of additions to the resources docs
Merge commit '98704f14eaeef6c9bcb73fea162f4941dd9bbd87'
* commit '98704f14eaeef6c9bcb73fea162f4941dd9bbd87':
Remove the YV16 format for simplicity's sake.
Merge commit '38eea8bf990540360b45b963195a7766c30b55d2' into gingerbread-plus-aosp
* commit '38eea8bf990540360b45b963195a7766c30b55d2':
Remove the YV16 format for simplicity's sake.
Add support for the following drawing functions:
- drawBitmap(int[]...)
- drawPaint()
Optimizes shader state changes by enabling/disabling attribute arrays
only when needed.
Adds quick rejects when drawing trivial shapes to avoid unnecessary
OpenGL operations.
Change-Id: Ic2c6c2ed1523d08a63a8c95601a1ec40b6c7fbc9
Editable TextView now display a cursor controller under the insertion
point so that it can be precisely moved.
Change-Id: Ia2e6ddc57d249647ff6683e10e4226db3df27223
This change only adds the necessary API and stubs. The implementation
will be added in another change.
Change-Id: Ie50b8aff5868e78796cee331df15bdbf990d2ea1