Index: content/browser/compositor/gl_helper.cc |
diff --git a/content/common/gpu/client/gl_helper.cc b/content/browser/compositor/gl_helper.cc |
similarity index 79% |
rename from content/common/gpu/client/gl_helper.cc |
rename to content/browser/compositor/gl_helper.cc |
index 5549caaacb88bd8650c4d2dc84d6cf87ffcacdb0..55493e900689ba6bcf421056e29fefb1645ab875 100644 |
--- a/content/common/gpu/client/gl_helper.cc |
+++ b/content/browser/compositor/gl_helper.cc |
@@ -2,7 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "content/common/gpu/client/gl_helper.h" |
+#include "content/browser/compositor/gl_helper.h" |
#include <stddef.h> |
#include <stdint.h> |
@@ -19,8 +19,8 @@ |
#include "base/strings/string_util.h" |
#include "base/time/time.h" |
#include "base/trace_event/trace_event.h" |
-#include "content/common/gpu/client/gl_helper_readback_support.h" |
-#include "content/common/gpu/client/gl_helper_scaling.h" |
+#include "content/browser/compositor/gl_helper_readback_support.h" |
+#include "content/browser/compositor/gl_helper_scaling.h" |
#include "gpu/GLES2/gl2extchromium.h" |
#include "gpu/command_buffer/client/context_support.h" |
#include "gpu/command_buffer/common/mailbox.h" |
@@ -55,19 +55,12 @@ class TextureFrameBufferPair { |
TextureFrameBufferPair(GLES2Interface* gl, gfx::Size size) |
: texture_(gl), framebuffer_(gl), size_(size) { |
content::ScopedTextureBinder<GL_TEXTURE_2D> texture_binder(gl, texture_); |
- gl->TexImage2D(GL_TEXTURE_2D, |
- 0, |
- GL_RGBA, |
- size.width(), |
- size.height(), |
- 0, |
- GL_RGBA, |
- GL_UNSIGNED_BYTE, |
- NULL); |
+ gl->TexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, size.width(), size.height(), 0, |
+ GL_RGBA, GL_UNSIGNED_BYTE, NULL); |
content::ScopedFramebufferBinder<GL_FRAMEBUFFER> framebuffer_binder( |
gl, framebuffer_); |
- gl->FramebufferTexture2D( |
- GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture_, 0); |
+ gl->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, |
+ GL_TEXTURE_2D, texture_, 0); |
} |
GLuint texture() const { return texture_.id(); } |
@@ -255,9 +248,8 @@ class GLHelper::CopyTextureToImpl |
delete request; |
} |
} |
- void Add(Request* r) { |
- requests_.push(r); |
- } |
+ void Add(Request* r) { requests_.push(r); } |
+ |
private: |
std::queue<Request*> requests_; |
DISALLOW_COPY_AND_ASSIGN(FinishRequestHelper); |
@@ -370,7 +362,7 @@ class GLHelper::CopyTextureToImpl |
bool swizzle); |
static void nullcallback(bool success) {} |
- void ReadbackDone(Request *request, int bytes_per_pixel); |
+ void ReadbackDone(Request* request, int bytes_per_pixel); |
void FinishRequest(Request* request, |
bool result, |
FinishRequestHelper* helper); |
@@ -400,12 +392,8 @@ GLHelper::ScalerInterface* GLHelper::CreateScaler(ScalerQuality quality, |
bool vertically_flip_texture, |
bool swizzle) { |
InitScalerImpl(); |
- return scaler_impl_->CreateScaler(quality, |
- src_size, |
- src_subrect, |
- dst_size, |
- vertically_flip_texture, |
- swizzle); |
+ return scaler_impl_->CreateScaler(quality, src_size, src_subrect, dst_size, |
+ vertically_flip_texture, swizzle); |
} |
GLuint GLHelper::CopyTextureToImpl::ScaleTexture( |
@@ -430,23 +418,12 @@ GLuint GLHelper::CopyTextureToImpl::ScaleTexture( |
type = GL_UNSIGNED_SHORT_5_6_5; |
} |
- gl_->TexImage2D(GL_TEXTURE_2D, |
- 0, |
- format, |
- dst_size.width(), |
- dst_size.height(), |
- 0, |
- format, |
- type, |
- NULL); |
+ gl_->TexImage2D(GL_TEXTURE_2D, 0, format, dst_size.width(), |
+ dst_size.height(), 0, format, type, NULL); |
} |
scoped_ptr<ScalerInterface> scaler( |
- helper_->CreateScaler(quality, |
- src_size, |
- src_subrect, |
- dst_size, |
- vertically_flip_texture, |
- swizzle)); |
+ helper_->CreateScaler(quality, src_size, src_subrect, dst_size, |
+ vertically_flip_texture, swizzle)); |
scaler->Scale(src_texture, dst_texture); |
return dst_texture; |
} |
@@ -464,15 +441,9 @@ GLuint GLHelper::CopyTextureToImpl::EncodeTextureAsGrayscale( |
gfx::Size((src_size.width() + 3) / 4, src_size.height()); |
{ |
ScopedTextureBinder<GL_TEXTURE_2D> texture_binder(gl_, dst_texture); |
- gl_->TexImage2D(GL_TEXTURE_2D, |
- 0, |
- GL_RGBA, |
- encoded_texture_size->width(), |
- encoded_texture_size->height(), |
- 0, |
- GL_RGBA, |
- GL_UNSIGNED_BYTE, |
- NULL); |
+ gl_->TexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, encoded_texture_size->width(), |
+ encoded_texture_size->height(), 0, GL_RGBA, |
+ GL_UNSIGNED_BYTE, NULL); |
} |
helper_->InitScalerImpl(); |
@@ -480,9 +451,7 @@ GLuint GLHelper::CopyTextureToImpl::EncodeTextureAsGrayscale( |
helper_->scaler_impl_.get()->CreatePlanarScaler( |
src_size, |
gfx::Rect(0, 0, (src_size.width() + 3) & ~3, src_size.height()), |
- *encoded_texture_size, |
- vertically_flip_texture, |
- swizzle, |
+ *encoded_texture_size, vertically_flip_texture, swizzle, |
kRGBtoGrayscaleColorWeights)); |
grayscale_scaler->Scale(src_texture, dst_texture); |
return dst_texture; |
@@ -506,26 +475,18 @@ void GLHelper::CopyTextureToImpl::ReadbackAsync( |
gl_->GenBuffers(1, &request->buffer); |
gl_->BindBuffer(GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM, request->buffer); |
gl_->BufferData(GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM, |
- bytes_per_pixel * dst_size.GetArea(), |
- NULL, |
- GL_STREAM_READ); |
+ bytes_per_pixel * dst_size.GetArea(), NULL, GL_STREAM_READ); |
request->query = 0u; |
gl_->GenQueriesEXT(1, &request->query); |
gl_->BeginQueryEXT(GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM, request->query); |
- gl_->ReadPixels(0, |
- 0, |
- dst_size.width(), |
- dst_size.height(), |
- format, |
- type, |
+ gl_->ReadPixels(0, 0, dst_size.width(), dst_size.height(), format, type, |
NULL); |
gl_->EndQueryEXT(GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM); |
gl_->BindBuffer(GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM, 0); |
context_support_->SignalQuery( |
- request->query, |
- base::Bind(&CopyTextureToImpl::ReadbackDone, AsWeakPtr(), |
- request, bytes_per_pixel)); |
+ request->query, base::Bind(&CopyTextureToImpl::ReadbackDone, AsWeakPtr(), |
+ request, bytes_per_pixel)); |
} |
void GLHelper::CopyTextureToImpl::CropScaleReadbackAndCleanTexture( |
@@ -548,8 +509,8 @@ void GLHelper::CopyTextureToImpl::CropScaleReadbackAndCleanTexture( |
readback_color_type = kRGBA_8888_SkColorType; |
} |
- FormatSupport supported = GetReadbackConfig( |
- readback_color_type, true, &format, &type, &bytes_per_pixel); |
+ FormatSupport supported = GetReadbackConfig(readback_color_type, true, |
+ &format, &type, &bytes_per_pixel); |
if (supported == GLHelperReadbackSupport::NOT_SUPPORTED) { |
callback.Run(false); |
@@ -571,16 +532,11 @@ void GLHelper::CopyTextureToImpl::CropScaleReadbackAndCleanTexture( |
bool scale_swizzle = out_color_type == kAlpha_8_SkColorType |
? false |
: supported == GLHelperReadbackSupport::SWIZZLE; |
- texture = |
- ScaleTexture(src_texture, |
- src_size, |
- src_subrect, |
- dst_size, |
- true, |
- scale_swizzle, |
- out_color_type == kAlpha_8_SkColorType ? kN32_SkColorType |
- : out_color_type, |
- quality); |
+ texture = ScaleTexture(src_texture, src_size, src_subrect, dst_size, true, |
+ scale_swizzle, out_color_type == kAlpha_8_SkColorType |
+ ? kN32_SkColorType |
+ : out_color_type, |
+ quality); |
DCHECK(texture); |
} |
@@ -593,12 +549,9 @@ void GLHelper::CopyTextureToImpl::CropScaleReadbackAndCleanTexture( |
// EncodeTextureAsGrayscale by default creates a texture which should be |
// read back as RGBA, so need to swizzle if the readback format is BGRA. |
bool encode_as_grayscale_swizzle = format == GL_BGRA_EXT; |
- GLuint tmp_texture = |
- EncodeTextureAsGrayscale(texture, |
- dst_size, |
- &readback_texture_size, |
- encode_as_grayscale_vertical_flip, |
- encode_as_grayscale_swizzle); |
+ GLuint tmp_texture = EncodeTextureAsGrayscale( |
+ texture, dst_size, &readback_texture_size, |
+ encode_as_grayscale_vertical_flip, encode_as_grayscale_swizzle); |
// If the scaled texture was created - delete it |
if (scale_texture) |
gl_->DeleteTextures(1, &texture); |
@@ -611,32 +564,22 @@ void GLHelper::CopyTextureToImpl::CropScaleReadbackAndCleanTexture( |
ScopedFramebufferBinder<GL_FRAMEBUFFER> framebuffer_binder(gl_, |
dst_framebuffer); |
ScopedTextureBinder<GL_TEXTURE_2D> texture_binder(gl_, texture); |
- gl_->FramebufferTexture2D(GL_FRAMEBUFFER, |
- GL_COLOR_ATTACHMENT0, |
- GL_TEXTURE_2D, |
- texture, |
- 0); |
+ gl_->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, |
+ texture, 0); |
int32_t bytes_per_row = out_color_type == kAlpha_8_SkColorType |
? dst_size.width() |
: dst_size.width() * bytes_per_pixel; |
- ReadbackAsync(readback_texture_size, |
- bytes_per_row, |
- bytes_per_row, |
- out, |
- format, |
- type, |
- bytes_per_pixel, |
- callback); |
+ ReadbackAsync(readback_texture_size, bytes_per_row, bytes_per_row, out, |
+ format, type, bytes_per_pixel, callback); |
gl_->DeleteTextures(1, &texture); |
} |
-void GLHelper::CopyTextureToImpl::ReadbackTextureSync( |
- GLuint texture, |
- const gfx::Rect& src_rect, |
- unsigned char* out, |
- SkColorType color_type) { |
+void GLHelper::CopyTextureToImpl::ReadbackTextureSync(GLuint texture, |
+ const gfx::Rect& src_rect, |
+ unsigned char* out, |
+ SkColorType color_type) { |
GLenum format, type; |
size_t bytes_per_pixel; |
FormatSupport supported = |
@@ -649,15 +592,10 @@ void GLHelper::CopyTextureToImpl::ReadbackTextureSync( |
ScopedFramebufferBinder<GL_FRAMEBUFFER> framebuffer_binder(gl_, |
dst_framebuffer); |
ScopedTextureBinder<GL_TEXTURE_2D> texture_binder(gl_, texture); |
- gl_->FramebufferTexture2D( |
- GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0); |
- gl_->ReadPixels(src_rect.x(), |
- src_rect.y(), |
- src_rect.width(), |
- src_rect.height(), |
- format, |
- type, |
- out); |
+ gl_->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, |
+ texture, 0); |
+ gl_->ReadPixels(src_rect.x(), src_rect.y(), src_rect.width(), |
+ src_rect.height(), format, type, out); |
} |
void GLHelper::CopyTextureToImpl::ReadbackTextureAsync( |
@@ -679,19 +617,11 @@ void GLHelper::CopyTextureToImpl::ReadbackTextureAsync( |
ScopedFramebufferBinder<GL_FRAMEBUFFER> framebuffer_binder(gl_, |
dst_framebuffer); |
ScopedTextureBinder<GL_TEXTURE_2D> texture_binder(gl_, texture); |
- gl_->FramebufferTexture2D(GL_FRAMEBUFFER, |
- GL_COLOR_ATTACHMENT0, |
- GL_TEXTURE_2D, |
- texture, |
- 0); |
- ReadbackAsync(dst_size, |
- dst_size.width() * bytes_per_pixel, |
- dst_size.width() * bytes_per_pixel, |
- out, |
- format, |
- type, |
- bytes_per_pixel, |
- callback); |
+ gl_->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, |
+ texture, 0); |
+ ReadbackAsync(dst_size, dst_size.width() * bytes_per_pixel, |
+ dst_size.width() * bytes_per_pixel, out, format, type, |
+ bytes_per_pixel, callback); |
} |
GLuint GLHelper::CopyTextureToImpl::CopyAndScaleTexture( |
@@ -700,12 +630,8 @@ GLuint GLHelper::CopyTextureToImpl::CopyAndScaleTexture( |
const gfx::Size& dst_size, |
bool vertically_flip_texture, |
GLHelper::ScalerQuality quality) { |
- return ScaleTexture(src_texture, |
- src_size, |
- gfx::Rect(src_size), |
- dst_size, |
- vertically_flip_texture, |
- false, |
+ return ScaleTexture(src_texture, src_size, gfx::Rect(src_size), dst_size, |
+ vertically_flip_texture, false, |
kRGBA_8888_SkColorType, // GL_RGBA |
quality); |
} |
@@ -808,14 +734,9 @@ void GLHelper::CropScaleReadbackAndCleanTexture( |
const base::Callback<void(bool)>& callback, |
GLHelper::ScalerQuality quality) { |
InitCopyTextToImpl(); |
- copy_texture_to_impl_->CropScaleReadbackAndCleanTexture(src_texture, |
- src_size, |
- src_subrect, |
- dst_size, |
- out, |
- out_color_type, |
- callback, |
- quality); |
+ copy_texture_to_impl_->CropScaleReadbackAndCleanTexture( |
+ src_texture, src_size, src_subrect, dst_size, out, out_color_type, |
+ callback, quality); |
} |
void GLHelper::CropScaleReadbackAndCleanMailbox( |
@@ -829,13 +750,8 @@ void GLHelper::CropScaleReadbackAndCleanMailbox( |
const base::Callback<void(bool)>& callback, |
GLHelper::ScalerQuality quality) { |
GLuint mailbox_texture = ConsumeMailboxToTexture(src_mailbox, sync_token); |
- CropScaleReadbackAndCleanTexture(mailbox_texture, |
- src_size, |
- src_subrect, |
- dst_size, |
- out, |
- out_color_type, |
- callback, |
+ CropScaleReadbackAndCleanTexture(mailbox_texture, src_size, src_subrect, |
+ dst_size, out, out_color_type, callback, |
quality); |
gl_->DeleteTextures(1, &mailbox_texture); |
} |
@@ -855,11 +771,8 @@ void GLHelper::ReadbackTextureAsync( |
SkColorType color_type, |
const base::Callback<void(bool)>& callback) { |
InitCopyTextToImpl(); |
- copy_texture_to_impl_->ReadbackTextureAsync(texture, |
- dst_size, |
- out, |
- color_type, |
- callback); |
+ copy_texture_to_impl_->ReadbackTextureAsync(texture, dst_size, out, |
+ color_type, callback); |
} |
GLuint GLHelper::CopyTexture(GLuint texture, const gfx::Size& size) { |
@@ -891,8 +804,8 @@ GLuint GLHelper::CompileShaderFromSource(const GLchar* source, GLenum type) { |
if (log_length) { |
scoped_ptr<GLchar[]> log(new GLchar[log_length]); |
GLsizei returned_log_length = 0; |
- gl_->GetShaderInfoLog( |
- shader, log_length, &returned_log_length, log.get()); |
+ gl_->GetShaderInfoLog(shader, log_length, &returned_log_length, |
+ log.get()); |
LOG(ERROR) << std::string(log.get(), returned_log_length); |
} |
gl_->DeleteShader(shader); |
@@ -992,33 +905,20 @@ GLuint GLHelper::ConsumeMailboxToTexture(const gpu::Mailbox& mailbox, |
void GLHelper::ResizeTexture(GLuint texture, const gfx::Size& size) { |
content::ScopedTextureBinder<GL_TEXTURE_2D> texture_binder(gl_, texture); |
- gl_->TexImage2D(GL_TEXTURE_2D, |
- 0, |
- GL_RGB, |
- size.width(), |
- size.height(), |
- 0, |
- GL_RGB, |
- GL_UNSIGNED_BYTE, |
- NULL); |
+ gl_->TexImage2D(GL_TEXTURE_2D, 0, GL_RGB, size.width(), size.height(), 0, |
+ GL_RGB, GL_UNSIGNED_BYTE, NULL); |
} |
void GLHelper::CopyTextureSubImage(GLuint texture, const gfx::Rect& rect) { |
content::ScopedTextureBinder<GL_TEXTURE_2D> texture_binder(gl_, texture); |
- gl_->CopyTexSubImage2D(GL_TEXTURE_2D, |
- 0, |
- rect.x(), |
- rect.y(), |
- rect.x(), |
- rect.y(), |
- rect.width(), |
- rect.height()); |
+ gl_->CopyTexSubImage2D(GL_TEXTURE_2D, 0, rect.x(), rect.y(), rect.x(), |
+ rect.y(), rect.width(), rect.height()); |
} |
void GLHelper::CopyTextureFullImage(GLuint texture, const gfx::Size& size) { |
content::ScopedTextureBinder<GL_TEXTURE_2D> texture_binder(gl_, texture); |
- gl_->CopyTexImage2D( |
- GL_TEXTURE_2D, 0, GL_RGB, 0, 0, size.width(), size.height(), 0); |
+ gl_->CopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, size.width(), |
+ size.height(), 0); |
} |
void GLHelper::Flush() { |
@@ -1039,15 +939,11 @@ void GLHelper::CopyTextureToImpl::ReadbackPlane( |
const base::Callback<void(bool)>& callback) { |
gl_->BindFramebuffer(GL_FRAMEBUFFER, source->framebuffer()); |
const size_t offset = target->stride(plane) * (paste_rect.y() >> size_shift) + |
- (paste_rect.x() >> size_shift); |
- ReadbackAsync(source->size(), |
- paste_rect.width() >> size_shift, |
- target->stride(plane), |
- target->data(plane) + offset, |
+ (paste_rect.x() >> size_shift); |
+ ReadbackAsync(source->size(), paste_rect.width() >> size_shift, |
+ target->stride(plane), target->data(plane) + offset, |
(swizzle == kSwizzleBGRA) ? GL_BGRA_EXT : GL_RGBA, |
- GL_UNSIGNED_BYTE, |
- 4, |
- callback); |
+ GL_UNSIGNED_BYTE, 4, callback); |
} |
const float GLHelper::CopyTextureToImpl::kRGBtoYColorWeights[] = { |
@@ -1085,10 +981,7 @@ GLHelper::CopyTextureToImpl::ReadbackYUVImpl::ReadbackYUVImpl( |
y_(gl, |
scaler_impl->CreatePlanarScaler( |
dst_size, |
- gfx::Rect(0, |
- 0, |
- (dst_size.width() + 3) & ~3, |
- dst_size.height()), |
+ gfx::Rect(0, 0, (dst_size.width() + 3) & ~3, dst_size.height()), |
gfx::Size((dst_size.width() + 3) / 4, dst_size.height()), |
false, |
(swizzle == kSwizzleBGRA), |
@@ -1100,8 +993,7 @@ GLHelper::CopyTextureToImpl::ReadbackYUVImpl::ReadbackYUVImpl( |
0, |
(dst_size.width() + 7) & ~7, |
(dst_size.height() + 1) & ~1), |
- gfx::Size((dst_size.width() + 7) / 8, |
- (dst_size.height() + 1) / 2), |
+ gfx::Size((dst_size.width() + 7) / 8, (dst_size.height() + 1) / 2), |
false, |
(swizzle == kSwizzleBGRA), |
kRGBtoUColorWeights)), |
@@ -1112,8 +1004,7 @@ GLHelper::CopyTextureToImpl::ReadbackYUVImpl::ReadbackYUVImpl( |
0, |
(dst_size.width() + 7) & ~7, |
(dst_size.height() + 1) & ~1), |
- gfx::Size((dst_size.width() + 7) / 8, |
- (dst_size.height() + 1) / 2), |
+ gfx::Size((dst_size.width() + 7) / 8, (dst_size.height() + 1) / 2), |
false, |
(swizzle == kSwizzleBGRA), |
kRGBtoVColorWeights)) { |
@@ -1158,27 +1049,15 @@ void GLHelper::CopyTextureToImpl::ReadbackYUVImpl::ReadbackYUV( |
// Read back planes, one at a time. Keep the video frame alive while doing the |
// readback. |
- copy_impl_->ReadbackPlane(y_.texture_and_framebuffer(), |
- target, |
- media::VideoFrame::kYPlane, |
- 0, |
- paste_rect, |
- swizzle_, |
+ copy_impl_->ReadbackPlane(y_.texture_and_framebuffer(), target, |
+ media::VideoFrame::kYPlane, 0, paste_rect, swizzle_, |
base::Bind(&nullcallback)); |
- copy_impl_->ReadbackPlane(u_.texture_and_framebuffer(), |
- target, |
- media::VideoFrame::kUPlane, |
- 1, |
- paste_rect, |
- swizzle_, |
+ copy_impl_->ReadbackPlane(u_.texture_and_framebuffer(), target, |
+ media::VideoFrame::kUPlane, 1, paste_rect, swizzle_, |
base::Bind(&nullcallback)); |
copy_impl_->ReadbackPlane( |
- v_.texture_and_framebuffer(), |
- target, |
- media::VideoFrame::kVPlane, |
- 1, |
- paste_rect, |
- swizzle_, |
+ v_.texture_and_framebuffer(), target, media::VideoFrame::kVPlane, 1, |
+ paste_rect, swizzle_, |
base::Bind(&CallbackKeepingVideoFrameAlive, target, callback)); |
gl_->BindFramebuffer(GL_FRAMEBUFFER, 0); |
media::LetterboxYUV(target.get(), paste_rect); |
@@ -1217,36 +1096,23 @@ GLHelper::CopyTextureToImpl::ReadbackYUV_MRT::ReadbackYUV_MRT( |
GLHelperScaling::SHADER_YUV_MRT_PASS1)), |
pass2_shader_(scaler_impl->CreateYuvMrtShader( |
gfx::Size((dst_size.width() + 3) / 4, dst_size.height()), |
- gfx::Rect(0, |
- 0, |
- (dst_size.width() + 7) / 8 * 2, |
- dst_size.height()), |
- gfx::Size((dst_size.width() + 7) / 8, |
- (dst_size.height() + 1) / 2), |
+ gfx::Rect(0, 0, (dst_size.width() + 7) / 8 * 2, dst_size.height()), |
+ gfx::Size((dst_size.width() + 7) / 8, (dst_size.height() + 1) / 2), |
false, |
(swizzle == kSwizzleBGRA), |
GLHelperScaling::SHADER_YUV_MRT_PASS2)), |
y_(gl, gfx::Size((dst_size.width() + 3) / 4, dst_size.height())), |
uv_(gl), |
u_(gl, |
- gfx::Size((dst_size.width() + 7) / 8, |
- (dst_size.height() + 1) / 2)), |
+ gfx::Size((dst_size.width() + 7) / 8, (dst_size.height() + 1) / 2)), |
v_(gl, |
- gfx::Size((dst_size.width() + 7) / 8, |
- (dst_size.height() + 1) / 2)) { |
+ gfx::Size((dst_size.width() + 7) / 8, (dst_size.height() + 1) / 2)) { |
DCHECK(!(dst_size.width() & 1)); |
DCHECK(!(dst_size.height() & 1)); |
content::ScopedTextureBinder<GL_TEXTURE_2D> texture_binder(gl, uv_); |
- gl->TexImage2D(GL_TEXTURE_2D, |
- 0, |
- GL_RGBA, |
- (dst_size.width() + 3) / 4, |
- dst_size.height(), |
- 0, |
- GL_RGBA, |
- GL_UNSIGNED_BYTE, |
- NULL); |
+ gl->TexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (dst_size.width() + 3) / 4, |
+ dst_size.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); |
} |
void GLHelper::CopyTextureToImpl::ReadbackYUV_MRT::ReadbackYUV( |
@@ -1293,27 +1159,12 @@ void GLHelper::CopyTextureToImpl::ReadbackYUV_MRT::ReadbackYUV( |
} |
// Read back planes, one at a time. |
- copy_impl_->ReadbackPlane(&y_, |
- target, |
- media::VideoFrame::kYPlane, |
- 0, |
- paste_rect, |
- swizzle_, |
- base::Bind(&nullcallback)); |
- copy_impl_->ReadbackPlane(&u_, |
- target, |
- media::VideoFrame::kUPlane, |
- 1, |
- paste_rect, |
- swizzle_, |
- base::Bind(&nullcallback)); |
+ copy_impl_->ReadbackPlane(&y_, target, media::VideoFrame::kYPlane, 0, |
+ paste_rect, swizzle_, base::Bind(&nullcallback)); |
+ copy_impl_->ReadbackPlane(&u_, target, media::VideoFrame::kUPlane, 1, |
+ paste_rect, swizzle_, base::Bind(&nullcallback)); |
copy_impl_->ReadbackPlane( |
- &v_, |
- target, |
- media::VideoFrame::kVPlane, |
- 1, |
- paste_rect, |
- swizzle_, |
+ &v_, target, media::VideoFrame::kVPlane, 1, paste_rect, swizzle_, |
base::Bind(&CallbackKeepingVideoFrameAlive, target, callback)); |
gl_->BindFramebuffer(GL_FRAMEBUFFER, 0); |
media::LetterboxYUV(target.get(), paste_rect); |
@@ -1341,8 +1192,8 @@ ReadbackYUVInterface* GLHelper::CopyTextureToImpl::CreateReadbackPipelineYUV( |
// ReadbackPlane() we will choose GL_RGBA/GL_BGRA_EXT based on swizzle |
GLenum format, type; |
size_t bytes_per_pixel; |
- FormatSupport supported = GetReadbackConfig( |
- kRGBA_8888_SkColorType, true, &format, &type, &bytes_per_pixel); |
+ FormatSupport supported = GetReadbackConfig(kRGBA_8888_SkColorType, true, |
+ &format, &type, &bytes_per_pixel); |
DCHECK((format == GL_RGBA || format == GL_BGRA_EXT) && |
type == GL_UNSIGNED_BYTE); |
@@ -1351,24 +1202,12 @@ ReadbackYUVInterface* GLHelper::CopyTextureToImpl::CreateReadbackPipelineYUV( |
swizzle = kSwizzleBGRA; |
if (max_draw_buffers_ >= 2 && use_mrt) { |
- return new ReadbackYUV_MRT(gl_, |
- this, |
- helper_->scaler_impl_.get(), |
- quality, |
- src_size, |
- src_subrect, |
- dst_size, |
- flip_vertically, |
+ return new ReadbackYUV_MRT(gl_, this, helper_->scaler_impl_.get(), quality, |
+ src_size, src_subrect, dst_size, flip_vertically, |
swizzle); |
} |
- return new ReadbackYUVImpl(gl_, |
- this, |
- helper_->scaler_impl_.get(), |
- quality, |
- src_size, |
- src_subrect, |
- dst_size, |
- flip_vertically, |
+ return new ReadbackYUVImpl(gl_, this, helper_->scaler_impl_.get(), quality, |
+ src_size, src_subrect, dst_size, flip_vertically, |
swizzle); |
} |
@@ -1380,12 +1219,8 @@ ReadbackYUVInterface* GLHelper::CreateReadbackPipelineYUV( |
bool flip_vertically, |
bool use_mrt) { |
InitCopyTextToImpl(); |
- return copy_texture_to_impl_->CreateReadbackPipelineYUV(quality, |
- src_size, |
- src_subrect, |
- dst_size, |
- flip_vertically, |
- use_mrt); |
+ return copy_texture_to_impl_->CreateReadbackPipelineYUV( |
+ quality, src_size, src_subrect, dst_size, flip_vertically, use_mrt); |
} |
} // namespace content |