[go: nahoru, domu]

blob: 8a6b6ec8385bc83818b4a2b093617df46b3bb6ee [file] [log] [blame]
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SERVICES_VIZ_PRIVILEGED_CPP_CONTEXT_LOST_REASON_TRAITS_H_
#define SERVICES_VIZ_PRIVILEGED_CPP_CONTEXT_LOST_REASON_TRAITS_H_
#include "base/notreached.h"
#include "gpu/command_buffer/common/constants.h"
#include "services/viz/privileged/mojom/gl/context_lost_reason.mojom-shared.h"
namespace mojo {
template <>
struct EnumTraits<viz::mojom::ContextLostReason,
gpu::error::ContextLostReason> {
static viz::mojom::ContextLostReason ToMojom(
gpu::error::ContextLostReason reason) {
switch (reason) {
case gpu::error::kGuilty:
return viz::mojom::ContextLostReason::GUILTY;
case gpu::error::kInnocent:
return viz::mojom::ContextLostReason::INNOCENT;
case gpu::error::kUnknown:
return viz::mojom::ContextLostReason::UNKNOWN;
case gpu::error::kOutOfMemory:
return viz::mojom::ContextLostReason::OUT_OF_MEMORY;
case gpu::error::kMakeCurrentFailed:
return viz::mojom::ContextLostReason::MAKE_CURRENT_FAILED;
case gpu::error::kGpuChannelLost:
return viz::mojom::ContextLostReason::GPU_CHANNEL_LOST;
case gpu::error::kInvalidGpuMessage:
return viz::mojom::ContextLostReason::INVALID_GPU_MESSAGE;
}
NOTREACHED();
return viz::mojom::ContextLostReason::UNKNOWN;
}
static bool FromMojom(viz::mojom::ContextLostReason reason,
gpu::error::ContextLostReason* out) {
switch (reason) {
case viz::mojom::ContextLostReason::GUILTY:
*out = gpu::error::kGuilty;
return true;
case viz::mojom::ContextLostReason::INNOCENT:
*out = gpu::error::kInnocent;
return true;
case viz::mojom::ContextLostReason::UNKNOWN:
*out = gpu::error::kUnknown;
return true;
case viz::mojom::ContextLostReason::OUT_OF_MEMORY:
*out = gpu::error::kOutOfMemory;
return true;
case viz::mojom::ContextLostReason::MAKE_CURRENT_FAILED:
*out = gpu::error::kMakeCurrentFailed;
return true;
case viz::mojom::ContextLostReason::GPU_CHANNEL_LOST:
*out = gpu::error::kGpuChannelLost;
return true;
case viz::mojom::ContextLostReason::INVALID_GPU_MESSAGE:
*out = gpu::error::kInvalidGpuMessage;
return true;
}
return false;
}
};
} // namespace mojo
#endif // SERVICES_VIZ_PRIVILEGED_CPP_CONTEXT_LOST_REASON_TRAITS_H_