| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
Bug #4318323
This change also fixes the fact that shaders were not modulated
by the paint's color when drawing paths.
Change-Id: Id88804143aea06c895d4cbcdbe106d660230aa5a
|
|
|
|
| |
Change-Id: Iefdf116846c9b5649d1561a9d80d66d1c3acfeca
|
|
|
|
|
|
|
| |
Draw anti-aliased lines with OpenGL by constructing a quad with
a border that fades out (to mimic fragment coverage).
Change-Id: Ib81a3e62d663acdf1b46b401ac4aa7ee9855cc7e
|
|
|
|
|
|
| |
Bug #4146495
Change-Id: I4fe3f8501373b86b164af11ae51642b140035bb8
|
|
|
|
| |
Change-Id: I01bef50c08ec3160f8d40dc060b2cf6c2e4d7639
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug #4092053
The problem always existed but was made visible by partial invalidation.
When saving a layer, the renderer would try to postpone glClear()
operations until the next drawing command. This however does not work
since the clip might have changed. The fix is rather simple and
simply gets rid of this "optimization" (that turned out to be
usless anyway given how View issues saveLayer() calls.)
This change also fixes an issue with gradients (color stops where
not properly computed when using a null stops array) and optimizes
display lists rendering (quickly rejects larger portions of the
tree to avoid executing unnecessary code.)
Change-Id: I0f5b5f6e1220d41a09cc2fa84c212b0b4afd9c46
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug #3461349
This change also fixes two bugs that prevented partial invalidates
from working with other views. Both bugs were in our EGL implementation:
they were preventing the caller from comparing the current context/surface
with another context/surface. This was causing HardwareRenderer to always
redraw the entire screen.
Change-Id: I33e096b304d4a0b7e6c8f92930f71d2ece9bebf5
|
|
|
|
| |
Change-Id: Id9a082d2def803eb527e1987875e0d8a22c6e8aa
|
|
|
|
|
|
| |
Bug #3410827
Change-Id: Ic8b4f6201af94497bba86c75819588c78debddc2
|
|
|
|
|
|
| |
Bug #3410035
Change-Id: I5ceb80514d3b20c9ad230478549ad31ced403d53
|
|
|
|
|
|
|
|
|
|
|
| |
Bug #3413433
This change will be beneficial to Launcher to avoid hiccups when
swiping pages of icons. When a layer is discarded, it is kept
in the layers pool instead of being destroyed right away. This
favors memory reuse over allocations.
Change-Id: Ifb6944ba83d6ceb67c331527c0827b26ce648eb1
|
|
|
|
|
|
|
|
|
| |
Bug #3413433
Launcher now enables layers all the time, but in some cases (for instance, when the
workspace is not scrolling,) it is more efficient to draw without the layer.
Change-Id: I625fb5b48506acda9ae75356fdbbe812c85f2aab
|
|
|
|
|
|
| |
Bug #3410819
Change-Id: I3ebaca2233f4edf5b59d84ec7706555056a1a4b1
|
|
|
|
| |
Change-Id: Ie8be06c4776b815e8737753eb8003b4fd8936130
|
|
|
|
| |
Change-Id: Ie226d049840942d9ad9cf58e0c19132f49d62a75
|
|
|
|
| |
Change-Id: I96c057ff4eb1b464b03f132da0b85333777bee4f
|
|
|
|
| |
Change-Id: I1292e241386763c82e6622c8f7ed90b0f5b7bd4f
|
|
|
|
| |
Change-Id: Ic77f9c534bb90dc7b9458299544bd50b8b6ae6a5
|
|
|
|
| |
Change-Id: I6cedf2b495d58de7c0437096809fa9e4518a1b8c
|
|
|
|
|
|
| |
Bug #3369474
Change-Id: Ib6d7fb44eedda9dc2933b5e1b176f307968af91d
|
|
|
|
|
|
| |
Bug #3360888
Change-Id: I42e81a1f10bf7b9ae1c63ca8add1878fd59a1e8a
|
|
|
|
| |
Change-Id: Ia3a9a867f74fd78b61f75179e3788fdc2f0cacd0
|
|
|
|
| |
Change-Id: Ib1275677f531c60d9919978c5538c663fdb823b5
|
|
|
|
| |
Change-Id: Iaa222127520f3aa55072d44af12ee3477908b876
|
|
|
|
| |
Change-Id: I60843d61a40b0cb7dd09923cb4489a5a76f20486
|
|
|
|
|
|
|
|
| |
With this new backend, a hardware layer is only recreated when
its associated view is udpated. This offers fast composition
in GL and fast update of the layer in GL as well.
Change-Id: I97c43a612f5955c6bf1c192c8ca4af10fdf1d076
|
|
|
|
|
|
|
|
|
|
| |
This change detects what area of a layer was drawn into and generates a mesh
to match this area exactly. This can be used to avoid blending empty pixels
when the layer is composited.
This change also adds proper layers support to lines rendering and implements
layers composition in a more readable way.
Change-Id: I4a5588b98b19bd66891ebdc39631b193c5e31999
|
|
|
|
|
|
|
|
|
| |
This API can be used to back a view and its children with either a
software layer (bitmap) or hardware layer (FBO). Layers have
various usages, including color filtering and performance
improvements during animations.
Change-Id: Ifc3bea847918042730fc5a8c2d4206dd6c9420a3
|
|
|
|
| |
Change-Id: I69dadd57184d2d80f426c1c862ed0a040c8baf03
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Layers require that drawing methods potentially
draw in more than one bitmaps.
To handle this this patch offers the following:
- move all drawing methods to use Drawable
- Drawables are now handled by GcSnapshot since
its the one handling the layers
- moved Canvas_Delegate.createCustomGraphics to
GcSnapshot which does not expose the Graphics2D
objects anymore so its draw() methods are the only
way to draw.
- handles creating layers in GcSnapshot.save() and
blitting them in restore()
Other changes:
- Clean up the create/save API in GcSnapshot
- Fixed drawing bitmaps with alpha and other
composite modes.
Change-Id: I1e230087493d044a10de71f4b6d29083e3f3bf64
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- always set up the stroke. Paint may not have the proper
style when drawing lines. stroke should still be setup.
- Fixed vertical linear gradient. Old code generated
a gradient ratio of NaN
- Fixed alpha rendering when using shaders. In that
case the alpha channel from the paint color should be
used in conjunction with the shader.
- Fixed miter limit. Java expects the value to be multiplied
by the stroke width
- Fixed support for drawing ALPHA_8 bitmaps. Java2D doesn't
have bitmaps with only alpha channels, so we keep using
ARGB bitmaps but when drawing them into a bitmap we erase
the color information.
Change-Id: I4f04341fc843e3f7dadd1fdbf709b11a4f1e24b9
|
|
|
|
|
|
|
|
|
|
| |
Also created delegates for all missing shader, xfermode
and patheffect classes. Moved the logic of the xfermode,
and patheffects that was in Canvas_Delegate into the
xfermode/patheffect classes, and added support (in all
3 clases) for knowing if the shader/xfermode/patheffect
is actually supported or not. Make use of fidelityWarning
in LayoutLog if they are not.
|
|
|
|
| |
Change-Id: Ic9eb0d38ad684d2f2c95a4f586f865db911cb872
|
|
|
|
|
|
|
|
| |
The goal is use the app to test layout lib, so layout
files are needed, and custom views must be instantiable
(ie public)
Change-Id: I46bb3d8af6e4d7973d041aa618f1c7762efd93d0
|
|
|
|
|
|
|
| |
Bug #3207544
Bug #3225875
Change-Id: Ibdd1dfc64e01625d5c441f39eb0aa3ee647f6ff5
|
|
|
|
| |
Change-Id: I1d511ab2707000762a942d32c300a9944ab38603
|
|
|
|
| |
Change-Id: If6d3f313778cc7f3e803a063338539c8b3e165e3
|
|
|
|
| |
Change-Id: I7ec28f25c3993a2bd7ef6399ba1923839d239905
|
|
|
|
| |
Change-Id: I61409edd00dab3a11684a3f5e4f7df0afc734758
|
|
|
|
|
|
|
| |
This fixes only linear gradients. Sweep and radial gradients, as well as
bitmap shaders, will be fixed in a future commit.
Change-Id: I4eee4ff62e9bbf3b9339fc111a780167449ecfef
|
|
|
|
| |
Change-Id: I681213036b5279339cb96a016d1dfb15d74dafc8
|
|
|
|
| |
Change-Id: I2c81ad657ee2a11a2139e0b11ae3749db54c0749
|
|
|
|
|
|
|
|
| |
This change is a workaround for a driver bug that causes an INVALID_OPERATION
to be thrown on every glCopyTexSubImage() call. This change also adds a new
test for gradients local matrices.
Change-Id: I41b7437481026702d0a3a9677f099b4557c0a84e
|
|
|
|
|
|
|
| |
This change also adds full support for local transformation matrices on
sweep and radial gradients.
Change-Id: Id8773bc0766575190e3f3d51984fc5e57b266c3f
|
|
|
|
| |
Change-Id: I7aa397ed4e34655ead9ba1f5b4ce087665e0f022
|
|
|
|
| |
Change-Id: I16c0593c5671490909dec13a85df601e1428a1a6
|
|
|
|
| |
Change-Id: Ic4c18ff483cca95fbabcb10843f7714efe488adb
|