Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Side by Side Diff: third_party/WebKit/Source/modules/webgl/WebGLSharedObject.h

Issue 2547813002: Remove WebGLObject maps from WebGLRenderingContextBase and WebGLContextGroup. (Closed)
Patch Set: Fixed WebGLContextObject::validate. Made WebGLExtension non-finalized. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * 12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */ 24 */
25 25
26 #ifndef WebGLSharedObject_h 26 #ifndef WebGLSharedObject_h
27 #define WebGLSharedObject_h 27 #define WebGLSharedObject_h
28 28
29 #include "bindings/core/v8/TraceWrapperMember.h"
29 #include "modules/webgl/WebGLObject.h" 30 #include "modules/webgl/WebGLObject.h"
30 31
31 namespace blink { 32 namespace blink {
32 33
33 class WebGLContextGroup; 34 class WebGLContextGroup;
34 class WebGLRenderingContextBase; 35 class WebGLRenderingContextBase;
35 36
36 // WebGLSharedObject the base class for objects that can be shared by multiple 37 // WebGLSharedObject is the base class for objects that can be shared by
37 // WebGLRenderingContexts. 38 // multiple WebGLRenderingContexts.
38 class WebGLSharedObject : public WebGLObject { 39 class WebGLSharedObject : public WebGLObject {
39 public: 40 public:
40 ~WebGLSharedObject() override;
41
42 WebGLContextGroup* contextGroup() const { return m_contextGroup; } 41 WebGLContextGroup* contextGroup() const { return m_contextGroup; }
43 42
44 virtual bool isBuffer() const { return false; } 43 virtual bool isBuffer() const { return false; }
45 virtual bool isProgram() const { return false; } 44 virtual bool isProgram() const { return false; }
46 virtual bool isQuery() const { return false; } 45 virtual bool isQuery() const { return false; }
47 virtual bool isRenderbuffer() const { return false; } 46 virtual bool isRenderbuffer() const { return false; }
48 virtual bool isSampler() const { return false; } 47 virtual bool isSampler() const { return false; }
49 virtual bool isShader() const { return false; } 48 virtual bool isShader() const { return false; }
50 virtual bool isSync() const { return false; } 49 virtual bool isSync() const { return false; }
51 virtual bool isTexture() const { return false; } 50 virtual bool isTexture() const { return false; }
52 virtual bool isTransformFeedback() const { return false; } 51 virtual bool isTransformFeedback() const { return false; }
53 52
54 bool validate(const WebGLContextGroup* contextGroup, 53 bool validate(const WebGLContextGroup* contextGroup,
55 const WebGLRenderingContextBase*) const final { 54 const WebGLRenderingContextBase*) const final;
56 return contextGroup == m_contextGroup;
57 }
58 55
59 void detachContextGroup(); 56 DECLARE_VIRTUAL_TRACE();
57
58 DECLARE_VIRTUAL_TRACE_WRAPPERS();
60 59
61 protected: 60 protected:
62 explicit WebGLSharedObject(WebGLRenderingContextBase*); 61 explicit WebGLSharedObject(WebGLRenderingContextBase*);
63 62
64 bool hasGroupOrContext() const final { return m_contextGroup; } 63 bool hasGroupOrContext() const final { return m_contextGroup; }
65 64
65 uint32_t currentNumberOfContextLosses() const final;
66
66 gpu::gles2::GLES2Interface* getAGLInterface() const final; 67 gpu::gles2::GLES2Interface* getAGLInterface() const final;
67 68
68 private: 69 private:
69 WebGLContextGroup* m_contextGroup; 70 TraceWrapperMember<WebGLContextGroup> m_contextGroup;
70 }; 71 };
71 72
72 } // namespace blink 73 } // namespace blink
73 74
74 #endif // WebGLSharedObject_h 75 #endif // WebGLSharedObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698