summaryrefslogtreecommitdiffstats
path: root/libs/hwui/OpenGLRenderer.h
Commit message (Collapse)AuthorAgeFilesLines
* Don't clear the framebuffer when not needed.Romain Guy2010-10-061-1/+1
|
* Optimize saveLayer() when the clip flag is set.Romain Guy2010-10-051-1/+2
| | | This speeds up applications, especially Launcher.
* Add display lists caching.Romain Guy2010-09-291-1/+5
| | | | Change-Id: Iac3a248a81ed8cb076a83ef9d186b8ebba685b4c
* Adding display lists to the GL renderer (checkpoint.)Romain Guy2010-09-261-20/+20
| | | | Change-Id: Iaa49757600a53b39369dbb23f8c3feab282518e6
* Add debug mode to measure performance.Romain Guy2010-09-241-26/+32
| | | | Change-Id: I9d4c84034dc200b99c8266165942a7cdbcb5c0c5
* Fix OpenGL errors in various places.Romain Guy2010-09-221-4/+0
| | | Change-Id: I3a4e115d8fb13b6c443e65460d92987b16f2524c
* Add support for non AA lines.Romain Guy2010-09-171-0/+6
| | | | Change-Id: Id5200e94815404d62760437d0d2dbb0a9276c700
* Add support for drawLines(), with anti-aliasingRomain Guy2010-09-161-0/+15
| | | | Change-Id: I16c0593c5671490909dec13a85df601e1428a1a6
* Better error handling in the OpenGL renderer.Romain Guy2010-09-161-0/+10
| | | | | | | Add a glGetError() check on every frame Don't attempt to create textures larger than the maximum size allowed Change-Id: Iee4afae16089406dbe8bf10fc93b674f1271a0ca
* Fix 9patch rendering.Romain Guy2010-09-151-1/+1
| | | | Change-Id: Ic4c18ff483cca95fbabcb10843f7714efe488adb
* Document the implementation of saveLayer().Romain Guy2010-09-131-2/+1
| | | | | | | | | | | | The implementation is simple but tricky. Leave explanations to my future self so that I don't invent a time machine to come back to now and slap my self. This change also simplifies the way the GL blending function is chosen when compositing a layer. It reuses existing OpenGLRenderer APIs and is easier to understand. Change-Id: I1b9cf8c5d51e09836d85b8cf157a1c284aa65c59
* Optimize calls to glCopyTexImage2D().Romain Guy2010-09-121-0/+11
| | | | Change-Id: I34ee87bd4472864f440916e03a2894fae24bbe4a
* Correct implementation of saveLayer().Romain Guy2010-09-121-3/+13
| | | | Change-Id: I5375126636913e0a84f2d6bbd0ebe40d2e4f2763
* Add support for advanced blend modes with the framebuffer.Romain Guy2010-09-091-1/+3
| | | | | | | This adds the ability to blend with the framebuffer using Darken, Lighten, Add, Multiply, Overlay and Screen. Change-Id: Iae01a53797d4ad39c373cba6ff2a42293129da1a
* Add support for Canvas flags on save.Romain Guy2010-09-011-1/+3
| | | | | | This is required for the rewrite of layers support. Change-Id: I5c0867dcf5aeb0392c8d0fbab05febb0eaff70d9
* Add hooks for hardware accelerated WebView.Romain Guy2010-08-311-0/+2
| | | | Change-Id: I907cdec8a67594f87749ac46bda85f04af5a2003
* Use only one GL context per process, share chaches.Romain Guy2010-08-241-24/+2
| | | | Change-Id: Ieabaa25338d2f4b8d4fd90e7401ad6e7452eae11
* Layers were using an extra Snapshot causing extra clipping.Romain Guy2010-08-181-3/+4
| | | | | | Bug #2919310 Change-Id: I72ccd44bba7a3f3db72f581aa96198b6226e4478
* Cleanup, better code reuse.Romain Guy2010-08-161-5/+44
| | | | Change-Id: Ib86a7309ae579cce3b7cf464782c34e70a74c616
* Add drop shadows.Romain Guy2010-08-131-0/+40
| | | | Change-Id: Ic6a72409d4785968d1fbdff229f17ee5c00b240b
* Add support for paths.Romain Guy2010-08-051-0/+3
| | | | | | | Rendering is implementing by rasterizing the paths into A8 textures. This cna be extremely inefficient if the path changes often. Change-Id: I609343f304ae38e0d319359403ee73b9b5b3c93a
* Add support for ColorFilters.Romain Guy2010-08-021-0/+7
| | | | | | Color filters are fully supported and can be used with shaders. Change-Id: Id90ccf1c81cb462f2431f366f3f8f710d7971e04
* Refactor Skia shaders handling.Romain Guy2010-07-301-59/+3
| | | | | | | | With this change, Skia shaders can easily be applied to any mesh. This change also supports ComposeShader. For instance, this can be used to blend a gradient and a bitmap togehter and paint a string of text with the result. Change-Id: I701c2f9cf7f89b2ff58005e8a1d0d80ccf4a4aea
* Fix gradients rendering and destructor crashes.Romain Guy2010-07-291-5/+1
| | | | | | | This changes binds all textures to GL_TEXTURE0, this will have to be changed when combining shader capabilities. Change-Id: I02df4f5ba41e9b01ffa52fd7c26b41477c7ed18f
* Moved all the rendering code to the new shader generator.Romain Guy2010-07-291-21/+7
| | | | | | | | | | | The generator supports features that are not yet implement in the renderer: color matrix, lighting, porterduff color blending and composite shaders. This change also adds support for repeated/mirrored non-power of 2 bitmap shaders. Change-Id: I903a11a070c0eb9cc8850a60ef305751e5b47234
* Generate shaders to cover all possible cases.Romain Guy2010-07-271-2/+4
| | | | | | | | | | With this change, all the vertex and fragment shaders used by the GL renderer are now generated based on a program description supplied by the caller. This allows the renderer to generate a large number of shaders without having to write all the possible combinations by hand. The generated shaders are stored in a program cache. Change-Id: If54d286e77ae021c724d42090da476df12a18ebb
* Add text alignment support to drawText().Romain Guy2010-07-231-1/+1
| | | | | | This change also integrates better support for RTL text. Change-Id: I6da8f5cf5dc28ca7cf1b22e27b0d853c919e8481
* Cleanup, added properties for the FontRenderer.Romain Guy2010-07-231-3/+4
| | | | Change-Id: I909c74815d3ac394438ad8071d17fef5401dbeed
* Add a way to query GL extensions.Romain Guy2010-07-221-0/+3
| | | | Change-Id: Ic27dbf72289dacf641b640a749fbd40c12cd474f
* Add text rendering.Romain Guy2010-07-211-0/+7
| | | | Change-Id: Ibe5a9fa844d531b31b55e43de403a98d49f659b9
* Add preliminary support for text rendering.Romain Guy2010-07-201-2/+7
| | | | Change-Id: I547eb631dbda24d13960d54b4144fb8908fd8a49
* Add support for linear gradients.Romain Guy2010-07-191-1/+18
| | | | Change-Id: Id15329da065045b3f06fdaed615f33cd57608496
* Add program for linear gradient.Romain Guy2010-07-161-2/+4
| | | | | | | | 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
* Add plumbing to support gradients in OpenGL renderer.Romain Guy2010-07-161-2/+9
| | | | | | | | | | 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
* Optimize textures binding.Romain Guy2010-07-161-0/+3
| | | | | | | The renderer is still changing textures' wrap modes every time, this will require a latter optimization. Change-Id: I3eb92cb8c886c4a692b7f0ca759911f9371d4d2c
* Improve clip support (add intersect, union and replace.)Romain Guy2010-07-161-1/+2
| | | | | | | This change also modifies the way the clip is stored. The clip is now always stored in screen-space coordinates. Change-Id: I96375784d82dfe975bc6477a159e6866e7052487
* Add support for BitmapShader.Romain Guy2010-07-151-9/+48
| | | | | | This change also fixes an issue with the clip and layers. Change-Id: I5fd9832098d8cf7ae8eb781ff9bffe7defaea279
* Do not apply transforms when using drawColor().Romain Guy2010-07-141-1/+2
| | | | | | This fixes an issue in the way the clip transformations were applied. Change-Id: I91e7b5d15baf244d1280e48938282bb33609081d
* Cleanup: remove unnecessary parameters.Romain Guy2010-07-131-8/+5
| | | | Change-Id: I5956ef1db6be28a01369387aaeeb65a94656c48c
* Fix premultiplied alpha.Romain Guy2010-07-121-2/+2
| | | | Change-Id: I08da422c5350503e1f4f27b9890f15a813d0c6c7
* Correctly support pre-multiplied alpha, optimizations, more stuff.Romain Guy2010-07-121-3/+5
| | | | | | | | | | | | | | 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
* Optimize shader binding changes.Romain Guy2010-07-121-1/+10
| | | | | | | This change also cleans up the internal API a little bit by using mat4 everywhere instead of float[16] (for the ortho matrix for instance.) Change-Id: I35924c7dc17bad17f30307118d5ed437c2ed37e0
* Refactoring to move vertex computing to the Patch class.Romain Guy2010-07-091-6/+0
| | | | | | This change is mostly cleanup to keep less code in OpenGLRenderer. Change-Id: I954375143b2943829457ab470423729b60b844f5
* Optimize blending state changes.Romain Guy2010-07-091-2/+44
| | | | Change-Id: I7c22a8aecccb8b5abfcf7243f049a4ef3cf3979a
* Draw n-patches using OpenGL.Romain Guy2010-07-081-19/+16
| | | | | | Currently only tested with title bars and buttons. Change-Id: I8263a9281898dc0e943b1b8412827fe55639b9d6
* Add support to draw 9patches in OpenGL.Romain Guy2010-07-071-0/+3
| | | | | | | This change only adds the necessary API and stubs. The implementation will be added in another change. Change-Id: Ie50b8aff5868e78796cee331df15bdbf990d2ea1
* Add a layer (FBO) cache.Romain Guy2010-07-061-0/+3
| | | | | | | | | | | | | | The cache is used to draw layers so that a new texture does not have to be recreated every time a call to saveLayer() happens. The FBO cache used a KeyedVector, which is a bad idea. The cache should be able to store several FBOs of the same size (this happens a lot during scrolling with fading edges for instance.) This will be changed in a future CL. Change-Id: Ic316189e625f0dbcf0d273a71cc981a433d48726
* Don't use full screen FBOs, this dramatically increase performance.Romain Guy2010-07-011-2/+2
| | | | | | | The next step will be to add an FBO cache to avoid churning memory on every frame we draw. This change also adds support for drawBitmap(Bitmap, Matrix, Paint). Change-Id: I7825cdcf0cad9bffe6219e05d8328a53d4a6e583
* Add implementation for drawBitmap(Bitmap, Rect, Rect, Paint)Romain Guy2010-06-301-1/+14
| | | | Change-Id: I10904d2325a5431d15801aebcec1048715678e8c
* Add implementation for drawBitmap().Romain Guy2010-06-301-2/+3
| | | | Change-Id: Iada9325f3c5642b61c2e0c4cd80bcfbc92cb491e