15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file contains the binary format definition of the command buffer and 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// command buffer commands. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "gpu/command_buffer/common/cmd_buffer_common.h" 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 1090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "gpu/command_buffer/common/command_buffer.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace gpu { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(_WIN32) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// gcc needs this to link, but MSVC requires it not be present 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const int32 CommandHeader::kMaxSize; 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace cmd { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* GetCommandName(CommandId command_id) { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static const char* const names[] = { 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #define COMMON_COMMAND_BUFFER_CMD_OP(name) # name, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) COMMON_COMMAND_BUFFER_CMDS(COMMON_COMMAND_BUFFER_CMD_OP) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #undef COMMON_COMMAND_BUFFER_CMD_OP 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int id = static_cast<int>(command_id); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return (id >= 0 && id < kNumCommands) ? names[id] : "*unknown-command*"; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace cmd 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 34f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#if !defined(NACL_WIN64) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TODO(apatrick): this is a temporary optimization while skia is calling 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RendererGLContext::MakeCurrent prior to every GL call. It saves returning 6 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ints redundantly when only the error is needed for the CommandBufferProxy 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// implementation. 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)error::Error CommandBuffer::GetLastError() { 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return GetLastState().error; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 42f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace gpu 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47