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

Side by Side Diff: remoting/client/jni/jni_frame_consumer.h

Issue 23440046: Remove dependency on Skia from chromoting client. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « remoting/client/frame_producer.h ('k') | remoting/client/jni/jni_frame_consumer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #ifndef REMOTING_CLIENT_JNI_JNI_FRAME_CONSUMER_H_ 5 #ifndef REMOTING_CLIENT_JNI_JNI_FRAME_CONSUMER_H_
6 #define REMOTING_CLIENT_JNI_JNI_FRAME_CONSUMER_H_ 6 #define REMOTING_CLIENT_JNI_JNI_FRAME_CONSUMER_H_
7 7
8 #include "remoting/client/frame_consumer.h" 8 #include "remoting/client/frame_consumer.h"
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
11 12
12 namespace webrtc { 13 namespace webrtc {
13 class DesktopFrame; 14 class DesktopFrame;
14 } // namespace webrtc 15 } // namespace webrtc
15 16
16 namespace remoting { 17 namespace remoting {
17 class ChromotingJniRuntime; 18 class ChromotingJniRuntime;
18 class FrameProducer; 19 class FrameProducer;
19 20
20 // FrameConsumer implementation that draws onto a JNI direct byte buffer. 21 // FrameConsumer implementation that draws onto a JNI direct byte buffer.
21 class JniFrameConsumer : public FrameConsumer { 22 class JniFrameConsumer : public FrameConsumer {
22 public: 23 public:
23 // The instance does not take ownership of |jni_runtime|. 24 // The instance does not take ownership of |jni_runtime|.
24 explicit JniFrameConsumer(ChromotingJniRuntime* jni_runtime); 25 explicit JniFrameConsumer(ChromotingJniRuntime* jni_runtime);
25 26
26 virtual ~JniFrameConsumer(); 27 virtual ~JniFrameConsumer();
27 28
28 // This must be called once before the producer's source size is set. 29 // This must be called once before the producer's source size is set.
29 void set_frame_producer(FrameProducer* producer); 30 void set_frame_producer(FrameProducer* producer);
30 31
31 // FrameConsumer implementation. 32 // FrameConsumer implementation.
32 virtual void ApplyBuffer(const SkISize& view_size, 33 virtual void ApplyBuffer(const webrtc::DesktopSize& view_size,
33 const SkIRect& clip_area, 34 const webrtc::DesktopRect& clip_area,
34 webrtc::DesktopFrame* buffer, 35 webrtc::DesktopFrame* buffer,
35 const SkRegion& region) OVERRIDE; 36 const webrtc::DesktopRegion& region) OVERRIDE;
36 virtual void ReturnBuffer(webrtc::DesktopFrame* buffer) OVERRIDE; 37 virtual void ReturnBuffer(webrtc::DesktopFrame* buffer) OVERRIDE;
37 virtual void SetSourceSize(const SkISize& source_size, 38 virtual void SetSourceSize(const webrtc::DesktopSize& source_size,
38 const SkIPoint& dpi) OVERRIDE; 39 const webrtc::DesktopVector& dpi) OVERRIDE;
39 40
40 private: 41 private:
41 // Variables are to be used from the display thread. 42 // Variables are to be used from the display thread.
42 43
43 // Used to obtain task runner references and make calls to Java methods. 44 // Used to obtain task runner references and make calls to Java methods.
44 ChromotingJniRuntime* jni_runtime_; 45 ChromotingJniRuntime* jni_runtime_;
45 46
46 // Whether we're currently in the constructor, and should deallocate the 47 // Whether we're currently in the constructor, and should deallocate the
47 // buffer instead of passing it back to the producer. 48 // buffer instead of passing it back to the producer.
48 bool in_dtor_; 49 bool in_dtor_;
49 50
50 FrameProducer* frame_producer_; 51 FrameProducer* frame_producer_;
51 SkISize view_size_; 52 webrtc::DesktopSize view_size_;
52 SkIRect clip_area_; 53 webrtc::DesktopRect clip_area_;
53 54
54 // If |provide_buffer_|, allocates a new buffer of |view_size_|, informs 55 // If |provide_buffer_|, allocates a new buffer of |view_size_|, informs
55 // Java about it, and tells the producer to draw onto it. Otherwise, no-op. 56 // Java about it, and tells the producer to draw onto it. Otherwise, no-op.
56 void AllocateBuffer(); 57 void AllocateBuffer();
57 58
58 DISALLOW_COPY_AND_ASSIGN(JniFrameConsumer); 59 DISALLOW_COPY_AND_ASSIGN(JniFrameConsumer);
59 }; 60 };
60 61
61 } // namespace remoting 62 } // namespace remoting
62 63
63 #endif 64 #endif
OLDNEW
« no previous file with comments | « remoting/client/frame_producer.h ('k') | remoting/client/jni/jni_frame_consumer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698