Commit 195e51fe authored by rvargas@google.com's avatar rvargas@google.com

Revert 124702 - GPU: Buld most of the gpu as a single DLL.

BUG=114261
TEST=none
Review URL: https://chromiumcodereview.appspot.com/9514020

TBR=rvargas@google.com
Review URL: https://chromiumcodereview.appspot.com/9582024

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124715 0039d316-1c4b-4281-b951-d872f2087c98
parent 9fe5e612
include_rules = [ include_rules = [
"+third_party/angle", "+third_party/angle",
"+../../gpu_export.h",
"+../command_buffer", "+../command_buffer",
"+../client", "+../client",
"+../common", "+../common",
......
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
#include <string.h> #include <string.h>
#include <time.h> #include <time.h>
#include "../../gpu_export.h"
#include "../common/logging.h" #include "../common/logging.h"
#include "../common/constants.h" #include "../common/constants.h"
#include "../common/cmd_buffer_common.h" #include "../common/cmd_buffer_common.h"
...@@ -33,7 +32,7 @@ namespace gpu { ...@@ -33,7 +32,7 @@ namespace gpu {
// //
// helper.WaitForToken(token); // this doesn't return until the first two // helper.WaitForToken(token); // this doesn't return until the first two
// // commands have been executed. // // commands have been executed.
class GPU_EXPORT CommandBufferHelper { class CommandBufferHelper {
public: public:
explicit CommandBufferHelper(CommandBuffer* command_buffer); explicit CommandBufferHelper(CommandBuffer* command_buffer);
virtual ~CommandBufferHelper(); virtual ~CommandBufferHelper();
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
...@@ -8,8 +8,6 @@ ...@@ -8,8 +8,6 @@
#define GPU_COMMAND_BUFFER_CLIENT_FENCED_ALLOCATOR_H_ #define GPU_COMMAND_BUFFER_CLIENT_FENCED_ALLOCATOR_H_
#include <vector> #include <vector>
#include "../../gpu_export.h"
#include "../common/logging.h" #include "../common/logging.h"
#include "../common/types.h" #include "../common/types.h"
...@@ -26,7 +24,7 @@ class CommandBufferHelper; ...@@ -26,7 +24,7 @@ class CommandBufferHelper;
// environment which is multi-process, this class isn't "thread safe", because // 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 // 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). // (see http://www.corp.google.com/eng/doc/cpp_primer.html#thread_safety).
class GPU_EXPORT FencedAllocator { class FencedAllocator {
public: public:
typedef unsigned int Offset; typedef unsigned int Offset;
// Invalid offset, returned by Alloc in case of failure. // Invalid offset, returned by Alloc in case of failure.
......
// 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_
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include "../common/scoped_ptr.h" #include "../common/scoped_ptr.h"
#include "../client/gles2_cmd_helper.h" #include "../client/gles2_cmd_helper.h"
#include "../client/ring_buffer.h" #include "../client/ring_buffer.h"
#include "gles2_impl_export.h"
#if !defined(NDEBUG) && !defined(__native_client__) && !defined(GLES2_CONFORMANCE_TESTS) // NOLINT #if !defined(NDEBUG) && !defined(__native_client__) && !defined(GLES2_CONFORMANCE_TESTS) // NOLINT
#if defined(GLES2_INLINE_OPTIMIZATION) #if defined(GLES2_INLINE_OPTIMIZATION)
...@@ -105,7 +104,7 @@ class IdHandlerInterface { ...@@ -105,7 +104,7 @@ class IdHandlerInterface {
// be had by changing your code to use command buffers directly by using the // 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 // GLES2CmdHelper but that entails changing your code to use and deal with
// shared memory and synchronization issues. // shared memory and synchronization issues.
class GLES2_IMPL_EXPORT GLES2Implementation { class GLES2Implementation {
public: public:
// Stores client side cached GL state. // Stores client side cached GL state.
struct GLState { struct GLState {
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
#include <vector> #include <vector>
#include "../../gpu_export.h"
#include "../common/types.h" #include "../common/types.h"
#include "../client/fenced_allocator.h" #include "../client/fenced_allocator.h"
#include "../common/buffer.h" #include "../common/buffer.h"
...@@ -17,7 +16,7 @@ namespace gpu { ...@@ -17,7 +16,7 @@ namespace gpu {
class CommandBufferHelper; class CommandBufferHelper;
// Manages a shared memory segment. // Manages a shared memory segment.
class GPU_EXPORT MemoryChunk { class MemoryChunk {
public: public:
MemoryChunk(int32 shm_id, gpu::Buffer shm, CommandBufferHelper* helper); MemoryChunk(int32 shm_id, gpu::Buffer shm, CommandBufferHelper* helper);
...@@ -105,7 +104,7 @@ class GPU_EXPORT MemoryChunk { ...@@ -105,7 +104,7 @@ class GPU_EXPORT MemoryChunk {
}; };
// Manages MemoryChucks. // Manages MemoryChucks.
class GPU_EXPORT MappedMemoryManager { class MappedMemoryManager {
public: public:
explicit MappedMemoryManager(CommandBufferHelper* helper); explicit MappedMemoryManager(CommandBufferHelper* helper);
......
...@@ -8,8 +8,6 @@ ...@@ -8,8 +8,6 @@
#define GPU_COMMAND_BUFFER_CLIENT_RING_BUFFER_H_ #define GPU_COMMAND_BUFFER_CLIENT_RING_BUFFER_H_
#include <deque> #include <deque>
#include "../../gpu_export.h"
#include "../common/logging.h" #include "../common/logging.h"
#include "../common/types.h" #include "../common/types.h"
...@@ -19,7 +17,7 @@ class CommandBufferHelper; ...@@ -19,7 +17,7 @@ class CommandBufferHelper;
// RingBuffer manages a piece of memory as a ring buffer. Memory is allocated // 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 // with Alloc and then a is freed pending a token with FreePendingToken. Old
// allocations must not be kept past new allocations. // allocations must not be kept past new allocations.
class GPU_EXPORT RingBuffer { class RingBuffer {
public: public:
typedef unsigned int Offset; typedef unsigned int Offset;
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
#ifndef GPU_COMMAND_BUFFER_CLIENT_TRANSFER_BUFFER_H_ #ifndef GPU_COMMAND_BUFFER_CLIENT_TRANSFER_BUFFER_H_
#define 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/buffer.h"
#include "../common/compiler_specific.h" #include "../common/compiler_specific.h"
#include "../common/gles2_cmd_utils.h" #include "../common/gles2_cmd_utils.h"
...@@ -51,7 +50,7 @@ class AlignedRingBuffer : public RingBufferWrapper { ...@@ -51,7 +50,7 @@ class AlignedRingBuffer : public RingBufferWrapper {
}; };
// Interface for managing the transfer buffer. // Interface for managing the transfer buffer.
class GPU_EXPORT TransferBufferInterface { class TransferBufferInterface {
public: public:
TransferBufferInterface() { } TransferBufferInterface() { }
virtual ~TransferBufferInterface() { } virtual ~TransferBufferInterface() { }
...@@ -85,7 +84,7 @@ class GPU_EXPORT TransferBufferInterface { ...@@ -85,7 +84,7 @@ class GPU_EXPORT TransferBufferInterface {
}; };
// Class that manages the transfer buffer. // Class that manages the transfer buffer.
class GPU_EXPORT TransferBuffer : public TransferBufferInterface { class TransferBuffer : public TransferBufferInterface {
public: public:
TransferBuffer(CommandBufferHelper* helper); TransferBuffer(CommandBufferHelper* helper);
virtual ~TransferBuffer(); virtual ~TransferBuffer();
...@@ -157,7 +156,7 @@ class GPU_EXPORT TransferBuffer : public TransferBufferInterface { ...@@ -157,7 +156,7 @@ class GPU_EXPORT TransferBuffer : public TransferBufferInterface {
}; };
// A class that will manage the lifetime of a transferbuffer allocation. // A class that will manage the lifetime of a transferbuffer allocation.
class GPU_EXPORT ScopedTransferBufferPtr { class ScopedTransferBufferPtr {
public: public:
ScopedTransferBufferPtr( ScopedTransferBufferPtr(
unsigned int size, unsigned int size,
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
#ifndef GPU_COMMAND_BUFFER_COMMON_COMMAND_BUFFER_H_ #ifndef GPU_COMMAND_BUFFER_COMMON_COMMAND_BUFFER_H_
#define 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/buffer.h"
#include "../common/constants.h" #include "../common/constants.h"
...@@ -16,7 +15,7 @@ class SharedMemory; ...@@ -16,7 +15,7 @@ class SharedMemory;
namespace gpu { namespace gpu {
// Common interface for CommandBuffer implementations. // Common interface for CommandBuffer implementations.
class GPU_EXPORT CommandBuffer { class CommandBuffer {
public: public:
enum { enum {
kMaxCommandBufferSize = 4 * 1024 * 1024 kMaxCommandBufferSize = 4 * 1024 * 1024
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "../../gpu_export.h"
#include "../common/types.h" #include "../common/types.h"
namespace gpu { namespace gpu {
...@@ -22,7 +21,7 @@ typedef uint32 ResourceId; ...@@ -22,7 +21,7 @@ typedef uint32 ResourceId;
// Invalid resource ID. // Invalid resource ID.
static const ResourceId kInvalidResource = 0u; static const ResourceId kInvalidResource = 0u;
class GPU_EXPORT IdAllocatorInterface { class IdAllocatorInterface {
public: public:
virtual ~IdAllocatorInterface(); virtual ~IdAllocatorInterface();
...@@ -44,7 +43,7 @@ class GPU_EXPORT IdAllocatorInterface { ...@@ -44,7 +43,7 @@ class GPU_EXPORT IdAllocatorInterface {
}; };
// A class to manage the allocation of resource IDs. // A class to manage the allocation of resource IDs.
class GPU_EXPORT IdAllocator : public IdAllocatorInterface { class IdAllocator : public IdAllocatorInterface {
public: public:
IdAllocator(); IdAllocator();
virtual ~IdAllocator(); virtual ~IdAllocator();
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "gpu/command_buffer/service/gl_utils.h" #include "gpu/command_buffer/service/gl_utils.h"
#include "gpu/gpu_export.h"
namespace gpu { namespace gpu {
namespace gles2 { namespace gles2 {
...@@ -22,10 +21,10 @@ namespace gles2 { ...@@ -22,10 +21,10 @@ namespace gles2 {
// //
// NOTE: To support shared resources an instance of this class will need to be // NOTE: To support shared resources an instance of this class will need to be
// shared by multiple GLES2Decoders. // shared by multiple GLES2Decoders.
class GPU_EXPORT BufferManager { class BufferManager {
public: public:
// Info about Buffers currently in the system. // Info about Buffers currently in the system.
class GPU_EXPORT BufferInfo : public base::RefCounted<BufferInfo> { class BufferInfo : public base::RefCounted<BufferInfo> {
public: public:
typedef scoped_refptr<BufferInfo> Ref; typedef scoped_refptr<BufferInfo> Ref;
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
#include "gpu/command_buffer/common/constants.h" #include "gpu/command_buffer/common/constants.h"
#include "gpu/command_buffer/common/cmd_buffer_common.h" #include "gpu/command_buffer/common/cmd_buffer_common.h"
#include "gpu/gpu_export.h"
namespace gpu { namespace gpu {
...@@ -17,7 +16,7 @@ class AsyncAPIInterface; ...@@ -17,7 +16,7 @@ class AsyncAPIInterface;
// Command parser class. This class parses commands from a shared memory // Command parser class. This class parses commands from a shared memory
// buffer, to implement some asynchronous RPC mechanism. // buffer, to implement some asynchronous RPC mechanism.
class GPU_EXPORT CommandParser { class CommandParser {
public: public:
explicit CommandParser(AsyncAPIInterface* handler); explicit CommandParser(AsyncAPIInterface* handler);
......
...@@ -19,7 +19,7 @@ namespace gpu { ...@@ -19,7 +19,7 @@ namespace gpu {
// An object that implements a shared memory command buffer and a synchronous // An object that implements a shared memory command buffer and a synchronous
// API to manage the put and get pointers. // API to manage the put and get pointers.
class GPU_EXPORT CommandBufferService : public CommandBuffer { class CommandBufferService : public CommandBuffer {
public: public:
typedef base::Callback<bool(int32)> GetBufferChangedCallback; typedef base::Callback<bool(int32)> GetBufferChangedCallback;
CommandBufferService(); CommandBufferService();
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
#include "base/memory/linked_ptr.h" #include "base/memory/linked_ptr.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "gpu/command_buffer/service/cmd_parser.h" #include "gpu/command_buffer/service/cmd_parser.h"
#include "gpu/gpu_export.h"
namespace gpu { namespace gpu {
...@@ -19,7 +18,7 @@ class CommandBufferEngine; ...@@ -19,7 +18,7 @@ class CommandBufferEngine;
// This class is a helper base class for implementing the common parts of the // This class is a helper base class for implementing the common parts of the
// o3d/gl2 command buffer decoder. // o3d/gl2 command buffer decoder.
class GPU_EXPORT CommonDecoder : NON_EXPORTED_BASE(public AsyncAPIInterface) { class CommonDecoder : public AsyncAPIInterface {
public: public:
typedef error::Error Error; typedef error::Error Error;
...@@ -47,7 +46,7 @@ class GPU_EXPORT CommonDecoder : NON_EXPORTED_BASE(public AsyncAPIInterface) { ...@@ -47,7 +46,7 @@ class GPU_EXPORT CommonDecoder : NON_EXPORTED_BASE(public AsyncAPIInterface) {
// arbitary size, the service puts the string in a bucket. The client can // 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 // then query the size of a bucket and request sections of the bucket to
// be passed across shared memory. // be passed across shared memory.
class GPU_EXPORT Bucket { class Bucket {
public: public:
Bucket(); Bucket();
~Bucket(); ~Bucket();
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_format.h"
#include "gpu/command_buffer/service/gles2_cmd_validation.h" #include "gpu/command_buffer/service/gles2_cmd_validation.h"
#include "gpu/command_buffer/service/feature_info.h" #include "gpu/command_buffer/service/feature_info.h"
#include "gpu/gpu_export.h"
namespace gpu { namespace gpu {
...@@ -33,7 +32,7 @@ struct DisallowedFeatures; ...@@ -33,7 +32,7 @@ struct DisallowedFeatures;
// A Context Group helps manage multiple GLES2Decoders that share // A Context Group helps manage multiple GLES2Decoders that share
// resources. // resources.
class GPU_EXPORT ContextGroup : public base::RefCounted<ContextGroup> { class ContextGroup : public base::RefCounted<ContextGroup> {
public: public:
typedef scoped_refptr<ContextGroup> Ref; typedef scoped_refptr<ContextGroup> Ref;
......
...@@ -9,13 +9,12 @@ ...@@ -9,13 +9,12 @@
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "gpu/command_buffer/service/gles2_cmd_decoder.h" #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
#include "gpu/command_buffer/service/gles2_cmd_validation.h" #include "gpu/command_buffer/service/gles2_cmd_validation.h"
#include "gpu/gpu_export.h"
namespace gpu { namespace gpu {
namespace gles2 { namespace gles2 {
// FeatureInfo records the features that are available for a ContextGroup. // FeatureInfo records the features that are available for a ContextGroup.
class GPU_EXPORT FeatureInfo : public base::RefCounted<FeatureInfo> { class FeatureInfo : public base::RefCounted<FeatureInfo> {
public: public:
typedef scoped_refptr<FeatureInfo> Ref; typedef scoped_refptr<FeatureInfo> Ref;
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
...@@ -12,17 +12,16 @@ ...@@ -12,17 +12,16 @@
#include "gpu/command_buffer/service/gl_utils.h" #include "gpu/command_buffer/service/gl_utils.h"
#include "gpu/command_buffer/service/renderbuffer_manager.h" #include "gpu/command_buffer/service/renderbuffer_manager.h"
#include "gpu/command_buffer/service/texture_manager.h" #include "gpu/command_buffer/service/texture_manager.h"
#include "gpu/gpu_export.h"
namespace gpu { namespace gpu {
namespace gles2 { namespace gles2 {
// This class keeps track of the frambebuffers and their attached renderbuffers // This class keeps track of the frambebuffers and their attached renderbuffers
// so we can correctly clear them. // so we can correctly clear them.
class GPU_EXPORT FramebufferManager { class FramebufferManager {
public: public:
// Info about Framebuffers currently in the system. // Info about Framebuffers currently in the system.
class GPU_EXPORT FramebufferInfo : public base::RefCounted<FramebufferInfo> { class FramebufferInfo : public base::RefCounted<FramebufferInfo> {
public: public:
typedef scoped_refptr<FramebufferInfo> Ref; typedef scoped_refptr<FramebufferInfo> Ref;
......
...@@ -40,7 +40,7 @@ struct DisallowedFeatures { ...@@ -40,7 +40,7 @@ struct DisallowedFeatures {
// This class implements the AsyncAPIInterface interface, decoding GLES2 // This class implements the AsyncAPIInterface interface, decoding GLES2
// commands and calling GL. // commands and calling GL.
class GPU_EXPORT GLES2Decoder : public CommonDecoder { class GLES2Decoder : public CommonDecoder {
public: public:
typedef error::Error Error; typedef error::Error Error;
typedef base::Callback<void(int32 id, const std::string& msg)> MsgCallback; typedef base::Callback<void(int32 id, const std::string& msg)> MsgCallback;
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/cmd_buffer_engine.h"
#include "gpu/command_buffer/service/cmd_parser.h" #include "gpu/command_buffer/service/cmd_parser.h"
#include "gpu/command_buffer/service/gles2_cmd_decoder.h" #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
#include "gpu/gpu_export.h"
namespace gfx { namespace gfx {
class GLFence; class GLFence;
...@@ -28,8 +27,8 @@ namespace gpu { ...@@ -28,8 +27,8 @@ namespace gpu {
// a command buffer and forwarded to a command parser. TODO(apatrick): This // a command buffer and forwarded to a command parser. TODO(apatrick): This
// class should not know about the decoder. Do not add additional dependencies // class should not know about the decoder. Do not add additional dependencies
// on it. // on it.
class GPU_EXPORT GpuScheduler class GpuScheduler
: NON_EXPORTED_BASE(public CommandBufferEngine), : public CommandBufferEngine,
public base::SupportsWeakPtr<GpuScheduler> { public base::SupportsWeakPtr<GpuScheduler> {
public: public:
GpuScheduler(CommandBuffer* command_buffer, GpuScheduler(CommandBuffer* command_buffer,
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/hash_tables.h" #include "base/hash_tables.h"
#include "gpu/command_buffer/service/gl_utils.h" #include "gpu/command_buffer/service/gl_utils.h"
#include "gpu/gpu_export.h"
namespace gpu { namespace gpu {
namespace gles2 { namespace gles2 {
...@@ -17,7 +16,7 @@ namespace gles2 { ...@@ -17,7 +16,7 @@ namespace gles2 {
// //
// NOTE: To support shared resources an instance of this class will // NOTE: To support shared resources an instance of this class will
// need to be shared by multiple GLES2Decoders. // need to be shared by multiple GLES2Decoders.
class GPU_EXPORT IdManager { class IdManager {
public: public:
IdManager(); IdManager();
~IdManager(); ~IdManager();
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#include "gpu/command_buffer/service/common_decoder.h" #include "gpu/command_buffer/service/common_decoder.h"
#include "gpu/command_buffer/service/gl_utils.h" #include "gpu/command_buffer/service/gl_utils.h"
#include "gpu/command_buffer/service/shader_manager.h" #include "gpu/command_buffer/service/shader_manager.h"
#include "gpu/gpu_export.h"
namespace gpu { namespace gpu {
namespace gles2 { namespace gles2 {
...@@ -24,12 +23,12 @@ namespace gles2 { ...@@ -24,12 +23,12 @@ namespace gles2 {
// //
// NOTE: To support shared resources an instance of this class will // NOTE: To support shared resources an instance of this class will
// need to be shared by multiple GLES2Decoders. // need to be shared by multiple GLES2Decoders.
class GPU_EXPORT ProgramManager { class ProgramManager {
public: public:
// This is used to track which attributes a particular program needs // This is used to track which attributes a particular program needs
// so we can verify at glDrawXXX time that every attribute is either disabled // so we can verify at glDrawXXX time that every attribute is either disabled
// or if enabled that it points to a valid source. // or if enabled that it points to a valid source.
class GPU_EXPORT ProgramInfo : public base::RefCounted<ProgramInfo> { class ProgramInfo : public base::RefCounted<ProgramInfo> {
public: public:
typedef scoped_refptr<ProgramInfo> Ref; typedef scoped_refptr<ProgramInfo> Ref;
......
...@@ -10,18 +10,16 @@ ...@@ -10,18 +10,16 @@
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "gpu/command_buffer/service/gl_utils.h" #include "gpu/command_buffer/service/gl_utils.h"
#include "gpu/gpu_export.h"
namespace gpu { namespace gpu {
namespace gles2 { namespace gles2 {
// This class keeps track of the renderbuffers and whether or not they have // This class keeps track of the renderbuffers and whether or not they have
// been cleared. // been cleared.
class GPU_EXPORT RenderbufferManager { class RenderbufferManager {
public: public:
// Info about Renderbuffers currently in the system. // Info about Renderbuffers currently in the system.
class GPU_EXPORT RenderbufferInfo class RenderbufferInfo : public base::RefCounted<RenderbufferInfo> {
: public base::RefCounted<RenderbufferInfo> {
public: public:
typedef scoped_refptr<RenderbufferInfo> Ref; typedef scoped_refptr<RenderbufferInfo> Ref;
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "gpu/command_buffer/service/gl_utils.h" #include "gpu/command_buffer/service/gl_utils.h"
#include "gpu/command_buffer/service/shader_translator.h" #include "gpu/command_buffer/service/shader_translator.h"
#include "gpu/gpu_export.h"
namespace gpu { namespace gpu {
namespace gles2 { namespace gles2 {
...@@ -22,13 +21,13 @@ namespace gles2 { ...@@ -22,13 +21,13 @@ namespace gles2 {
// //
// NOTE: To support shared resources an instance of this class will // NOTE: To support shared resources an instance of this class will
// need to be shared by multiple GLES2Decoders. // need to be shared by multiple GLES2Decoders.
class GPU_EXPORT ShaderManager { class ShaderManager {
public: public:
// This is used to keep the source code for a shader. This is because in order // 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 // to emluate GLES2 the shaders will have to be re-written before passed to
// the underlying OpenGL. But, when the user calls glGetShaderSource they // the underlying OpenGL. But, when the user calls glGetShaderSource they
// should get the source they passed in, not the re-written source. // should get the source they passed in, not the re-written source.
class GPU_EXPORT ShaderInfo : public base::RefCounted<ShaderInfo> { class ShaderInfo : public base::RefCounted<ShaderInfo> {
public: public:
typedef scoped_refptr<ShaderInfo> Ref; typedef scoped_refptr<ShaderInfo> Ref;
typedef ShaderTranslator::VariableInfo VariableInfo; typedef ShaderTranslator::VariableInfo VariableInfo;
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/hash_tables.h" #include "base/hash_tables.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "gpu/gpu_export.h"
#include "third_party/angle/include/GLSLANG/ShaderLang.h" #include "third_party/angle/include/GLSLANG/ShaderLang.h"
namespace gpu { namespace gpu {
...@@ -73,8 +72,7 @@ class ShaderTranslatorInterface { ...@@ -73,8 +72,7 @@ class ShaderTranslatorInterface {
}; };
// Implementation of ShaderTranslatorInterface // Implementation of ShaderTranslatorInterface
class GPU_EXPORT ShaderTranslator class ShaderTranslator : public ShaderTranslatorInterface {
: NON_EXPORTED_BASE(public ShaderTranslatorInterface) {
public: public:
ShaderTranslator(); ShaderTranslator();
virtual ~ShaderTranslator(); virtual ~ShaderTranslator();
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "gpu/command_buffer/service/feature_info.h" #include "gpu/command_buffer/service/feature_info.h"
#include "gpu/command_buffer/service/gl_utils.h" #include "gpu/command_buffer/service/gl_utils.h"
#include "gpu/gpu_export.h"
namespace gpu { namespace gpu {
namespace gles2 { namespace gles2 {
...@@ -24,7 +23,7 @@ class GLES2Decoder; ...@@ -24,7 +23,7 @@ class GLES2Decoder;
// //
// NOTE: To support shared resources an instance of this class will need to be // NOTE: To support shared resources an instance of this class will need to be
// shared by multiple GLES2Decoders. // shared by multiple GLES2Decoders.
class GPU_EXPORT TextureManager { class TextureManager {
public: public:
enum DefaultAndBlackTextures { enum DefaultAndBlackTextures {
kTexture2D, kTexture2D,
...@@ -35,7 +34,7 @@ class GPU_EXPORT TextureManager { ...@@ -35,7 +34,7 @@ class GPU_EXPORT TextureManager {
}; };
// Info about Textures currently in the system. // Info about Textures currently in the system.
class GPU_EXPORT TextureInfo : public base::RefCounted<TextureInfo> { class TextureInfo : public base::RefCounted<TextureInfo> {
public: public:
typedef scoped_refptr<TextureInfo> Ref; typedef scoped_refptr<TextureInfo> Ref;
......
...@@ -8,18 +8,17 @@ ...@@ -8,18 +8,17 @@
#include "build/build_config.h" #include "build/build_config.h"
#include "gpu/command_buffer/service/buffer_manager.h" #include "gpu/command_buffer/service/buffer_manager.h"
#include "gpu/command_buffer/service/gl_utils.h" #include "gpu/command_buffer/service/gl_utils.h"
#include "gpu/gpu_export.h"
namespace gpu { namespace gpu {
namespace gles2 { namespace gles2 {
// Manages vertex attributes. // Manages vertex attributes.
class GPU_EXPORT VertexAttribManager { class VertexAttribManager {
public: public:
// Info about Vertex Attributes. This is used to track what the user currently // 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 // has bound on each Vertex Attribute so that checking can be done at
// glDrawXXX time. // glDrawXXX time.
class GPU_EXPORT VertexAttribInfo { class VertexAttribInfo {
public: public:
typedef std::list<VertexAttribInfo*> VertexAttribInfoList; typedef std::list<VertexAttribInfo*> VertexAttribInfoList;
struct Vec4 { struct Vec4 {
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
'../gpu.gyp:gles2_implementation', '../gpu.gyp:gles2_implementation',
'../../base/base.gyp:base', '../../base/base.gyp:base',
'../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', '../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
'../../ui/gfx/gl/gl.gyp:gl',
'../../ui/ui.gyp:ui', '../../ui/ui.gyp:ui',
], ],
'sources': [ 'sources': [
......
...@@ -33,8 +33,6 @@ ...@@ -33,8 +33,6 @@
'<(DEPTH)/base/base.gyp:base', '<(DEPTH)/base/base.gyp:base',
'<(DEPTH)/gpu/gpu.gyp:gles2_implementation_client_side_arrays_no_check', '<(DEPTH)/gpu/gpu.gyp:gles2_implementation_client_side_arrays_no_check',
'<(DEPTH)/gpu/gpu.gyp:command_buffer_service', '<(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'], 'include_dirs': ['<(DEPTH)/third_party/khronos'],
'sources': [ 'sources': [
......
# 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)',
],
}
This diff is collapsed.
# 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',
],
},
],
}
// 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_
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
{ {
'dependencies': [ 'dependencies': [
'../ipc/ipc.gyp:ipc', 'gles2_c_lib',
'../base/base.gyp:base',
], ],
'include_dirs': [ 'include_dirs': [
'..', '..',
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
...@@ -7,12 +7,11 @@ ...@@ -7,12 +7,11 @@
#include "ipc/ipc_message_utils.h" #include "ipc/ipc_message_utils.h"
#include "gpu/command_buffer/common/command_buffer.h" #include "gpu/command_buffer/common/command_buffer.h"
#include "gpu/gpu_export.h"
namespace IPC { namespace IPC {
template <> template <>
struct GPU_EXPORT ParamTraits<gpu::CommandBuffer::State> { struct ParamTraits<gpu::CommandBuffer::State> {
typedef gpu::CommandBuffer::State param_type; typedef gpu::CommandBuffer::State param_type;
static void Write(Message* m, const param_type& p); static void Write(Message* m, const param_type& p);
static bool Read(const Message* m, void** iter, param_type* p); static bool Read(const Message* m, void** iter, param_type* p);
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
'../base/base.gyp:base_i18n', '../base/base.gyp:base_i18n',
'../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
'../build/temp_gyp/googleurl.gyp:googleurl', '../build/temp_gyp/googleurl.gyp:googleurl',
'../gpu/gpu.gyp:command_buffer_client',
'../gpu/gpu.gyp:gles2_implementation', '../gpu/gpu.gyp:gles2_implementation',
'../net/net.gyp:net', '../net/net.gyp:net',
'../skia/skia.gyp:skia', '../skia/skia.gyp:skia',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment