Chromium Code Reviews| Index: media/filters/skcanvas_video_renderer.h |
| diff --git a/media/filters/skcanvas_video_renderer.h b/media/filters/skcanvas_video_renderer.h |
| index 1e81d316f56555034fffdbfef72325d252a6944b..81a11eb6b900b39eaffeec81681ca9b3a07f69db 100644 |
| --- a/media/filters/skcanvas_video_renderer.h |
| +++ b/media/filters/skcanvas_video_renderer.h |
| @@ -10,12 +10,12 @@ |
| #include "base/timer/timer.h" |
| #include "media/base/media_export.h" |
| #include "media/base/video_rotation.h" |
| +#include "media/filters/context_3d_provider.h" |
| #include "third_party/skia/include/core/SkBitmap.h" |
| +#include "third_party/skia/include/core/SkCanvas.h" |
| #include "third_party/skia/include/core/SkXfermode.h" |
| #include "ui/gfx/rect.h" |
| -class SkCanvas; |
| - |
| namespace media { |
| class VideoFrame; |
| @@ -30,6 +30,8 @@ class MEDIA_EXPORT SkCanvasVideoRenderer { |
| // Paints |video_frame| on |canvas|, scaling and rotating the result to fit |
| // dimensions specified by |dest_rect|. |
| + // If the format of |video_frame| is VideoFrame::NATIVE_TEXTURE or |canvas| |
| + // is ganeshed, |context_provider| must be provided. |
|
scherkus (not reviewing)
2014/11/13 18:35:02
can we DCHECK this inside the .cc?
|
| // |
| // Black will be painted on |canvas| if |video_frame| is null. |
| void Paint(const scoped_refptr<VideoFrame>& video_frame, |
| @@ -37,11 +39,24 @@ class MEDIA_EXPORT SkCanvasVideoRenderer { |
| const gfx::RectF& dest_rect, |
| uint8 alpha, |
| SkXfermode::Mode mode, |
| - VideoRotation video_rotation); |
| + VideoRotation video_rotation, |
| + const Context3DProvider& context_provider); |
| // Copy |video_frame| on |canvas|. |
| void Copy(const scoped_refptr<VideoFrame>&, SkCanvas* canvas); |
| + // Copy the contents of texture of |video_frame| to texture |texture|. |
| + // |level|, |internal_format|, |type| specify target texture |texture|. |
| + // The format of |video_frame| must be VideoFrame::NATIVE_TEXTURE. |
| + static void CopyVideoFrameTextureToGLTexture(gpu::gles2::GLES2Interface* gl, |
| + VideoFrame* video_frame, |
| + unsigned int texture, |
| + unsigned int level, |
| + unsigned int internal_format, |
| + unsigned int type, |
| + bool premultiply_alpha, |
| + bool flip_y); |
| + |
| private: |
| void ResetLastFrame(); |
| void ResetAcceleratedLastFrame(); |