12767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org/*
22767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org *  Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
32767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org *
42767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org *  Use of this source code is governed by a BSD-style license
52767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org *  that can be found in the LICENSE file in the root of the source
62767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org *  tree. An additional intellectual property rights grant can be found
72767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org *  in the file PATENTS.  All contributing project authors may
82767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org *  be found in the AUTHORS file in the root of the source tree.
92767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org */
102767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org
112767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org#include "webrtc/modules/desktop_capture/mouse_cursor.h"
122767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org
13f2aafe4355c4b7ecbd122798f08a5c5ec5d2693ahenrike@webrtc.org#include <assert.h>
14f2aafe4355c4b7ecbd122798f08a5c5ec5d2693ahenrike@webrtc.org
152767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org#include "webrtc/modules/desktop_capture/desktop_frame.h"
162767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org
172767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.orgnamespace webrtc {
182767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org
198ae72560dd67a59922a49bfb7808f2290c07991dsergeyu@chromium.orgMouseCursor::MouseCursor() {}
208ae72560dd67a59922a49bfb7808f2290c07991dsergeyu@chromium.org
212767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.orgMouseCursor::MouseCursor(DesktopFrame* image, const DesktopVector& hotspot)
222767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org    : image_(image),
232767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org      hotspot_(hotspot) {
242767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org  assert(0 <= hotspot_.x() && hotspot_.x() <= image_->size().width());
252767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org  assert(0 <= hotspot_.y() && hotspot_.y() <= image_->size().height());
262767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org}
272767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org
282767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.orgMouseCursor::~MouseCursor() {}
292767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org
302df89c0c8b6416c69d70da5f29615733986a0716sergeyu@chromium.org// static
312df89c0c8b6416c69d70da5f29615733986a0716sergeyu@chromium.orgMouseCursor* MouseCursor::CopyOf(const MouseCursor& cursor) {
32fb4e256d497df573ee5748d0316aece38a1f6919sergeyu@chromium.org  return cursor.image()
33fb4e256d497df573ee5748d0316aece38a1f6919sergeyu@chromium.org             ? new MouseCursor(BasicDesktopFrame::CopyOf(*cursor.image()),
34fb4e256d497df573ee5748d0316aece38a1f6919sergeyu@chromium.org                               cursor.hotspot())
35fb4e256d497df573ee5748d0316aece38a1f6919sergeyu@chromium.org             : new MouseCursor();
362df89c0c8b6416c69d70da5f29615733986a0716sergeyu@chromium.org}
372df89c0c8b6416c69d70da5f29615733986a0716sergeyu@chromium.org
382767b53f666249dee32688f919b90022dcc60ccfsergeyu@chromium.org}  // namespace webrtc
39