| Index: cc/output/gl_renderer.cc
|
| diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc
|
| index 5c560dc993b270021c7e236fbe4900191123f2a6..2612f10e98f17b7472f9ef31a04f70fcc1689538 100644
|
| --- a/cc/output/gl_renderer.cc
|
| +++ b/cc/output/gl_renderer.cc
|
| @@ -84,54 +84,54 @@ Float4 PremultipliedColor(SkColor color) {
|
| SamplerType SamplerTypeFromTextureTarget(GLenum target) {
|
| switch (target) {
|
| case GL_TEXTURE_2D:
|
| - return SAMPLER_TYPE_2D;
|
| + return SamplerType2D;
|
| case GL_TEXTURE_RECTANGLE_ARB:
|
| - return SAMPLER_TYPE_2D_RECT;
|
| + return SamplerType2DRect;
|
| case GL_TEXTURE_EXTERNAL_OES:
|
| - return SAMPLER_TYPE_EXTERNAL_OES;
|
| + return SamplerTypeExternalOES;
|
| default:
|
| NOTREACHED();
|
| - return SAMPLER_TYPE_2D;
|
| + return SamplerType2D;
|
| }
|
| }
|
|
|
| BlendMode BlendModeFromSkXfermode(SkXfermode::Mode mode) {
|
| switch (mode) {
|
| case SkXfermode::kSrcOver_Mode:
|
| - return BLEND_MODE_NORMAL;
|
| + return BlendModeNormal;
|
| case SkXfermode::kScreen_Mode:
|
| - return BLEND_MODE_SCREEN;
|
| + return BlendModeScreen;
|
| case SkXfermode::kOverlay_Mode:
|
| - return BLEND_MODE_OVERLAY;
|
| + return BlendModeOverlay;
|
| case SkXfermode::kDarken_Mode:
|
| - return BLEND_MODE_DARKEN;
|
| + return BlendModeDarken;
|
| case SkXfermode::kLighten_Mode:
|
| - return BLEND_MODE_LIGHTEN;
|
| + return BlendModeLighten;
|
| case SkXfermode::kColorDodge_Mode:
|
| - return BLEND_MODE_COLOR_DODGE;
|
| + return BlendModeColorDodge;
|
| case SkXfermode::kColorBurn_Mode:
|
| - return BLEND_MODE_COLOR_BURN;
|
| + return BlendModeColorBurn;
|
| case SkXfermode::kHardLight_Mode:
|
| - return BLEND_MODE_HARD_LIGHT;
|
| + return BlendModeHardLight;
|
| case SkXfermode::kSoftLight_Mode:
|
| - return BLEND_MODE_SOFT_LIGHT;
|
| + return BlendModeSoftLight;
|
| case SkXfermode::kDifference_Mode:
|
| - return BLEND_MODE_DIFFERENCE;
|
| + return BlendModeDifference;
|
| case SkXfermode::kExclusion_Mode:
|
| - return BLEND_MODE_EXCLUSION;
|
| + return BlendModeExclusion;
|
| case SkXfermode::kMultiply_Mode:
|
| - return BLEND_MODE_MULTIPLY;
|
| + return BlendModeMultiply;
|
| case SkXfermode::kHue_Mode:
|
| - return BLEND_MODE_HUE;
|
| + return BlendModeHue;
|
| case SkXfermode::kSaturation_Mode:
|
| - return BLEND_MODE_SATURATION;
|
| + return BlendModeSaturation;
|
| case SkXfermode::kColor_Mode:
|
| - return BLEND_MODE_COLOR;
|
| + return BlendModeColor;
|
| case SkXfermode::kLuminosity_Mode:
|
| - return BLEND_MODE_LUMINOSITY;
|
| + return BlendModeLuminosity;
|
| default:
|
| NOTREACHED();
|
| - return BLEND_MODE_NONE;
|
| + return BlendModeNone;
|
| }
|
| }
|
|
|
| @@ -513,8 +513,7 @@ void GLRenderer::DoDrawQuad(DrawingFrame* frame, const DrawQuad* quad) {
|
| DrawIOSurfaceQuad(frame, IOSurfaceDrawQuad::MaterialCast(quad));
|
| break;
|
| case DrawQuad::PICTURE_CONTENT:
|
| - // PictureDrawQuad should only be used for resourceless software draws.
|
| - NOTREACHED();
|
| + DrawPictureQuad(frame, PictureDrawQuad::MaterialCast(quad));
|
| break;
|
| case DrawQuad::RENDER_PASS:
|
| DrawRenderPassQuad(frame, RenderPassDrawQuad::MaterialCast(quad));
|
| @@ -846,7 +845,7 @@ scoped_ptr<ScopedResource> GLRenderer::GetBackdropTexture(
|
| ScopedResource::Create(resource_provider_);
|
| // CopyTexImage2D fails when called on a texture having immutable storage.
|
| device_background_texture->Allocate(
|
| - bounding_rect.size(), ResourceProvider::TEXTURE_HINT_DEFAULT, RGBA_8888);
|
| + bounding_rect.size(), ResourceProvider::TextureHintDefault, RGBA_8888);
|
| {
|
| ResourceProvider::ScopedWriteLockGL lock(resource_provider_,
|
| device_background_texture->id());
|
| @@ -981,7 +980,7 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame,
|
|
|
| scoped_ptr<ResourceProvider::ScopedSamplerGL> mask_resource_lock;
|
| unsigned mask_texture_id = 0;
|
| - SamplerType mask_sampler = SAMPLER_TYPE_NA;
|
| + SamplerType mask_sampler = SamplerTypeNA;
|
| if (quad->mask_resource_id) {
|
| mask_resource_lock.reset(new ResourceProvider::ScopedSamplerGL(
|
| resource_provider_, quad->mask_resource_id, GL_TEXTURE1, GL_LINEAR));
|
| @@ -1032,7 +1031,7 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame,
|
| DCHECK_EQ(background_texture || background_image, use_shaders_for_blending);
|
| BlendMode shader_blend_mode = use_shaders_for_blending
|
| ? BlendModeFromSkXfermode(blend_mode)
|
| - : BLEND_MODE_NONE;
|
| + : BlendModeNone;
|
|
|
| if (use_aa && mask_texture_id && !use_color_matrix) {
|
| const RenderPassMaskProgramAA* program = GetRenderPassMaskProgramAA(
|
| @@ -1219,7 +1218,7 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame,
|
| GLC(gl_, gl_->Uniform1i(shader_mask_sampler_location, 1));
|
|
|
| gfx::RectF mask_uv_rect = quad->MaskUVRect();
|
| - if (mask_sampler != SAMPLER_TYPE_2D) {
|
| + if (mask_sampler != SamplerType2D) {
|
| mask_uv_rect.Scale(quad->mask_texture_size.width(),
|
| quad->mask_texture_size.height());
|
| }
|
| @@ -1638,7 +1637,7 @@ void GLRenderer::DrawContentQuadAA(const DrawingFrame* frame,
|
| float fragment_tex_scale_y = clamp_tex_rect.height();
|
|
|
| // Map to normalized texture coordinates.
|
| - if (sampler != SAMPLER_TYPE_2D_RECT) {
|
| + if (sampler != SamplerType2DRect) {
|
| gfx::Size texture_size = quad->texture_size;
|
| DCHECK(!texture_size.IsEmpty());
|
| fragment_tex_translate_x /= texture_size.width();
|
| @@ -1728,7 +1727,7 @@ void GLRenderer::DrawContentQuadNoAA(const DrawingFrame* frame,
|
| float vertex_tex_scale_y = tex_coord_rect.height();
|
|
|
| // Map to normalized texture coordinates.
|
| - if (sampler != SAMPLER_TYPE_2D_RECT) {
|
| + if (sampler != SamplerType2DRect) {
|
| gfx::Size texture_size = quad->texture_size;
|
| DCHECK(!texture_size.IsEmpty());
|
| vertex_tex_translate_x /= texture_size.width();
|
| @@ -1900,12 +1899,9 @@ void GLRenderer::DrawYUVVideoQuad(const DrawingFrame* frame,
|
| float yuv_to_rgb_rec601[9] = {
|
| 1.164f, 1.164f, 1.164f, 0.0f, -.391f, 2.018f, 1.596f, -.813f, 0.0f,
|
| };
|
| - float yuv_to_rgb_jpeg[9] = {
|
| + float yuv_to_rgb_rec601_jpeg[9] = {
|
| 1.f, 1.f, 1.f, 0.0f, -.34414f, 1.772f, 1.402f, -.71414f, 0.0f,
|
| };
|
| - float yuv_to_rgb_rec709[9] = {
|
| - 1.164f, 1.164f, 1.164f, 0.0f, -0.213f, 2.112f, 1.793f, -0.533f, 0.0f,
|
| - };
|
|
|
| // These values map to 16, 128, and 128 respectively, and are computed
|
| // as a fraction over 256 (e.g. 16 / 256 = 0.0625).
|
| @@ -1913,12 +1909,12 @@ void GLRenderer::DrawYUVVideoQuad(const DrawingFrame* frame,
|
| // Y - 16 : Gives 16 values of head and footroom for overshooting
|
| // U - 128 : Turns unsigned U into signed U [-128,127]
|
| // V - 128 : Turns unsigned V into signed V [-128,127]
|
| - float yuv_adjust_constrained[3] = {
|
| + float yuv_adjust_rec601[3] = {
|
| -0.0625f, -0.5f, -0.5f,
|
| };
|
|
|
| // Same as above, but without the head and footroom.
|
| - float yuv_adjust_full[3] = {
|
| + float yuv_adjust_rec601_jpeg[3] = {
|
| 0.0f, -0.5f, -0.5f,
|
| };
|
|
|
| @@ -1928,15 +1924,11 @@ void GLRenderer::DrawYUVVideoQuad(const DrawingFrame* frame,
|
| switch (quad->color_space) {
|
| case YUVVideoDrawQuad::REC_601:
|
| yuv_to_rgb = yuv_to_rgb_rec601;
|
| - yuv_adjust = yuv_adjust_constrained;
|
| - break;
|
| - case YUVVideoDrawQuad::REC_709:
|
| - yuv_to_rgb = yuv_to_rgb_rec709;
|
| - yuv_adjust = yuv_adjust_constrained;
|
| + yuv_adjust = yuv_adjust_rec601;
|
| break;
|
| - case YUVVideoDrawQuad::JPEG:
|
| - yuv_to_rgb = yuv_to_rgb_jpeg;
|
| - yuv_adjust = yuv_adjust_full;
|
| + case YUVVideoDrawQuad::REC_601_JPEG:
|
| + yuv_to_rgb = yuv_to_rgb_rec601_jpeg;
|
| + yuv_adjust = yuv_adjust_rec601_jpeg;
|
| break;
|
| }
|
|
|
| @@ -1985,6 +1977,54 @@ void GLRenderer::DrawStreamVideoQuad(const DrawingFrame* frame,
|
| program->vertex_shader().matrix_location());
|
| }
|
|
|
| +void GLRenderer::DrawPictureQuad(const DrawingFrame* frame,
|
| + const PictureDrawQuad* quad) {
|
| + if (on_demand_tile_raster_bitmap_.width() != quad->texture_size.width() ||
|
| + on_demand_tile_raster_bitmap_.height() != quad->texture_size.height()) {
|
| + on_demand_tile_raster_bitmap_.allocN32Pixels(quad->texture_size.width(),
|
| + quad->texture_size.height());
|
| +
|
| + if (on_demand_tile_raster_resource_id_)
|
| + resource_provider_->DeleteResource(on_demand_tile_raster_resource_id_);
|
| +
|
| + on_demand_tile_raster_resource_id_ = resource_provider_->CreateGLTexture(
|
| + quad->texture_size,
|
| + GL_TEXTURE_2D,
|
| + GL_TEXTURE_POOL_UNMANAGED_CHROMIUM,
|
| + GL_CLAMP_TO_EDGE,
|
| + ResourceProvider::TextureHintImmutable,
|
| + quad->texture_format);
|
| + }
|
| +
|
| + SkCanvas canvas(on_demand_tile_raster_bitmap_);
|
| + quad->raster_source->PlaybackToCanvas(&canvas, quad->content_rect,
|
| + quad->contents_scale);
|
| +
|
| + uint8_t* bitmap_pixels = NULL;
|
| + SkBitmap on_demand_tile_raster_bitmap_dest;
|
| + SkColorType colorType = ResourceFormatToSkColorType(quad->texture_format);
|
| + if (on_demand_tile_raster_bitmap_.colorType() != colorType) {
|
| + on_demand_tile_raster_bitmap_.copyTo(&on_demand_tile_raster_bitmap_dest,
|
| + colorType);
|
| + // TODO(kaanb): The GL pipeline assumes a 4-byte alignment for the
|
| + // bitmap data. This check will be removed once crbug.com/293728 is fixed.
|
| + CHECK_EQ(0u, on_demand_tile_raster_bitmap_dest.rowBytes() % 4);
|
| + bitmap_pixels = reinterpret_cast<uint8_t*>(
|
| + on_demand_tile_raster_bitmap_dest.getPixels());
|
| + } else {
|
| + bitmap_pixels =
|
| + reinterpret_cast<uint8_t*>(on_demand_tile_raster_bitmap_.getPixels());
|
| + }
|
| +
|
| + resource_provider_->SetPixels(on_demand_tile_raster_resource_id_,
|
| + bitmap_pixels,
|
| + gfx::Rect(quad->texture_size),
|
| + gfx::Rect(quad->texture_size),
|
| + gfx::Vector2d());
|
| +
|
| + DrawContentQuad(frame, quad, on_demand_tile_raster_resource_id_);
|
| +}
|
| +
|
| struct TextureProgramBinding {
|
| template <class Program>
|
| void Set(Program* program) {
|
| @@ -2735,8 +2775,8 @@ GLRenderer::GetTileCheckerboardProgram() {
|
| if (!tile_checkerboard_program_.initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::checkerboardProgram::initalize");
|
| tile_checkerboard_program_.Initialize(output_surface_->context_provider(),
|
| - TEX_COORD_PRECISION_NA,
|
| - SAMPLER_TYPE_NA);
|
| + TexCoordPrecisionNA,
|
| + SamplerTypeNA);
|
| }
|
| return &tile_checkerboard_program_;
|
| }
|
| @@ -2745,7 +2785,8 @@ const GLRenderer::DebugBorderProgram* GLRenderer::GetDebugBorderProgram() {
|
| if (!debug_border_program_.initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::debugBorderProgram::initialize");
|
| debug_border_program_.Initialize(output_surface_->context_provider(),
|
| - TEX_COORD_PRECISION_NA, SAMPLER_TYPE_NA);
|
| + TexCoordPrecisionNA,
|
| + SamplerTypeNA);
|
| }
|
| return &debug_border_program_;
|
| }
|
| @@ -2754,7 +2795,8 @@ const GLRenderer::SolidColorProgram* GLRenderer::GetSolidColorProgram() {
|
| if (!solid_color_program_.initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::solidColorProgram::initialize");
|
| solid_color_program_.Initialize(output_surface_->context_provider(),
|
| - TEX_COORD_PRECISION_NA, SAMPLER_TYPE_NA);
|
| + TexCoordPrecisionNA,
|
| + SamplerTypeNA);
|
| }
|
| return &solid_color_program_;
|
| }
|
| @@ -2763,7 +2805,8 @@ const GLRenderer::SolidColorProgramAA* GLRenderer::GetSolidColorProgramAA() {
|
| if (!solid_color_program_aa_.initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::solidColorProgramAA::initialize");
|
| solid_color_program_aa_.Initialize(output_surface_->context_provider(),
|
| - TEX_COORD_PRECISION_NA, SAMPLER_TYPE_NA);
|
| + TexCoordPrecisionNA,
|
| + SamplerTypeNA);
|
| }
|
| return &solid_color_program_aa_;
|
| }
|
| @@ -2772,14 +2815,16 @@ const GLRenderer::RenderPassProgram* GLRenderer::GetRenderPassProgram(
|
| TexCoordPrecision precision,
|
| BlendMode blend_mode) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| DCHECK_GE(blend_mode, 0);
|
| - DCHECK_LE(blend_mode, LAST_BLEND_MODE);
|
| + DCHECK_LT(blend_mode, NumBlendModes);
|
| RenderPassProgram* program = &render_pass_program_[precision][blend_mode];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::renderPassProgram::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D, blend_mode);
|
| + program->Initialize(output_surface_->context_provider(),
|
| + precision,
|
| + SamplerType2D,
|
| + blend_mode);
|
| }
|
| return program;
|
| }
|
| @@ -2788,15 +2833,17 @@ const GLRenderer::RenderPassProgramAA* GLRenderer::GetRenderPassProgramAA(
|
| TexCoordPrecision precision,
|
| BlendMode blend_mode) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| DCHECK_GE(blend_mode, 0);
|
| - DCHECK_LE(blend_mode, LAST_BLEND_MODE);
|
| + DCHECK_LT(blend_mode, NumBlendModes);
|
| RenderPassProgramAA* program =
|
| &render_pass_program_aa_[precision][blend_mode];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::renderPassProgramAA::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D, blend_mode);
|
| + program->Initialize(output_surface_->context_provider(),
|
| + precision,
|
| + SamplerType2D,
|
| + blend_mode);
|
| }
|
| return program;
|
| }
|
| @@ -2806,11 +2853,11 @@ const GLRenderer::RenderPassMaskProgram* GLRenderer::GetRenderPassMaskProgram(
|
| SamplerType sampler,
|
| BlendMode blend_mode) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| DCHECK_GE(sampler, 0);
|
| - DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
|
| + DCHECK_LT(sampler, NumSamplerTypes);
|
| DCHECK_GE(blend_mode, 0);
|
| - DCHECK_LE(blend_mode, LAST_BLEND_MODE);
|
| + DCHECK_LT(blend_mode, NumBlendModes);
|
| RenderPassMaskProgram* program =
|
| &render_pass_mask_program_[precision][sampler][blend_mode];
|
| if (!program->initialized()) {
|
| @@ -2826,11 +2873,11 @@ GLRenderer::GetRenderPassMaskProgramAA(TexCoordPrecision precision,
|
| SamplerType sampler,
|
| BlendMode blend_mode) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| DCHECK_GE(sampler, 0);
|
| - DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
|
| + DCHECK_LT(sampler, NumSamplerTypes);
|
| DCHECK_GE(blend_mode, 0);
|
| - DCHECK_LE(blend_mode, LAST_BLEND_MODE);
|
| + DCHECK_LT(blend_mode, NumBlendModes);
|
| RenderPassMaskProgramAA* program =
|
| &render_pass_mask_program_aa_[precision][sampler][blend_mode];
|
| if (!program->initialized()) {
|
| @@ -2845,15 +2892,17 @@ const GLRenderer::RenderPassColorMatrixProgram*
|
| GLRenderer::GetRenderPassColorMatrixProgram(TexCoordPrecision precision,
|
| BlendMode blend_mode) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| DCHECK_GE(blend_mode, 0);
|
| - DCHECK_LE(blend_mode, LAST_BLEND_MODE);
|
| + DCHECK_LT(blend_mode, NumBlendModes);
|
| RenderPassColorMatrixProgram* program =
|
| &render_pass_color_matrix_program_[precision][blend_mode];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::renderPassColorMatrixProgram::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D, blend_mode);
|
| + program->Initialize(output_surface_->context_provider(),
|
| + precision,
|
| + SamplerType2D,
|
| + blend_mode);
|
| }
|
| return program;
|
| }
|
| @@ -2862,16 +2911,18 @@ const GLRenderer::RenderPassColorMatrixProgramAA*
|
| GLRenderer::GetRenderPassColorMatrixProgramAA(TexCoordPrecision precision,
|
| BlendMode blend_mode) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| DCHECK_GE(blend_mode, 0);
|
| - DCHECK_LE(blend_mode, LAST_BLEND_MODE);
|
| + DCHECK_LT(blend_mode, NumBlendModes);
|
| RenderPassColorMatrixProgramAA* program =
|
| &render_pass_color_matrix_program_aa_[precision][blend_mode];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc",
|
| "GLRenderer::renderPassColorMatrixProgramAA::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D, blend_mode);
|
| + program->Initialize(output_surface_->context_provider(),
|
| + precision,
|
| + SamplerType2D,
|
| + blend_mode);
|
| }
|
| return program;
|
| }
|
| @@ -2881,11 +2932,11 @@ GLRenderer::GetRenderPassMaskColorMatrixProgram(TexCoordPrecision precision,
|
| SamplerType sampler,
|
| BlendMode blend_mode) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| DCHECK_GE(sampler, 0);
|
| - DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
|
| + DCHECK_LT(sampler, NumSamplerTypes);
|
| DCHECK_GE(blend_mode, 0);
|
| - DCHECK_LE(blend_mode, LAST_BLEND_MODE);
|
| + DCHECK_LT(blend_mode, NumBlendModes);
|
| RenderPassMaskColorMatrixProgram* program =
|
| &render_pass_mask_color_matrix_program_[precision][sampler][blend_mode];
|
| if (!program->initialized()) {
|
| @@ -2902,11 +2953,11 @@ GLRenderer::GetRenderPassMaskColorMatrixProgramAA(TexCoordPrecision precision,
|
| SamplerType sampler,
|
| BlendMode blend_mode) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| DCHECK_GE(sampler, 0);
|
| - DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
|
| + DCHECK_LT(sampler, NumSamplerTypes);
|
| DCHECK_GE(blend_mode, 0);
|
| - DCHECK_LE(blend_mode, LAST_BLEND_MODE);
|
| + DCHECK_LT(blend_mode, NumBlendModes);
|
| RenderPassMaskColorMatrixProgramAA* program =
|
| &render_pass_mask_color_matrix_program_aa_[precision][sampler]
|
| [blend_mode];
|
| @@ -2923,9 +2974,9 @@ const GLRenderer::TileProgram* GLRenderer::GetTileProgram(
|
| TexCoordPrecision precision,
|
| SamplerType sampler) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| DCHECK_GE(sampler, 0);
|
| - DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
|
| + DCHECK_LT(sampler, NumSamplerTypes);
|
| TileProgram* program = &tile_program_[precision][sampler];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::tileProgram::initialize");
|
| @@ -2939,9 +2990,9 @@ const GLRenderer::TileProgramOpaque* GLRenderer::GetTileProgramOpaque(
|
| TexCoordPrecision precision,
|
| SamplerType sampler) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| DCHECK_GE(sampler, 0);
|
| - DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
|
| + DCHECK_LT(sampler, NumSamplerTypes);
|
| TileProgramOpaque* program = &tile_program_opaque_[precision][sampler];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::tileProgramOpaque::initialize");
|
| @@ -2955,9 +3006,9 @@ const GLRenderer::TileProgramAA* GLRenderer::GetTileProgramAA(
|
| TexCoordPrecision precision,
|
| SamplerType sampler) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| DCHECK_GE(sampler, 0);
|
| - DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
|
| + DCHECK_LT(sampler, NumSamplerTypes);
|
| TileProgramAA* program = &tile_program_aa_[precision][sampler];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::tileProgramAA::initialize");
|
| @@ -2971,9 +3022,9 @@ const GLRenderer::TileProgramSwizzle* GLRenderer::GetTileProgramSwizzle(
|
| TexCoordPrecision precision,
|
| SamplerType sampler) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| DCHECK_GE(sampler, 0);
|
| - DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
|
| + DCHECK_LT(sampler, NumSamplerTypes);
|
| TileProgramSwizzle* program = &tile_program_swizzle_[precision][sampler];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::tileProgramSwizzle::initialize");
|
| @@ -2987,9 +3038,9 @@ const GLRenderer::TileProgramSwizzleOpaque*
|
| GLRenderer::GetTileProgramSwizzleOpaque(TexCoordPrecision precision,
|
| SamplerType sampler) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| DCHECK_GE(sampler, 0);
|
| - DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
|
| + DCHECK_LT(sampler, NumSamplerTypes);
|
| TileProgramSwizzleOpaque* program =
|
| &tile_program_swizzle_opaque_[precision][sampler];
|
| if (!program->initialized()) {
|
| @@ -3004,9 +3055,9 @@ const GLRenderer::TileProgramSwizzleAA* GLRenderer::GetTileProgramSwizzleAA(
|
| TexCoordPrecision precision,
|
| SamplerType sampler) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| DCHECK_GE(sampler, 0);
|
| - DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
|
| + DCHECK_LT(sampler, NumSamplerTypes);
|
| TileProgramSwizzleAA* program = &tile_program_swizzle_aa_[precision][sampler];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::tileProgramSwizzleAA::initialize");
|
| @@ -3019,12 +3070,12 @@ const GLRenderer::TileProgramSwizzleAA* GLRenderer::GetTileProgramSwizzleAA(
|
| const GLRenderer::TextureProgram* GLRenderer::GetTextureProgram(
|
| TexCoordPrecision precision) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| TextureProgram* program = &texture_program_[precision];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::textureProgram::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D);
|
| + program->Initialize(
|
| + output_surface_->context_provider(), precision, SamplerType2D);
|
| }
|
| return program;
|
| }
|
| @@ -3032,14 +3083,14 @@ const GLRenderer::TextureProgram* GLRenderer::GetTextureProgram(
|
| const GLRenderer::NonPremultipliedTextureProgram*
|
| GLRenderer::GetNonPremultipliedTextureProgram(TexCoordPrecision precision) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| NonPremultipliedTextureProgram* program =
|
| &nonpremultiplied_texture_program_[precision];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc",
|
| "GLRenderer::NonPremultipliedTextureProgram::Initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D);
|
| + program->Initialize(
|
| + output_surface_->context_provider(), precision, SamplerType2D);
|
| }
|
| return program;
|
| }
|
| @@ -3047,12 +3098,12 @@ GLRenderer::GetNonPremultipliedTextureProgram(TexCoordPrecision precision) {
|
| const GLRenderer::TextureBackgroundProgram*
|
| GLRenderer::GetTextureBackgroundProgram(TexCoordPrecision precision) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| TextureBackgroundProgram* program = &texture_background_program_[precision];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::textureProgram::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D);
|
| + program->Initialize(
|
| + output_surface_->context_provider(), precision, SamplerType2D);
|
| }
|
| return program;
|
| }
|
| @@ -3061,14 +3112,14 @@ const GLRenderer::NonPremultipliedTextureBackgroundProgram*
|
| GLRenderer::GetNonPremultipliedTextureBackgroundProgram(
|
| TexCoordPrecision precision) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| NonPremultipliedTextureBackgroundProgram* program =
|
| &nonpremultiplied_texture_background_program_[precision];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc",
|
| "GLRenderer::NonPremultipliedTextureProgram::Initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D);
|
| + program->Initialize(
|
| + output_surface_->context_provider(), precision, SamplerType2D);
|
| }
|
| return program;
|
| }
|
| @@ -3076,12 +3127,12 @@ GLRenderer::GetNonPremultipliedTextureBackgroundProgram(
|
| const GLRenderer::TextureProgram* GLRenderer::GetTextureIOSurfaceProgram(
|
| TexCoordPrecision precision) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| TextureProgram* program = &texture_io_surface_program_[precision];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::textureIOSurfaceProgram::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D_RECT);
|
| + program->Initialize(
|
| + output_surface_->context_provider(), precision, SamplerType2DRect);
|
| }
|
| return program;
|
| }
|
| @@ -3089,12 +3140,12 @@ const GLRenderer::TextureProgram* GLRenderer::GetTextureIOSurfaceProgram(
|
| const GLRenderer::VideoYUVProgram* GLRenderer::GetVideoYUVProgram(
|
| TexCoordPrecision precision) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| VideoYUVProgram* program = &video_yuv_program_[precision];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::videoYUVProgram::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D);
|
| + program->Initialize(
|
| + output_surface_->context_provider(), precision, SamplerType2D);
|
| }
|
| return program;
|
| }
|
| @@ -3102,12 +3153,12 @@ const GLRenderer::VideoYUVProgram* GLRenderer::GetVideoYUVProgram(
|
| const GLRenderer::VideoYUVAProgram* GLRenderer::GetVideoYUVAProgram(
|
| TexCoordPrecision precision) {
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| VideoYUVAProgram* program = &video_yuva_program_[precision];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::videoYUVAProgram::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D);
|
| + program->Initialize(
|
| + output_surface_->context_provider(), precision, SamplerType2D);
|
| }
|
| return program;
|
| }
|
| @@ -3117,13 +3168,13 @@ GLRenderer::GetVideoStreamTextureProgram(TexCoordPrecision precision) {
|
| if (!Capabilities().using_egl_image)
|
| return NULL;
|
| DCHECK_GE(precision, 0);
|
| - DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
|
| + DCHECK_LT(precision, NumTexCoordPrecisions);
|
| VideoStreamTextureProgram* program =
|
| &video_stream_texture_program_[precision];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::streamTextureProgram::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_EXTERNAL_OES);
|
| + program->Initialize(
|
| + output_surface_->context_provider(), precision, SamplerTypeExternalOES);
|
| }
|
| return program;
|
| }
|
| @@ -3131,8 +3182,8 @@ GLRenderer::GetVideoStreamTextureProgram(TexCoordPrecision precision) {
|
| void GLRenderer::CleanupSharedObjects() {
|
| shared_geometry_ = nullptr;
|
|
|
| - for (int i = 0; i <= LAST_TEX_COORD_PRECISION; ++i) {
|
| - for (int j = 0; j <= LAST_SAMPLER_TYPE; ++j) {
|
| + for (int i = 0; i < NumTexCoordPrecisions; ++i) {
|
| + for (int j = 0; j < NumSamplerTypes; ++j) {
|
| tile_program_[i][j].Cleanup(gl_);
|
| tile_program_opaque_[i][j].Cleanup(gl_);
|
| tile_program_swizzle_[i][j].Cleanup(gl_);
|
| @@ -3140,14 +3191,14 @@ void GLRenderer::CleanupSharedObjects() {
|
| tile_program_aa_[i][j].Cleanup(gl_);
|
| tile_program_swizzle_aa_[i][j].Cleanup(gl_);
|
|
|
| - for (int k = 0; k <= LAST_BLEND_MODE; k++) {
|
| + for (int k = 0; k < NumBlendModes; k++) {
|
| render_pass_mask_program_[i][j][k].Cleanup(gl_);
|
| render_pass_mask_program_aa_[i][j][k].Cleanup(gl_);
|
| render_pass_mask_color_matrix_program_aa_[i][j][k].Cleanup(gl_);
|
| render_pass_mask_color_matrix_program_[i][j][k].Cleanup(gl_);
|
| }
|
| }
|
| - for (int j = 0; j <= LAST_BLEND_MODE; j++) {
|
| + for (int j = 0; j < NumBlendModes; j++) {
|
| render_pass_program_[i][j].Cleanup(gl_);
|
| render_pass_program_aa_[i][j].Cleanup(gl_);
|
| render_pass_color_matrix_program_[i][j].Cleanup(gl_);
|
|
|