blob: 9ddf6c0db6144bc0e29ed3c39c2c2c11f9baa470 [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001/*
2 * Copyright 2011 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 */
reed@google.com6ec97b62013-03-04 15:16:06 +00007
reed@android.comd6638e62009-04-08 05:03:52 +00008#include "SkEndian.h"
9#include "SkFontHost.h"
reed@google.com6ec97b62013-03-04 15:16:06 +000010#include "SkFontStream.h"
reed@android.comd6638e62009-04-08 05:03:52 +000011#include "SkStream.h"
12
reed@android.comd6638e62009-04-08 05:03:52 +000013int SkFontHost::CountTables(SkFontID fontID) {
14 SkStream* stream = SkFontHost::OpenStream(fontID);
15 if (NULL == stream) {
16 return 0;
17 }
18
19 SkAutoUnref au(stream);
reed@google.comee38c082013-03-05 22:33:16 +000020 int ttcIndex = 0;
21 return SkFontStream::GetTableTags(stream, ttcIndex, NULL);
reed@android.comd6638e62009-04-08 05:03:52 +000022}
23
24int SkFontHost::GetTableTags(SkFontID fontID, SkFontTableTag tags[]) {
25 SkStream* stream = SkFontHost::OpenStream(fontID);
26 if (NULL == stream) {
27 return 0;
28 }
agl@chromium.orgfc3ac322009-04-13 21:43:40 +000029
reed@android.comd6638e62009-04-08 05:03:52 +000030 SkAutoUnref au(stream);
reed@google.comee38c082013-03-05 22:33:16 +000031 int ttcIndex = 0;
32 return SkFontStream::GetTableTags(stream, ttcIndex, tags);
reed@android.comd6638e62009-04-08 05:03:52 +000033}
34
35size_t SkFontHost::GetTableSize(SkFontID fontID, SkFontTableTag tag) {
36 SkStream* stream = SkFontHost::OpenStream(fontID);
37 if (NULL == stream) {
38 return 0;
39 }
agl@chromium.orgfc3ac322009-04-13 21:43:40 +000040
reed@android.comd6638e62009-04-08 05:03:52 +000041 SkAutoUnref au(stream);
reed@google.comee38c082013-03-05 22:33:16 +000042 int ttcIndex = 0;
43 return SkFontStream::GetTableData(stream, ttcIndex, tag, 0, ~0U, NULL);
reed@android.comd6638e62009-04-08 05:03:52 +000044}
45
46size_t SkFontHost::GetTableData(SkFontID fontID, SkFontTableTag tag,
47 size_t offset, size_t length, void* data) {
48 SkStream* stream = SkFontHost::OpenStream(fontID);
49 if (NULL == stream) {
50 return 0;
51 }
agl@chromium.orgfc3ac322009-04-13 21:43:40 +000052
reed@android.comd6638e62009-04-08 05:03:52 +000053 SkAutoUnref au(stream);
reed@google.comee38c082013-03-05 22:33:16 +000054 int ttcIndex = 0;
55 return SkFontStream::GetTableData(stream, ttcIndex, tag, offset, length, data);
reed@android.comd6638e62009-04-08 05:03:52 +000056}