OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "content/renderer/media/renderer_gpu_video_accelerator_factories.h" | 5 #include "content/renderer/media/renderer_gpu_video_accelerator_factories.h" |
6 | 6 |
7 #include <GLES2/gl2.h> | 7 #include <GLES2/gl2.h> |
8 #include <GLES2/gl2ext.h> | 8 #include <GLES2/gl2ext.h> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
250 gles2->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); | 250 gles2->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); |
251 context->copyTextureCHROMIUM( | 251 context->copyTextureCHROMIUM( |
252 GL_TEXTURE_2D, texture_id, tmp_texture, 0, GL_RGBA, GL_UNSIGNED_BYTE); | 252 GL_TEXTURE_2D, texture_id, tmp_texture, 0, GL_RGBA, GL_UNSIGNED_BYTE); |
253 | 253 |
254 GLuint fb; | 254 GLuint fb; |
255 gles2->GenFramebuffers(1, &fb); | 255 gles2->GenFramebuffers(1, &fb); |
256 gles2->BindFramebuffer(GL_FRAMEBUFFER, fb); | 256 gles2->BindFramebuffer(GL_FRAMEBUFFER, fb); |
257 gles2->FramebufferTexture2D( | 257 gles2->FramebufferTexture2D( |
258 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tmp_texture, 0); | 258 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tmp_texture, 0); |
259 gles2->PixelStorei(GL_PACK_ALIGNMENT, 4); | 259 gles2->PixelStorei(GL_PACK_ALIGNMENT, 4); |
260 #if SK_B32_SHIFT == 0 && SK_G32_SHIFT == 8 && SK_R32_SHIFT == 16 && \ | |
scherkus (not reviewing)
2013/10/22 18:29:10
it seems like the cool kids only check for SK_B32_
scherkus (not reviewing)
2013/10/22 18:29:46
... there really isn't a reason *NOT* to check ...
Ami GONE FROM CHROMIUM
2013/10/22 18:32:59
Yeah, the first version of this code was actually
| |
261 SK_A32_SHIFT == 24 | |
262 GLenum skia_format = GL_BGRA_EXT; | |
263 #elif SK_R32_SHIFT == 0 && SK_G32_SHIFT == 8 && SK_B32_SHIFT == 16 && \ | |
264 SK_A32_SHIFT == 24 | |
265 GLenum skia_format = GL_RGBA; | |
266 #else | |
267 #error Unexpected Skia ARGB_8888 layout! | |
268 #endif | |
260 gles2->ReadPixels(0, | 269 gles2->ReadPixels(0, |
261 0, | 270 0, |
262 size.width(), | 271 size.width(), |
263 size.height(), | 272 size.height(), |
264 GL_BGRA_EXT, | 273 skia_format, |
265 GL_UNSIGNED_BYTE, | 274 GL_UNSIGNED_BYTE, |
266 read_pixels_bitmap_.pixelRef()->pixels()); | 275 read_pixels_bitmap_.pixelRef()->pixels()); |
267 gles2->DeleteFramebuffers(1, &fb); | 276 gles2->DeleteFramebuffers(1, &fb); |
268 gles2->DeleteTextures(1, &tmp_texture); | 277 gles2->DeleteTextures(1, &tmp_texture); |
269 DCHECK_EQ(gles2->GetError(), static_cast<GLenum>(GL_NO_ERROR)); | 278 DCHECK_EQ(gles2->GetError(), static_cast<GLenum>(GL_NO_ERROR)); |
270 message_loop_async_waiter_.Signal(); | 279 message_loop_async_waiter_.Signal(); |
271 } | 280 } |
272 | 281 |
273 base::SharedMemory* RendererGpuVideoAcceleratorFactories::CreateSharedMemory( | 282 base::SharedMemory* RendererGpuVideoAcceleratorFactories::CreateSharedMemory( |
274 size_t size) { | 283 size_t size) { |
(...skipping 24 matching lines...) Expand all Loading... | |
299 } | 308 } |
300 | 309 |
301 void | 310 void |
302 RendererGpuVideoAcceleratorFactories::AsyncDestroyVideoDecodeAccelerator() { | 311 RendererGpuVideoAcceleratorFactories::AsyncDestroyVideoDecodeAccelerator() { |
303 // OK to release because Destroy() will delete the VDA instance. | 312 // OK to release because Destroy() will delete the VDA instance. |
304 if (vda_) | 313 if (vda_) |
305 vda_.release()->Destroy(); | 314 vda_.release()->Destroy(); |
306 } | 315 } |
307 | 316 |
308 } // namespace content | 317 } // namespace content |
OLD | NEW |