Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Side by Side Diff: src/ports/SkFontHost_win.cpp

Issue 939123002: Make fID and MixedID calculations private (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Support android build Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "SkAdvancedTypefaceMetrics.h" 9 #include "SkAdvancedTypefaceMetrics.h"
10 #include "SkBase64.h" 10 #include "SkBase64.h"
(...skipping 1563 matching lines...) Expand 10 before | Expand all | Expand 10 after
1574 path->close(); 1574 path->close();
1575 } 1575 }
1576 return true; 1576 return true;
1577 } 1577 }
1578 1578
1579 DWORD SkScalerContext_GDI::getGDIGlyphPath(const SkGlyph& glyph, UINT flags, 1579 DWORD SkScalerContext_GDI::getGDIGlyphPath(const SkGlyph& glyph, UINT flags,
1580 SkAutoSTMalloc<BUFFERSIZE, uint8_ t>* glyphbuf) 1580 SkAutoSTMalloc<BUFFERSIZE, uint8_ t>* glyphbuf)
1581 { 1581 {
1582 GLYPHMETRICS gm; 1582 GLYPHMETRICS gm;
1583 1583
1584 DWORD total_size = GetGlyphOutlineW(fDDC, glyph.fID, flags, &gm, BUFFERSIZE, glyphbuf->get(), &fMat22); 1584 DWORD total_size = GetGlyphOutlineW(fDDC, glyph.getGlyphID(), flags, &gm, BU FFERSIZE, glyphbuf->get(), &fMat22);
1585 // Sometimes GetGlyphOutlineW returns a number larger than BUFFERSIZE even i f BUFFERSIZE > 0. 1585 // Sometimes GetGlyphOutlineW returns a number larger than BUFFERSIZE even i f BUFFERSIZE > 0.
1586 // It has been verified that this does not involve a buffer overrun. 1586 // It has been verified that this does not involve a buffer overrun.
1587 if (GDI_ERROR == total_size || total_size > BUFFERSIZE) { 1587 if (GDI_ERROR == total_size || total_size > BUFFERSIZE) {
1588 // GDI_ERROR because the BUFFERSIZE was too small, or because the data w as not accessible. 1588 // GDI_ERROR because the BUFFERSIZE was too small, or because the data w as not accessible.
1589 // When the data is not accessable GetGlyphOutlineW fails rather quickly , 1589 // When the data is not accessable GetGlyphOutlineW fails rather quickly ,
1590 // so just try to get the size. If that fails then ensure the data is ac cessible. 1590 // so just try to get the size. If that fails then ensure the data is ac cessible.
1591 total_size = GetGlyphOutlineW(fDDC, glyph.fID, flags, &gm, 0, NULL, &fMa t22); 1591 total_size = GetGlyphOutlineW(fDDC, glyph.getGlyphID(), flags, &gm, 0, N ULL, &fMat22);
1592 if (GDI_ERROR == total_size) { 1592 if (GDI_ERROR == total_size) {
1593 LogFontTypeface::EnsureAccessible(this->getTypeface()); 1593 LogFontTypeface::EnsureAccessible(this->getTypeface());
1594 total_size = GetGlyphOutlineW(fDDC, glyph.fID, flags, &gm, 0, NULL, &fMat22); 1594 total_size = GetGlyphOutlineW(fDDC, glyph.getGlyphID(), flags, &gm, 0, NULL, &fMat22);
1595 if (GDI_ERROR == total_size) { 1595 if (GDI_ERROR == total_size) {
1596 // GetGlyphOutlineW is known to fail for some characters, such a s spaces. 1596 // GetGlyphOutlineW is known to fail for some characters, such a s spaces.
1597 // In these cases, just return that the glyph does not have a sh ape. 1597 // In these cases, just return that the glyph does not have a sh ape.
1598 return 0; 1598 return 0;
1599 } 1599 }
1600 } 1600 }
1601 1601
1602 glyphbuf->reset(total_size); 1602 glyphbuf->reset(total_size);
1603 1603
1604 DWORD ret = GetGlyphOutlineW(fDDC, glyph.fID, flags, &gm, total_size, gl yphbuf->get(), &fMat22); 1604 DWORD ret = GetGlyphOutlineW(fDDC, glyph.getGlyphID(), flags, &gm, total _size, glyphbuf->get(), &fMat22);
1605 if (GDI_ERROR == ret) { 1605 if (GDI_ERROR == ret) {
1606 LogFontTypeface::EnsureAccessible(this->getTypeface()); 1606 LogFontTypeface::EnsureAccessible(this->getTypeface());
1607 ret = GetGlyphOutlineW(fDDC, glyph.fID, flags, &gm, total_size, glyp hbuf->get(), &fMat22); 1607 ret = GetGlyphOutlineW(fDDC, glyph.getGlyphID(), flags, &gm, total_s ize, glyphbuf->get(), &fMat22);
1608 if (GDI_ERROR == ret) { 1608 if (GDI_ERROR == ret) {
1609 SkASSERT(false); 1609 SkASSERT(false);
1610 return 0; 1610 return 0;
1611 } 1611 }
1612 } 1612 }
1613 } 1613 }
1614 return total_size; 1614 return total_size;
1615 } 1615 }
1616 1616
1617 void SkScalerContext_GDI::generatePath(const SkGlyph& glyph, SkPath* path) { 1617 void SkScalerContext_GDI::generatePath(const SkGlyph& glyph, SkPath* path) {
(...skipping 895 matching lines...) Expand 10 before | Expand all | Expand 10 after
2513 2513
2514 private: 2514 private:
2515 SkTDArray<ENUMLOGFONTEX> fLogFontArray; 2515 SkTDArray<ENUMLOGFONTEX> fLogFontArray;
2516 }; 2516 };
2517 2517
2518 /////////////////////////////////////////////////////////////////////////////// 2518 ///////////////////////////////////////////////////////////////////////////////
2519 2519
2520 SkFontMgr* SkFontMgr_New_GDI() { 2520 SkFontMgr* SkFontMgr_New_GDI() {
2521 return SkNEW(SkFontMgrGDI); 2521 return SkNEW(SkFontMgrGDI);
2522 } 2522 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698