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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_aura.h

Issue 131443007: aura: Remove old GL paths from RenderWidgetHostViewAura. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: removecode: ackpreviousframe Created 6 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_AURA_H_ 5 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_AURA_H_
6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_AURA_H_ 6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_AURA_H_
7 7
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 return frame_subscriber_.get(); 360 return frame_subscriber_.get();
361 } 361 }
362 362
363 virtual bool ShouldCreateResizeLock(); 363 virtual bool ShouldCreateResizeLock();
364 virtual scoped_ptr<ResizeLock> CreateResizeLock(bool defer_compositor_lock); 364 virtual scoped_ptr<ResizeLock> CreateResizeLock(bool defer_compositor_lock);
365 365
366 virtual void RequestCopyOfOutput(scoped_ptr<cc::CopyOutputRequest> request); 366 virtual void RequestCopyOfOutput(scoped_ptr<cc::CopyOutputRequest> request);
367 367
368 // Exposed for tests. 368 // Exposed for tests.
369 aura::Window* window() { return window_; } 369 aura::Window* window() { return window_; }
370 gfx::Size current_frame_size() const { return current_frame_size_; } 370 gfx::Size current_frame_size_in_dip() const {
371 return current_frame_size_in_dip_;
372 }
371 void LockResources(); 373 void LockResources();
372 void UnlockResources(); 374 void UnlockResources();
373 375
374 // Overridden from ui::CompositorObserver: 376 // Overridden from ui::CompositorObserver:
375 virtual void OnCompositingDidCommit(ui::Compositor* compositor) OVERRIDE; 377 virtual void OnCompositingDidCommit(ui::Compositor* compositor) OVERRIDE;
376 virtual void OnCompositingStarted(ui::Compositor* compositor, 378 virtual void OnCompositingStarted(ui::Compositor* compositor,
377 base::TimeTicks start_time) OVERRIDE; 379 base::TimeTicks start_time) OVERRIDE;
378 virtual void OnCompositingEnded(ui::Compositor* compositor) OVERRIDE; 380 virtual void OnCompositingEnded(ui::Compositor* compositor) OVERRIDE;
379 virtual void OnCompositingAborted(ui::Compositor* compositor) OVERRIDE; 381 virtual void OnCompositingAborted(ui::Compositor* compositor) OVERRIDE;
380 virtual void OnCompositingLockStateChanged( 382 virtual void OnCompositingLockStateChanged(
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 // space is required by the aura::Window. 432 // space is required by the aura::Window.
431 void InternalSetBounds(const gfx::Rect& rect); 433 void InternalSetBounds(const gfx::Rect& rect);
432 434
433 // Lazily grab a resize lock if the aura window size doesn't match the current 435 // Lazily grab a resize lock if the aura window size doesn't match the current
434 // frame size, to give time to the renderer. 436 // frame size, to give time to the renderer.
435 void MaybeCreateResizeLock(); 437 void MaybeCreateResizeLock();
436 438
437 // Checks if the resize lock can be released because we received an new frame. 439 // Checks if the resize lock can be released because we received an new frame.
438 void CheckResizeLock(); 440 void CheckResizeLock();
439 441
440 void UpdateExternalTexture();
441 ui::InputMethod* GetInputMethod() const; 442 ui::InputMethod* GetInputMethod() const;
442 443
443 // Returns whether the widget needs an input grab to work properly. 444 // Returns whether the widget needs an input grab to work properly.
444 bool NeedsInputGrab(); 445 bool NeedsInputGrab();
445 446
446 // Confirm existing composition text in the webpage and ask the input method 447 // Confirm existing composition text in the webpage and ask the input method
447 // to cancel its ongoing composition session. 448 // to cancel its ongoing composition session.
448 void FinishImeCompositionSession(); 449 void FinishImeCompositionSession();
449 450
450 // This method computes movementX/Y and keeps track of mouse location for 451 // This method computes movementX/Y and keeps track of mouse location for
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 // Dismisses a Web Popup on a mouse or touch press outside the popup and its 522 // Dismisses a Web Popup on a mouse or touch press outside the popup and its
522 // parent. 523 // parent.
523 void ApplyEventFilterForPopupExit(ui::LocatedEvent* event); 524 void ApplyEventFilterForPopupExit(ui::LocatedEvent* event);
524 525
525 // Converts |rect| from window coordinate to screen coordinate. 526 // Converts |rect| from window coordinate to screen coordinate.
526 gfx::Rect ConvertRectToScreen(const gfx::Rect& rect) const; 527 gfx::Rect ConvertRectToScreen(const gfx::Rect& rect) const;
527 528
528 // Converts |rect| from screen coordinate to window coordinate. 529 // Converts |rect| from screen coordinate to window coordinate.
529 gfx::Rect ConvertRectFromScreen(const gfx::Rect& rect) const; 530 gfx::Rect ConvertRectFromScreen(const gfx::Rect& rect) const;
530 531
531 typedef base::Callback<void(bool, const scoped_refptr<ui::Texture>&)>
532 BufferPresentedCallback;
533
534 // The common entry point for buffer updates from renderer
535 // and GPU process.
536 void BuffersSwapped(const gfx::Size& surface_size,
537 const gfx::Rect& damage_rect,
538 float surface_scale_factor,
539 const gpu::Mailbox& mailbox,
540 const std::vector<ui::LatencyInfo>& latency_info,
541 const BufferPresentedCallback& ack_callback);
542
543 bool SwapBuffersPrepare(const gfx::Rect& surface_rect,
544 float surface_scale_factor,
545 const gfx::Rect& damage_rect,
546 const gpu::Mailbox& mailbox,
547 const BufferPresentedCallback& ack_callback);
548
549 void SwapBuffersCompleted(
550 const BufferPresentedCallback& ack_callback,
551 const scoped_refptr<ui::Texture>& texture_to_return);
552
553 void SwapDelegatedFrame( 532 void SwapDelegatedFrame(
554 uint32 output_surface_id, 533 uint32 output_surface_id,
555 scoped_ptr<cc::DelegatedFrameData> frame_data, 534 scoped_ptr<cc::DelegatedFrameData> frame_data,
556 float frame_device_scale_factor, 535 float frame_device_scale_factor,
557 const std::vector<ui::LatencyInfo>& latency_info); 536 const std::vector<ui::LatencyInfo>& latency_info);
558 void SendDelegatedFrameAck(uint32 output_surface_id); 537 void SendDelegatedFrameAck(uint32 output_surface_id);
559 void SendReturnedDelegatedResources(uint32 output_surface_id); 538 void SendReturnedDelegatedResources(uint32 output_surface_id);
560 539
561 // DelegatedFrameEvictorClient implementation. 540 // DelegatedFrameEvictorClient implementation.
562 virtual void EvictDelegatedFrame() OVERRIDE; 541 virtual void EvictDelegatedFrame() OVERRIDE;
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 bool has_composition_text_; 613 bool has_composition_text_;
635 614
636 // Whether return characters should be passed on to the RenderWidgetHostImpl. 615 // Whether return characters should be passed on to the RenderWidgetHostImpl.
637 bool accept_return_character_; 616 bool accept_return_character_;
638 617
639 // Current tooltip text. 618 // Current tooltip text.
640 base::string16 tooltip_; 619 base::string16 tooltip_;
641 620
642 std::vector<base::Closure> on_compositing_did_commit_callbacks_; 621 std::vector<base::Closure> on_compositing_did_commit_callbacks_;
643 622
644 // The current frontbuffer texture.
645 scoped_refptr<ui::Texture> current_surface_;
646
647 // This holds the current software framebuffer, if any. 623 // This holds the current software framebuffer, if any.
648 scoped_ptr<SoftwareFrameManager> software_frame_manager_; 624 scoped_ptr<SoftwareFrameManager> software_frame_manager_;
649 625
650 // The vsync manager we are observing for changes, if any. 626 // The vsync manager we are observing for changes, if any.
651 scoped_refptr<ui::CompositorVSyncManager> vsync_manager_; 627 scoped_refptr<ui::CompositorVSyncManager> vsync_manager_;
652 628
653 // With delegated renderer, this is the last output surface, used to 629 // With delegated renderer, this is the last output surface, used to
654 // disambiguate resources with the same id coming from different output 630 // disambiguate resources with the same id coming from different output
655 // surfaces. 631 // surfaces.
656 uint32 last_output_surface_id_; 632 uint32 last_output_surface_id_;
657 633
658 // The number of delegated frame acks that are pending, to delay resource 634 // The number of delegated frame acks that are pending, to delay resource
659 // returns until the acks are sent. 635 // returns until the acks are sent.
660 int pending_delegated_ack_count_; 636 int pending_delegated_ack_count_;
661 637
662 // The damage in the previously presented buffer.
663 SkRegion previous_damage_;
664
665 // Pending damage from previous frames that we skipped.
666 SkRegion skipped_damage_;
667
668 // True after a delegated frame has been skipped, until a frame is not 638 // True after a delegated frame has been skipped, until a frame is not
669 // skipped. 639 // skipped.
670 bool skipped_frames_; 640 bool skipped_frames_;
671 641
672 // Holds delegated resources that have been given to a DelegatedFrameProvider, 642 // Holds delegated resources that have been given to a DelegatedFrameProvider,
673 // and gives back resources when they are no longer in use for return to the 643 // and gives back resources when they are no longer in use for return to the
674 // renderer. 644 // renderer.
675 scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection_; 645 scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection_;
676 646
677 // Provides delegated frame updates to the cc::DelegatedRendererLayer. 647 // Provides delegated frame updates to the cc::DelegatedRendererLayer.
678 scoped_refptr<cc::DelegatedFrameProvider> frame_provider_; 648 scoped_refptr<cc::DelegatedFrameProvider> frame_provider_;
679 649
680 // The size of the last frame that was swapped (even if we skipped it). 650 // The size and scale of the last software compositing frame that was swapped.
681 // Used to determine when the skipped_damage_ needs to be reset due to 651 gfx::Size last_swapped_software_frame_size_;
682 // size changes between front- and backbuffer. 652 float last_swapped_software_frame_scale_factor_;
683 gfx::Size last_swapped_surface_size_;
684 float last_swapped_surface_scale_factor_;
685 653
686 // If non-NULL we're in OnPaint() and this is the supplied canvas. 654 // If non-NULL we're in OnPaint() and this is the supplied canvas.
687 gfx::Canvas* paint_canvas_; 655 gfx::Canvas* paint_canvas_;
688 656
689 // Used to record the last position of the mouse. 657 // Used to record the last position of the mouse.
690 // While the mouse is locked, they store the last known position just as mouse 658 // While the mouse is locked, they store the last known position just as mouse
691 // lock was entered. 659 // lock was entered.
692 // Relative to the upper-left corner of the view. 660 // Relative to the upper-left corner of the view.
693 gfx::Point unlocked_mouse_position_; 661 gfx::Point unlocked_mouse_position_;
694 // Relative to the upper-left corner of the screen. 662 // Relative to the upper-left corner of the screen.
695 gfx::Point unlocked_global_mouse_position_; 663 gfx::Point unlocked_global_mouse_position_;
696 // Last cursor position relative to screen. Used to compute movementX/Y. 664 // Last cursor position relative to screen. Used to compute movementX/Y.
697 gfx::Point global_mouse_position_; 665 gfx::Point global_mouse_position_;
698 // In mouse locked mode, we syntheticaly move the mouse cursor to the center 666 // In mouse locked mode, we syntheticaly move the mouse cursor to the center
699 // of the window when it reaches the window borders to avoid it going outside. 667 // of the window when it reaches the window borders to avoid it going outside.
700 // This flag is used to differentiate between these synthetic mouse move 668 // This flag is used to differentiate between these synthetic mouse move
701 // events vs. normal mouse move events. 669 // events vs. normal mouse move events.
702 bool synthetic_move_sent_; 670 bool synthetic_move_sent_;
703 671
704 // Signals that the accelerated compositing has been turned on or off.
705 // This is used to signal to turn off the external texture as soon as the
706 // software backing store is updated.
707 bool accelerated_compositing_state_changed_;
708
709 // This lock is the one waiting for a frame of the right size to come back 672 // This lock is the one waiting for a frame of the right size to come back
710 // from the renderer/GPU process. It is set from the moment the aura window 673 // from the renderer/GPU process. It is set from the moment the aura window
711 // got resized, to the moment we committed the renderer frame of the same 674 // got resized, to the moment we committed the renderer frame of the same
712 // size. It keeps track of the size we expect from the renderer, and locks the 675 // size. It keeps track of the size we expect from the renderer, and locks the
713 // compositor, as well as the UI for a short time to give a chance to the 676 // compositor, as well as the UI for a short time to give a chance to the
714 // renderer of producing a frame of the right size. 677 // renderer of producing a frame of the right size.
715 scoped_ptr<ResizeLock> resize_lock_; 678 scoped_ptr<ResizeLock> resize_lock_;
716 679
717 // Keeps track of the current frame size. 680 // Keeps track of the current frame size.
718 gfx::Size current_frame_size_; 681 gfx::Size current_frame_size_in_dip_;
719 682
720 // This lock is for waiting for a front surface to become available to draw. 683 // This lock is for waiting for a front surface to become available to draw.
721 scoped_refptr<ui::CompositorLock> released_front_lock_; 684 scoped_refptr<ui::CompositorLock> released_front_lock_;
722 685
723 // Used to track the state of the window we're created from. Only used when 686 // Used to track the state of the window we're created from. Only used when
724 // created fullscreen. 687 // created fullscreen.
725 scoped_ptr<aura::WindowTracker> host_tracker_; 688 scoped_ptr<aura::WindowTracker> host_tracker_;
726 689
727 enum CanLockCompositorState { 690 enum CanLockCompositorState {
728 YES, 691 YES,
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 // etc. 755 // etc.
793 scoped_ptr<content::LegacyRenderWidgetHostHWND> 756 scoped_ptr<content::LegacyRenderWidgetHostHWND>
794 legacy_render_widget_host_HWND_; 757 legacy_render_widget_host_HWND_;
795 #endif 758 #endif
796 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewAura); 759 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewAura);
797 }; 760 };
798 761
799 } // namespace content 762 } // namespace content
800 763
801 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_AURA_H_ 764 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_AURA_H_
OLDNEW
« no previous file with comments | « chrome/browser/about_flags.cc ('k') | content/browser/renderer_host/render_widget_host_view_aura.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698