| Index: gpu/command_buffer/service/texture_definition.cc
|
| diff --git a/gpu/command_buffer/service/texture_definition.cc b/gpu/command_buffer/service/texture_definition.cc
|
| index 24382f0da39734390ccedd940d6aac2d8551afa3..3703f14b5111d9bdd2bf901bc6b629b94b71e73b 100644
|
| --- a/gpu/command_buffer/service/texture_definition.cc
|
| +++ b/gpu/command_buffer/service/texture_definition.cc
|
| @@ -20,8 +20,8 @@ namespace {
|
|
|
| class GLImageSync : public gfx::GLImage {
|
| public:
|
| - explicit GLImageSync(
|
| - const scoped_refptr<NativeImageBuffer>& buffer);
|
| + explicit GLImageSync(const scoped_refptr<NativeImageBuffer>& buffer,
|
| + const gfx::Size& size);
|
|
|
| // Implement GLImage.
|
| virtual void Destroy() OVERRIDE;
|
| @@ -40,12 +40,14 @@ class GLImageSync : public gfx::GLImage {
|
|
|
| private:
|
| scoped_refptr<NativeImageBuffer> buffer_;
|
| + gfx::Size size_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(GLImageSync);
|
| };
|
|
|
| -GLImageSync::GLImageSync(const scoped_refptr<NativeImageBuffer>& buffer)
|
| - : buffer_(buffer) {
|
| +GLImageSync::GLImageSync(const scoped_refptr<NativeImageBuffer>& buffer,
|
| + const gfx::Size& size)
|
| + : buffer_(buffer), size_(size) {
|
| if (buffer)
|
| buffer->AddClient(this);
|
| }
|
| @@ -58,8 +60,7 @@ GLImageSync::~GLImageSync() {
|
| void GLImageSync::Destroy() {}
|
|
|
| gfx::Size GLImageSync::GetSize() {
|
| - NOTREACHED();
|
| - return gfx::Size();
|
| + return size_;
|
| }
|
|
|
| bool GLImageSync::BindTexImage(unsigned target) {
|
| @@ -339,7 +340,10 @@ TextureDefinition::TextureDefinition(
|
| DCHECK(texture->level_infos_[0][0].width);
|
| DCHECK(texture->level_infos_[0][0].height);
|
|
|
| - scoped_refptr<gfx::GLImage> gl_image(new GLImageSync(image_buffer_));
|
| + scoped_refptr<gfx::GLImage> gl_image(
|
| + new GLImageSync(image_buffer_,
|
| + gfx::Size(texture->level_infos_[0][0].width,
|
| + texture->level_infos_[0][0].height)));
|
| texture->SetLevelImage(NULL, target, 0, gl_image);
|
|
|
| // TODO: all levels
|
| @@ -357,7 +361,6 @@ TextureDefinition::TextureDefinition(
|
| std::vector<LevelInfo> infos;
|
| infos.push_back(info);
|
| level_infos_.push_back(infos);
|
| -
|
| }
|
|
|
| TextureDefinition::~TextureDefinition() {
|
| @@ -414,8 +417,15 @@ void TextureDefinition::UpdateTexture(Texture* texture) const {
|
| info.cleared);
|
| }
|
| }
|
| - if (image_buffer_)
|
| - texture->SetLevelImage(NULL, target_, 0, new GLImageSync(image_buffer_));
|
| + if (image_buffer_) {
|
| + texture->SetLevelImage(
|
| + NULL,
|
| + target_,
|
| + 0,
|
| + new GLImageSync(
|
| + image_buffer_,
|
| + gfx::Size(level_infos_[0][0].width, level_infos_[0][0].height)));
|
| + }
|
|
|
| texture->target_ = target_;
|
| texture->SetImmutable(immutable_);
|
|
|