11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
240528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger/*
31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2010 The Android Open Source Project
440528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger *
51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be
61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file.
740528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger */
840528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger
91cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
1040528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger#ifndef SkTextFormatParams_DEFINES
1140528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger#define SkTextFormatParams_DEFINES
1240528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger
1340528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger#include "SkScalar.h"
1440528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger#include "SkTypes.h"
1540528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger
1640528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger// Fraction of the text size to lower a strike through line below the baseline.
1740528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger#define kStdStrikeThru_Offset       (-SK_Scalar1 * 6 / 21)
1840528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger// Fraction of the text size to lower a underline below the baseline.
1940528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger#define kStdUnderline_Offset        (SK_Scalar1 / 9)
2040528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger// Fraction of the text size to use for a strike through or under-line.
2140528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger#define kStdUnderline_Thickness     (SK_Scalar1 / 18)
2240528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger
2340528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger// The fraction of text size to embolden fake bold text scales with text size.
2440528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger// At 9 points or below, the stroke width is increased by text size / 24.
2540528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger// At 36 points and above, it is increased by text size / 32.  In between,
2640528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger// it is interpolated between those values.
2740528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenbergerstatic const SkScalar kStdFakeBoldInterpKeys[] = {
284f1dae40e24d57d647db01443b8bf2410514b8b5Derek Sollenberger    SK_Scalar1*9,
294f1dae40e24d57d647db01443b8bf2410514b8b5Derek Sollenberger    SK_Scalar1*36,
3040528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger};
3140528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenbergerstatic const SkScalar kStdFakeBoldInterpValues[] = {
3240528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger    SK_Scalar1/24,
3340528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger    SK_Scalar1/32
3440528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger};
3540528743dbb9ce7f39f093e0cdc47849ac8887cfDerek SollenbergerSK_COMPILE_ASSERT(SK_ARRAY_COUNT(kStdFakeBoldInterpKeys) ==
3640528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger                  SK_ARRAY_COUNT(kStdFakeBoldInterpValues),
3740528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger                  mismatched_array_size);
3840528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenbergerstatic const int kStdFakeBoldInterpLength =
3940528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger    SK_ARRAY_COUNT(kStdFakeBoldInterpKeys);
4040528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger
4140528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger#endif  //SkTextFormatParams_DEFINES
42