// Copyright 2014 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. #include "cc/scheduler/commit_earlyout_reason.h" #include "cc/proto/commit_earlyout_reason.pb.h" namespace cc { CommitEarlyOutReason CommitEarlyOutReasonFromProtobuf( const proto::CommitEarlyOutReason& proto) { switch (proto.reason()) { case proto::CommitEarlyOutReason::ABORTED_OUTPUT_SURFACE_LOST: return CommitEarlyOutReason::ABORTED_OUTPUT_SURFACE_LOST; case proto::CommitEarlyOutReason::ABORTED_NOT_VISIBLE: return CommitEarlyOutReason::ABORTED_NOT_VISIBLE; case proto::CommitEarlyOutReason::ABORTED_DEFERRED_COMMIT: return CommitEarlyOutReason::ABORTED_DEFERRED_COMMIT; case proto::CommitEarlyOutReason::FINISHED_NO_UPDATES: return CommitEarlyOutReason::FINISHED_NO_UPDATES; } NOTREACHED(); return CommitEarlyOutReason::ABORTED_OUTPUT_SURFACE_LOST; } void CommitEarlyOutReasonToProtobuf(CommitEarlyOutReason reason, proto::CommitEarlyOutReason* proto) { switch (reason) { case CommitEarlyOutReason::ABORTED_OUTPUT_SURFACE_LOST: proto->set_reason( proto::CommitEarlyOutReason::ABORTED_OUTPUT_SURFACE_LOST); return; case CommitEarlyOutReason::ABORTED_NOT_VISIBLE: proto->set_reason(proto::CommitEarlyOutReason::ABORTED_NOT_VISIBLE); return; case CommitEarlyOutReason::ABORTED_DEFERRED_COMMIT: proto->set_reason(proto::CommitEarlyOutReason::ABORTED_DEFERRED_COMMIT); return; case CommitEarlyOutReason::FINISHED_NO_UPDATES: proto->set_reason(proto::CommitEarlyOutReason::FINISHED_NO_UPDATES); return; } NOTREACHED(); } } // namespace cc