summaryrefslogtreecommitdiffstats
path: root/ppapi/cpp/dev/graphics_2d_dev.h
blob: 3dc8c7190ae8cbc1341a12908f1ff3c0a4a16ff4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef PPAPI_CPP_DEV_GRAPHICS_2D_DEV_H_
#define PPAPI_CPP_DEV_GRAPHICS_2D_DEV_H_

#include "ppapi/cpp/graphics_2d.h"

namespace pp {

// Graphics2DDev is a version of Graphics2D that exposes under-development  APIs
// for HiDPI
class Graphics2D_Dev : public Graphics2D {
 public:
  /// Default constructor for creating an is_null()
  /// <code>Graphics2D_Dev</code> object.
  Graphics2D_Dev() : Graphics2D() {}

  // Constructor for creating a <code>Graphics2DDev</code> object from an
  // existing <code>Graphics2D</code> object.
  Graphics2D_Dev(const Graphics2D& other) : Graphics2D(other) {}

  virtual ~Graphics2D_Dev() {}

  /// Returns true if SetScale and GetScale are supported. False if not.
  static bool SupportsScale();

  /// SetScale() sets the scale factor that will be applied when painting the
  /// graphics context onto the output device. Typically, if rendering at device
  /// resolution is desired, the context would be created with the width and
  /// height scaled up by the view's GetDeviceScale and SetScale called with a
  /// scale of 1.0 / GetDeviceScale(). For example, if the view resource passed
  /// to DidChangeView has a rectangle of (w=200, h=100) and a device scale of
  /// 2.0, one would call Create with a size of (w=400, h=200) and then call
  /// SetScale with 0.5. One would then treat each pixel in the context as a
  /// single device pixel.
  ///
  /// @param[in] scale The scale to apply when painting.
  ///
  /// @return Returns <code>true</code> on success or <code>false</code>
  /// if the resource is invalid or the scale factor is 0 or less.
  bool SetScale(float scale);

  /// GetScale() gets the scale factor that will be applied when painting the
  /// graphics context onto the output device.
  ///
  /// @return Returns the scale factor for the graphics context. If the resource
  /// is invalid, 0.0 will be returned.
  float GetScale();
};

}  // namespace pp

#endif  // PPAPI_CPP_DEV_GRAPHICS_2D_DEV_H_