Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(140)

Side by Side Diff: gpu/command_buffer/service/memory_program_cache.cc

Issue 13454036: Rewrite scoped_array<T> to scoped_ptr<T[]> in gpu/, Linux edition. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Yikes Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "gpu/command_buffer/service/memory_program_cache.h" 5 #include "gpu/command_buffer/service/memory_program_cache.h"
6 6
7 #include "base/base64.h" 7 #include "base/base64.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/sha1.h" 10 #include "base/sha1.h"
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 const Shader* shader_a, 129 const Shader* shader_a,
130 const Shader* shader_b, 130 const Shader* shader_b,
131 const LocationMap* bind_attrib_location_map, 131 const LocationMap* bind_attrib_location_map,
132 const ShaderCacheCallback& shader_callback) { 132 const ShaderCacheCallback& shader_callback) {
133 GLenum format; 133 GLenum format;
134 GLsizei length = 0; 134 GLsizei length = 0;
135 glGetProgramiv(program, GL_PROGRAM_BINARY_LENGTH_OES, &length); 135 glGetProgramiv(program, GL_PROGRAM_BINARY_LENGTH_OES, &length);
136 if (length == 0 || static_cast<unsigned int>(length) > max_size_bytes_) { 136 if (length == 0 || static_cast<unsigned int>(length) > max_size_bytes_) {
137 return; 137 return;
138 } 138 }
139 scoped_array<char> binary(new char[length]); 139 scoped_ptr<char[]> binary(new char[length]);
140 glGetProgramBinary(program, 140 glGetProgramBinary(program,
141 length, 141 length,
142 NULL, 142 NULL,
143 &format, 143 &format,
144 binary.get()); 144 binary.get());
145 UMA_HISTOGRAM_COUNTS("GPU.ProgramCache.ProgramBinarySizeBytes", length); 145 UMA_HISTOGRAM_COUNTS("GPU.ProgramCache.ProgramBinarySizeBytes", length);
146 146
147 char a_sha[kHashLength]; 147 char a_sha[kHashLength];
148 char b_sha[kHashLength]; 148 char b_sha[kHashLength];
149 ComputeShaderHash(*shader_a->deferred_compilation_source(), a_sha); 149 ComputeShaderHash(*shader_a->deferred_compilation_source(), a_sha);
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 for (int i = 0; i < proto->fragment_shader().attribs_size(); i++) { 245 for (int i = 0; i < proto->fragment_shader().attribs_size(); i++) {
246 RetrieveShaderInfo(proto->fragment_shader().attribs(i), 246 RetrieveShaderInfo(proto->fragment_shader().attribs(i),
247 &fragment_attribs); 247 &fragment_attribs);
248 } 248 }
249 249
250 for (int i = 0; i < proto->fragment_shader().uniforms_size(); i++) { 250 for (int i = 0; i < proto->fragment_shader().uniforms_size(); i++) {
251 RetrieveShaderInfo(proto->fragment_shader().uniforms(i), 251 RetrieveShaderInfo(proto->fragment_shader().uniforms(i),
252 &fragment_uniforms); 252 &fragment_uniforms);
253 } 253 }
254 254
255 scoped_array<char> binary(new char[proto->program().length()]); 255 scoped_ptr<char[]> binary(new char[proto->program().length()]);
256 memcpy(binary.get(), proto->program().c_str(), proto->program().length()); 256 memcpy(binary.get(), proto->program().c_str(), proto->program().length());
257 257
258 store_[proto->sha()] = new ProgramCacheValue(proto->program().length(), 258 store_[proto->sha()] = new ProgramCacheValue(proto->program().length(),
259 proto->format(), binary.release(), 259 proto->format(), binary.release(),
260 proto->vertex_shader().sha().c_str(), vertex_attribs, vertex_uniforms, 260 proto->vertex_shader().sha().c_str(), vertex_attribs, vertex_uniforms,
261 proto->fragment_shader().sha().c_str(), fragment_attribs, 261 proto->fragment_shader().sha().c_str(), fragment_attribs,
262 fragment_uniforms); 262 fragment_uniforms);
263 263
264 ShaderCompilationSucceededSha(proto->sha()); 264 ShaderCompilationSucceededSha(proto->sha());
265 ShaderCompilationSucceededSha(proto->vertex_shader().sha()); 265 ShaderCompilationSucceededSha(proto->vertex_shader().sha());
(...skipping 30 matching lines...) Expand all
296 attrib_map_0(_attrib_map_0), 296 attrib_map_0(_attrib_map_0),
297 uniform_map_0(_uniform_map_0), 297 uniform_map_0(_uniform_map_0),
298 shader_1_hash(_shader_1_hash, kHashLength), 298 shader_1_hash(_shader_1_hash, kHashLength),
299 attrib_map_1(_attrib_map_1), 299 attrib_map_1(_attrib_map_1),
300 uniform_map_1(_uniform_map_1) {} 300 uniform_map_1(_uniform_map_1) {}
301 301
302 MemoryProgramCache::ProgramCacheValue::~ProgramCacheValue() {} 302 MemoryProgramCache::ProgramCacheValue::~ProgramCacheValue() {}
303 303
304 } // namespace gles2 304 } // namespace gles2
305 } // namespace gpu 305 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/memory_program_cache.h ('k') | gpu/command_buffer/service/memory_program_cache_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698