Commit Graph

177 Commits

Author SHA1 Message Date
Romain Guy
694b519ac6 Add text rendering.
Change-Id: Ibe5a9fa844d531b31b55e43de403a98d49f659b9
2010-07-21 21:33:20 -07:00
Romain Guy
a1db574036 Add preliminary support for text rendering.
Change-Id: I547eb631dbda24d13960d54b4144fb8908fd8a49
2010-07-20 16:37:27 -07:00
Romain Guy
f9764a4f53 Add program for linear gradient.
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
2010-07-16 23:18:27 -07:00
Romain Guy
7fac2e1833 Add plumbing to support gradients in OpenGL renderer.
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
2010-07-16 17:10:13 -07:00
Romain Guy
079ba2c85b Improve clip support (add intersect, union and replace.)
This change also modifies the way the clip is stored. The clip is now
always stored in screen-space coordinates.

Change-Id: I96375784d82dfe975bc6477a159e6866e7052487
2010-07-16 14:12:24 -07:00
Romain Guy
c96cdc9844 Merge "Add support for BitmapShader." 2010-07-15 14:45:37 -07:00
Romain Guy
d27977d1a9 Add support for BitmapShader.
This change also fixes an issue with the clip and layers.

Change-Id: I5fd9832098d8cf7ae8eb781ff9bffe7defaea279
2010-07-15 14:44:42 -07:00
Scott Main
82e2b4cb51 am 4fd41688: am 5352d237: am 38137d7a: Merge "docs: lots of additions to the resources docs new drawable resources add <merge> and <include> to layout resource update drawable class descriptioons to point to resources guide add ID resource type" into froyo
Merge commit '4fd416880e53c172bac4a51b2eafea699b58badf'

* commit '4fd416880e53c172bac4a51b2eafea699b58badf':
  docs: lots of additions to the resources docs
2010-07-15 11:54:15 -07:00
Scott Main
4fd416880e am 5352d237: am 38137d7a: Merge "docs: lots of additions to the resources docs new drawable resources add <merge> and <include> to layout resource update drawable class descriptioons to point to resources guide add ID resource type" into froyo
Merge commit '5352d2378d2f92ebe0657e4caedb4498492fc404' into gingerbread-plus-aosp

* commit '5352d2378d2f92ebe0657e4caedb4498492fc404':
  docs: lots of additions to the resources docs
2010-07-15 11:23:08 -07:00
Scott Main
5352d2378d am 38137d7a: Merge "docs: lots of additions to the resources docs new drawable resources add <merge> and <include> to layout resource update drawable class descriptioons to point to resources guide add ID resource type" into froyo
Merge commit '38137d7a27b037611c70a9d900aa53b4c15563bf' into gingerbread

* commit '38137d7a27b037611c70a9d900aa53b4c15563bf':
  docs: lots of additions to the resources docs
2010-07-15 11:20:32 -07:00
Mathias Agopian
172b79e9df am 98704f14: am 38eea8bf: Merge "Remove the YV16 format for simplicity\'s sake." into gingerbread
Merge commit '98704f14eaeef6c9bcb73fea162f4941dd9bbd87'

* commit '98704f14eaeef6c9bcb73fea162f4941dd9bbd87':
  Remove the YV16 format for simplicity's sake.
2010-07-14 16:39:42 -07:00
Mathias Agopian
98704f14ea am 38eea8bf: Merge "Remove the YV16 format for simplicity\'s sake." into gingerbread
Merge commit '38eea8bf990540360b45b963195a7766c30b55d2' into gingerbread-plus-aosp

* commit '38eea8bf990540360b45b963195a7766c30b55d2':
  Remove the YV16 format for simplicity's sake.
2010-07-14 16:35:55 -07:00
Mathias Agopian
058d0390a4 Remove the YV16 format for simplicity's sake.
Change-Id: Iee03d100933ba0c67b13d51e0435be3b4cd953cf
2010-07-14 15:12:05 -07:00
Romain Guy
e5e285509f Merge "Enable 32-bits only assets." 2010-07-13 17:42:00 -07:00
Romain Guy
594f406514 Enable 32-bits only assets.
Go away dithering!

Change-Id: Iee5ee2e9430606e732d9b0abb3adc9f68275bd6d
2010-07-13 17:41:31 -07:00
Kenny Root
f35c96bb49 Merge "Support bidi/shaping for getTextPath" 2010-07-13 13:51:24 -07:00
Romain Guy
6926c72e25 Correctly support pre-multiplied alpha, optimizations, more stuff.
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
2010-07-12 20:20:03 -07:00
Doug Felt
f7cb1f75fd Support bidi/shaping for getTextPath
Move layout-related code into separate class since it's needed by both
canvas and paint.

