summaryrefslogtreecommitdiffstats
path: root/tests/HwAccelerationTest
Commit message (Collapse)AuthorAgeFilesLines
* Merge "New widget: TextureView Bug #4343984"Romain Guy2011-04-282-0/+101
|\
| * New widget: TextureViewRomain Guy2011-04-282-0/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Fix various hw-accelerated line/point bugsChet Haase2011-04-273-2/+140
|/ | | | | | | | | | | 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
* Apply shaders/filters to text drop shadows.Romain Guy2011-04-262-6/+6
| | | | | | | | | Bug #4318323 This change also fixes the fact that shaders were not modulated by the paint's color when drawing paths. Change-Id: Id88804143aea06c895d4cbcdbe106d660230aa5a
* Update shader text to test with drop shadows.Romain Guy2011-04-261-0/+1
| | | | Change-Id: Iefdf116846c9b5649d1561a9d80d66d1c3acfeca
* Enable anti-aliasing for hw-accelerated linesChet Haase2011-04-213-1/+159
| | | | | | | Draw anti-aliased lines with OpenGL by constructing a quad with a border that fades out (to mimic fragment coverage). Change-Id: Ib81a3e62d663acdf1b46b401ac4aa7ee9855cc7e
* Update GL textures when changing a Bitmap's pixelsRomain Guy2011-03-212-0/+115
| | | | | | Bug #4146495 Change-Id: I4fe3f8501373b86b164af11ae51642b140035bb8
* Add support for drawPoint() and drawPoints().Romain Guy2011-03-211-2/+30
| | | | Change-Id: I01bef50c08ec3160f8d40dc060b2cf6c2e4d7639
* Fix rendering artifact in edge fades.Romain Guy2011-03-143-1/+40
| | | | | | | | | | | | | | | | | | 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
* Add support for partial invalidates in WebViewRomain Guy2011-03-071-5/+7
| | | | | | | | | | | | 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
* Add a new Camera API to control the camera's locationRomain Guy2011-02-233-0/+61
| | | | Change-Id: Id9a082d2def803eb527e1987875e0d8a22c6e8aa
* Dirty layers in the area covered by a drawBitmapMesh() callRomain Guy2011-02-103-2/+88
| | | | | | Bug #3410827 Change-Id: Ic8b4f6201af94497bba86c75819588c78debddc2
* Empty the clip rect when intersection is empty.Romain Guy2011-02-044-0/+118
| | | | | | Bug #3410035 Change-Id: I5ceb80514d3b20c9ad230478549ad31ced403d53
* Allocate layers from the layers pool.Romain Guy2011-02-023-1/+201
| | | | | | | | | | | 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
* New API to let apps draw without layers.Romain Guy2011-02-013-0/+178
| | | | | | | | | 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
* Correctly set the alpha of a hardware layer before drawing it.Romain Guy2011-02-013-0/+172
| | | | | | Bug #3410819 Change-Id: I3ebaca2233f4edf5b59d84ec7706555056a1a4b1
* Enable partial invalidates when rendering with OpenGL.Romain Guy2011-01-242-2/+2
| | | | Change-Id: Ie8be06c4776b815e8737753eb8003b4fd8936130
* Fix bitmap meshes to work in display lists.Romain Guy2011-01-231-11/+23
| | | | Change-Id: Ie226d049840942d9ad9cf58e0c19132f49d62a75
* Add support for arcs.Romain Guy2011-01-231-1/+25
| | | | Change-Id: I96c057ff4eb1b464b03f132da0b85333777bee4f
* Add support for ovals and stroked rectangles.Romain Guy2011-01-231-0/+25
| | | | Change-Id: I1292e241386763c82e6622c8f7ed90b0f5b7bd4f
* Add support for drawBitmapMesh().Romain Guy2011-01-202-0/+76
| | | | Change-Id: Ic77f9c534bb90dc7b9458299544bd50b8b6ae6a5
* Add rounded rects and circles support to OpenGLRenderer.Romain Guy2011-01-192-0/+101
| | | | Change-Id: I6cedf2b495d58de7c0437096809fa9e4518a1b8c
* Make embedded hardware layers work.Romain Guy2011-01-193-0/+165
| | | | | | Bug #3369474 Change-Id: Ib6d7fb44eedda9dc2933b5e1b176f307968af91d
* Add support for Paint::setTextSkewX in OpenGLRenderer.Romain Guy2011-01-181-2/+14
| | | | | | Bug #3360888 Change-Id: I42e81a1f10bf7b9ae1c63ca8add1878fd59a1e8a
* Add support for skew()Romain Guy2011-01-182-0/+65
| | | | Change-Id: Ia3a9a867f74fd78b61f75179e3788fdc2f0cacd0
* Improve hardware layers rendering speed when setting a View's alpha.Romain Guy2011-01-171-0/+2
| | | | Change-Id: Ib1275677f531c60d9919978c5538c663fdb823b5
* Add BitmapFactory.Options.inMutable to load mutable bitmaps.Romain Guy2011-01-171-0/+9
| | | | Change-Id: Iaa222127520f3aa55072d44af12ee3477908b876
* Fix 9patch rendering in ExpandableListView.Romain Guy2011-01-164-0/+66
| | | | Change-Id: I60843d61a40b0cb7dd09923cb4489a5a76f20486
* Better backend for hardware layers.Romain Guy2011-01-113-1/+119
| | | | | | | | 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
* Composite layers as regions.Romain Guy2011-01-101-2/+3
| | | | | | | | | | 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
* New layers API for Views.Romain Guy2011-01-0610-28/+330
| | | | | | | | | 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
* We are now Honeycomb.Dianne Hackborn2011-01-061-1/+1
| | | | Change-Id: I69dadd57184d2d80f426c1c862ed0a040c8baf03
* LayoutLib: support for layers.Xavier Ducrohet2010-12-224-15/+27
| | | | | | | | | | | | | | | | | | | | | | | 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
* LayoutLib: Misc rendering fixes.Xavier Ducrohet2010-12-213-20/+29
| | | | | | | | | | | | | | | | | | | | | | - 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
* LayoutLib: support for Path and BitmapShader using delegates.Xavier Ducrohet2010-12-216-14/+26
| | | | | | | | | | 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.
* Fix text shadow rendering issue.Romain Guy2010-12-151-0/+8
| | | | Change-Id: Ic9eb0d38ad684d2f2c95a4f586f865db911cb872
* Create some layout files for HwAccelerationTestXavier Ducrohet2010-12-1411-27/+90
| | | | | | | | 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
* New, better line drawing implementation.Romain Guy2010-12-082-7/+20
| | | | | | | Bug #3207544 Bug #3225875 Change-Id: Ibdd1dfc64e01625d5c441f39eb0aa3ee647f6ff5
* Fix rendering issue with layers.Romain Guy2010-11-031-0/+2
| | | | Change-Id: I1d511ab2707000762a942d32c300a9944ab38603
* Don't change textures wrap modes on every draw.Romain Guy2010-10-251-6/+8
| | | | Change-Id: If6d3f313778cc7f3e803a063338539c8b3e165e3
* Fix clipping issue in StackView.Romain Guy2010-10-1521-0/+318
| | | | Change-Id: I7ec28f25c3993a2bd7ef6399ba1923839d239905
* Add 3D transforms support to all gradients.Romain Guy2010-10-071-1/+102
| | | | Change-Id: I61409edd00dab3a11684a3f5e4f7df0afc734758
* Apply 3D transformations to gradient shaders.Romain Guy2010-10-061-1/+56
| | | | | | | This fixes only linear gradients. Sweep and radial gradients, as well as bitmap shaders, will be fixed in a future commit. Change-Id: I4eee4ff62e9bbf3b9339fc111a780167449ecfef
* Code cleanup and disable display lists for now.Romain Guy2010-10-051-0/+2
| | | | Change-Id: I681213036b5279339cb96a016d1dfb15d74dafc8
* Apply bilinear filtering to text.Romain Guy2010-10-013-0/+83
| | | | Change-Id: I2c81ad657ee2a11a2139e0b11ae3749db54c0749
* Fix INVALID_OPERATION error with layers rendering.Romain Guy2010-10-014-1/+124
| | | | | | | | 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
* Add support for circular gradients to the GL renderer.Romain Guy2010-09-211-11/+29
| | | | | | | This change also adds full support for local transformation matrices on sweep and radial gradients. Change-Id: Id8773bc0766575190e3f3d51984fc5e57b266c3f
* Add support for SweepGradient in the GL renderer.Romain Guy2010-09-202-1/+106
| | | | Change-Id: I7aa397ed4e34655ead9ba1f5b4ce087665e0f022
* Add support for drawLines(), with anti-aliasingRomain Guy2010-09-162-1/+5
| | | | Change-Id: I16c0593c5671490909dec13a85df601e1428a1a6
* Fix 9patch rendering.Romain Guy2010-09-152-4/+10
| | | | Change-Id: Ic4c18ff483cca95fbabcb10843f7714efe488adb