diff options
author | rvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-02 19:11:44 +0000 |
---|---|---|
committer | rvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-02 19:11:44 +0000 |
commit | 183b60aae43ff5ef5556e7debd9480a96ce5dd46 (patch) | |
tree | 4b9910ef4399051b5c2717133094ff7719f32932 | |
parent | 22d63ebbd65ee881edf1143f4a2e4f38f3f4ea39 (diff) | |
download | chromium_src-183b60aae43ff5ef5556e7debd9480a96ce5dd46.zip chromium_src-183b60aae43ff5ef5556e7debd9480a96ce5dd46.tar.gz chromium_src-183b60aae43ff5ef5556e7debd9480a96ce5dd46.tar.bz2 |
GPU: Buld most of the gpu as a single DLL.
BUG=114261
TEST=none
Review URL: https://chromiumcodereview.appspot.com/9514020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124702 0039d316-1c4b-4281-b951-d872f2087c98
35 files changed, 475 insertions, 302 deletions
@@ -1,5 +1,6 @@ include_rules = [ "+third_party/angle", + "+../../gpu_export.h", "+../command_buffer", "+../client", "+../common", diff --git a/gpu/command_buffer/client/cmd_buffer_helper.h b/gpu/command_buffer/client/cmd_buffer_helper.h index bc3fd56..8a7e122 100644 --- a/gpu/command_buffer/client/cmd_buffer_helper.h +++ b/gpu/command_buffer/client/cmd_buffer_helper.h @@ -10,6 +10,7 @@ #include <string.h> #include <time.h> +#include "../../gpu_export.h" #include "../common/logging.h" #include "../common/constants.h" #include "../common/cmd_buffer_common.h" @@ -32,7 +33,7 @@ namespace gpu { // // helper.WaitForToken(token); // this doesn't return until the first two // // commands have been executed. -class CommandBufferHelper { +class GPU_EXPORT CommandBufferHelper { public: explicit CommandBufferHelper(CommandBuffer* command_buffer); virtual ~CommandBufferHelper(); diff --git a/gpu/command_buffer/client/fenced_allocator.h b/gpu/command_buffer/client/fenced_allocator.h index 74cdf33..3ccad45 100644 --- a/gpu/command_buffer/client/fenced_allocator.h +++ b/gpu/command_buffer/client/fenced_allocator.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 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. @@ -8,6 +8,8 @@ #define GPU_COMMAND_BUFFER_CLIENT_FENCED_ALLOCATOR_H_ #include <vector> + +#include "../../gpu_export.h" #include "../common/logging.h" #include "../common/types.h" @@ -24,7 +26,7 @@ class CommandBufferHelper; // environment which is multi-process, this class isn't "thread safe", because // it isn't meant to be shared across modules. It is thread-compatible though // (see http://www.corp.google.com/eng/doc/cpp_primer.html#thread_safety). -class FencedAllocator { +class GPU_EXPORT FencedAllocator { public: typedef unsigned int Offset; // Invalid offset, returned by Alloc in case of failure. diff --git a/gpu/command_buffer/client/gles2_impl_export.h b/gpu/command_buffer/client/gles2_impl_export.h new file mode 100644 index 0000000..9bf1871 --- /dev/null +++ b/gpu/command_buffer/client/gles2_impl_export.h @@ -0,0 +1,26 @@ +// Copyright (c) 2012 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. + +#ifndef GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPL_EXPORT_H_ +#define GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPL_EXPORT_H_ +#pragma once + +#if defined(COMPONENT_BUILD) +#if defined(WIN32) + +#if defined(GLES2_IMPL_IMPLEMENTATION) +#define GLES2_IMPL_EXPORT __declspec(dllexport) +#else +#define GLES2_IMPL_EXPORT __declspec(dllimport) +#endif // defined(GLES2_IMPL_IMPLEMENTATION) + +#else // defined(WIN32) +#define GLES2_IMPL_EXPORT __attribute__((visibility("default"))) +#endif + +#else // defined(COMPONENT_BUILD) +#define GLES2_IMPL_EXPORT +#endif + +#endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPL_EXPORT_H_ diff --git a/gpu/command_buffer/client/gles2_implementation.h b/gpu/command_buffer/client/gles2_implementation.h index 97622ea..dbdb271 100644 --- a/gpu/command_buffer/client/gles2_implementation.h +++ b/gpu/command_buffer/client/gles2_implementation.h @@ -17,6 +17,7 @@ #include "../common/scoped_ptr.h" #include "../client/gles2_cmd_helper.h" #include "../client/ring_buffer.h" +#include "gles2_impl_export.h" #if !defined(NDEBUG) && !defined(__native_client__) && !defined(GLES2_CONFORMANCE_TESTS) // NOLINT #if defined(GLES2_INLINE_OPTIMIZATION) @@ -104,7 +105,7 @@ class IdHandlerInterface { // be had by changing your code to use command buffers directly by using the // GLES2CmdHelper but that entails changing your code to use and deal with // shared memory and synchronization issues. -class GLES2Implementation { +class GLES2_IMPL_EXPORT GLES2Implementation { public: // Stores client side cached GL state. struct GLState { diff --git a/gpu/command_buffer/client/mapped_memory.h b/gpu/command_buffer/client/mapped_memory.h index f38470f..93390a7 100644 --- a/gpu/command_buffer/client/mapped_memory.h +++ b/gpu/command_buffer/client/mapped_memory.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 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. @@ -7,6 +7,7 @@ #include <vector> +#include "../../gpu_export.h" #include "../common/types.h" #include "../client/fenced_allocator.h" #include "../common/buffer.h" @@ -16,7 +17,7 @@ namespace gpu { class CommandBufferHelper; // Manages a shared memory segment. -class MemoryChunk { +class GPU_EXPORT MemoryChunk { public: MemoryChunk(int32 shm_id, gpu::Buffer shm, CommandBufferHelper* helper); @@ -104,7 +105,7 @@ class MemoryChunk { }; // Manages MemoryChucks. -class MappedMemoryManager { +class GPU_EXPORT MappedMemoryManager { public: explicit MappedMemoryManager(CommandBufferHelper* helper); diff --git a/gpu/command_buffer/client/ring_buffer.h b/gpu/command_buffer/client/ring_buffer.h index 582d4ee..c08cccd 100644 --- a/gpu/command_buffer/client/ring_buffer.h +++ b/gpu/command_buffer/client/ring_buffer.h @@ -8,6 +8,8 @@ #define GPU_COMMAND_BUFFER_CLIENT_RING_BUFFER_H_ #include <deque> + +#include "../../gpu_export.h" #include "../common/logging.h" #include "../common/types.h" @@ -17,7 +19,7 @@ class CommandBufferHelper; // RingBuffer manages a piece of memory as a ring buffer. Memory is allocated // with Alloc and then a is freed pending a token with FreePendingToken. Old // allocations must not be kept past new allocations. -class RingBuffer { +class GPU_EXPORT RingBuffer { public: typedef unsigned int Offset; diff --git a/gpu/command_buffer/client/transfer_buffer.h b/gpu/command_buffer/client/transfer_buffer.h index b3a58d2d..0921b74 100644 --- a/gpu/command_buffer/client/transfer_buffer.h +++ b/gpu/command_buffer/client/transfer_buffer.h @@ -5,6 +5,7 @@ #ifndef GPU_COMMAND_BUFFER_CLIENT_TRANSFER_BUFFER_H_ #define GPU_COMMAND_BUFFER_CLIENT_TRANSFER_BUFFER_H_ +#include "../../gpu_export.h" #include "../common/buffer.h" #include "../common/compiler_specific.h" #include "../common/gles2_cmd_utils.h" @@ -50,7 +51,7 @@ class AlignedRingBuffer : public RingBufferWrapper { }; // Interface for managing the transfer buffer. -class TransferBufferInterface { +class GPU_EXPORT TransferBufferInterface { public: TransferBufferInterface() { } virtual ~TransferBufferInterface() { } @@ -84,7 +85,7 @@ class TransferBufferInterface { }; // Class that manages the transfer buffer. -class TransferBuffer : public TransferBufferInterface { +class GPU_EXPORT TransferBuffer : public TransferBufferInterface { public: TransferBuffer(CommandBufferHelper* helper); virtual ~TransferBuffer(); @@ -156,7 +157,7 @@ class TransferBuffer : public TransferBufferInterface { }; // A class that will manage the lifetime of a transferbuffer allocation. -class ScopedTransferBufferPtr { +class GPU_EXPORT ScopedTransferBufferPtr { public: ScopedTransferBufferPtr( unsigned int size, diff --git a/gpu/command_buffer/common/command_buffer.h b/gpu/command_buffer/common/command_buffer.h index ee8fe06..6a2da68 100644 --- a/gpu/command_buffer/common/command_buffer.h +++ b/gpu/command_buffer/common/command_buffer.h @@ -5,6 +5,7 @@ #ifndef GPU_COMMAND_BUFFER_COMMON_COMMAND_BUFFER_H_ #define GPU_COMMAND_BUFFER_COMMON_COMMAND_BUFFER_H_ +#include "../../gpu_export.h" #include "../common/buffer.h" #include "../common/constants.h" @@ -15,7 +16,7 @@ class SharedMemory; namespace gpu { // Common interface for CommandBuffer implementations. -class CommandBuffer { +class GPU_EXPORT CommandBuffer { public: enum { kMaxCommandBufferSize = 4 * 1024 * 1024 diff --git a/gpu/command_buffer/common/id_allocator.h b/gpu/command_buffer/common/id_allocator.h index de2d658..7e25dbb 100644 --- a/gpu/command_buffer/common/id_allocator.h +++ b/gpu/command_buffer/common/id_allocator.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 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. @@ -12,6 +12,7 @@ #include "base/compiler_specific.h" +#include "../../gpu_export.h" #include "../common/types.h" namespace gpu { @@ -21,7 +22,7 @@ typedef uint32 ResourceId; // Invalid resource ID. static const ResourceId kInvalidResource = 0u; -class IdAllocatorInterface { +class GPU_EXPORT IdAllocatorInterface { public: virtual ~IdAllocatorInterface(); @@ -43,7 +44,7 @@ class IdAllocatorInterface { }; // A class to manage the allocation of resource IDs. -class IdAllocator : public IdAllocatorInterface { +class GPU_EXPORT IdAllocator : public IdAllocatorInterface { public: IdAllocator(); virtual ~IdAllocator(); diff --git a/gpu/command_buffer/service/buffer_manager.h b/gpu/command_buffer/service/buffer_manager.h index 32be176..f2db2f9 100644 --- a/gpu/command_buffer/service/buffer_manager.h +++ b/gpu/command_buffer/service/buffer_manager.h @@ -12,6 +12,7 @@ #include "base/memory/ref_counted.h" #include "base/memory/scoped_ptr.h" #include "gpu/command_buffer/service/gl_utils.h" +#include "gpu/gpu_export.h" namespace gpu { namespace gles2 { @@ -21,10 +22,10 @@ namespace gles2 { // // NOTE: To support shared resources an instance of this class will need to be // shared by multiple GLES2Decoders. -class BufferManager { +class GPU_EXPORT BufferManager { public: // Info about Buffers currently in the system. - class BufferInfo : public base::RefCounted<BufferInfo> { + class GPU_EXPORT BufferInfo : public base::RefCounted<BufferInfo> { public: typedef scoped_refptr<BufferInfo> Ref; diff --git a/gpu/command_buffer/service/cmd_parser.h b/gpu/command_buffer/service/cmd_parser.h index 567b7f6..de2fe29 100644 --- a/gpu/command_buffer/service/cmd_parser.h +++ b/gpu/command_buffer/service/cmd_parser.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 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. @@ -9,6 +9,7 @@ #include "gpu/command_buffer/common/constants.h" #include "gpu/command_buffer/common/cmd_buffer_common.h" +#include "gpu/gpu_export.h" namespace gpu { @@ -16,7 +17,7 @@ class AsyncAPIInterface; // Command parser class. This class parses commands from a shared memory // buffer, to implement some asynchronous RPC mechanism. -class CommandParser { +class GPU_EXPORT CommandParser { public: explicit CommandParser(AsyncAPIInterface* handler); diff --git a/gpu/command_buffer/service/command_buffer_service.h b/gpu/command_buffer/service/command_buffer_service.h index 2c59678..8b3e038 100644 --- a/gpu/command_buffer/service/command_buffer_service.h +++ b/gpu/command_buffer/service/command_buffer_service.h @@ -19,7 +19,7 @@ namespace gpu { // An object that implements a shared memory command buffer and a synchronous // API to manage the put and get pointers. -class CommandBufferService : public CommandBuffer { +class GPU_EXPORT CommandBufferService : public CommandBuffer { public: typedef base::Callback<bool(int32)> GetBufferChangedCallback; CommandBufferService(); diff --git a/gpu/command_buffer/service/common_decoder.h b/gpu/command_buffer/service/common_decoder.h index bdc1461..7ac9abb 100644 --- a/gpu/command_buffer/service/common_decoder.h +++ b/gpu/command_buffer/service/common_decoder.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 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. @@ -11,6 +11,7 @@ #include "base/memory/linked_ptr.h" #include "base/memory/scoped_ptr.h" #include "gpu/command_buffer/service/cmd_parser.h" +#include "gpu/gpu_export.h" namespace gpu { @@ -18,7 +19,7 @@ class CommandBufferEngine; // This class is a helper base class for implementing the common parts of the // o3d/gl2 command buffer decoder. -class CommonDecoder : public AsyncAPIInterface { +class GPU_EXPORT CommonDecoder : NON_EXPORTED_BASE(public AsyncAPIInterface) { public: typedef error::Error Error; @@ -46,7 +47,7 @@ class CommonDecoder : public AsyncAPIInterface { // arbitary size, the service puts the string in a bucket. The client can // then query the size of a bucket and request sections of the bucket to // be passed across shared memory. - class Bucket { + class GPU_EXPORT Bucket { public: Bucket(); ~Bucket(); diff --git a/gpu/command_buffer/service/context_group.h b/gpu/command_buffer/service/context_group.h index 9a9943b..7c78f97 100644 --- a/gpu/command_buffer/service/context_group.h +++ b/gpu/command_buffer/service/context_group.h @@ -14,6 +14,7 @@ #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/service/gles2_cmd_validation.h" #include "gpu/command_buffer/service/feature_info.h" +#include "gpu/gpu_export.h" namespace gpu { @@ -32,7 +33,7 @@ struct DisallowedFeatures; // A Context Group helps manage multiple GLES2Decoders that share // resources. -class ContextGroup : public base::RefCounted<ContextGroup> { +class GPU_EXPORT ContextGroup : public base::RefCounted<ContextGroup> { public: typedef scoped_refptr<ContextGroup> Ref; diff --git a/gpu/command_buffer/service/feature_info.h b/gpu/command_buffer/service/feature_info.h index 3fcf3c9..bdb4c0a 100644 --- a/gpu/command_buffer/service/feature_info.h +++ b/gpu/command_buffer/service/feature_info.h @@ -9,12 +9,13 @@ #include "base/memory/ref_counted.h" #include "gpu/command_buffer/service/gles2_cmd_decoder.h" #include "gpu/command_buffer/service/gles2_cmd_validation.h" +#include "gpu/gpu_export.h" namespace gpu { namespace gles2 { // FeatureInfo records the features that are available for a ContextGroup. -class FeatureInfo : public base::RefCounted<FeatureInfo> { +class GPU_EXPORT FeatureInfo : public base::RefCounted<FeatureInfo> { public: typedef scoped_refptr<FeatureInfo> Ref; diff --git a/gpu/command_buffer/service/framebuffer_manager.h b/gpu/command_buffer/service/framebuffer_manager.h index f66b519..a21fa8e 100644 --- a/gpu/command_buffer/service/framebuffer_manager.h +++ b/gpu/command_buffer/service/framebuffer_manager.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 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. @@ -12,16 +12,17 @@ #include "gpu/command_buffer/service/gl_utils.h" #include "gpu/command_buffer/service/renderbuffer_manager.h" #include "gpu/command_buffer/service/texture_manager.h" +#include "gpu/gpu_export.h" namespace gpu { namespace gles2 { // This class keeps track of the frambebuffers and their attached renderbuffers // so we can correctly clear them. -class FramebufferManager { +class GPU_EXPORT FramebufferManager { public: // Info about Framebuffers currently in the system. - class FramebufferInfo : public base::RefCounted<FramebufferInfo> { + class GPU_EXPORT FramebufferInfo : public base::RefCounted<FramebufferInfo> { public: typedef scoped_refptr<FramebufferInfo> Ref; diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.h b/gpu/command_buffer/service/gles2_cmd_decoder.h index cb17176..89e1dd7 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder.h +++ b/gpu/command_buffer/service/gles2_cmd_decoder.h @@ -40,7 +40,7 @@ struct DisallowedFeatures { // This class implements the AsyncAPIInterface interface, decoding GLES2 // commands and calling GL. -class GLES2Decoder : public CommonDecoder { +class GPU_EXPORT GLES2Decoder : public CommonDecoder { public: typedef error::Error Error; typedef base::Callback<void(int32 id, const std::string& msg)> MsgCallback; diff --git a/gpu/command_buffer/service/gpu_scheduler.h b/gpu/command_buffer/service/gpu_scheduler.h index 7a7bdff..a03ffdf 100644 --- a/gpu/command_buffer/service/gpu_scheduler.h +++ b/gpu/command_buffer/service/gpu_scheduler.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 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. @@ -16,6 +16,7 @@ #include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/cmd_parser.h" #include "gpu/command_buffer/service/gles2_cmd_decoder.h" +#include "gpu/gpu_export.h" namespace gfx { class GLFence; @@ -27,8 +28,8 @@ namespace gpu { // a command buffer and forwarded to a command parser. TODO(apatrick): This // class should not know about the decoder. Do not add additional dependencies // on it. -class GpuScheduler - : public CommandBufferEngine, +class GPU_EXPORT GpuScheduler + : NON_EXPORTED_BASE(public CommandBufferEngine), public base::SupportsWeakPtr<GpuScheduler> { public: GpuScheduler(CommandBuffer* command_buffer, diff --git a/gpu/command_buffer/service/id_manager.h b/gpu/command_buffer/service/id_manager.h index 3668534..bffbc94 100644 --- a/gpu/command_buffer/service/id_manager.h +++ b/gpu/command_buffer/service/id_manager.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 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. @@ -8,6 +8,7 @@ #include "base/basictypes.h" #include "base/hash_tables.h" #include "gpu/command_buffer/service/gl_utils.h" +#include "gpu/gpu_export.h" namespace gpu { namespace gles2 { @@ -16,7 +17,7 @@ namespace gles2 { // // NOTE: To support shared resources an instance of this class will // need to be shared by multiple GLES2Decoders. -class IdManager { +class GPU_EXPORT IdManager { public: IdManager(); ~IdManager(); diff --git a/gpu/command_buffer/service/program_manager.h b/gpu/command_buffer/service/program_manager.h index 77b9065..330ef53 100644 --- a/gpu/command_buffer/service/program_manager.h +++ b/gpu/command_buffer/service/program_manager.h @@ -15,6 +15,7 @@ #include "gpu/command_buffer/service/common_decoder.h" #include "gpu/command_buffer/service/gl_utils.h" #include "gpu/command_buffer/service/shader_manager.h" +#include "gpu/gpu_export.h" namespace gpu { namespace gles2 { @@ -23,12 +24,12 @@ namespace gles2 { // // NOTE: To support shared resources an instance of this class will // need to be shared by multiple GLES2Decoders. -class ProgramManager { +class GPU_EXPORT ProgramManager { public: // This is used to track which attributes a particular program needs // so we can verify at glDrawXXX time that every attribute is either disabled // or if enabled that it points to a valid source. - class ProgramInfo : public base::RefCounted<ProgramInfo> { + class GPU_EXPORT ProgramInfo : public base::RefCounted<ProgramInfo> { public: typedef scoped_refptr<ProgramInfo> Ref; diff --git a/gpu/command_buffer/service/renderbuffer_manager.h b/gpu/command_buffer/service/renderbuffer_manager.h index 8cfd993..0d29c2c 100644 --- a/gpu/command_buffer/service/renderbuffer_manager.h +++ b/gpu/command_buffer/service/renderbuffer_manager.h @@ -10,16 +10,18 @@ #include "base/memory/ref_counted.h" #include "base/memory/scoped_ptr.h" #include "gpu/command_buffer/service/gl_utils.h" +#include "gpu/gpu_export.h" namespace gpu { namespace gles2 { // This class keeps track of the renderbuffers and whether or not they have // been cleared. -class RenderbufferManager { +class GPU_EXPORT RenderbufferManager { public: // Info about Renderbuffers currently in the system. - class RenderbufferInfo : public base::RefCounted<RenderbufferInfo> { + class GPU_EXPORT RenderbufferInfo + : public base::RefCounted<RenderbufferInfo> { public: typedef scoped_refptr<RenderbufferInfo> Ref; diff --git a/gpu/command_buffer/service/shader_manager.h b/gpu/command_buffer/service/shader_manager.h index 4168152..04b431a 100644 --- a/gpu/command_buffer/service/shader_manager.h +++ b/gpu/command_buffer/service/shader_manager.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 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. @@ -13,6 +13,7 @@ #include "base/memory/scoped_ptr.h" #include "gpu/command_buffer/service/gl_utils.h" #include "gpu/command_buffer/service/shader_translator.h" +#include "gpu/gpu_export.h" namespace gpu { namespace gles2 { @@ -21,13 +22,13 @@ namespace gles2 { // // NOTE: To support shared resources an instance of this class will // need to be shared by multiple GLES2Decoders. -class ShaderManager { +class GPU_EXPORT ShaderManager { public: // This is used to keep the source code for a shader. This is because in order // to emluate GLES2 the shaders will have to be re-written before passed to // the underlying OpenGL. But, when the user calls glGetShaderSource they // should get the source they passed in, not the re-written source. - class ShaderInfo : public base::RefCounted<ShaderInfo> { + class GPU_EXPORT ShaderInfo : public base::RefCounted<ShaderInfo> { public: typedef scoped_refptr<ShaderInfo> Ref; typedef ShaderTranslator::VariableInfo VariableInfo; diff --git a/gpu/command_buffer/service/shader_translator.h b/gpu/command_buffer/service/shader_translator.h index af132b9..ea981c6 100644 --- a/gpu/command_buffer/service/shader_translator.h +++ b/gpu/command_buffer/service/shader_translator.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 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. @@ -10,6 +10,7 @@ #include "base/basictypes.h" #include "base/hash_tables.h" #include "base/memory/scoped_ptr.h" +#include "gpu/gpu_export.h" #include "third_party/angle/include/GLSLANG/ShaderLang.h" namespace gpu { @@ -72,7 +73,8 @@ class ShaderTranslatorInterface { }; // Implementation of ShaderTranslatorInterface -class ShaderTranslator : public ShaderTranslatorInterface { +class GPU_EXPORT ShaderTranslator + : NON_EXPORTED_BASE(public ShaderTranslatorInterface) { public: ShaderTranslator(); virtual ~ShaderTranslator(); diff --git a/gpu/command_buffer/service/texture_manager.h b/gpu/command_buffer/service/texture_manager.h index 3fdc258..e55c012 100644 --- a/gpu/command_buffer/service/texture_manager.h +++ b/gpu/command_buffer/service/texture_manager.h @@ -12,6 +12,7 @@ #include "base/memory/ref_counted.h" #include "gpu/command_buffer/service/feature_info.h" #include "gpu/command_buffer/service/gl_utils.h" +#include "gpu/gpu_export.h" namespace gpu { namespace gles2 { @@ -23,7 +24,7 @@ class GLES2Decoder; // // NOTE: To support shared resources an instance of this class will need to be // shared by multiple GLES2Decoders. -class TextureManager { +class GPU_EXPORT TextureManager { public: enum DefaultAndBlackTextures { kTexture2D, @@ -34,7 +35,7 @@ class TextureManager { }; // Info about Textures currently in the system. - class TextureInfo : public base::RefCounted<TextureInfo> { + class GPU_EXPORT TextureInfo : public base::RefCounted<TextureInfo> { public: typedef scoped_refptr<TextureInfo> Ref; diff --git a/gpu/command_buffer/service/vertex_attrib_manager.h b/gpu/command_buffer/service/vertex_attrib_manager.h index cd24abd..c42c8d6 100644 --- a/gpu/command_buffer/service/vertex_attrib_manager.h +++ b/gpu/command_buffer/service/vertex_attrib_manager.h @@ -8,17 +8,18 @@ #include "build/build_config.h" #include "gpu/command_buffer/service/buffer_manager.h" #include "gpu/command_buffer/service/gl_utils.h" +#include "gpu/gpu_export.h" namespace gpu { namespace gles2 { // Manages vertex attributes. -class VertexAttribManager { +class GPU_EXPORT VertexAttribManager { public: // Info about Vertex Attributes. This is used to track what the user currently // has bound on each Vertex Attribute so that checking can be done at // glDrawXXX time. - class VertexAttribInfo { + class GPU_EXPORT VertexAttribInfo { public: typedef std::list<VertexAttribInfo*> VertexAttribInfoList; struct Vec4 { diff --git a/gpu/demos/demos.gyp b/gpu/demos/demos.gyp index 59800c8c..802b328e 100644 --- a/gpu/demos/demos.gyp +++ b/gpu/demos/demos.gyp @@ -44,6 +44,7 @@ '../gpu.gyp:gles2_implementation', '../../base/base.gyp:base', '../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', + '../../ui/gfx/gl/gl.gyp:gl', '../../ui/ui.gyp:ui', ], 'sources': [ diff --git a/gpu/gles2_conform_support/gles2_conform_support.gyp b/gpu/gles2_conform_support/gles2_conform_support.gyp index 2bb3af2..73f83b2 100644 --- a/gpu/gles2_conform_support/gles2_conform_support.gyp +++ b/gpu/gles2_conform_support/gles2_conform_support.gyp @@ -33,6 +33,8 @@ '<(DEPTH)/base/base.gyp:base', '<(DEPTH)/gpu/gpu.gyp:gles2_implementation_client_side_arrays_no_check', '<(DEPTH)/gpu/gpu.gyp:command_buffer_service', + '<(DEPTH)/ui/gfx/gl/gl.gyp:gl', + '<(DEPTH)/ui/ui.gyp:ui', ], 'include_dirs': ['<(DEPTH)/third_party/khronos'], 'sources': [ diff --git a/gpu/gles2_implementation.gypi b/gpu/gles2_implementation.gypi deleted file mode 100644 index b98f554..0000000 --- a/gpu/gles2_implementation.gypi +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright (c) 2012 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. - -{ - # Library emulates GLES2 using command_buffers. - 'dependencies': [ - '../base/base.gyp:base', - '../ui/gfx/gl/gl.gyp:gl', - ], - 'all_dependent_settings': { - 'include_dirs': [ - # For GLES2/gl2.h - '<(DEPTH)/third_party/khronos', - ], - }, - 'sources': [ - '<@(gles2_implementation_source_files)', - ], -} diff --git a/gpu/gpu.gyp b/gpu/gpu.gyp index 26af34a..301e10a 100644 --- a/gpu/gpu.gyp +++ b/gpu/gpu.gyp @@ -19,6 +19,7 @@ # with without support for client side arrays and once with for pepper and # the OpenGL ES 2.0 compliant for the conformance tests. 'gles2_implementation_source_files': [ + 'command_buffer/client/gles2_impl_export.h', 'command_buffer/client/gles2_implementation_autogen.h', 'command_buffer/client/gles2_implementation.cc', 'command_buffer/client/gles2_implementation.h', @@ -26,238 +27,135 @@ 'command_buffer/client/program_info_manager.h', ] }, - 'targets': [ - { - 'target_name': 'command_buffer_common', - 'type': 'static_library', - 'includes': [ - 'command_buffer_common.gypi', - ], - 'export_dependent_settings': [ - '../base/base.gyp:base', - ], - }, - { - # Library helps make GLES2 command buffers. - 'target_name': 'gles2_cmd_helper', - 'type': 'static_library', - 'includes': [ - 'gles2_cmd_helper.gypi', - ], - 'dependencies': [ - 'command_buffer_client', - ], - }, - { - # Library emulates GLES2 using command_buffers. - 'target_name': 'gles2_implementation', - 'type': 'static_library', - 'includes': [ - 'gles2_implementation.gypi', - ], - 'dependencies': [ - 'gles2_cmd_helper', - ], - }, - { - # Library emulates GLES2 using command_buffers. - 'target_name': 'gles2_implementation_client_side_arrays', - 'type': 'static_library', - 'defines': [ - 'GLES2_SUPPORT_CLIENT_SIDE_ARRAYS=1', - ], - 'dependencies': [ - '../base/base.gyp:base', - 'gles2_cmd_helper', - ], - 'all_dependent_settings': { - 'include_dirs': [ - # For GLES2/gl2.h - '<(DEPTH)/third_party/khronos', - ], - }, - 'sources': [ - '<@(gles2_implementation_source_files)', - ], - }, - { - # Library emulates GLES2 using command_buffers. - 'target_name': 'gles2_implementation_client_side_arrays_no_check', - 'type': 'static_library', - 'defines': [ - 'GLES2_SUPPORT_CLIENT_SIDE_ARRAYS=1', - 'GLES2_CONFORMANCE_TESTS=1', - ], - 'dependencies': [ - '../base/base.gyp:base', - 'gles2_cmd_helper', - ], - 'all_dependent_settings': { - 'include_dirs': [ - # For GLES2/gl2.h - '<(DEPTH)/third_party/khronos', - ], - }, - 'sources': [ - '<@(gles2_implementation_source_files)', - ], - }, - { - # Stub to expose gles2_implemenation in C instead of C++. - # so GLES2 C programs can work with no changes. - 'target_name': 'gles2_c_lib', - 'type': '<(component)', - 'dependencies': [ - '../base/base.gyp:base', - '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', - 'gles2_implementation', - ], - 'defines': [ - 'GLES2_C_LIB_IMPLEMENTATION', - ], - 'sources': [ - '<@(gles2_c_lib_source_files)', - ], - }, - { - # Same as gles2_c_lib except with no parameter checking. Required for - # OpenGL ES 2.0 conformance tests. - 'target_name': 'gles2_c_lib_nocheck', - 'type': '<(component)', - 'defines': [ - 'GLES2_C_LIB_IMPLEMENTATION', - 'GLES2_CONFORMANCE_TESTS=1', - ], - 'dependencies': [ - '../base/base.gyp:base', - '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', - 'gles2_implementation_client_side_arrays_no_check', - ], - 'sources': [ - '<@(gles2_c_lib_source_files)', - ], - }, - { - 'target_name': 'command_buffer_client', - 'type': 'static_library', - 'includes': [ - 'command_buffer_client.gypi', - ], - 'dependencies': [ - 'command_buffer_common', - ], - }, - { - 'target_name': 'command_buffer_service', - 'type': 'static_library', - 'includes': [ - 'command_buffer_service.gypi', - ], - 'dependencies': [ - 'command_buffer_common', - ], - }, - { - 'target_name': 'gpu_unittests', - 'type': 'executable', - 'dependencies': [ - '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', - '../testing/gmock.gyp:gmock', - '../testing/gmock.gyp:gmock_main', - '../testing/gtest.gyp:gtest', - '../ui/gfx/gl/gl.gyp:gl', - 'command_buffer_client', - 'command_buffer_common', - 'command_buffer_service', - 'gpu_unittest_utils', - 'gles2_implementation_client_side_arrays', - 'gles2_cmd_helper', - ], - 'defines': [ - 'GLES2_C_LIB_IMPLEMENTATION', - ], - 'sources': [ - '<@(gles2_c_lib_source_files)', - 'command_buffer/client/client_test_helper.cc', - 'command_buffer/client/client_test_helper.h', - 'command_buffer/client/cmd_buffer_helper_test.cc', - 'command_buffer/client/fenced_allocator_test.cc', - 'command_buffer/client/gles2_implementation_unittest.cc', - 'command_buffer/client/mapped_memory_unittest.cc', - 'command_buffer/client/program_info_manager_unittest.cc', - 'command_buffer/client/ring_buffer_test.cc', - 'command_buffer/client/transfer_buffer_unittest.cc', - 'command_buffer/common/bitfield_helpers_test.cc', - 'command_buffer/common/command_buffer_mock.cc', - 'command_buffer/common/command_buffer_mock.h', - 'command_buffer/common/command_buffer_shared_test.cc', - 'command_buffer/common/gles2_cmd_format_test.cc', - 'command_buffer/common/gles2_cmd_format_test_autogen.h', - 'command_buffer/common/gles2_cmd_utils_unittest.cc', - 'command_buffer/common/id_allocator_test.cc', - 'command_buffer/common/trace_event.h', - 'command_buffer/common/unittest_main.cc', - 'command_buffer/service/buffer_manager_unittest.cc', - 'command_buffer/service/cmd_parser_test.cc', - 'command_buffer/service/common_decoder_unittest.cc', - 'command_buffer/service/context_group_unittest.cc', - 'command_buffer/service/feature_info_unittest.cc', - 'command_buffer/service/framebuffer_manager_unittest.cc', - 'command_buffer/service/gles2_cmd_decoder_unittest.cc', - 'command_buffer/service/gles2_cmd_decoder_unittest_1.cc', - 'command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h', - 'command_buffer/service/gles2_cmd_decoder_unittest_2.cc', - 'command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h', - 'command_buffer/service/gles2_cmd_decoder_unittest_3.cc', - 'command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h', - 'command_buffer/service/gles2_cmd_decoder_unittest_base.cc', - 'command_buffer/service/gles2_cmd_decoder_unittest_base.h', - 'command_buffer/service/gpu_scheduler_unittest.cc', - 'command_buffer/service/id_manager_unittest.cc', - 'command_buffer/service/mocks.cc', - 'command_buffer/service/mocks.h', - 'command_buffer/service/program_manager_unittest.cc', - 'command_buffer/service/renderbuffer_manager_unittest.cc', - 'command_buffer/service/shader_manager_unittest.cc', - 'command_buffer/service/shader_translator_unittest.cc', - 'command_buffer/service/stream_texture_mock.cc', - 'command_buffer/service/stream_texture_mock.h', - 'command_buffer/service/stream_texture_manager_mock.cc', - 'command_buffer/service/stream_texture_manager_mock.h', - 'command_buffer/service/test_helper.cc', - 'command_buffer/service/test_helper.h', - 'command_buffer/service/texture_manager_unittest.cc', - 'command_buffer/service/vertex_attrib_manager_unittest.cc', - ], - }, - { - 'target_name': 'gpu_unittest_utils', - 'type': 'static_library', - 'dependencies': [ - '../testing/gmock.gyp:gmock', - '../testing/gtest.gyp:gtest', - '../ui/gfx/gl/gl.gyp:gl', - ], - 'include_dirs': [ - '..', - '<(DEPTH)/third_party/khronos', - ], - 'sources': [ - 'command_buffer/common/gl_mock.h', - 'command_buffer/common/gl_mock.cc', - 'command_buffer/service/gles2_cmd_decoder_mock.cc', - 'command_buffer/service/gles2_cmd_decoder_mock.cc', - ], - }, - { - 'target_name': 'gpu_ipc', - 'type': 'static_library', - 'includes': [ - 'gpu_ipc.gypi', - ], - 'dependencies': [ - 'command_buffer_client', + 'includes': [ + 'gpu_common.gypi', + ], + 'conditions': [ + ['component=="static_library" or incremental_chrome_dll==1', { + 'targets': [ + { + 'target_name': 'gpu', + 'type': 'none', + 'dependencies': [ + 'command_buffer_client', + 'command_buffer_common', + 'command_buffer_service', + 'gles2_cmd_helper', + 'gpu_ipc', + ], + 'sources': [ + 'gpu_export.h', + ], + }, + { + 'target_name': 'command_buffer_common', + 'type': 'static_library', + 'includes': [ + 'command_buffer_common.gypi', + ], + 'export_dependent_settings': [ + '../base/base.gyp:base', + ], + }, + { + # Library helps make GLES2 command buffers. + 'target_name': 'gles2_cmd_helper', + 'type': 'static_library', + 'includes': [ + 'gles2_cmd_helper.gypi', + ], + 'dependencies': [ + 'command_buffer_client', + ], + }, + { + 'target_name': 'command_buffer_client', + 'type': 'static_library', + 'includes': [ + 'command_buffer_client.gypi', + ], + 'dependencies': [ + 'command_buffer_common', + ], + }, + { + 'target_name': 'command_buffer_service', + 'type': 'static_library', + 'includes': [ + 'command_buffer_service.gypi', + ], + 'dependencies': [ + 'command_buffer_common', + ], + }, + { + 'target_name': 'gpu_ipc', + 'type': 'static_library', + 'includes': [ + 'gpu_ipc.gypi', + ], + 'dependencies': [ + 'command_buffer_common', + ], + }, ], }, + { # component != static_library + 'targets': [ + { + 'target_name': 'gpu', + 'type': 'shared_library', + 'includes': [ + 'command_buffer_client.gypi', + 'command_buffer_common.gypi', + 'command_buffer_service.gypi', + 'gles2_cmd_helper.gypi', + 'gpu_ipc.gypi', + ], + 'defines': [ + 'GPU_IMPLEMENTATION', + ], + 'sources': [ + 'gpu_export.h', + ], + }, + { + 'target_name': 'command_buffer_common', + 'type': 'none', + 'dependencies': [ + 'gpu', + ], + }, + { + # Library helps make GLES2 command buffers. + 'target_name': 'gles2_cmd_helper', + 'type': 'none', + 'dependencies': [ + 'gpu', + ], + }, + { + 'target_name': 'command_buffer_client', + 'type': 'none', + 'dependencies': [ + 'gpu', + ], + }, + { + 'target_name': 'command_buffer_service', + 'type': 'none', + 'dependencies': [ + 'gpu', + ], + }, + { + 'target_name': 'gpu_ipc', + 'type': 'none', + 'dependencies': [ + 'gpu', + ], + }, + ], + }], ], } diff --git a/gpu/gpu_common.gypi b/gpu/gpu_common.gypi new file mode 100644 index 0000000..43209be --- /dev/null +++ b/gpu/gpu_common.gypi @@ -0,0 +1,212 @@ +# Copyright (c) 2012 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. + +{ + 'targets': [ + { + # Library emulates GLES2 using command_buffers. + 'target_name': 'gles2_implementation', + 'type': '<(component)', + 'dependencies': [ + '../base/base.gyp:base', + '../ui/gfx/gl/gl.gyp:gl', + 'command_buffer/command_buffer.gyp:gles2_utils', + 'gles2_cmd_helper', + ], + 'all_dependent_settings': { + 'include_dirs': [ + # For GLES2/gl2.h + '<(DEPTH)/third_party/khronos', + ], + }, + 'defines': [ + 'GLES2_IMPL_IMPLEMENTATION', + ], + 'sources': [ + '<@(gles2_implementation_source_files)', + ], + }, + { + # Library emulates GLES2 using command_buffers. + 'target_name': 'gles2_implementation_client_side_arrays', + 'type': '<(component)', + 'defines': [ + 'GLES2_IMPL_IMPLEMENTATION', + 'GLES2_SUPPORT_CLIENT_SIDE_ARRAYS=1', + ], + 'dependencies': [ + '../base/base.gyp:base', + '../ui/gfx/gl/gl.gyp:gl', + 'command_buffer/command_buffer.gyp:gles2_utils', + 'gles2_cmd_helper', + ], + 'all_dependent_settings': { + 'include_dirs': [ + # For GLES2/gl2.h + '<(DEPTH)/third_party/khronos', + ], + }, + 'sources': [ + '<@(gles2_implementation_source_files)', + ], + }, + { + # Library emulates GLES2 using command_buffers. + 'target_name': 'gles2_implementation_client_side_arrays_no_check', + 'type': '<(component)', + 'defines': [ + 'GLES2_IMPL_IMPLEMENTATION', + 'GLES2_SUPPORT_CLIENT_SIDE_ARRAYS=1', + 'GLES2_CONFORMANCE_TESTS=1', + ], + 'dependencies': [ + '../base/base.gyp:base', + 'command_buffer/command_buffer.gyp:gles2_utils', + 'gles2_cmd_helper', + ], + 'all_dependent_settings': { + 'include_dirs': [ + # For GLES2/gl2.h + '<(DEPTH)/third_party/khronos', + ], + }, + 'sources': [ + '<@(gles2_implementation_source_files)', + ], + }, + { + # Stub to expose gles2_implemenation in C instead of C++. + # so GLES2 C programs can work with no changes. + 'target_name': 'gles2_c_lib', + 'type': '<(component)', + 'dependencies': [ + '../base/base.gyp:base', + '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', + 'command_buffer/command_buffer.gyp:gles2_utils', + 'gles2_implementation', + ], + 'defines': [ + 'GLES2_C_LIB_IMPLEMENTATION', + ], + 'sources': [ + '<@(gles2_c_lib_source_files)', + ], + }, + { + # Same as gles2_c_lib except with no parameter checking. Required for + # OpenGL ES 2.0 conformance tests. + 'target_name': 'gles2_c_lib_nocheck', + 'type': '<(component)', + 'defines': [ + 'GLES2_C_LIB_IMPLEMENTATION', + 'GLES2_CONFORMANCE_TESTS=1', + ], + 'dependencies': [ + '../base/base.gyp:base', + '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', + 'command_buffer/command_buffer.gyp:gles2_utils', + 'gles2_implementation_client_side_arrays_no_check', + ], + 'sources': [ + '<@(gles2_c_lib_source_files)', + ], + }, + { + 'target_name': 'gpu_unittests', + 'type': 'executable', + 'dependencies': [ + '../base/base.gyp:base', + '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', + '../testing/gmock.gyp:gmock', + '../testing/gmock.gyp:gmock_main', + '../testing/gtest.gyp:gtest', + '../third_party/angle/src/build_angle.gyp:translator_glsl', + '../ui/gfx/gl/gl.gyp:gl', + '../ui/ui.gyp:ui', + 'command_buffer/command_buffer.gyp:gles2_utils', + 'command_buffer_client', + 'command_buffer_common', + 'command_buffer_service', + 'gpu_unittest_utils', + 'gles2_implementation_client_side_arrays', + 'gles2_cmd_helper', + ], + 'defines': [ + 'GLES2_C_LIB_IMPLEMENTATION', + ], + 'sources': [ + '<@(gles2_c_lib_source_files)', + 'command_buffer/client/client_test_helper.cc', + 'command_buffer/client/client_test_helper.h', + 'command_buffer/client/cmd_buffer_helper_test.cc', + 'command_buffer/client/fenced_allocator_test.cc', + 'command_buffer/client/gles2_implementation_unittest.cc', + 'command_buffer/client/mapped_memory_unittest.cc', + 'command_buffer/client/program_info_manager_unittest.cc', + 'command_buffer/client/ring_buffer_test.cc', + 'command_buffer/client/transfer_buffer_unittest.cc', + 'command_buffer/common/bitfield_helpers_test.cc', + 'command_buffer/common/command_buffer_mock.cc', + 'command_buffer/common/command_buffer_mock.h', + 'command_buffer/common/command_buffer_shared_test.cc', + 'command_buffer/common/gles2_cmd_format_test.cc', + 'command_buffer/common/gles2_cmd_format_test_autogen.h', + 'command_buffer/common/gles2_cmd_utils_unittest.cc', + 'command_buffer/common/id_allocator_test.cc', + 'command_buffer/common/trace_event.h', + 'command_buffer/common/unittest_main.cc', + 'command_buffer/service/buffer_manager_unittest.cc', + 'command_buffer/service/cmd_parser_test.cc', + 'command_buffer/service/common_decoder_unittest.cc', + 'command_buffer/service/context_group_unittest.cc', + 'command_buffer/service/feature_info_unittest.cc', + 'command_buffer/service/framebuffer_manager_unittest.cc', + 'command_buffer/service/gles2_cmd_decoder_unittest.cc', + 'command_buffer/service/gles2_cmd_decoder_unittest_1.cc', + 'command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h', + 'command_buffer/service/gles2_cmd_decoder_unittest_2.cc', + 'command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h', + 'command_buffer/service/gles2_cmd_decoder_unittest_3.cc', + 'command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h', + 'command_buffer/service/gles2_cmd_decoder_unittest_base.cc', + 'command_buffer/service/gles2_cmd_decoder_unittest_base.h', + 'command_buffer/service/gpu_scheduler_unittest.cc', + 'command_buffer/service/id_manager_unittest.cc', + 'command_buffer/service/mocks.cc', + 'command_buffer/service/mocks.h', + 'command_buffer/service/program_manager_unittest.cc', + 'command_buffer/service/renderbuffer_manager_unittest.cc', + 'command_buffer/service/shader_manager_unittest.cc', + 'command_buffer/service/shader_translator_unittest.cc', + 'command_buffer/service/stream_texture_mock.cc', + 'command_buffer/service/stream_texture_mock.h', + 'command_buffer/service/stream_texture_manager_mock.cc', + 'command_buffer/service/stream_texture_manager_mock.h', + 'command_buffer/service/test_helper.cc', + 'command_buffer/service/test_helper.h', + 'command_buffer/service/texture_manager_unittest.cc', + 'command_buffer/service/vertex_attrib_manager_unittest.cc', + ], + }, + { + 'target_name': 'gpu_unittest_utils', + 'type': 'static_library', + 'dependencies': [ + '../testing/gmock.gyp:gmock', + '../testing/gtest.gyp:gtest', + '../ui/gfx/gl/gl.gyp:gl', + ], + 'include_dirs': [ + '..', + '<(DEPTH)/third_party/khronos', + ], + 'sources': [ + 'command_buffer/common/gl_mock.h', + 'command_buffer/common/gl_mock.cc', + 'command_buffer/service/gles2_cmd_decoder_mock.cc', + 'command_buffer/service/gles2_cmd_decoder_mock.cc', + ], + }, + ], +} diff --git a/gpu/gpu_export.h b/gpu/gpu_export.h new file mode 100644 index 0000000..91f35e2 --- /dev/null +++ b/gpu/gpu_export.h @@ -0,0 +1,26 @@ +// Copyright (c) 2012 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. + +#ifndef GPU_GPU_EXPORT_H_ +#define GPU_GPU_EXPORT_H_ +#pragma once + +#if defined(COMPONENT_BUILD) +#if defined(WIN32) + +#if defined(GPU_IMPLEMENTATION) +#define GPU_EXPORT __declspec(dllexport) +#else +#define GPU_EXPORT __declspec(dllimport) +#endif // defined(GPU_IMPLEMENTATION) + +#else // defined(WIN32) +#define GPU_EXPORT __attribute__((visibility("default"))) +#endif + +#else // defined(COMPONENT_BUILD) +#define GPU_EXPORT +#endif + +#endif // GPU_GPU_EXPORT_H_ diff --git a/gpu/gpu_ipc.gypi b/gpu/gpu_ipc.gypi index 65bc854..9e583d0 100644 --- a/gpu/gpu_ipc.gypi +++ b/gpu/gpu_ipc.gypi @@ -4,8 +4,7 @@ { 'dependencies': [ - 'gles2_c_lib', - '../base/base.gyp:base', + '../ipc/ipc.gyp:ipc', ], 'include_dirs': [ '..', diff --git a/gpu/ipc/gpu_command_buffer_traits.h b/gpu/ipc/gpu_command_buffer_traits.h index 2237c1e9..12f1306 100644 --- a/gpu/ipc/gpu_command_buffer_traits.h +++ b/gpu/ipc/gpu_command_buffer_traits.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 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. @@ -7,11 +7,12 @@ #include "ipc/ipc_message_utils.h" #include "gpu/command_buffer/common/command_buffer.h" +#include "gpu/gpu_export.h" namespace IPC { template <> -struct ParamTraits<gpu::CommandBuffer::State> { +struct GPU_EXPORT ParamTraits<gpu::CommandBuffer::State> { typedef gpu::CommandBuffer::State param_type; static void Write(Message* m, const param_type& p); static bool Read(const Message* m, void** iter, param_type* p); diff --git a/ppapi/ppapi_shared.gypi b/ppapi/ppapi_shared.gypi index 56df78c1..eca9536 100644 --- a/ppapi/ppapi_shared.gypi +++ b/ppapi/ppapi_shared.gypi @@ -22,6 +22,7 @@ '../base/base.gyp:base_i18n', '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', '../build/temp_gyp/googleurl.gyp:googleurl', + '../gpu/gpu.gyp:command_buffer_client', '../gpu/gpu.gyp:gles2_implementation', '../net/net.gyp:net', '../skia/skia.gyp:skia', |