| // | |
| // Copyright (c) 2013 The ANGLE Project Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| // | |
| // RenderbufferProxySet.h: Defines the gl::RenderbufferProxySet, a class for | |
| // maintaining a Texture's weak references to the Renderbuffers that represent it. | |
| #ifndef LIBGLESV2_RENDERBUFFERPROXYSET_H_ | |
| #define LIBGLESV2_RENDERBUFFERPROXYSET_H_ | |
| #include <map> | |
| namespace gl | |
| { | |
| class Renderbuffer; | |
| class RenderbufferProxySet | |
| { | |
| public: | |
| void addRef(const Renderbuffer *proxy); | |
| void release(const Renderbuffer *proxy); | |
| void add(unsigned int mipLevel, unsigned int layer, Renderbuffer *renderBuffer); | |
| Renderbuffer *get(unsigned int mipLevel, unsigned int layer) const; | |
| private: | |
| struct RenderbufferKey | |
| { | |
| unsigned int mipLevel; | |
| unsigned int layer; | |
| bool operator<(const RenderbufferKey &other) const; | |
| }; | |
| typedef std::map<RenderbufferKey, Renderbuffer*> BufferMap; | |
| BufferMap mBufferMap; | |
| typedef std::map<const Renderbuffer*, unsigned int> RefCountMap; | |
| RefCountMap mRefCountMap; | |
| }; | |
| } | |
| #endif // LIBGLESV2_RENDERBUFFERPROXYSET_H_ |