diff options
Diffstat (limited to 'cc/scoped_texture.h')
-rw-r--r-- | cc/scoped_texture.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/cc/scoped_texture.h b/cc/scoped_texture.h index 638cbb2..a5b615c 100644 --- a/cc/scoped_texture.h +++ b/cc/scoped_texture.h @@ -1,3 +1,46 @@ // Copyright 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. + +#ifndef CCScopedTexture_h +#define CCScopedTexture_h + +#include "base/basictypes.h" +#include "CCTexture.h" + +#if !ASSERT_DISABLED +#include "base/threading/platform_thread.h" +#endif + +namespace cc { + +class CCScopedTexture : protected CCTexture { +public: + static PassOwnPtr<CCScopedTexture> create(CCResourceProvider* resourceProvider) { return adoptPtr(new CCScopedTexture(resourceProvider)); } + virtual ~CCScopedTexture(); + + using CCTexture::id; + using CCTexture::size; + using CCTexture::format; + using CCTexture::bytes; + + bool allocate(int pool, const IntSize&, GC3Denum format, CCResourceProvider::TextureUsageHint); + void free(); + void leak(); + +protected: + explicit CCScopedTexture(CCResourceProvider*); + +private: + CCResourceProvider* m_resourceProvider; + +#if !ASSERT_DISABLED + base::PlatformThreadId m_allocateThreadIdentifier; +#endif + + DISALLOW_COPY_AND_ASSIGN(CCScopedTexture); +}; + +} + +#endif |