409 Commits

Author SHA1 Message Date
Kenny Root
042f7d64b5 Fix debugging for hwui caches
Debugging code attempted to delete a stack item.

Also, the flag fields weren't exactly clear, so rewrite it so it's
clear that kDebugMoreCaches is a combined flag.

Change-Id: If42b7f0f754919343301da5656aee5943cc9bd4a
2011-07-13 09:51:00 -07:00
Romain Guy
40c4b86b72 Align paths on pixel boundaries when rasterizing in bitmaps.
Bug #5003739

Change-Id: I3dfbf4eb92e2c870f33c96947a7d6439e3730965
2011-07-08 16:50:15 -07:00
Romain Guy
b2479153b7 Correctly position layers.
Change-Id: I1678b1c5bdab140b44e56556c50ab8329255f18a
2011-07-08 11:57:29 -07:00
Romain Guy
ec19b4a764 Use NEAREST filtering mode for TextureView.getBitmap().
Change-Id: I4649062bbdf18ebba7924bdf578f39ad8f6576ac
2011-07-07 21:27:14 -07:00
Romain Guy
9ace8f5e79 Use NEAREST filtering for layers whenever possible.
Change-Id: Id5bee1bd4a322cf93e8000b08e18f1e1b058648e
2011-07-07 20:50:11 -07:00
Romain Guy
9ff3cb57ee Fix parameter order evaluation issue.
This problem was affecting Android builds with gcc/x86.

Change-Id: Ibb7978413c89bd1ac09f0d1ea78f5cb4fe61f6ed
2011-06-28 14:02:11 -07:00
Romain Guy
4a5a71518a Don't set texture parameters on every frame.
Change-Id: Iec368405ad6a4ccfd569a0b3b4d681871a770396
2011-06-24 17:53:53 -07:00
Romain Guy
80429c4585 Properly tear down TextureView
Change-Id: Ic23cd9257889d0abe8cc3fc1d04a66d0505e383e
2011-06-24 17:20:32 -07:00
Romain Guy
02ccac69fd Code cleanup
Change-Id: I64c346004e0adf9a776d0315534d4fe445f0c0ca
2011-06-24 13:20:23 -07:00
Romain Guy
a9489274d6 Add the ability to specify the opacity of a TextureView
TextureView assumes its content is opaque by default.

Change-Id: Iba873423566a5b67c388081838bd910dceba32ba
2011-06-22 20:58:11 -07:00
Romain Guy
d586ad9c9f Fix another memory leak in OpenGLRenderer
Change-Id: I23ed56891452a05cf3ca13f6919c4fef90d5ff4e
2011-06-22 17:10:00 -07:00
Romain Guy
f6a63ae3a7 Fix memory leak in OpenGLRenderer.
When creating a display list, matrices are duplicated locally. They
were however never deleted, thus causing apps to slowly leak memory
(a matrix is about 40 bytes.)

Change-Id: Iac465b720d4c4c9b5ca3fce870c0c912c14a74ab
2011-06-22 15:13:09 -07:00
Romain Guy
d6b2a00dd4 Add error checking to LayerRenderer::copyLayer
This method is invoked by TextureView.getBitmap() and failures must be
caught to avoid leaving the GL context in a potentially bad state.

Change-Id: I620de395ba1bc20154de58c81963223dc55cac78
2011-06-17 17:45:59 -07:00
Romain Guy
98029c825b Fix rendering issue with paths when the stroke width is 0
Change-Id: I5d8ac23dc69e9e17df4ef6b5195186b5207e2524
2011-06-17 15:47:07 -07:00
Romain Guy
77a811610f Add TextureView.getBitmap()
This API can be used to get a Bitmap copy of the content of a
TextureView.

Change-Id: I07522216c353720fba5cab333174f58f484eb911
2011-06-14 17:06:53 -07:00
Romain Guy
54be1cdf3d Batch glCopyTexImage() calls to get about 15 fps back on SGX.
Change-Id: I04079e070739c1e46df3e90fc388c335e2a7d2b9
2011-06-13 19:04:27 -07:00
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