From fdfd7a20c71c9e1854a73dbefcb0bb047ce9dbd9 Mon Sep 17 00:00:00 2001 From: Dennis de Bruijn Date: Tue, 7 May 2024 13:32:20 +0200 Subject: [PATCH] Implement AcceleratedPaintInfo so the shared texture can be used for accelerated rendering in a custom IRenderHandler. --- CefSharp.Core.Runtime/Internals/RenderClientAdapter.h | 5 ++++- CefSharp/AcceleratedPaintInfo.cs | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CefSharp.Core.Runtime/Internals/RenderClientAdapter.h b/CefSharp.Core.Runtime/Internals/RenderClientAdapter.h index 02f259480..488637907 100644 --- a/CefSharp.Core.Runtime/Internals/RenderClientAdapter.h +++ b/CefSharp.Core.Runtime/Internals/RenderClientAdapter.h @@ -153,7 +153,10 @@ namespace CefSharp virtual DECL void OnAcceleratedPaint(CefRefPtr browser, PaintElementType type, const RectList& dirtyRects, const CefAcceleratedPaintInfo& info) override { CefRect r = dirtyRects.front(); - _renderWebBrowser->OnAcceleratedPaint((CefSharp::PaintElementType)type, CefSharp::Structs::Rect(r.x, r.y, r.width, r.height), nullptr); + AcceleratedPaintInfo^ api = gcnew AcceleratedPaintInfo(); + api->SharedTextureHandle = (IntPtr)info.shared_texture_handle; + api->Format = (ColorType)info.format; + _renderWebBrowser->OnAcceleratedPaint((CefSharp::PaintElementType)type, CefSharp::Structs::Rect(r.x, r.y, r.width, r.height), api); } virtual DECL void OnPaint(CefRefPtr browser, PaintElementType type, const RectList& dirtyRects, diff --git a/CefSharp/AcceleratedPaintInfo.cs b/CefSharp/AcceleratedPaintInfo.cs index d0e1e6391..a34fca869 100644 --- a/CefSharp/AcceleratedPaintInfo.cs +++ b/CefSharp/AcceleratedPaintInfo.cs @@ -2,6 +2,9 @@ // // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. +using System; +using CefSharp.Enums; + namespace CefSharp { /// @@ -9,5 +12,7 @@ namespace CefSharp /// public sealed class AcceleratedPaintInfo { + public IntPtr SharedTextureHandle; + public ColorType Format; } }