diff options
author | Bo Liu <boliu@google.com> | 2021-07-15 20:44:41 -0400 |
---|---|---|
committer | Bo Liu <boliu@google.com> | 2021-07-15 20:46:26 -0400 |
commit | f267de76253924320da8e3bc0a35081d6c918c89 (patch) | |
tree | 95a965f02db4486a2e7b43bb1ef86c4e5b78907b /native | |
parent | 6a84070852de7fe86d502310b88da0607bbe21fe (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.cpp | 26 |
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, |