summaryrefslogtreecommitdiff
path: root/native
diff options
context:
space:
mode:
authorBo Liu <boliu@google.com>2021-07-15 20:44:41 -0400
committerBo Liu <boliu@google.com>2021-07-15 20:46:26 -0400
commitf267de76253924320da8e3bc0a35081d6c918c89 (patch)
tree95a965f02db4486a2e7b43bb1ef86c4e5b78907b /native
parent6a84070852de7fe86d502310b88da0607bbe21fe (diff)
Null check color_space_ptr in draw functor
Assume sRGB if null. Bug: 187798471 Test: Checked webview still starts up and draws. Change-Id: Idf8c8291bde0ce0624085afd143096c357246672
Diffstat (limited to 'native')
-rw-r--r--native/webview/plat_support/draw_functor.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/native/webview/plat_support/draw_functor.cpp b/native/webview/plat_support/draw_functor.cpp
index 472e0a4347fc..03dd707a1d09 100644
--- a/native/webview/plat_support/draw_functor.cpp
+++ b/native/webview/plat_support/draw_functor.cpp
@@ -77,7 +77,18 @@ void draw_gl(int functor, void* data,
const uirenderer::DrawGlInfo& draw_gl_params,
const uirenderer::WebViewOverlayData& overlay_params) {
float gabcdef[7];
- draw_gl_params.color_space_ptr->transferFn(gabcdef);
+ if (draw_gl_params.color_space_ptr) {
+ draw_gl_params.color_space_ptr->transferFn(gabcdef);
+ } else {
+ // Assume sRGB.
+ gabcdef[0] = SkNamedTransferFn::kSRGB.g;
+ gabcdef[1] = SkNamedTransferFn::kSRGB.a;
+ gabcdef[2] = SkNamedTransferFn::kSRGB.b;
+ gabcdef[3] = SkNamedTransferFn::kSRGB.c;
+ gabcdef[4] = SkNamedTransferFn::kSRGB.d;
+ gabcdef[5] = SkNamedTransferFn::kSRGB.e;
+ gabcdef[6] = SkNamedTransferFn::kSRGB.f;
+ }
AwDrawFn_DrawGLParams params = {
.version = kAwDrawFnVersion,
.clip_left = draw_gl_params.clipLeft,
@@ -147,7 +158,18 @@ void drawVk(int functor, void* data,
const uirenderer::WebViewOverlayData& overlay_params) {
SupportData* support = static_cast<SupportData*>(data);
float gabcdef[7];
- draw_vk_params.color_space_ptr->transferFn(gabcdef);
+ if (draw_vk_params.color_space_ptr) {
+ draw_vk_params.color_space_ptr->transferFn(gabcdef);
+ } else {
+ // Assume sRGB.
+ gabcdef[0] = SkNamedTransferFn::kSRGB.g;
+ gabcdef[1] = SkNamedTransferFn::kSRGB.a;
+ gabcdef[2] = SkNamedTransferFn::kSRGB.b;
+ gabcdef[3] = SkNamedTransferFn::kSRGB.c;
+ gabcdef[4] = SkNamedTransferFn::kSRGB.d;
+ gabcdef[5] = SkNamedTransferFn::kSRGB.e;
+ gabcdef[6] = SkNamedTransferFn::kSRGB.f;
+ }
AwDrawFn_DrawVkParams params{
.version = kAwDrawFnVersion,
.width = draw_vk_params.width,