blob: 7e41c6ff0c6494022c0f99649ccd88b3a46499c7 [file] [log] [blame]
jvanverth93679922014-11-26 13:15:59 -08001/*
2 * Copyright 2014 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkHalf_DEFINED
9#define SkHalf_DEFINED
10
11#include "SkTypes.h"
12
13// 16-bit floating point value
14// format is 1 bit sign, 5 bits exponent, 10 bits mantissa
15// only used for storage
16typedef uint16_t SkHalf;
17
jvanverth28f9c602014-12-05 13:06:35 -080018#define SK_HalfMin 0x0400 // 2^-24 (minimum positive normal value)
19#define SK_HalfMax 0x7bff // 65504
20#define SK_HalfEpsilon 0x1400 // 2^-10
21
jvanverth93679922014-11-26 13:15:59 -080022// convert between half and single precision floating point
23float SkHalfToFloat(SkHalf h);
24SkHalf SkFloatToHalf(float f);
25
26#endif