343 Commits

Author SHA1 Message Date
Romain Guy
181d0a6cce Don't apply AA to rects with no rotation/perspective.
Change-Id: I21138d4d0589cc28f1dcffb8b675cd81a9900e24
2011-06-09 18:52:38 -07:00
Romain Guy
67ffc36a79 Measure text with the appropriate text encoding.
Bug #4546327

Change-Id: I8eb593b03a81145e08be92579706ddd775feb0a2
2011-06-03 18:51:11 -07:00
Romain Guy
726aeba80f Add support to OpenGLRendere to draw BiDi text.
Bug #4350336

Change-Id: I1cf31693f7ca9653fa3a41b5b91c27ef288d680f
2011-06-01 14:55:42 -07:00
Romain Guy
f09ef51889 Fix issue with drawColor(color, Mode.Clear)
Change-Id: I486b24a5b609c6f8adb0276037ddb24af2b888b2
2011-05-27 11:43:46 -07:00
Romain Guy
d2ba50ab86 Prettify memory dump.
Change-Id: I071c6a04a144a96955d85f56dffc6162288ee33e
2011-05-27 10:21:07 -07:00
Romain Guy
1e59f9d10d Fix texture coordinates for sub-bitmap rendering.
Change-Id: I05a31775e03f5b223a55a5144d420351abac89be
2011-05-26 18:39:34 -07:00
Romain Guy
f504a2fa14 Correctly implement the CLEAR xfermode.
The previous implementation was using glBlendFunc with the parameters
GL_ZERO/GL_ZERO which doesn't work for text, paths and other alpha
sources (anti-aliasing.) The correct implementation is GL_ZERO/
GL_ONE_MINUS_SRC_ALPHA.

Change-Id: I4cca65e57b6a37bbf5a41d382cb0648ee8e11e79
2011-05-26 16:40:55 -07:00
Chet Haase
44984ea0cb Enable large font rendering with GPU acceleration
Change-Id: I7b022100fb0762613f9cf7753dbb0217e1e75f8d
2011-05-19 16:39:37 -07:00
Derek Sollenberger
d39d1affe8 Updates resulting from the Skia merge (revision 1327)
Change-Id: I2a8f5869dbe95bb594f2ba5d7278f9b330e6f17a
2011-05-16 15:30:40 -04:00
Fabrice Di Meglio
9dec462c1f Merge "Prepare OpenGLRenderer to use glyphs from TextLayoutCache" 2011-05-13 11:09:19 -07:00
Fabrice Di Meglio
2ea7588014 Prepare OpenGLRenderer to use glyphs from TextLayoutCache
- add OpenGLRenderer.drawGlyph()
- refactor glypth logging code

Change-Id: I797e6f1304d3f3f8f6ed31e7f9965d336233d2a4
2011-05-13 11:07:38 -07:00
Chet Haase
858aa93ddb Antialiasing for rectangles
Change-Id: I7ca6931606541ddd504bd5db7f8dc04b9cde8cd9
2011-05-12 14:55:29 -07:00
Chet Haase
c54ed966f7 Minor javadoc enhancements
Change-Id: Ic24bb0e1e669989f0cae3a9b8fa064b38c8e7948
2011-05-06 14:14:20 -07:00
Chet Haase
3825fef300 Merge "Fix for scaled AA lines" 2011-05-06 13:51:09 -07:00
Chet Haase
99ecdc480d Fix for scaled AA lines
Previously, the translucent boundary of AA lines would be scaled
by the line's transform. It should always be exactly one pixel wide
in screen space. This fix accounts for scaling for the boundary
region, and fixes some AA calculations that make wide/AA lines
more correct.

Change-Id: I30df2d5d96315bf3e7ff30be9735282fd5439a39
2011-05-06 12:10:54 -07:00
Chet Haase
ed30fd8e9a Add ability for hierarchyviewer to output displaylist info
Clicking on a node in hierarchyviewer1 and hierarchyviewer2 and then
clicking the new "Dump DisplayList" button will cause the display
list for the selected node (including its children) to be output into
logcat.

Change-Id: Iad05f5f6cca0f8b465dccd962b501dc18fe6e053
2011-05-05 07:35:40 -07:00
Chet Haase
a17de9b493 Revert "Add ability for hierarchyviewer to output displaylist info"
This reverts commit b2a4b52e8d5e499d33e2765e8c47851bf0266299.
2011-05-04 18:23:12 -07:00
Chet Haase
b2a4b52e8d Add ability for hierarchyviewer to output displaylist info
Clicking on a node in hierarchyviewer1 and hierarchyviewer2 and then
clicking the new "Dump DisplayList" button will cause the display
list for the selected node (including its children) to be output into
logcat.

