gecko-dev/dom/canvas/nsICanvasRenderingContextIn...

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

32 строки
1.1 KiB
C++
Исходник Обычный вид История

/* -*- Mode: C++; tab-width: 40; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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 "nsICanvasRenderingContextInternal.h"
#include "nsRefreshDriver.h"
nsICanvasRenderingContextInternal::nsICanvasRenderingContextInternal()
: mSharedPtrPtr(
std::make_shared<nsICanvasRenderingContextInternal*>(this)) {}
nsICanvasRenderingContextInternal::~nsICanvasRenderingContextInternal() =
default;
void nsICanvasRenderingContextInternal::RemovePostRefreshObserver() {
if (mRefreshDriver) {
mRefreshDriver->RemovePostRefreshObserver(this);
mRefreshDriver = nullptr;
}
}
void nsICanvasRenderingContextInternal::AddPostRefreshObserverIfNecessary() {
if (!GetPresShell() || !GetPresShell()->GetPresContext() ||
!GetPresShell()->GetPresContext()->RefreshDriver()) {
return;
}
mRefreshDriver = GetPresShell()->GetPresContext()->RefreshDriver();
mRefreshDriver->AddPostRefreshObserver(this);
}