gecko-dev/dom/canvas/WebGLContextLossHandler.h
Bill McCloskey aefa2aa5da Bug 1365097 - Convert NS_GetCurrentThread uses in dom (except for dom/media) (r=smaug)
For the Quatum DOM project, it's better to work in terms of event targets than
threads. This patch converts DOM code to operate on event targets rather than
threads, when possible.

MozReview-Commit-ID: 5FgvpKadUA2
2017-06-12 20:20:08 -07:00

45 lines
1.2 KiB
C++

/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* 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/. */
#ifndef WEBGL_CONTEXT_LOSS_HANDLER_H_
#define WEBGL_CONTEXT_LOSS_HANDLER_H_
#include "mozilla/WeakPtr.h"
#include "nsCOMPtr.h"
class nsIThread;
class nsITimer;
namespace mozilla {
class WebGLContext;
class WebGLContextLossHandler final : public SupportsWeakPtr<WebGLContextLossHandler>
{
WebGLContext* const mWebGL;
const nsCOMPtr<nsITimer> mTimer; // If we don't hold a ref to the timer, it will think
bool mTimerPending; // that it's been discarded, and be canceled 'for our
bool mShouldRunTimerAgain; // convenience'.
#ifdef DEBUG
nsISerialEventTarget* const mEventTarget;
#endif
friend class WatchdogTimerEvent;
public:
MOZ_DECLARE_WEAKREFERENCE_TYPENAME(WebGLContextLossHandler)
explicit WebGLContextLossHandler(WebGLContext* webgl);
~WebGLContextLossHandler();
void RunTimer();
private:
void TimerCallback();
};
} // namespace mozilla
#endif // WEBGL_CONTEXT_LOSS_HANDLER_H_