Change-Id: Id32f62569ad1ab4d533bc62987f3a7390c1bb4e6
2011-05-04 17:18:27 -07:00
Romain Guy
df0a7fbdcf Merge "Allows to render with an OpenGL context inside a TextureView." 2011-05-02 18:33:26 -07:00
Romain Guy
8f0095cd33 Allows to render with an OpenGL context inside a TextureView.
Change-Id: I59453f7fc3997f0502a1c5d325d37fed376fabc7
2011-05-02 18:32:29 -07:00
Chet Haase
99585adeb4 Line endcaps for AA lines are now antialiased.
Also fixed other minor issues with AA and line rendering.

Change-Id: Icd4638d27c70e2ee0f28b5d9a2b97d8b29e8ac4d
2011-05-02 15:08:38 -07:00
Romain Guy
ad44445c77 Merge "New widget: TextureView Bug #4343984" 2011-04-28 18:47:01 -07:00
Romain Guy
aa6c24c21c New widget: TextureView
Bug #4343984

TextureView can be used to render media content (video, OpenGL,
RenderScript) inside a View.

The key difference with SurfaceView is that TextureView does
not create a new Surface. This gives the ability to seamlessly
transform, animate, fade, etc. a TextureView, which was hard
if not impossible to do with a SurfaceView.
A TextureView also interacts perfectly with ScrollView,
ListView, etc. It allows application to embed media content
in a much more flexible way than before.

For instance, to render the camera preview at 50% opacity,
all you need to do is the following:

mTextureView.setAlpha(0.5f);
Camera c = Camera.open();
c.setPreviewTexture(mTextureView.getSurfaceTexture());
c.startPreview();

TextureView uses a SurfaceTexture to get the job done. More
APIs are required to make it easy to create OpenGL contexts
for a TextureView. It can currently be done with a bit of
JNI code.

Change-Id: Iaa7953097ab5beb8437bcbbfa03b2df5b7f80cd7
2011-04-28 18:46:19 -07:00
Chet Haase
75e3ef048d Merge "Fix various hw-accelerated line/point bugs" 2011-04-27 14:26:40 -07:00
Chet Haase
8a5cc92a15 Fix various hw-accelerated line/point bugs
All accelerated lines are now rendered as quads. Hairlines used to
be rendered as GL_LINES, but these lines don't render the same as our
non-accelerated lines, so we're using quads for everything. Also, fixed
a bug in the way that we were offsetting quads (and not offseting points)
to ensure that our lines/points actuall start on the same pixels as
Skia's.

Change-Id: I51b923cc08a9858444c430ba07bc8aa0c83cbe6a
2011-04-27 14:23:29 -07:00
Romain Guy
9fc27819d7 Correctly compute tex coords for rect layers.
Bug #4192695

This change also fixes Javadoc links in the framework.

Change-Id: Ia548bcb18baba5d6fe6a4a04a2278e3a3bd465b2
2011-04-27 14:21:41 -07:00
Romain Guy
740bf2bb2e Apply shaders/filters to text drop shadows.
Bug #4318323

This change also fixes the fact that shaders were not modulated
by the paint's color when drawing paths.

Change-Id: Id88804143aea06c895d4cbcdbe106d660230aa5a
2011-04-26 15:33:10 -07:00
Chet Haase
6fca9884b3 Minor cleanup in GLrenderer code
Changed the way we use bitcodes for one of the rendering
options to make the code cleaner.

Change-Id: Ifaa965f228dbdad297a40da93bfbe63373986e35
2011-04-25 14:50:04 -07:00
Chet Haase
6cfdf45380 Fix bitfield bug with vertex shader selection
Change-Id: I8bd3005f363afb52e6624806efb3e04c4a56ee18
2011-04-22 16:42:10 -07:00
Chet Haase
5b0200bd47 Enable anti-aliasing for hw-accelerated lines
Draw anti-aliased lines with OpenGL by constructing a quad with
a border that fades out (to mimic fragment coverage).

Change-Id: Ib81a3e62d663acdf1b46b401ac4aa7ee9855cc7e
2011-04-21 11:47:05 -07:00
Chet Haase
9c1e23baf5 Add logging of graphics acceleration info to bugreports
Change-Id: I9fa4cda6ccf92df9d1c644ccdc0e7274a30106e0
2011-04-01 13:24:53 -07:00
Romain Guy
ad575f4dda Merge "When deleting a path, remove it from the path cache. Bug #4170585" 2011-03-24 16:05:13 -07:00
Chet Haase
8a40f6a632 Merge "Fix bug with accelerated translucent rendering" 2011-03-24 16:04:22 -07:00
Romain Guy
1af23a32d8 When deleting a path, remove it from the path cache.
Bug #4170585

