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/texture.h" | |
8 #include "third_party/khronos/GLES2/gl2ext.h" | |
9 | |
10 namespace cc { | |
11 | |
12 void Texture::setDimensions(const gfx::Size& size, GLenum format) | |
13 { | |
14 m_size = size; | |
15 m_format = format; | |
16 } | |
17 | |
18 size_t Texture::bytes() const | |
19 { | |
20 if (m_size.IsEmpty()) | |
21 return 0u; | |
22 | |
23 return memorySizeBytes(m_size, m_format); | |
24 } | |
25 | |
26 size_t Texture::bytesPerPixel(GLenum format) | |
27 { | |
28 unsigned int componentsPerPixel = 0; | |
29 unsigned int bytesPerComponent = 1; | |
30 switch (format) { | |
31 case GL_RGBA: | |
32 case GL_BGRA_EXT: | |
33 componentsPerPixel = 4; | |
34 break; | |
35 case GL_LUMINANCE: | |
36 componentsPerPixel = 1; | |
37 break; | |
38 default: | |
39 NOTREACHED(); | |
40 } | |
41 return componentsPerPixel * bytesPerComponent; | |
42 } | |
43 | |
44 size_t Texture::memorySizeBytes(const gfx::Size& size, GLenum format) | |
45 { | |
46 return bytesPerPixel(format) * size.width() * size.height(); | |
47 } | |
48 | |
49 } // namespace cc | |
OLD | NEW |