OLD | NEW |
| (Empty) |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "config.h" | |
6 | |
7 #include "CCScopedTexture.h" | |
8 | |
9 namespace cc { | |
10 | |
11 CCScopedTexture::CCScopedTexture(CCResourceProvider* resourceProvider) | |
12 : m_resourceProvider(resourceProvider) | |
13 { | |
14 ASSERT(m_resourceProvider); | |
15 } | |
16 | |
17 CCScopedTexture::~CCScopedTexture() | |
18 { | |
19 free(); | |
20 } | |
21 | |
22 bool CCScopedTexture::allocate(int pool, const IntSize& size, GC3Denum format, C
CResourceProvider::TextureUsageHint hint) | |
23 { | |
24 ASSERT(!id()); | |
25 ASSERT(!size.isEmpty()); | |
26 | |
27 setDimensions(size, format); | |
28 setId(m_resourceProvider->createResource(pool, size, format, hint)); | |
29 | |
30 #if !ASSERT_DISABLED | |
31 m_allocateThreadIdentifier = base::PlatformThread::CurrentId(); | |
32 #endif | |
33 | |
34 return id(); | |
35 } | |
36 | |
37 void CCScopedTexture::free() | |
38 { | |
39 if (id()) { | |
40 ASSERT(m_allocateThreadIdentifier == base::PlatformThread::CurrentId()); | |
41 m_resourceProvider->deleteResource(id()); | |
42 } | |
43 setId(0); | |
44 } | |
45 | |
46 void CCScopedTexture::leak() | |
47 { | |
48 setId(0); | |
49 } | |
50 | |
51 } | |
OLD | NEW |