summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service
diff options
context:
space:
mode:
authorrvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-02 19:11:44 +0000
committerrvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-02 19:11:44 +0000
commit183b60aae43ff5ef5556e7debd9480a96ce5dd46 (patch)
tree4b9910ef4399051b5c2717133094ff7719f32932 /gpu/command_buffer/service
parent22d63ebbd65ee881edf1143f4a2e4f38f3f4ea39 (diff)
downloadchromium_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
Diffstat (limited to 'gpu/command_buffer/service')
-rw-r--r--gpu/command_buffer/service/buffer_manager.h5
-rw-r--r--gpu/command_buffer/service/cmd_parser.h5
-rw-r--r--gpu/command_buffer/service/command_buffer_service.h2
-rw-r--r--gpu/command_buffer/service/common_decoder.h7
-rw-r--r--gpu/command_buffer/service/context_group.h3
-rw-r--r--gpu/command_buffer/service/feature_info.h3
-rw-r--r--gpu/command_buffer/service/framebuffer_manager.h7
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder.h2
-rw-r--r--gpu/command_buffer/service/gpu_scheduler.h7
-rw-r--r--gpu/command_buffer/service/id_manager.h5
-rw-r--r--gpu/command_buffer/service/program_manager.h5
-rw-r--r--gpu/command_buffer/service/renderbuffer_manager.h6
-rw-r--r--gpu/command_buffer/service/shader_manager.h7
-rw-r--r--gpu/command_buffer/service/shader_translator.h6
-rw-r--r--gpu/command_buffer/service/texture_manager.h5
-rw-r--r--gpu/command_buffer/service/vertex_attrib_manager.h5
16 files changed, 48 insertions, 32 deletions
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 {