blob: ae5bf944f07eca6040f5f07a03eb6db0b2898861 [file] [log] [blame]
//
// 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_