mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 13:51:41 +00:00
16e8c5d426
This commit adds the ability to create a different kind of DrawTargetCapture which has a limit on the size of which its CaptureCommandList can grow before it is synchronously flushed to its destination DrawTarget. Special care is taken to not do a sync flush until we would need to resize the backing store of the CaptureCommandList. This allows us to not waste memory we've already allocated. The async painting content clients are updated to use it, and get a default value from a new preference. MozReview-Commit-ID: CJL7ffvaRzR --HG-- extra : rebase_source : f646862dcef7a480b21dfb7ddb1fa165338ba506 extra : source : b865a866fe5a3257615cb54b7e5e790cc9331988
31 lines
734 B
C++
31 lines
734 B
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "CaptureCommandList.h"
|
|
#include "DrawCommand.h"
|
|
|
|
namespace mozilla {
|
|
namespace gfx {
|
|
|
|
CaptureCommandList::~CaptureCommandList()
|
|
{
|
|
Clear();
|
|
}
|
|
|
|
void
|
|
CaptureCommandList::Clear()
|
|
{
|
|
for (iterator iter(*this); !iter.Done(); iter.Next()) {
|
|
DrawingCommand* cmd = iter.Get();
|
|
cmd->~DrawingCommand();
|
|
}
|
|
mLastCommand = nullptr;
|
|
mStorage.clear();
|
|
}
|
|
|
|
} // namespace gfx
|
|
} // namespace mozilla
|