1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/* 2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2016 Google Inc. 3fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * 4fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Use of this source code is governed by a BSD-style license that can be 5fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * found in the LICENSE file. 6fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */ 7fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 8fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#ifndef SkICCPriv_DEFINED 9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#define SkICCPriv_DEFINED 10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkColorSpace.h" 12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkTypes.h" 13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot// This is equal to the header size according to the ICC specification (128) 15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot// plus the size of the tag count (4). We include the tag count since we 16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot// always require it to be present anyway. 17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr size_t kICCHeaderSize = 132; 18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot// Contains a signature (4), offset (4), and size (4). 20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr size_t kICCTagTableEntrySize = 12; 21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kRGB_ColorSpace = SkSetFourByteTag('R', 'G', 'B', ' '); 23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kCMYK_ColorSpace = SkSetFourByteTag('C', 'M', 'Y', 'K'); 24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kGray_ColorSpace = SkSetFourByteTag('G', 'R', 'A', 'Y'); 25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kDisplay_Profile = SkSetFourByteTag('m', 'n', 't', 'r'); 26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kInput_Profile = SkSetFourByteTag('s', 'c', 'n', 'r'); 27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kOutput_Profile = SkSetFourByteTag('p', 'r', 't', 'r'); 28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kColorSpace_Profile = SkSetFourByteTag('s', 'p', 'a', 'c'); 29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kXYZ_PCSSpace = SkSetFourByteTag('X', 'Y', 'Z', ' '); 30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kLAB_PCSSpace = SkSetFourByteTag('L', 'a', 'b', ' '); 31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kACSP_Signature = SkSetFourByteTag('a', 'c', 's', 'p'); 32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 33fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kTAG_rXYZ = SkSetFourByteTag('r', 'X', 'Y', 'Z'); 34fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kTAG_gXYZ = SkSetFourByteTag('g', 'X', 'Y', 'Z'); 35fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kTAG_bXYZ = SkSetFourByteTag('b', 'X', 'Y', 'Z'); 36fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kTAG_rTRC = SkSetFourByteTag('r', 'T', 'R', 'C'); 37fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kTAG_gTRC = SkSetFourByteTag('g', 'T', 'R', 'C'); 38fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kTAG_bTRC = SkSetFourByteTag('b', 'T', 'R', 'C'); 39fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kTAG_kTRC = SkSetFourByteTag('k', 'T', 'R', 'C'); 40fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kTAG_A2B0 = SkSetFourByteTag('A', '2', 'B', '0'); 41fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 42fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kTAG_CurveType = SkSetFourByteTag('c', 'u', 'r', 'v'); 43fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kTAG_ParaCurveType = SkSetFourByteTag('p', 'a', 'r', 'a'); 44fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic constexpr uint32_t kTAG_TextType = SkSetFourByteTag('m', 'l', 'u', 'c'); 45fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 46fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotenum ParaCurveType { 47fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot kExponential_ParaCurveType = 0, 48fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot kGAB_ParaCurveType = 1, 49fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot kGABC_ParaCurveType = 2, 50fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot kGABDE_ParaCurveType = 3, 51fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot kGABCDEF_ParaCurveType = 4, 52fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot}; 53fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 54fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/* 55fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Given fn and toXYZD50, generate a decription tag that either includes a hash 56fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * of the function and gamut or is a special name. 57fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Exposed for unit testing and tools. 58fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */ 59fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team RobotSkString SkICCGetColorProfileTag(const SkColorSpaceTransferFn& fn, 60fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot const SkMatrix44& toXYZD50); 61fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#endif // SkICCPriv_DEFINED 62