Change-Id: I6be4d251ceb908c89afe49c2ff85c05f36c73b70
2011-03-24 16:03:55 -07:00
Chet Haase
f147340bd1 Fix bug with accelerated translucent rendering
There was a bug in the dirty region optimizations when
using alpha layers. This prevented translucent objects from
being drawn at all in many situations.

Change-Id: I23e9bce3595fbd6fe2bda15e8753a0f35baffb82
2011-03-24 15:55:05 -07:00
Romain Guy
aaceeb0c5b Use the correct API to query system properties.
Change-Id: Ie120dee0e24959d4db3fdb0100b6d8fe7fe46cdb
2011-03-23 19:56:13 -07:00
Romain Guy
5b7a3150a6 Don't crash when omitting paint to drawBitmap() with A8 configs.
Change-Id: I3d630554ad82fa846385274d12d0434e890ef45d
2011-03-23 17:18:44 -07:00
Romain Guy
80bbfb19ee Fix shaders generation on IMG GPUs.
Change-Id: Id15df2663e41e31f04c8d86b958312341da8101d
2011-03-23 16:56:28 -07:00
Romain Guy
c7b25be64f Take fake bold font property into account.
Bug #4159731

For real this time!

Change-Id: I9cb6d70e68d2b57eb9a6d9a6bca8176967192421
2011-03-23 14:59:20 -07:00
Romain Guy
ed6fcb034b Add support for drawPoint() and drawPoints().
Change-Id: I01bef50c08ec3160f8d40dc060b2cf6c2e4d7639
2011-03-21 13:11:49 -07:00
Romain Guy
67ac217a81 Fix hairline rendering.
Change-Id: Ib6129b446b53678b1b955d8516418370cbae4f10
2011-03-18 17:14:27 -07:00
Romain Guy
a168d73721 Correctly apply filters to Alpha8 bitmaps.
This change also removes unnecessary operations from display lists.

Change-Id: I627f85861982731f0ee7705b48b36d9c56f22f39
2011-03-18 16:50:13 -07:00
Romain Guy
b29cfbf768 Fix paths rendering issues.
See ApiDemos, PathEffect and PathFillTypes.

Change-Id: I9f9593c1da33d0d013b5b89c86bc5bd71128a192
2011-03-18 16:24:19 -07:00
Romain Guy
40667676e5 Optimize rect-shaped layers.
This brings back an optimization disabled in HC-MR1. This time the
correct geometry is generated to avoid unnecessary blending.

Change-Id: Id56404dc46bb84c75facc25c18488a690741b592
2011-03-18 14:36:44 -07:00
Romain Guy
08aa2cbd5e Send WebView the current transform and whether we're drawing a layer.
Bug #3275491

These can be used by WebView to correctly apply alpha and geometric
transforms.

Change-Id: I2ecd4376d68df886dead3c9240317de33f56828f
2011-03-17 12:04:04 -07:00
Romain Guy
a30f43624f am 72064c66: am b0204d0a: am c2b91a61: Merge "Modify the GL renderer\'s functor to pass the clip to WebView" into honeycomb-mr1
* commit '72064c66e20b9cc86900a9d833c228c345a2b2a4':
  Modify the GL renderer's functor to pass the clip to WebView
2011-03-16 17:31:30 -07:00
Romain Guy
80911b8517 Modify the GL renderer's functor to pass the clip to WebView
Change-Id: If5efe399ca58f3000b2883e24e9f3736a2025184
2011-03-16 15:31:33 -07:00
Romain Guy
89cc2b6422 am f8c4c128: am 0f7d2ec3: am 46fc2517: Merge "Fix performance issue in Launcher Bug #3515248" into honeycomb-mr1
* commit 'f8c4c12802b15da068d164fd44c9b9f12e7ed916':
  Fix performance issue in Launcher Bug #3515248
2011-03-15 23:50:43 -07:00
Romain Guy
6217a71cd2 Fix performance issue in Launcher
Bug #3515248

The problem is caused by the fast path when compositing layers on screen.
The fast path draws a single quad using glDrawArrays() whereas the general
path draws an arbitrary mesh using glDrawElements(). It looks like there's
an issue in the driver since glDrawArrays() is significantly slower than
glDrawElements() for a quad (6 vertices!)

This change just gets rid of the fast path.

Change-Id: Ib2361253ec67f44a988270f76c183422f12ce537
2011-03-15 16:32:28 -07:00
Romain Guy
8390c7cf68 am 5c84a134: am a1bd5a5f: Merge "Fix disappearing edges in lists/scrollviews/etc. Bug #4093871" into honeycomb-mr1
* commit '5c84a1341b05e96f2c76da7252ed823ec3121102':
  Fix disappearing edges in lists/scrollviews/etc. Bug #4093871
2011-03-15 13:01:24 -07:00