DrawEventRecorder.cpp (1357B)
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #include "DrawEventRecorder.h" 8 9 namespace mozilla { 10 namespace layout { 11 12 void DrawEventRecorderPRFileDesc::RecordEvent( 13 const gfx::RecordedEvent& aEvent) { 14 aEvent.RecordToStream(mOutputStream); 15 16 Flush(); 17 } 18 19 DrawEventRecorderPRFileDesc::~DrawEventRecorderPRFileDesc() { 20 if (IsOpen()) { 21 Close(); 22 } 23 } 24 25 void DrawEventRecorderPRFileDesc::Flush() { mOutputStream.Flush(); } 26 27 bool DrawEventRecorderPRFileDesc::IsOpen() { return mOutputStream.IsOpen(); } 28 29 void DrawEventRecorderPRFileDesc::OpenFD(PRFileDesc* aFd) { 30 MOZ_DIAGNOSTIC_ASSERT(!IsOpen()); 31 32 mOutputStream.OpenFD(aFd); 33 WriteHeader(mOutputStream); 34 } 35 36 void DrawEventRecorderPRFileDesc::Close() { 37 MOZ_DIAGNOSTIC_ASSERT(IsOpen()); 38 39 mOutputStream.Close(); 40 } 41 42 void DrawEventRecorderPRFileDesc::AddDependentSurface(uint64_t aDependencyId) { 43 mDependentSurfaces.AppendElement(aDependencyId); 44 } 45 46 nsTArray<uint64_t>&& DrawEventRecorderPRFileDesc::TakeDependentSurfaces() { 47 return std::move(mDependentSurfaces); 48 } 49 50 } // namespace layout 51 } // namespace mozilla