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