Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(319)

Side by Side Diff: services/gfx/compositor/render/render_image.cc

Issue 1776643004: Mozart: Specify texture origin explicitly. (Closed) Base URL: git@github.com:domokit/mojo.git@moz-3
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « services/gfx/compositor/render/render_image.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "services/gfx/compositor/render/render_image.h" 5 #include "services/gfx/compositor/render/render_image.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "mojo/skia/ganesh_image_factory.h" 10 #include "mojo/skia/ganesh_image_factory.h"
(...skipping 15 matching lines...) Expand all
26 scoped_refptr<base::TaskRunner> const task_runner_; 26 scoped_refptr<base::TaskRunner> const task_runner_;
27 base::Closure const release_task_; 27 base::Closure const release_task_;
28 }; 28 };
29 29
30 class RenderImage::Generator : public mojo::skia::MailboxTextureImageGenerator { 30 class RenderImage::Generator : public mojo::skia::MailboxTextureImageGenerator {
31 public: 31 public:
32 Generator(const std::shared_ptr<Releaser>& releaser, 32 Generator(const std::shared_ptr<Releaser>& releaser,
33 const GLbyte mailbox_name[GL_MAILBOX_SIZE_CHROMIUM], 33 const GLbyte mailbox_name[GL_MAILBOX_SIZE_CHROMIUM],
34 GLuint sync_point, 34 GLuint sync_point,
35 uint32_t width, 35 uint32_t width,
36 uint32_t height) 36 uint32_t height,
37 : MailboxTextureImageGenerator(mailbox_name, sync_point, width, height), 37 GrSurfaceOrigin origin)
38 : MailboxTextureImageGenerator(mailbox_name,
39 sync_point,
40 width,
41 height,
42 origin),
38 releaser_(releaser) { 43 releaser_(releaser) {
39 DCHECK(releaser_); 44 DCHECK(releaser_);
40 } 45 }
41 46
42 ~Generator() override {} 47 ~Generator() override {}
43 48
44 private: 49 private:
45 std::shared_ptr<Releaser> releaser_; 50 std::shared_ptr<Releaser> releaser_;
46 }; 51 };
47 52
48 RenderImage::RenderImage(const skia::RefPtr<SkImage>& image, 53 RenderImage::RenderImage(const skia::RefPtr<SkImage>& image,
49 const std::shared_ptr<Releaser>& releaser) 54 const std::shared_ptr<Releaser>& releaser)
50 : image_(image), releaser_(releaser) { 55 : image_(image), releaser_(releaser) {
51 DCHECK(image_); 56 DCHECK(image_);
52 DCHECK(releaser_); 57 DCHECK(releaser_);
53 } 58 }
54 59
55 RenderImage::~RenderImage() {} 60 RenderImage::~RenderImage() {}
56 61
57 std::shared_ptr<RenderImage> RenderImage::CreateFromMailboxTexture( 62 std::shared_ptr<RenderImage> RenderImage::CreateFromMailboxTexture(
58 const GLbyte mailbox_name[GL_MAILBOX_SIZE_CHROMIUM], 63 const GLbyte mailbox_name[GL_MAILBOX_SIZE_CHROMIUM],
59 GLuint sync_point, 64 GLuint sync_point,
60 uint32_t width, 65 uint32_t width,
61 uint32_t height, 66 uint32_t height,
67 mojo::gfx::composition::MailboxTextureResource::Origin origin,
62 const scoped_refptr<base::TaskRunner>& task_runner, 68 const scoped_refptr<base::TaskRunner>& task_runner,
63 const base::Closure& release_task) { 69 const base::Closure& release_task) {
64 std::shared_ptr<Releaser> releaser = 70 std::shared_ptr<Releaser> releaser =
65 std::make_shared<Releaser>(task_runner, release_task); 71 std::make_shared<Releaser>(task_runner, release_task);
66 skia::RefPtr<SkImage> image = skia::AdoptRef(SkImage::NewFromGenerator( 72 skia::RefPtr<SkImage> image = skia::AdoptRef(SkImage::NewFromGenerator(
67 new Generator(releaser, mailbox_name, sync_point, width, height))); 73 new Generator(releaser, mailbox_name, sync_point, width, height,
74 origin == mojo::gfx::composition::MailboxTextureResource::
75 Origin::BOTTOM_LEFT
76 ? kBottomLeft_GrSurfaceOrigin
77 : kTopLeft_GrSurfaceOrigin)));
68 if (!image) 78 if (!image)
69 return nullptr; 79 return nullptr;
70 80
71 return std::make_shared<RenderImage>(image, releaser); 81 return std::make_shared<RenderImage>(image, releaser);
72 } 82 }
73 83
74 } // namespace compositor 84 } // namespace compositor
OLDNEW
« no previous file with comments | « services/gfx/compositor/render/render_image.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698