OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. | 2 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above | 8 * 1. Redistributions of source code must retain the above |
9 * copyright notice, this list of conditions and the following | 9 * copyright notice, this list of conditions and the following |
10 * disclaimer. | 10 * disclaimer. |
(...skipping 14 matching lines...) Expand all Loading... |
25 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF | 25 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF |
26 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | 26 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
27 * SUCH DAMAGE. | 27 * SUCH DAMAGE. |
28 */ | 28 */ |
29 | 29 |
30 #include "config.h" | 30 #include "config.h" |
31 | 31 |
32 #include "CachedShader.h" | 32 #include "CachedShader.h" |
33 #include "SharedBuffer.h" | 33 #include "SharedBuffer.h" |
34 #include "TextResourceDecoder.h" | 34 #include "TextResourceDecoder.h" |
35 #include "WebCoreMemoryInstrumentation.h" | |
36 #include <wtf/text/StringBuilder.h> | 35 #include <wtf/text/StringBuilder.h> |
37 | 36 |
38 namespace WebCore { | 37 namespace WebCore { |
39 | 38 |
40 CachedShader::CachedShader(const ResourceRequest& resourceRequest) | 39 CachedShader::CachedShader(const ResourceRequest& resourceRequest) |
41 : CachedResource(resourceRequest, ShaderResource) | 40 : CachedResource(resourceRequest, ShaderResource) |
42 , m_decoder(TextResourceDecoder::create("application/shader")) | 41 , m_decoder(TextResourceDecoder::create("application/shader")) |
43 { | 42 { |
44 } | 43 } |
45 | 44 |
46 CachedShader::~CachedShader() | 45 CachedShader::~CachedShader() |
47 { | 46 { |
48 } | 47 } |
49 | 48 |
50 const String& CachedShader::shaderString() | 49 const String& CachedShader::shaderString() |
51 { | 50 { |
52 if (m_shaderString.isNull() && m_data) { | 51 if (m_shaderString.isNull() && m_data) { |
53 StringBuilder builder; | 52 StringBuilder builder; |
54 builder.append(m_decoder->decode(m_data->data(), m_data->size())); | 53 builder.append(m_decoder->decode(m_data->data(), m_data->size())); |
55 builder.append(m_decoder->flush()); | 54 builder.append(m_decoder->flush()); |
56 m_shaderString = builder.toString(); | 55 m_shaderString = builder.toString(); |
57 } | 56 } |
58 | 57 |
59 return m_shaderString; | 58 return m_shaderString; |
60 } | 59 } |
61 | 60 |
62 void CachedShader::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const | |
63 { | |
64 MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::CachedResou
rceShader); | |
65 CachedResource::reportMemoryUsage(memoryObjectInfo); | |
66 info.addMember(m_decoder, "decoder"); | |
67 info.addMember(m_shaderString, "shaderString"); | |
68 } | |
69 | |
70 } // namespace WebCore | 61 } // namespace WebCore |
71 | 62 |
OLD | NEW |