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 "cc/scoped_texture.h" | |
8 | |
9 namespace cc { | |
10 | |
11 ScopedTexture::ScopedTexture(ResourceProvider* resourceProvider) | |
12 : m_resourceProvider(resourceProvider) | |
13 { | |
14 DCHECK(m_resourceProvider); | |
15 } | |
16 | |
17 ScopedTexture::~ScopedTexture() | |
18 { | |
19 free(); | |
20 } | |
21 | |
22 bool ScopedTexture::allocate(int pool, const gfx::Size& size, GLenum format, Res
ourceProvider::TextureUsageHint hint) | |
23 { | |
24 DCHECK(!id()); | |
25 DCHECK(!size.IsEmpty()); | |
26 | |
27 setDimensions(size, format); | |
28 setId(m_resourceProvider->createResource(pool, size, format, hint)); | |
29 | |
30 #ifndef NDEBUG | |
31 m_allocateThreadIdentifier = base::PlatformThread::CurrentId(); | |
32 #endif | |
33 | |
34 return id(); | |
35 } | |
36 | |
37 void ScopedTexture::free() | |
38 { | |
39 if (id()) { | |
40 #ifndef NDEBUG | |
41 DCHECK(m_allocateThreadIdentifier == base::PlatformThread::CurrentId()); | |
42 #endif | |
43 m_resourceProvider->deleteResource(id()); | |
44 } | |
45 setId(0); | |
46 } | |
47 | |
48 void ScopedTexture::leak() | |
49 { | |
50 setId(0); | |
51 } | |
52 | |
53 } // namespace cc | |
OLD | NEW |