summaryrefslogtreecommitdiff
path: root/Source/WebCore/html/canvas/WebGLContextGroup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/html/canvas/WebGLContextGroup.cpp')
-rw-r--r--Source/WebCore/html/canvas/WebGLContextGroup.cpp55
1 files changed, 23 insertions, 32 deletions
diff --git a/Source/WebCore/html/canvas/WebGLContextGroup.cpp b/Source/WebCore/html/canvas/WebGLContextGroup.cpp
index 6f182e22d..9ddef158c 100644
--- a/Source/WebCore/html/canvas/WebGLContextGroup.cpp
+++ b/Source/WebCore/html/canvas/WebGLContextGroup.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2011-2017 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
@@ -24,25 +24,19 @@
*/
#include "config.h"
+#include "WebGLContextGroup.h"
#if ENABLE(WEBGL)
-#include "WebGLContextGroup.h"
-
#include "GraphicsContext3D.h"
-#include "WebGLRenderingContext.h"
+#include "WebGLRenderingContextBase.h"
#include "WebGLSharedObject.h"
namespace WebCore {
-PassRefPtr<WebGLContextGroup> WebGLContextGroup::create()
-{
- RefPtr<WebGLContextGroup> contextGroup = adoptRef(new WebGLContextGroup());
- return contextGroup.release();
-}
-
-WebGLContextGroup::WebGLContextGroup()
+Ref<WebGLContextGroup> WebGLContextGroup::create()
{
+ return adoptRef(*new WebGLContextGroup);
}
WebGLContextGroup::~WebGLContextGroup()
@@ -50,49 +44,46 @@ WebGLContextGroup::~WebGLContextGroup()
detachAndRemoveAllObjects();
}
-GraphicsContext3D* WebGLContextGroup::getAGraphicsContext3D()
+GraphicsContext3D& WebGLContextGroup::getAGraphicsContext3D()
{
ASSERT(!m_contexts.isEmpty());
- HashSet<WebGLRenderingContext*>::iterator it = m_contexts.begin();
- return (*it)->graphicsContext3D();
+ return *(*m_contexts.begin())->graphicsContext3D();
}
-void WebGLContextGroup::addContext(WebGLRenderingContext* context)
+void WebGLContextGroup::addContext(WebGLRenderingContextBase& context)
{
- m_contexts.add(context);
+ m_contexts.add(&context);
}
-void WebGLContextGroup::removeContext(WebGLRenderingContext* context)
+void WebGLContextGroup::removeContext(WebGLRenderingContextBase& context)
{
// We must call detachAndRemoveAllObjects before removing the last context.
- if (m_contexts.size() == 1 && m_contexts.contains(context))
+ if (m_contexts.size() == 1 && m_contexts.contains(&context))
detachAndRemoveAllObjects();
- m_contexts.remove(context);
+ m_contexts.remove(&context);
}
-void WebGLContextGroup::removeObject(WebGLSharedObject* object)
+void WebGLContextGroup::removeObject(WebGLSharedObject& object)
{
- m_groupObjects.remove(object);
+ m_groupObjects.remove(&object);
}
-void WebGLContextGroup::addObject(WebGLSharedObject* object)
+void WebGLContextGroup::addObject(WebGLSharedObject& object)
{
- m_groupObjects.add(object);
+ m_groupObjects.add(&object);
}
void WebGLContextGroup::detachAndRemoveAllObjects()
{
- while (!m_groupObjects.isEmpty()) {
- HashSet<WebGLSharedObject*>::iterator it = m_groupObjects.begin();
- (*it)->detachContextGroup();
- }
+ while (!m_groupObjects.isEmpty())
+ (*m_groupObjects.begin())->detachContextGroup();
}
-void WebGLContextGroup::loseContextGroup(WebGLRenderingContext::LostContextMode mode)
+void WebGLContextGroup::loseContextGroup(WebGLRenderingContextBase::LostContextMode mode)
{
- for (HashSet<WebGLRenderingContext*>::iterator it = m_contexts.begin(); it != m_contexts.end(); ++it)
- (*it)->loseContextImpl(mode);
+ for (auto& context : m_contexts)
+ context->loseContextImpl(mode);
detachAndRemoveAllObjects();
}