Index: cc/blimp/synced_property_remote.h |
diff --git a/cc/blimp/synced_property_remote.h b/cc/blimp/synced_property_remote.h |
deleted file mode 100644 |
index 457d1578add0e65bf0973b5bf5d7c885f7c9c982..0000000000000000000000000000000000000000 |
--- a/cc/blimp/synced_property_remote.h |
+++ /dev/null |
@@ -1,122 +0,0 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CC_BLIMP_SYNCED_PROPERTY_REMOTE_H_ |
-#define CC_BLIMP_SYNCED_PROPERTY_REMOTE_H_ |
- |
-#include "cc/base/synced_property.h" |
- |
-namespace cc { |
- |
-// This class is heavily inspired from SyncedProperty and is the equivalent of |
-// SyncedProperty for synchronizing state between the engine and client in |
-// remote mode. There are effectively 2 trees on the main thread, the LayerTree |
-// on the main thread on the engine, and the tree on the main thread on the |
-// client. |
-// |
-// The client main thread tree receives deltas from the impl thread, but must |
-// synchronize them with the engine main thread before applying them onto the |
-// the main thread associated state. At the same time there are different sets |
-// of deltas, the value that was received from the impl thread but has not yet |
-// been reported to the engine main thread, and the value that has been sent |
-// to the engine main thread, but a state update with the application of these |
-// deltas has not been received from the engine. The purpose of this class is to |
-// track these deltas for deciding what needs to be reported to the main thread |
-// on the engine, and providing the impl thread with the delta that it should |
-// apply to its associated state since it could not be reflected in the local |
-// BeginMainFrame on the client main thread. |
-// |
-// Instances of this class are held on the client main thread and have a 1:1 |
-// mapping with their corresponding SyncedProperty instances. |
- |
-// Note: This class currently supports only one set of deltas to be in flight to |
-// the engine. |
-template <typename T> |
-class SyncedPropertyRemote { |
- public: |
- SyncedPropertyRemote() = default; |
- |
- SyncedPropertyRemote(SyncedPropertyRemote&& other) = default; |
- |
- SyncedPropertyRemote& operator=(SyncedPropertyRemote&& other) = default; |
- |
- // Push the main thread state from the engine onto the client main thread |
- // associated state. |
- void PushFromEngineMainThread( |
- typename T::ValueType engine_main_thread_value) { |
- engine_main_base_ = T(engine_main_thread_value); |
- } |
- |
- // Called when an update for changes made on the impl thread was received on |
- // the client main thread. |
- // |main_thread_value| holds the updated value on the client main thread. |
- void UpdateDeltaFromImplThread(typename T::ValueType main_thread_value) { |
- T delta_from_impl_thread = |
- T(main_thread_value).InverseCombine(engine_main_base_); |
- unsent_delta_from_impl_thread_ = |
- unsent_delta_from_impl_thread_.Combine(delta_from_impl_thread); |
- } |
- |
- // Pull deltas for changes tracked on the client main thread to be sent to the |
- // engine main thread. |
- // Each call to this must be followed with a call to DidApplySentDeltaOnEngine |
- // before another set of deltas can be pulled. |
- typename T::ValueType PullDeltaForEngineUpdate() { |
- DCHECK(sent_but_unapplied_delta_from_impl_thread_.get() == |
- T::Identity().get()); |
- |
- T delta_to_send = unsent_delta_from_impl_thread_; |
- sent_but_unapplied_delta_from_impl_thread_ = delta_to_send; |
- unsent_delta_from_impl_thread_ = T::Identity(); |
- return delta_to_send.get(); |
- } |
- |
- // Called when deltas sent to the engine were applied to the main thread state |
- // on the engine. |
- void DidApplySentDeltaOnEngine() { |
- // Pre-emptively apply the deltas that were sent. This is necessary since |
- // the engine may not send a frame update if the deltas were simply |
- // reflected back by the engine main thread (equivalent to |
- // BeginMainFrameAborted between the main and impl thread). |
- // If the engine did send a frame, we expect the frame to come with the ack |
- // for the deltas, so the value will be over-written with the engine update |
- // before being pushed to the impl thread. |
- engine_main_base_ = |
- engine_main_base_.Combine(sent_but_unapplied_delta_from_impl_thread_); |
- sent_but_unapplied_delta_from_impl_thread_ = T::Identity(); |
- } |
- |
- // Returns the delta that was reported to the main thread on the client but |
- // has not yet been applied to the main thread on the engine. |
- typename T::ValueType DeltaNotAppliedOnEngine() { |
- T total_delta_on_client = unsent_delta_from_impl_thread_.Combine( |
- sent_but_unapplied_delta_from_impl_thread_); |
- return total_delta_on_client.get(); |
- } |
- |
- typename T::ValueType EngineMain() { return engine_main_base_.get(); } |
- |
- private: |
- // The delta that was applied to the state on the impl thread and received on |
- // the main thread on the client during BeginMainFrame, but has not yet been |
- // reported to the main thread on the engine. |
- T unsent_delta_from_impl_thread_; |
- |
- // The delta that was applied to the state on the impl thread and has been |
- // sent to the main thread on the engine, but has not yet been applied to the |
- // main thread on the engine. |
- T sent_but_unapplied_delta_from_impl_thread_; |
- |
- // The value as last received from the main thread on the engine. The value on |
- // the main thread state on the client should always be set to this value, |
- // outside of the interval when deltas from the impl thread are reported to |
- // the main thread on the client. |
- T engine_main_base_; |
- |
- DISALLOW_COPY_AND_ASSIGN(SyncedPropertyRemote); |
-}; |
- |
-} // namespace cc |
- |
-#endif // CC_BLIMP_SYNCED_PROPERTY_REMOTE_H_ |