Change-Id: Iba89a1d94d7cca650255ffa3cbc952b988a51b54
2010-07-12 13:50:08 -07:00
Gilles Debunne
cc3ec6cdb2 New cursor controller in TextViews.
Editable TextView now display a cursor controller under the insertion
point so that it can be precisely moved.

Change-Id: Ia2e6ddc57d249647ff6683e10e4226db3df27223
2010-07-09 16:20:21 -07:00
Romain Guy
deba785f12 Add support to draw 9patches in OpenGL.
This change only adds the necessary API and stubs. The implementation
will be added in another change.

Change-Id: Ie50b8aff5868e78796cee331df15bdbf990d2ea1
2010-07-07 17:55:03 -07:00
Doug Felt
4beb8ff717 Support bidi layout for drawTextOnPath.
Change-Id: Ie5867fdb66fe15336774e20d65fa63e0d05bf6fe
2010-07-07 14:58:03 -07:00
Romain Guy
ce0537b800 Add hooks for drawBitmap().
Change-Id: I58e962c3a8b2bc75c2605fe369ad3002579d86e0

Add texture cache.

Change-Id: I1c0e5581d228869e114438258a1014e33e024ad7
2010-06-30 15:21:01 -07:00
Romain Guy
c7d53494f1 Implement quickReject() and drawRect().
The OpenGL ES 2.0 renderer can now draw colored rectangles. At least there's
something on screen now.

Change-Id: I80a13ccc1dd56784edf74f2670a364f30700234a
2010-06-25 13:41:57 -07:00
Romain Guy
f6a11b8a9e Add support for transformations.
This change adds partial support for the following transforms:
- scale()
- translate()
- rotate()
- setMatrix()
- getMatrix()

The transform is stored in a snapshot and saved/restored as needed.
The transform is currently not applied to the clip rect and is not
mapped to the vertex shader.

Change-Id: Id48993453311200804149917d0c126a4d0471226
2010-06-23 17:47:49 -07:00
Gilles Debunne
03f0292744 New XmlDocumentProvider class.
Minor changes in the Adapters.java helper class.

Extracts data out of a XML document using an XPath-like syntax.

Change-Id: I0617b0783f11c86118b42cd8485d54440810c805
2010-06-23 10:43:00 -07:00
Romain Guy
85bf02fc16 Fix the simulator build.
Change-Id: Ie404f7c2c308f0657f273af19a56e8c039b61898
2010-06-22 13:11:24 -07:00
Scott Main
dfe5c20440 docs: lots of additions to the resources docs
new drawable resources
add <merge> and <include> to layout resource
update drawable class descriptioons to point to resources guide
add ID resource type

Change-Id: I733eec50bb2671f28c9e6dd7dec14eb6586f5193
2010-06-21 15:19:23 -07:00
Romain Guy
0bbae08364 Add new API to check whether a Bitmap was modified.
Bitmap.getGenerationId() can be used by caches to find out if a Bitmap has been
modified. This simply exposes an existing Skia API.

This change also adds a small test app for Canvas hardware acceleration. The new
Bitmap API is required to implement a texture cache.

Change-Id: I8547b146cd14c8afe1a2327fcd6d71b1b1cb68fc
2010-06-15 18:03:40 -07:00
Doug Felt
0c702b88c5 Move shaping to native.
Add internal API (getTextRunAdvances) to Paint, use when measuring.
Add internal API (getTextRunCursor) to Paint, use when determining
valid cursor positions.

Remove java-level shaping code.  Remove 'prep' code in TextLine
(except for replacement text) since shaping now is done on the fly as
needed in native.

Provide explicit shaping context bounds to internal text measuring,
cursor movement, and rendering APIs.

Update for to changes in external API in ushape.h.

Change-Id: I146958b624802ce8553125e5c3c6c03031bc9608
2010-06-10 14:03:22 -07:00
Romain Guy
2d6145993e Move OpenGL support out of ViewRoot into a new HardwareRenderer class.
Change-Id: Iffaed924a5defc3c4df26223c390dc27eee115b1
2010-06-09 18:27:08 -07:00
The Android Open Source Project
d994dcbd81 am cefdedc3: merge from froyo-plus-aosp 2010-06-07 16:45:04 -07:00
The Android Open Source Project
c1038e778f merge from open-source master
Change-Id: I1a36964a723bce72139f1bc2402520b7f8d5e47b
2010-06-07 16:37:22 -07:00
Erik Faye-Lund
92ce5734b5 Canvas.drawVertices: correct color range-check
The range-check in drawVertices previously checked that the color
count was equal to the vertex count. However, the vertex count is
specified in array elements, and there's two array elements per
vertex for the positions, but only one array element per vertex
for the colors.

