summaryrefslogtreecommitdiffstats
path: root/cc/scoped_texture.h
diff options
context:
space:
mode:
Diffstat (limited to 'cc/scoped_texture.h')
-rw-r--r--cc/scoped_texture.h43
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