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
3// found in the LICENSE file.
4
5// This file contains the binary format definition of the command buffer and
6// command buffer commands.
7
8#include "gpu/command_buffer/common/cmd_buffer_common.h"
9#include "gpu/command_buffer/common/command_buffer.h"
10#include "gpu/command_buffer/common/logging.h"
11
12namespace gpu {
13#if !defined(_WIN32)
14// gcc needs this to link, but MSVC requires it not be present
15const int32 CommandHeader::kMaxSize;
16#endif
17namespace cmd {
18
19const char* GetCommandName(CommandId command_id) {
20  static const char* const names[] = {
21  #define COMMON_COMMAND_BUFFER_CMD_OP(name) # name,
22
23  COMMON_COMMAND_BUFFER_CMDS(COMMON_COMMAND_BUFFER_CMD_OP)
24
25  #undef COMMON_COMMAND_BUFFER_CMD_OP
26  };
27
28  int id = static_cast<int>(command_id);
29  return (id >= 0 && id < kNumCommands) ? names[id] : "*unknown-command*";
30}
31
32}  // namespace cmd
33
34// TODO(apatrick): this is a temporary optimization while skia is calling
35// RendererGLContext::MakeCurrent prior to every GL call. It saves returning 6
36// ints redundantly when only the error is needed for the CommandBufferProxy
37// implementation.
38error::Error CommandBuffer::GetLastError() {
39  return GetLastState().error;
40}
41
42}  // namespace gpu
43
44
45