WebRenderDrawEventRecorder.cpp (1092B)
1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- 2 * This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 #include "WebRenderDrawEventRecorder.h" 7 #include "mozilla/layers/SharedSurfacesChild.h" 8 #include "mozilla/layers/SharedSurfacesParent.h" 9 10 namespace mozilla { 11 using namespace gfx; 12 13 namespace layers { 14 15 void WebRenderDrawEventRecorder::StoreSourceSurfaceRecording( 16 SourceSurface* aSurface, const char* aReason) { 17 wr::ExternalImageId extId; 18 nsresult rv = layers::SharedSurfacesChild::Share(aSurface, extId); 19 if (NS_FAILED(rv)) { 20 DrawEventRecorderMemory::StoreSourceSurfaceRecording(aSurface, aReason); 21 return; 22 } 23 24 StoreExternalSurfaceRecording(aSurface, wr::AsUint64(extId)); 25 } 26 27 already_AddRefed<SourceSurface> WebRenderTranslator::LookupExternalSurface( 28 uint64_t aKey) { 29 return SharedSurfacesParent::Get(wr::ToExternalImageId(aKey)); 30 } 31 32 } // namespace layers 33 } // namespace mozilla