Correct the code so the check is consistent with the element count.

Change-Id: Id043f1003f9245f18adc91bac49dc33727ca765e
2010-06-02 23:47:01 +02:00
Doug Felt
f47d7405bb Modify Canvas drawText to run bidi and shape.
Adds drawTextRun as internal API on Canvas and GraphicsOperations.
Adds implementation to implementors of GraphicsOperations.

Adds state and API on Paint to control the bidi algorithm when used
by Canvas.  This API is currently hidden.

The drawText changes are incomplete since shaping is not yet available
in the native code.

Change-Id: I4368048aef9545df0953a349381771603e04b619
2010-05-12 18:50:02 -07:00
Romain Guy
6430c943f9 Set a layered drawable's child callback to be the container.
Change-Id: I959ad03883931d727d464f384073926e8fa9e2d2
2010-05-06 18:07:40 -07:00
Romain Guy
79a63f7ddb Make sure that a drawable replacing a layer in a LayerDrawable gets a callback.
Change-Id: Iefac7d280b3c16e05f45688da655e17e21a3098b
2010-05-06 17:58:17 -07:00
Peter Eliasson
417675cab0 Improved error handling when font loading fails.
Without this patch, an application could trigger a platform crash
by calling:

  Typeface typeface = Typeface.createFromFile("");
  boolean isbold = typeface.isBold();

The crash occurs since the Skia error that occurs when font loading
fails is not propagated.
With this patch, the Typeface constructor throws an
IllegalStateException when Skia fails to load the font (i.e. when
the native instance is null).

Change-Id: I1002b37b7b32840cb7eeef6819d2982cb18c9003
2010-04-26 12:32:40 +02:00
Mike Reed
d404d6f162 update dox for FILL_AND_STROKE style
Change-Id: I7835068a376dfa4d8c18d8bb20d97941a058e89f
http://b/issue?id=2590047
2010-04-14 14:46:46 -04:00
Gilles Debunne
1e91b3fde0 Added documentation in Drawable.
Documentation on the ConstantState added.
Removed all warnings in Eclipse.

Change-Id: Ib1daf7eef1aff5660e805483f9dcae6fcd5a595e
2010-04-12 17:09:14 -07:00
Gilles Debunne
20fc9bfe3a Fixed links in MipmapDrawable documentation.
Fix for 78aaa97b77

Change-Id: I3b4a3b987560d5d3934776cdc7ae98c954bfab32
2010-04-12 15:33:49 -07:00
Gilles Debunne
78aaa97b77 New MipmapDrawable class.
This Drawable holds different scaled version of a Drawable and use the appropriate one
depending on its actual bounds to minimize scaling artifacts.

Change-Id: I4ced045d73c1ddd8982d9aaf39c3599b3ac58a16
2010-04-12 11:12:32 -07:00
Romain Guy
bb2890d40b Add Overlay mode to the PorterDuff list of supported modes.
Change-Id: I2ec03b9a1039db3e3c16786222e4fde4782ed67e
2010-04-02 15:48:46 -07:00
The Android Open Source Project
5849606df7 merge from open-source master
Change-Id: I6a7542e696e69bc8788f3b3b77fcec50512ba81c
2010-03-29 11:04:30 -07:00
David Hoover
5f3445dc60 Fix typos in comment.
Change-Id: Ia2a9ea0802bcc5773bb4fd52d7e07f9492242bfd
2010-03-28 08:49:49 -07:00
The Android Open Source Project
8e10a7b7c8 merge from open-source master
Change-Id: I4d8f34986fd9e16ead8a22909263069dbb819d3e
2010-03-25 16:39:32 -07:00
Mike Reed
54900e8c05 update dox that we ignore the exact parameter on computeBounds
Change-Id: I6051210ea2a73b4d1c6cd631a285209ab130b4e5
2010-03-25 14:02:40 -04:00
viral.vkm
1be46d7920 setCornerRadii should be called when either of corners radius is specified
as 0dp and thus while checking for condition, it should be ORed and not ANDed.

It solves Android Issue: 939
http://code.google.com/p/android/issues/detail?id=939

Change-Id: Ic18fae769480972f763f634e7462c6ed3853220b
2010-03-25 17:50:57 +05:30
Mike Reed
76d1e01d5e hidden api sameAs() to compare the pixels of 2 bitmaps for equality 2010-03-08 08:53:23 -05:00
Mathias Agopian
a696f5d667 Add ImageFormat.java and move the Camera/YUV constants from PixelFormat to it.
PixelFormat's corresponding constansts are now deprecated.
2010-02-18 15:32:47 -08:00
Mike Reed
35d2621b3a Merge "update dox" 2010-02-18 06:11:39 -08:00