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

Side by Side Diff: cc/resources/resource_provider.cc

Issue 1251693003: cc: Fix the format of GpuMemoryBuffer for SurfaceTexture (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Change switches::kContentImageTextureTarget to a list of image texture targets Created 5 years, 4 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
OLDNEW
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 "cc/resources/resource_provider.h" 5 #include "cc/resources/resource_provider.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/containers/hash_tables.h" 10 #include "base/containers/hash_tables.h"
(...skipping 11 matching lines...) Expand all
22 #include "gpu/GLES2/gl2extchromium.h" 22 #include "gpu/GLES2/gl2extchromium.h"
23 #include "gpu/command_buffer/client/gles2_interface.h" 23 #include "gpu/command_buffer/client/gles2_interface.h"
24 #include "gpu/command_buffer/client/gpu_memory_buffer_manager.h" 24 #include "gpu/command_buffer/client/gpu_memory_buffer_manager.h"
25 #include "third_party/khronos/GLES2/gl2.h" 25 #include "third_party/khronos/GLES2/gl2.h"
26 #include "third_party/khronos/GLES2/gl2ext.h" 26 #include "third_party/khronos/GLES2/gl2ext.h"
27 #include "third_party/skia/include/core/SkSurface.h" 27 #include "third_party/skia/include/core/SkSurface.h"
28 #include "third_party/skia/include/gpu/GrContext.h" 28 #include "third_party/skia/include/gpu/GrContext.h"
29 #include "third_party/skia/include/gpu/GrTextureProvider.h" 29 #include "third_party/skia/include/gpu/GrTextureProvider.h"
30 #include "ui/gfx/geometry/rect.h" 30 #include "ui/gfx/geometry/rect.h"
31 #include "ui/gfx/geometry/vector2d.h" 31 #include "ui/gfx/geometry/vector2d.h"
32 #include "ui/gfx/gpu_memory_buffer.h"
33 32
34 using gpu::gles2::GLES2Interface; 33 using gpu::gles2::GLES2Interface;
35 34
36 namespace cc { 35 namespace cc {
37 36
38 class IdAllocator { 37 class IdAllocator {
39 public: 38 public:
40 virtual ~IdAllocator() {} 39 virtual ~IdAllocator() {}
41 40
42 virtual GLuint NextId() = 0; 41 virtual GLuint NextId() = 0;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 return kBGRA_8888_GrPixelConfig; 105 return kBGRA_8888_GrPixelConfig;
107 case RGBA_4444: 106 case RGBA_4444:
108 return kRGBA_4444_GrPixelConfig; 107 return kRGBA_4444_GrPixelConfig;
109 default: 108 default:
110 break; 109 break;
111 } 110 }
112 DCHECK(false) << "Unsupported resource format."; 111 DCHECK(false) << "Unsupported resource format.";
113 return kSkia8888_GrPixelConfig; 112 return kSkia8888_GrPixelConfig;
114 } 113 }
115 114
116 gfx::GpuMemoryBuffer::Format ToGpuMemoryBufferFormat(ResourceFormat format) {
117 switch (format) {
118 case RGBA_8888:
119 return gfx::GpuMemoryBuffer::RGBA_8888;
120 case BGRA_8888:
121 return gfx::GpuMemoryBuffer::BGRA_8888;
122 case RGBA_4444:
123 return gfx::GpuMemoryBuffer::RGBA_4444;
124 case ALPHA_8:
125 case LUMINANCE_8:
126 case RGB_565:
127 case ETC1:
128 case RED_8:
129 break;
130 }
131 NOTREACHED();
132 return gfx::GpuMemoryBuffer::RGBA_8888;
133 }
134
135 class ScopedSetActiveTexture { 115 class ScopedSetActiveTexture {
136 public: 116 public:
137 ScopedSetActiveTexture(GLES2Interface* gl, GLenum unit) 117 ScopedSetActiveTexture(GLES2Interface* gl, GLenum unit)
138 : gl_(gl), unit_(unit) { 118 : gl_(gl), unit_(unit) {
139 DCHECK_EQ(GL_TEXTURE0, ResourceProvider::GetActiveTextureUnit(gl_)); 119 DCHECK_EQ(GL_TEXTURE0, ResourceProvider::GetActiveTextureUnit(gl_));
140 120
141 if (unit_ != GL_TEXTURE0) 121 if (unit_ != GL_TEXTURE0)
142 gl_->ActiveTexture(unit_); 122 gl_->ActiveTexture(unit_);
143 } 123 }
144 124
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 itr != resources_.end(); ++itr) { 403 itr != resources_.end(); ++itr) {
424 DCHECK_NE(RESOURCE_TYPE_GL_TEXTURE, itr->second.type); 404 DCHECK_NE(RESOURCE_TYPE_GL_TEXTURE, itr->second.type);
425 } 405 }
426 #endif // DCHECK_IS_ON() 406 #endif // DCHECK_IS_ON()
427 407
428 texture_id_allocator_ = nullptr; 408 texture_id_allocator_ = nullptr;
429 buffer_id_allocator_ = nullptr; 409 buffer_id_allocator_ = nullptr;
430 gl->Finish(); 410 gl->Finish();
431 } 411 }
432 412
413 gfx::GpuMemoryBuffer::Format ResourceProvider::ToGpuMemoryBufferFormat(
414 ResourceFormat format) {
415 switch (format) {
416 case RGBA_8888:
417 return gfx::GpuMemoryBuffer::RGBA_8888;
418 case BGRA_8888:
419 return gfx::GpuMemoryBuffer::BGRA_8888;
420 case RGBA_4444:
421 return gfx::GpuMemoryBuffer::RGBA_4444;
422 case ALPHA_8:
423 case LUMINANCE_8:
424 case RGB_565:
425 case ETC1:
426 case RED_8:
427 break;
428 }
429 NOTREACHED();
430 return gfx::GpuMemoryBuffer::RGBA_8888;
431 }
432
433 bool ResourceProvider::InUseByConsumer(ResourceId id) { 433 bool ResourceProvider::InUseByConsumer(ResourceId id) {
434 Resource* resource = GetResource(id); 434 Resource* resource = GetResource(id);
435 return resource->lock_for_read_count > 0 || resource->exported_count > 0 || 435 return resource->lock_for_read_count > 0 || resource->exported_count > 0 ||
436 resource->lost; 436 resource->lost;
437 } 437 }
438 438
439 bool ResourceProvider::IsLost(ResourceId id) { 439 bool ResourceProvider::IsLost(ResourceId id) {
440 Resource* resource = GetResource(id); 440 Resource* resource = GetResource(id);
441 return resource->lost; 441 return resource->lost;
442 } 442 }
(...skipping 1503 matching lines...) Expand 10 before | Expand all | Expand 10 after
1946 } 1946 }
1947 1947
1948 class GrContext* ResourceProvider::GrContext(bool worker_context) const { 1948 class GrContext* ResourceProvider::GrContext(bool worker_context) const {
1949 ContextProvider* context_provider = 1949 ContextProvider* context_provider =
1950 worker_context ? output_surface_->worker_context_provider() 1950 worker_context ? output_surface_->worker_context_provider()
1951 : output_surface_->context_provider(); 1951 : output_surface_->context_provider();
1952 return context_provider ? context_provider->GrContext() : NULL; 1952 return context_provider ? context_provider->GrContext() : NULL;
1953 } 1953 }
1954 1954
1955 } // namespace cc 1955 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698