summaryrefslogtreecommitdiff
path: root/libs/hwui/pipeline/skia/GLFunctorDrawable.cpp
AgeCommit message (Collapse)Author
2021-04-14Add GL_CHECKPOINT before invoking webviewJohn Reck
Fixes: 185351688 Test: builds Change-Id: I57d184c4d252efef66cdf22e3b83d377a60c94e4
2021-02-01Pass sampling or nothing to surface.drawMike Reed
Test: make Bug: 178700363 Change-Id: I144c0a1bc2376259640d1a6920d9df4edd652849
2020-12-21Use new method of getting top layer FBO details from SkCanvas.Brian Salomon
This avoids having to peer through multiple layers of private Skia abstractions to get the FBO ID and size. Also use framework-only SkCanvas method to get top layer bounds. Test: Presubmit checks will test this change. Bug: skia:11019 Change-Id: I62095162e80c4837485f0f89bd40372846303309
2020-09-18Migrate from SkCanvas::getGrContext to SkCanvas::recordingContextAdlai Holler
This is part of API cleanup as we make DDL usage more mainstream in Skia. Since Android doesn't use DDLs, the cast from recordingContext to directContext will always succeed and there's no functional change. Change-Id: Ie585cf6c97d01fecf082f146d5692999371fd39d
2020-07-28Migrate from GrContext to GrDirectContextAdlai Holler
This is part of an effort to distinguish between different types of contexts in GPU Skia. When using a DeferredDisplayList (DDL) recorder, the context you get is not a direct context and cannot be used for operations like uploading or reading textures. Since Android does not use DDLs, it is not directly affected by this change but other APIs, such as SkImage::MakeFromTexture are being migrated to require a GrDirectContext to increase sanity. Change-Id: I9afbdf3c026a9f9cb6ad2aad904915e189e584d6
2020-07-13Merge "Fix for WebView not drawing in a layer" into rvc-dev am: 70a24c3253 ↵TreeHugger Robot
am: 22647c3f3d am: f1669896d1 am: 80061531c4 Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12121325 Change-Id: Id236c70dca6185b435fefa7daa175515ab904cb3
2020-07-10Fix for WebView not drawing in a layerStan Iliev
internal_private_accessTopLayerRenderTargetContext does not guarantee that a GrRenderTarget is created. Moving flush before internal_private_accessTopLayerRenderTargetContext resolves that issue. GrRenderTarget was often nullptr, when drawing WebView in a layer. Test: Passed CtsUiRenderingTestCases. Ran two tests apps attached to the bug Bug: 156413480 Change-Id: Ib3e23c4ab58eb3d02daa05979f545b75a8bfea07
2020-06-26Remove legacy callDrawGlFunction2 from HWUIJohn Reck
Bug: 151439970 Test: CtsUiRenderingTestCases passes Change-Id: I1c29df17bb6e8b078467edf73cb3547db6948cdd
2020-02-22opt into public SkM44Mike Reed
Landing this allows Skia to remove include/private/SkM44.h Test: make Change-Id: I05881e6ae7844231a6f092aaf67c14ca46244b0f
2020-01-22extend recordingcanvas overrides for mat4Mike Reed
Note: SkCanvas now tracks a real 4x4, so android could consider using it Test: make Change-Id: I6e201f2feec4fb4663f5d3e62fe0ffef5ef9a33f
2019-01-24Add color space params to webview gl functorBo Liu
Bug: 111436479 Test: Compiles Change-Id: I6713afbb871a5c7027bac1e0f52ce2a841f38e25
2019-01-22Add continuous SKP capture test apiJohn Reck
Bug: 122856066 Test: PictureCaptureDemo Change-Id: Iaf3a4bc1c8a2c18c7dff635c5f1cf726b331f8bf
2018-12-14New WebViewFunctor APIJohn Reck
Should function alongside existing functor API. Bug: 120997728 Test: hwuiunit passes Change-Id: I8f6143d0be1111431b55016f34de319f6b8c8910
2018-12-03Remove ; from closing namespaces in libs/hwuiChris Blume
When closing a namespace a } is sufficient. It doesn't need to be }; like closing a class or enum. Within frameworks/base/libs/hwui there is a mix between } and }; when closing a namespace. There are even mixes between a .h and the corresponding .cpp files. In a separate CL I was asked to not close with };. That was a good comment. I adopted the style from nearby code. This CL cleans up the nearby code. Test: I made sure the code still built as expected. Change-Id: Ieb314a4f48d6e33752463f3be4361fdc9be97482
2018-09-18Implement WebView support for Vulkan using temporary bufferStan Iliev
Draw WebView in an offscreen GL buffer, then import and draw the buffer with Vulkan. Bug: 115610873 Test: Passed WebView CTS tests that are part of UiRendering. Change-Id: Ida137fe9b8652d2a936ec2798b909be7e77b3462
2018-05-31Bind correct FBO when drawing a WebView into a layer.Derek Sollenberger
The WebView was unable to draw into either a standard clipped layer or the "fading edges" unclipped layer. This CL and its companion test cases ensure that both work with simple and complex clips. Bug: 79619253 Bug: 80443556 Bug: 80477645 Test: atest CtsUiRenderingTestCases:.LayerTests Change-Id: I0e16b724f74415a61cc2a841ccf4a491f293ac94
2018-05-24Merge "Make sure frame buffer 0 is bound before calling GL functor" into ↵Stan Iliev
pi-dev am: a2cc38e7fb am: 8deb6ac7cd Change-Id: Icc245a07ca723cce71263002a2e613f7c52f227d
2018-05-23Make sure frame buffer 0 is bound before calling GL functorStan Iliev
Make sure view port and frame buffer are set to the correct values before calling GL functor (WebView) draw. Improve correctness for stencil clip by doing a second flush that guarantees the stencil clear will be executed after draw commands. Bug: 79619253 Test: XFINITY Connect app draws correctly Change-Id: Ieb3d0d70caf0469b6393e6287f8529cd86519301
2018-05-08remove obsolete Glop, Tessellators, Programs, and SkiaShaderMike Reed
Test: make Change-Id: I92f36335830dfc37be72468546637d9986f0baf1
2017-11-03Format the world (or just HWUI)John Reck
Test: No code changes, just ran through clang-format Change-Id: Id23aa4ec7eebc0446fe3a30260f33e7fd455bb8c
2017-08-02Implement efficiently non-rectangular clips in GLFunctorDrawableStan Iliev
Implement non-rectangular clips by writing into the stencil buffer using new Skia API. This CL is fixing PathClippingTests#testWebViewClipWithCircle test, which was failing on some devices. Bug: 34454070 Bug: 31489986 Test: CtsUiRenderingTestCases tests passed for Skia pipeline. Change-Id: I29d7af02e2af53943540a91393f5d7a8c4e44049
2017-01-25use new clipbounds apiMike Reed
Allows us to remove SK_SUPPORT_LEGACY_GETCLIPBOUNDS flag Change-Id: I7c6665b4eb67c58fe747c07b8b87d58fe9b10120
2017-01-19Refactor GLFunctorDrawable to use new SkCanvas API for clip regionStan Iliev
Refactor GLFunctorDrawable::onDraw to get SkCanvas clip region with new Skia API (getClipStack is going to be deprecated). Test: Built and ran angler-userdebug. Ran CTS WebView clip tests. Change-Id: Ia11e3f3d64d5c33802b7a8f296f213ef39a69905
2017-01-10Add support for dummy draws for Vulkan webview and texture views.Greg Daniel
Test: manual testing Change-Id: Iaec8c3a34367673c281665ff6c6e97d1ce532265
2016-10-31Implement SkiaRecordingCanvas, RenderNodeDrawable and other drawables.Stan Iliev
Implement SkiaRecordingCanvas, RenderNodeDrawable, GLFunctorDrawable, LayerDrawable, StartReorderBarrierDrawable, EndReorderBarrierDrawable. Move AnimatedRoundRect and AnimatedCircle in a separate file. All Skia pipeline files are moved in hwui/pipeline/skia folder. Add unit tests for RenderNodeDrawable, StartReorderBarrierDrawable, EndReorderBarrierDrawable and SkiaRecordingCanvas. Test: I tested manually on 6P devices and did run the unit tests. Change-Id: If2a347bd1fc4689953822294ce5bf98c7f3f57c7