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

Side by Side Diff: Source/core/html/canvas/WebGLObject.h

Issue 24096029: Moved the majority of WebGL functionality into WebGLRenderingContextBase (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fixed typo in gypi, was only causing issues on Windows (?!?) Created 6 years, 10 months 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2009 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
(...skipping 18 matching lines...) Expand all
29 #include "platform/graphics/GraphicsTypes3D.h" 29 #include "platform/graphics/GraphicsTypes3D.h"
30 #include "wtf/RefCounted.h" 30 #include "wtf/RefCounted.h"
31 31
32 namespace blink { 32 namespace blink {
33 class WebGraphicsContext3D; 33 class WebGraphicsContext3D;
34 } 34 }
35 35
36 namespace WebCore { 36 namespace WebCore {
37 37
38 class WebGLContextGroup; 38 class WebGLContextGroup;
39 class WebGLRenderingContext; 39 class WebGLRenderingContextBase;
40 40
41 class WebGLObject : public RefCounted<WebGLObject> { 41 class WebGLObject : public RefCounted<WebGLObject> {
42 public: 42 public:
43 virtual ~WebGLObject(); 43 virtual ~WebGLObject();
44 44
45 Platform3DObject object() const { return m_object; } 45 Platform3DObject object() const { return m_object; }
46 46
47 // deleteObject may not always delete the OpenGL resource. For programs and 47 // deleteObject may not always delete the OpenGL resource. For programs and
48 // shaders, deletion is delayed until they are no longer attached. 48 // shaders, deletion is delayed until they are no longer attached.
49 // FIXME: revisit this when resource sharing between contexts are implemente d. 49 // FIXME: revisit this when resource sharing between contexts are implemente d.
50 void deleteObject(blink::WebGraphicsContext3D*); 50 void deleteObject(blink::WebGraphicsContext3D*);
51 51
52 void onAttached() { ++m_attachmentCount; } 52 void onAttached() { ++m_attachmentCount; }
53 void onDetached(blink::WebGraphicsContext3D*); 53 void onDetached(blink::WebGraphicsContext3D*);
54 54
55 // This indicates whether the client side issue a delete call already, not 55 // This indicates whether the client side issue a delete call already, not
56 // whether the OpenGL resource is deleted. 56 // whether the OpenGL resource is deleted.
57 // object()==0 indicates the OpenGL resource is deleted. 57 // object()==0 indicates the OpenGL resource is deleted.
58 bool isDeleted() { return m_deleted; } 58 bool isDeleted() { return m_deleted; }
59 59
60 // True if this object belongs to the group or context. 60 // True if this object belongs to the group or context.
61 virtual bool validate(const WebGLContextGroup*, const WebGLRenderingContext* ) const = 0; 61 virtual bool validate(const WebGLContextGroup*, const WebGLRenderingContextB ase*) const = 0;
62 62
63 protected: 63 protected:
64 WebGLObject(WebGLRenderingContext*); 64 WebGLObject(WebGLRenderingContextBase*);
65 65
66 // setObject should be only called once right after creating a WebGLObject. 66 // setObject should be only called once right after creating a WebGLObject.
67 void setObject(Platform3DObject); 67 void setObject(Platform3DObject);
68 68
69 // deleteObjectImpl should be only called once to delete the OpenGL resource . 69 // deleteObjectImpl should be only called once to delete the OpenGL resource .
70 virtual void deleteObjectImpl(blink::WebGraphicsContext3D*, Platform3DObject ) = 0; 70 virtual void deleteObjectImpl(blink::WebGraphicsContext3D*, Platform3DObject ) = 0;
71 71
72 virtual bool hasGroupOrContext() const = 0; 72 virtual bool hasGroupOrContext() const = 0;
73 73
74 virtual void detach(); 74 virtual void detach();
75 75
76 virtual blink::WebGraphicsContext3D* getAWebGraphicsContext3D() const = 0; 76 virtual blink::WebGraphicsContext3D* getAWebGraphicsContext3D() const = 0;
77 77
78 private: 78 private:
79 Platform3DObject m_object; 79 Platform3DObject m_object;
80 unsigned m_attachmentCount; 80 unsigned m_attachmentCount;
81 bool m_deleted; 81 bool m_deleted;
82 }; 82 };
83 83
84 } // namespace WebCore 84 } // namespace WebCore
85 85
86 #endif // WebGLObject_h 86 #endif // WebGLObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698