CachedGlyphInfo.h revision 9f5dab3fc228fa11c32b483e6101ec086895a32b
19f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy/* 29f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy * Copyright (C) 2012 The Android Open Source Project 39f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy * 49f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy * Licensed under the Apache License, Version 2.0 (the "License"); 59f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy * you may not use this file except in compliance with the License. 69f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy * You may obtain a copy of the License at 79f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy * 89f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy * http://www.apache.org/licenses/LICENSE-2.0 99f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy * 109f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy * Unless required by applicable law or agreed to in writing, software 119f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy * distributed under the License is distributed on an "AS IS" BASIS, 129f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy * See the License for the specific language governing permissions and 149f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy * limitations under the License. 159f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy */ 169f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy 179f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy#ifndef ANDROID_HWUI_CACHED_GLYPH_INFO_H 189f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy#define ANDROID_HWUI_CACHED_GLYPH_INFO_H 199f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy 209f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy#include <SkFixed.h> 219f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy 229f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy#include "CacheTexture.h" 239f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy 249f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guynamespace android { 259f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guynamespace uirenderer { 269f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy 279f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guystruct CachedGlyphInfo { 289f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy // Has the cache been invalidated? 299f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy bool mIsValid; 309f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy // Location of the cached glyph in the bitmap 319f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy // in case we need to resize the texture or 329f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy // render to bitmap 339f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy uint32_t mStartX; 349f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy uint32_t mStartY; 359f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy uint32_t mBitmapWidth; 369f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy uint32_t mBitmapHeight; 379f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy // Also cache texture coords for the quad 389f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy float mBitmapMinU; 399f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy float mBitmapMinV; 409f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy float mBitmapMaxU; 419f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy float mBitmapMaxV; 429f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy // Minimize how much we call freetype 439f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy uint32_t mGlyphIndex; 449f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy uint32_t mAdvanceX; 459f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy uint32_t mAdvanceY; 469f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy // Values below contain a glyph's origin in the bitmap 479f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy int32_t mBitmapLeft; 489f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy int32_t mBitmapTop; 499f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy // Auto-kerning 509f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy SkFixed mLsbDelta; 519f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy SkFixed mRsbDelta; 529f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy CacheTexture* mCacheTexture; 539f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy}; 549f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy 559f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy}; // namespace uirenderer 569f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy}; // namespace android 579f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy 589f5dab3fc228fa11c32b483e6101ec086895a32bRomain Guy#endif // ANDROID_HWUI_CACHED_GLYPH_INFO_H 59