/* -*- Mode: C++; tab-width: 2; 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"Image.h"
#include"imgRequest.h" #include"WebRenderImageProvider.h" #include"nsIObserverService.h" #include"nsRefreshDriver.h" #include"nsContentUtils.h" #include"mozilla/Atomics.h" #include"mozilla/gfx/Point.h" #include"mozilla/gfx/Rect.h" #include"mozilla/gfx/SourceSurfaceRawData.h" #include"mozilla/Services.h" #include"mozilla/SizeOfState.h" #include"mozilla/TimeStamp.h" // for Tie #include"mozilla/layers/SharedSurfacesChild.h"
// We don't have the image object yet, but we can get some information.
nsCOMPtr<nsIURI> imageURL;
nsresult rv = aRequest->GetURI(getter_AddRefs(imageURL)); if (NS_SUCCEEDED(rv) && imageURL) {
imageURL->GetSpec(mURI);
}
ImageResource::~ImageResource() { // Ask our ProgressTracker to drop its weak reference to us.
mProgressTracker->ResetImage();
}
void ImageResource::IncrementAnimationConsumers() {
MOZ_ASSERT(NS_IsMainThread(), "Main thread only to encourage serialization " "with DecrementAnimationConsumers");
mAnimationConsumers++;
}
void ImageResource::DecrementAnimationConsumers() {
MOZ_ASSERT(NS_IsMainThread(), "Main thread only to encourage serialization " "with IncrementAnimationConsumers");
MOZ_ASSERT(mAnimationConsumers >= 1, "Invalid no. of animation consumers!");
mAnimationConsumers--;
}
nsresult ImageResource::GetAnimationModeInternal(uint16_t* aAnimationMode) { if (mError) { return NS_ERROR_FAILURE;
}
NS_ENSURE_ARG_POINTER(aAnimationMode);
*aAnimationMode = mAnimationMode; return NS_OK;
}
nsresult ImageResource::SetAnimationModeInternal(uint16_t aAnimationMode) { if (mError) { return NS_ERROR_FAILURE;
}
NS_ASSERTION(aAnimationMode == kNormalAnimMode ||
aAnimationMode == kDontAnimMode ||
aAnimationMode == kLoopOnceAnimMode, "Wrong Animation Mode is being set!");
mAnimationMode = aAnimationMode;
return NS_OK;
}
bool ImageResource::HadRecentRefresh(const TimeStamp& aTime) { // Our threshold for "recent" is 1/2 of the default refresh-driver interval. // This ensures that we allow for frame rates at least as fast as the // refresh driver's default rate. static TimeDuration recentThreshold =
TimeDuration::FromMilliseconds(nsRefreshDriver::DefaultInterval() / 2.0);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.