Index: media/renderers/skcanvas_video_renderer.cc |
diff --git a/media/renderers/skcanvas_video_renderer.cc b/media/renderers/skcanvas_video_renderer.cc |
index ec093da0a70feb3702507e4f1831e50cb616fa17..c39fd6dce02733eb71630428623d68630b0f71f6 100644 |
--- a/media/renderers/skcanvas_video_renderer.cc |
+++ b/media/renderers/skcanvas_video_renderer.cc |
@@ -21,6 +21,7 @@ |
#include "third_party/skia/include/gpu/GrTexture.h" |
#include "third_party/skia/include/gpu/GrTextureProvider.h" |
#include "third_party/skia/include/gpu/SkGr.h" |
+#include "third_party/skia/include/gpu/gl/GrGLTypes.h" |
#include "ui/gfx/geometry/rect_f.h" |
#include "ui/gfx/skia_util.h" |
@@ -94,7 +95,7 @@ skia::RefPtr<SkImage> NewSkImageFromVideoFrameYUVTextures( |
gfx::Size uv_tex_size((ya_tex_size.width() + 1) / 2, |
(ya_tex_size.height() + 1) / 2); |
- unsigned source_textures[3] = {0}; |
+ GrGLTextureInfo source_textures[] = {{0, 0}, {0, 0}, {0, 0}}; |
for (size_t i = 0; i < media::VideoFrame::NumPlanes(video_frame->format()); |
++i) { |
// Get the texture from the mailbox and wrap it in a GrTexture. |
@@ -103,7 +104,7 @@ skia::RefPtr<SkImage> NewSkImageFromVideoFrameYUVTextures( |
mailbox_holder.texture_target == GL_TEXTURE_EXTERNAL_OES || |
mailbox_holder.texture_target == GL_TEXTURE_RECTANGLE_ARB); |
gl->WaitSyncTokenCHROMIUM(mailbox_holder.sync_token.GetConstData()); |
- source_textures[i] = gl->CreateAndConsumeTextureCHROMIUM( |
+ source_textures[i].fID = gl->CreateAndConsumeTextureCHROMIUM( |
mailbox_holder.texture_target, mailbox_holder.mailbox.name); |
// TODO(dcastagna): avoid this copy once Skia supports native textures |
@@ -114,22 +115,19 @@ skia::RefPtr<SkImage> NewSkImageFromVideoFrameYUVTextures( |
gl->GenTextures(1, &texture_copy); |
DCHECK(texture_copy); |
gl->BindTexture(GL_TEXTURE_2D, texture_copy); |
- gl->CopyTextureCHROMIUM(GL_TEXTURE_2D, source_textures[i], texture_copy, |
- GL_RGB, GL_UNSIGNED_BYTE, false, true, false); |
+ gl->CopyTextureCHROMIUM(GL_TEXTURE_2D, source_textures[i].fID, |
+ texture_copy, GL_RGB, GL_UNSIGNED_BYTE, false, |
+ true, false); |
- gl->DeleteTextures(1, &source_textures[i]); |
- source_textures[i] = texture_copy; |
+ gl->DeleteTextures(1, &source_textures[i].fID); |
+ source_textures[i].fID = texture_copy; |
+ source_textures[i].fTarget = GL_TEXTURE_2D; |
} |
} |
- DCHECK_LE(source_textures[0], |
- static_cast<unsigned>(std::numeric_limits<int>::max())); |
- DCHECK_LE(source_textures[1], |
- static_cast<unsigned>(std::numeric_limits<int>::max())); |
- DCHECK_LE(source_textures[2], |
- static_cast<unsigned>(std::numeric_limits<int>::max())); |
- GrBackendObject handles[3] = {static_cast<int>(source_textures[0]), |
- static_cast<int>(source_textures[1]), |
- static_cast<int>(source_textures[2])}; |
+ GrBackendObject handles[3] = { |
+ reinterpret_cast<GrBackendObject>(&source_textures[0]), |
+ reinterpret_cast<GrBackendObject>(&source_textures[1]), |
+ reinterpret_cast<GrBackendObject>(&source_textures[2])}; |
SkISize yuvSizes[] = { |
{ya_tex_size.width(), ya_tex_size.height()}, |
@@ -146,7 +144,10 @@ skia::RefPtr<SkImage> NewSkImageFromVideoFrameYUVTextures( |
SkImage* img = SkImage::NewFromYUVTexturesCopy(context_3d.gr_context, |
color_space, handles, yuvSizes, |
kTopLeft_GrSurfaceOrigin); |
- gl->DeleteTextures(3, source_textures); |
+ for (size_t i = 0; i < media::VideoFrame::NumPlanes(video_frame->format()); |
+ ++i) { |
+ gl->DeleteTextures(1, &source_textures[i].fID); |
+ } |
return skia::AdoptRef(img); |
} |
@@ -189,9 +190,10 @@ skia::RefPtr<SkImage> NewSkImageFromVideoFrameNative( |
desc.fWidth = video_frame->coded_size().width(); |
desc.fHeight = video_frame->coded_size().height(); |
desc.fConfig = kRGBA_8888_GrPixelConfig; |
- DCHECK_LE(source_texture, |
- static_cast<unsigned>(std::numeric_limits<int>::max())); |
- desc.fTextureHandle = static_cast<int>(source_texture); |
+ GrGLTextureInfo source_texture_info; |
+ source_texture_info.fID = source_texture; |
+ source_texture_info.fTarget = GL_TEXTURE_2D; |
+ desc.fTextureHandle = reinterpret_cast<GrBackendObject>(&source_texture_info); |
return skia::AdoptRef( |
SkImage::NewFromAdoptedTexture(context_3d.gr_context, desc)); |
} |