12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CC_OUTPUT_COMPOSITOR_FRAME_METADATA_H_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CC_OUTPUT_COMPOSITOR_FRAME_METADATA_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include <vector> 95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/base/cc_export.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "cc/output/viewport_selection_bound.h" 1268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "ui/events/latency_info.h" 135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "ui/gfx/geometry/size_f.h" 145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "ui/gfx/geometry/vector2d_f.h" 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace cc { 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class CC_EXPORT CompositorFrameMetadata { 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) CompositorFrameMetadata(); 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ~CompositorFrameMetadata(); 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The device scale factor used to generate this compositor frame. 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float device_scale_factor; 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Scroll offset and scale of the root layer. This can be used for tasks 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // like positioning windowed plugins. 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) gfx::Vector2dF root_scroll_offset; 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float page_scale_factor; 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // These limits can be used together with the scroll/scale fields above to 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // determine if scrolling/scaling in a particular direction is possible. 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch gfx::SizeF scrollable_viewport_size; 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) gfx::SizeF root_layer_size; 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float min_page_scale_factor; 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float max_page_scale_factor; 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Used to position the Android location top bar and page content, whose 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // precise position is computed by the renderer compositor. 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) gfx::Vector2dF location_bar_offset; 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) gfx::Vector2dF location_bar_content_translation; 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Provides selection region updates relative to the current viewport. If the 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // selection is empty or otherwise unused, the bound types will indicate such. 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ViewportSelectionBound selection_start; 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ViewportSelectionBound selection_end; 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) std::vector<ui::LatencyInfo> latency_info; 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace cc 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // CC_OUTPUT_COMPOSITOR_FRAME_METADATA_H_ 54