Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 89086022 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add plumbing for HDR WebView" into udc-dev

parents 2ca3fbb0 45fd4a50
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ namespace android::uirenderer {

using namespace renderthread;

static float getTargetHdrSdrRatio(const SkColorSpace* destColorspace) {
float getTargetHdrSdrRatio(const SkColorSpace* destColorspace) {
    // We should always have a known destination colorspace. If we don't we must be in some
    // legacy mode where we're lost and also definitely not going to HDR
    if (destColorspace == nullptr) {
+2 −0
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@

namespace android::uirenderer {

float getTargetHdrSdrRatio(const SkColorSpace* destColorspace);

void DrawGainmapBitmap(SkCanvas* c, const sk_sp<const SkImage>& image, const SkRect& src,
                       const SkRect& dst, const SkSamplingOptions& sampling, const SkPaint* paint,
                       SkCanvas::SrcRectConstraint constraint,
+2 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#include "SkM44.h"
#include "include/gpu/GpuTypes.h" // from Skia
#include "utils/GLUtils.h"
#include <effects/GainmapRenderer.h>

namespace android {
namespace uirenderer {
@@ -129,6 +130,7 @@ void GLFunctorDrawable::onDraw(SkCanvas* canvas) {
    info.height = fboSize.height();
    mat4.getColMajor(&info.transform[0]);
    info.color_space_ptr = canvas->imageInfo().colorSpace();
    info.currentHdrSdrRatio = getTargetHdrSdrRatio(info.color_space_ptr);

    // ensure that the framebuffer that the webview will render into is bound before we clear
    // the stencil and/or draw the functor.
+2 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@
#include "renderthread/VulkanManager.h"
#include "thread/ThreadBase.h"
#include "utils/TimeUtils.h"
#include "effects/GainmapRenderer.h"

namespace android {
namespace uirenderer {
@@ -73,6 +74,7 @@ void VkFunctorDrawHandler::draw(const GrBackendDrawableInfo& info) {
            .clip_right = mClip.fRight,
            .clip_bottom = mClip.fBottom,
            .is_layer = !vulkan_info.fFromSwapchainOrAndroidWindow,
            .currentHdrSdrRatio = getTargetHdrSdrRatio(mImageInfo.colorSpace()),
    };
    mat4.getColMajor(&params.transform[0]);
    params.secondary_command_buffer = vulkan_info.fSecondaryCommandBuffer;
+2 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@
#include "renderthread/EglManager.h"
#include "thread/ThreadBase.h"
#include "utils/TimeUtils.h"
#include "effects/GainmapRenderer.h"

#include <SkBlendMode.h>

@@ -139,6 +140,7 @@ void VkInteropFunctorDrawable::onDraw(SkCanvas* canvas) {
        info.height = mFBInfo.height();
        mat4.getColMajor(&info.transform[0]);
        info.color_space_ptr = canvas->imageInfo().colorSpace();
        info.currentHdrSdrRatio = getTargetHdrSdrRatio(info.color_space_ptr);

        glViewport(0, 0, info.width, info.height);

Loading