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