Index: content/renderer/media/renderer_gpu_video_decoder_factories.cc |
diff --git a/content/renderer/media/renderer_gpu_video_decoder_factories.cc b/content/renderer/media/renderer_gpu_video_decoder_factories.cc |
index 4d27d59fb6a83d2ccc48a046c59a242ade76ef62..e79834db313b05b15aa0e92aa42103d16cbc9e11 100644 |
--- a/content/renderer/media/renderer_gpu_video_decoder_factories.cc |
+++ b/content/renderer/media/renderer_gpu_video_decoder_factories.cc |
@@ -48,19 +48,21 @@ void RendererGpuVideoDecoderFactories::AsyncCreateVideoDecodeAccelerator( |
} |
bool RendererGpuVideoDecoderFactories::CreateTextures( |
- int32 count, const gfx::Size& size, std::vector<uint32>* texture_ids) { |
+ int32 count, const gfx::Size& size, |
+ std::vector<uint32>* texture_ids, |
+ uint32* texture_target) { |
bool success = false; |
base::WaitableEvent waiter(false, false); |
message_loop_->PostTask(FROM_HERE, base::Bind( |
&RendererGpuVideoDecoderFactories::AsyncCreateTextures, this, |
- count, size, texture_ids, &success, &waiter)); |
+ count, size, texture_ids, texture_target, &success, &waiter)); |
waiter.Wait(); |
return success; |
} |
void RendererGpuVideoDecoderFactories::AsyncCreateTextures( |
int32 count, const gfx::Size& size, std::vector<uint32>* texture_ids, |
- bool* success, base::WaitableEvent* waiter) { |
+ uint32* texture_target, bool* success, base::WaitableEvent* waiter) { |
if (!context_) { |
*success = false; |
waiter->Signal(); |
@@ -69,15 +71,16 @@ void RendererGpuVideoDecoderFactories::AsyncCreateTextures( |
gpu::gles2::GLES2Implementation* gles2 = context_->GetImplementation(); |
texture_ids->resize(count); |
gles2->GenTextures(count, &texture_ids->at(0)); |
+ *texture_target = GL_TEXTURE_2D; |
for (int i = 0; i < count; ++i) { |
gles2->ActiveTexture(GL_TEXTURE0); |
uint32 texture_id = texture_ids->at(i); |
- gles2->BindTexture(GL_TEXTURE_2D, texture_id); |
- gles2->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); |
- gles2->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); |
- gles2->TexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); |
- gles2->TexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); |
- gles2->TexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, size.width(), size.height(), |
+ gles2->BindTexture(*texture_target, texture_id); |
+ gles2->TexParameteri(*texture_target, GL_TEXTURE_MIN_FILTER, GL_LINEAR); |
+ gles2->TexParameteri(*texture_target, GL_TEXTURE_MAG_FILTER, GL_LINEAR); |
+ gles2->TexParameterf(*texture_target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); |
+ gles2->TexParameterf(*texture_target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); |
+ gles2->TexImage2D(*texture_target, 0, GL_RGBA, size.width(), size.height(), |
0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); |
} |
// We need a glFlush here to guarantee the decoder (in the GPU process) can |