Chromium Code Reviews| Index: cc/CCResourceProvider.cpp |
| diff --git a/cc/CCResourceProvider.cpp b/cc/CCResourceProvider.cpp |
| index 4c5876938b4f32c0ef7e1e2f69b862a9bc331b9b..9e48e3511ef8827c8814eb5b40f9436076b83d96 100644 |
| --- a/cc/CCResourceProvider.cpp |
| +++ b/cc/CCResourceProvider.cpp |
| @@ -19,7 +19,6 @@ |
| #include "IntRect.h" |
| #include "LayerTextureSubImage.h" |
| #include "ThrottledTextureUploader.h" |
| -#include "UnthrottledTextureUploader.h" |
| #include <public/WebGraphicsContext3D.h> |
| #include <wtf/HashSet.h> |
| @@ -27,6 +26,15 @@ using WebKit::WebGraphicsContext3D; |
| namespace cc { |
| +class SoftwareTextureUploader : public TextureUploader { |
|
nduca
2012/09/20 18:34:17
One class per file, please.
piman
2012/09/20 18:48:42
FYI, in chrome code having multiple private classe
|
| +public: |
| + virtual bool isBusy() OVERRIDE { return false; } |
| + virtual double estimatedTexturesPerSecond() { return std::numeric_limits<double>::max(); } |
| + virtual void beginUploads() OVERRIDE { } |
| + virtual void endUploads() OVERRIDE { } |
| + virtual void uploadTexture(CCResourceProvider* resourceProvider, Parameters upload) OVERRIDE { upload.texture->updateRect(resourceProvider, upload.sourceRect, upload.destOffset); } |
| +}; |
| + |
| static GC3Denum textureToStorageFormat(GC3Denum textureFormat) |
| { |
| GC3Denum storageFormat = Extensions3D::RGBA8_OES; |
| @@ -49,10 +57,10 @@ static bool isTextureFormatSupportedForStorage(GC3Denum format) |
| return (format == GraphicsContext3D::RGBA || format == Extensions3D::BGRA_EXT); |
| } |
| -PassOwnPtr<CCResourceProvider> CCResourceProvider::create(CCGraphicsContext* context, TextureUploaderOption option) |
| +PassOwnPtr<CCResourceProvider> CCResourceProvider::create(CCGraphicsContext* context) |
| { |
| OwnPtr<CCResourceProvider> resourceProvider(adoptPtr(new CCResourceProvider(context))); |
| - if (!resourceProvider->initialize(option)) |
| + if (!resourceProvider->initialize()) |
| return nullptr; |
| return resourceProvider.release(); |
| } |
| @@ -389,13 +397,13 @@ CCResourceProvider::CCResourceProvider(CCGraphicsContext* context) |
| { |
| } |
| -bool CCResourceProvider::initialize(TextureUploaderOption textureUploaderOption) |
| +bool CCResourceProvider::initialize() |
| { |
| ASSERT(CCProxy::isImplThread()); |
| WebGraphicsContext3D* context3d = m_context->context3D(); |
| if (!context3d) { |
| m_maxTextureSize = INT_MAX; |
| - m_textureUploader = UnthrottledTextureUploader::create(); |
| + m_textureUploader = adoptPtr(new SoftwareTextureUploader); |
| // FIXME: Implement this path for software compositing. |
| return false; |
| @@ -424,10 +432,7 @@ bool CCResourceProvider::initialize(TextureUploaderOption textureUploaderOption) |
| m_texSubImage = adoptPtr(new LayerTextureSubImage(useMapSub)); |
| m_textureCopier = AcceleratedTextureCopier::create(context3d, useBindUniform); |
| - if (textureUploaderOption == ThrottledUploader) |
| - m_textureUploader = ThrottledTextureUploader::create(context3d); |
| - else |
| - m_textureUploader = UnthrottledTextureUploader::create(); |
| + m_textureUploader = ThrottledTextureUploader::create(context3d); |
| GLC(context3d, context3d->getIntegerv(GraphicsContext3D::MAX_TEXTURE_SIZE, &m_maxTextureSize)); |
| return true; |
| } |