LCOV - code coverage report
Current view: directory - gfx/skia/include/core - SkSize.h (source / functions) Found Hit Coverage
Test: app.info Lines: 3 0 0.0 %
Date: 2012-06-02 Functions: 1 0 0.0 %

       1                 : 
       2                 : /*
       3                 :  * Copyright 2011 Google Inc.
       4                 :  *
       5                 :  * Use of this source code is governed by a BSD-style license that can be
       6                 :  * found in the LICENSE file.
       7                 :  */
       8                 : 
       9                 : 
      10                 : #ifndef SkSize_DEFINED
      11                 : #define SkSize_DEFINED
      12                 : 
      13                 : template <typename T> struct SkTSize {
      14                 :     T fWidth;
      15                 :     T fHeight;
      16                 : 
      17               0 :     static SkTSize Make(T w, T h) {
      18                 :         SkTSize s;
      19               0 :         s.fWidth = w;
      20               0 :         s.fHeight = h;
      21                 :         return s;
      22                 :     }
      23                 : 
      24                 :     void set(T w, T h) {
      25                 :         fWidth = w;
      26                 :         fHeight = h;
      27                 :     }
      28                 : 
      29                 :     /** Returns true iff fWidth == 0 && fHeight == 0
      30                 :      */
      31                 :     bool isZero() const {
      32                 :         return 0 == fWidth && 0 == fHeight;
      33                 :     }
      34                 : 
      35                 :     /** Returns true if either widht or height are <= 0 */
      36                 :     bool isEmpty() const {
      37                 :         return fWidth <= 0 || fHeight <= 0;
      38                 :     }
      39                 :     
      40                 :     /** Set the width and height to 0 */
      41                 :     void setEmpty() {
      42                 :         fWidth = fHeight = 0;
      43                 :     }
      44                 :         
      45                 :         T width() const { return fWidth; }
      46                 :         T height() const { return fHeight; }
      47                 :     
      48                 :     /** If width or height is < 0, it is set to 0 */
      49                 :     void clampNegToZero() {
      50                 :         if (fWidth < 0) {
      51                 :             fWidth = 0;
      52                 :         }
      53                 :         if (fHeight < 0) {
      54                 :             fHeight = 0;
      55                 :         }
      56                 :     }
      57                 :     
      58                 :     bool equals(T w, T h) const {
      59                 :         return fWidth == w && fHeight == h;
      60                 :     }
      61                 : };
      62                 : 
      63                 : template <typename T>
      64                 : static inline bool operator==(const SkTSize<T>& a, const SkTSize<T>& b) {
      65                 :     return a.fWidth == b.fWidth && a.fHeight == b.fHeight;
      66                 : }
      67                 : 
      68                 : template <typename T>
      69                 : static inline bool operator!=(const SkTSize<T>& a, const SkTSize<T>& b) {
      70                 :     return !(a == b);
      71                 : }
      72                 : 
      73                 : ///////////////////////////////////////////////////////////////////////////////
      74                 : 
      75                 : typedef SkTSize<int32_t> SkISize;
      76                 : 
      77                 : #include "SkScalar.h"
      78                 : 
      79                 : struct SkSize : public SkTSize<SkScalar> {
      80                 :     static SkSize Make(SkScalar w, SkScalar h) {
      81                 :         SkSize s;
      82                 :         s.fWidth = w;
      83                 :         s.fHeight = h;
      84                 :         return s;
      85                 :     }
      86                 :     
      87                 :     
      88                 :     SkSize& operator=(const SkISize& src) {
      89                 :         this->set(SkIntToScalar(src.fWidth), SkIntToScalar(src.fHeight));
      90                 :         return *this;
      91                 :     }
      92                 : 
      93                 :     SkISize toRound() const {
      94                 :         SkISize s;
      95                 :         s.set(SkScalarRound(fWidth), SkScalarRound(fHeight));
      96                 :         return s;
      97                 :     }
      98                 : 
      99                 :     SkISize toCeil() const {
     100                 :         SkISize s;
     101                 :         s.set(SkScalarCeil(fWidth), SkScalarCeil(fHeight));
     102                 :         return s;
     103                 :     }
     104                 : 
     105                 :     SkISize toFloor() const {
     106                 :         SkISize s;
     107                 :         s.set(SkScalarFloor(fWidth), SkScalarFloor(fHeight));
     108                 :         return s;
     109                 :     }
     110                 : };
     111                 : 
     112                 : #endif

Generated by: LCOV version 1.7