Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1524)

Unified Diff: mojo/services/public/cpp/surfaces/lib/surfaces_type_converters.cc

Issue 393103003: Update Mojo surfaces type converters to use RP for generating DQ and SQS (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@publicDQ
Patch Set: address comments Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | mojo/services/public/cpp/surfaces/surfaces_type_converters.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/services/public/cpp/surfaces/lib/surfaces_type_converters.cc
diff --git a/mojo/services/public/cpp/surfaces/lib/surfaces_type_converters.cc b/mojo/services/public/cpp/surfaces/lib/surfaces_type_converters.cc
index 7b5602eb178bc92cf3fbd00e6fcd20b828df68c8..cca117511c3b5beb5acd47ce68788f4ae43e7cf8 100644
--- a/mojo/services/public/cpp/surfaces/lib/surfaces_type_converters.cc
+++ b/mojo/services/public/cpp/surfaces/lib/surfaces_type_converters.cc
@@ -16,6 +16,80 @@
namespace mojo {
+namespace {
+
+cc::SharedQuadState* ConvertToSharedQuadState(
+ const surfaces::SharedQuadStatePtr& input,
+ cc::RenderPass* render_pass) {
+ cc::SharedQuadState* state = render_pass->CreateAndAppendSharedQuadState();
+ state->SetAll(input->content_to_target_transform.To<gfx::Transform>(),
+ input->content_bounds.To<gfx::Size>(),
+ input->visible_content_rect.To<gfx::Rect>(),
+ input->clip_rect.To<gfx::Rect>(),
+ input->is_clipped,
+ input->opacity,
+ static_cast<SkXfermode::Mode>(input->blend_mode),
+ input->sorting_context_id);
+ return state;
+}
+
+cc::DrawQuad* ConvertToDrawQuad(const surfaces::QuadPtr& input,
+ cc::SharedQuadState* sqs,
+ cc::RenderPass* render_pass) {
+ switch (input->material) {
+ case surfaces::MATERIAL_SOLID_COLOR: {
+ cc::SolidColorDrawQuad* color_quad =
+ render_pass->CreateAndAppendDrawQuad<cc::SolidColorDrawQuad>();
+ color_quad->SetAll(
+ sqs,
+ input->rect.To<gfx::Rect>(),
+ input->opaque_rect.To<gfx::Rect>(),
+ input->visible_rect.To<gfx::Rect>(),
+ input->needs_blending,
+ input->solid_color_quad_state->color.To<SkColor>(),
+ input->solid_color_quad_state->force_anti_aliasing_off);
+ return color_quad;
+ }
+ case surfaces::MATERIAL_SURFACE_CONTENT: {
+ cc::SurfaceDrawQuad* surface_quad =
+ render_pass->CreateAndAppendDrawQuad<cc::SurfaceDrawQuad>();
+ surface_quad->SetAll(
+ sqs,
+ input->rect.To<gfx::Rect>(),
+ input->opaque_rect.To<gfx::Rect>(),
+ input->visible_rect.To<gfx::Rect>(),
+ input->needs_blending,
+ input->surface_quad_state->surface.To<cc::SurfaceId>());
+ return surface_quad;
+ }
+ case surfaces::MATERIAL_TEXTURE_CONTENT: {
+ cc::TextureDrawQuad* texture_quad =
+ render_pass->CreateAndAppendDrawQuad<cc::TextureDrawQuad>();
+ surfaces::TextureQuadStatePtr& texture_quad_state =
+ input->texture_quad_state;
+ texture_quad->SetAll(
+ sqs,
+ input->rect.To<gfx::Rect>(),
+ input->opaque_rect.To<gfx::Rect>(),
+ input->visible_rect.To<gfx::Rect>(),
+ input->needs_blending,
+ texture_quad_state->resource_id,
+ texture_quad_state->premultiplied_alpha,
+ texture_quad_state->uv_top_left.To<gfx::PointF>(),
+ texture_quad_state->uv_bottom_right.To<gfx::PointF>(),
+ texture_quad_state->background_color.To<SkColor>(),
+ texture_quad_state->vertex_opacity.storage().data(),
+ texture_quad_state->flipped);
+ return texture_quad;
+ }
+ default:
+ NOTREACHED() << "Unsupported material " << input->material;
+ }
+ return NULL;
+}
+
+} // namespace
+
// static
surfaces::SurfaceIdPtr
TypeConverter<surfaces::SurfaceIdPtr, cc::SurfaceId>::ConvertFrom(
@@ -109,58 +183,6 @@ surfaces::QuadPtr TypeConverter<surfaces::QuadPtr, cc::DrawQuad>::ConvertFrom(
}
// static
-scoped_ptr<cc::DrawQuad> ConvertTo(const surfaces::QuadPtr& input,
- cc::SharedQuadState* sqs) {
- switch (input->material) {
- case surfaces::MATERIAL_SOLID_COLOR: {
- scoped_ptr<cc::SolidColorDrawQuad> color_quad(new cc::SolidColorDrawQuad);
- color_quad->SetAll(
- sqs,
- input->rect.To<gfx::Rect>(),
- input->opaque_rect.To<gfx::Rect>(),
- input->visible_rect.To<gfx::Rect>(),
- input->needs_blending,
- input->solid_color_quad_state->color.To<SkColor>(),
- input->solid_color_quad_state->force_anti_aliasing_off);
- return color_quad.PassAs<cc::DrawQuad>();
- }
- case surfaces::MATERIAL_SURFACE_CONTENT: {
- scoped_ptr<cc::SurfaceDrawQuad> surface_quad(new cc::SurfaceDrawQuad);
- surface_quad->SetAll(
- sqs,
- input->rect.To<gfx::Rect>(),
- input->opaque_rect.To<gfx::Rect>(),
- input->visible_rect.To<gfx::Rect>(),
- input->needs_blending,
- input->surface_quad_state->surface.To<cc::SurfaceId>());
- return surface_quad.PassAs<cc::DrawQuad>();
- }
- case surfaces::MATERIAL_TEXTURE_CONTENT: {
- scoped_ptr<cc::TextureDrawQuad> texture_quad(new cc::TextureDrawQuad);
- surfaces::TextureQuadStatePtr& texture_quad_state =
- input->texture_quad_state;
- texture_quad->SetAll(
- sqs,
- input->rect.To<gfx::Rect>(),
- input->opaque_rect.To<gfx::Rect>(),
- input->visible_rect.To<gfx::Rect>(),
- input->needs_blending,
- texture_quad_state->resource_id,
- texture_quad_state->premultiplied_alpha,
- texture_quad_state->uv_top_left.To<gfx::PointF>(),
- texture_quad_state->uv_bottom_right.To<gfx::PointF>(),
- texture_quad_state->background_color.To<SkColor>(),
- texture_quad_state->vertex_opacity.storage().data(),
- texture_quad_state->flipped);
- return texture_quad.PassAs<cc::DrawQuad>();
- }
- default:
- NOTREACHED() << "Unsupported material " << input->material;
- }
- return scoped_ptr<cc::DrawQuad>();
-}
-
-// static
surfaces::SharedQuadStatePtr
TypeConverter<surfaces::SharedQuadStatePtr, cc::SharedQuadState>::ConvertFrom(
const cc::SharedQuadState& input) {
@@ -178,21 +200,6 @@ TypeConverter<surfaces::SharedQuadStatePtr, cc::SharedQuadState>::ConvertFrom(
}
// static
-scoped_ptr<cc::SharedQuadState> ConvertTo(
- const surfaces::SharedQuadStatePtr& input) {
- scoped_ptr<cc::SharedQuadState> state(new cc::SharedQuadState);
- state->SetAll(input->content_to_target_transform.To<gfx::Transform>(),
- input->content_bounds.To<gfx::Size>(),
- input->visible_content_rect.To<gfx::Rect>(),
- input->clip_rect.To<gfx::Rect>(),
- input->is_clipped,
- input->opacity,
- static_cast<SkXfermode::Mode>(input->blend_mode),
- input->sorting_context_id);
- return state.Pass();
-}
-
-// static
surfaces::PassPtr TypeConverter<surfaces::PassPtr, cc::RenderPass>::ConvertFrom(
const cc::RenderPass& input) {
surfaces::PassPtr pass = surfaces::Pass::New();
@@ -236,14 +243,13 @@ scoped_ptr<cc::RenderPass> ConvertTo(const surfaces::PassPtr& input) {
cc::SharedQuadStateList& sqs_list = pass->shared_quad_state_list;
sqs_list.reserve(input->shared_quad_states.size());
for (size_t i = 0; i < input->shared_quad_states.size(); ++i) {
- sqs_list.push_back(ConvertTo(input->shared_quad_states[i]));
+ ConvertToSharedQuadState(input->shared_quad_states[i], pass.get());
}
- cc::QuadList& quad_list = pass->quad_list;
- quad_list.reserve(input->quads.size());
+ pass->quad_list.reserve(input->quads.size());
for (size_t i = 0; i < input->quads.size(); ++i) {
surfaces::QuadPtr quad = input->quads[i].Pass();
- quad_list.push_back(
- ConvertTo(quad, sqs_list[quad->shared_quad_state_index]));
+ ConvertToDrawQuad(
+ quad, sqs_list[quad->shared_quad_state_index], pass.get());
}
return pass.Pass();
}
« no previous file with comments | « no previous file | mojo/services/public/cpp/surfaces/surfaces_type_converters.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698