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

Unified Diff: skia/ports/SkFontHost_ascender.cpp

Issue 113827: Remove the remainder of the skia source code from the Chromium repo.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « skia/ports/SkFontHost_android.cpp ('k') | skia/ports/SkFontHost_fontconfig.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/ports/SkFontHost_ascender.cpp
===================================================================
--- skia/ports/SkFontHost_ascender.cpp (revision 16859)
+++ skia/ports/SkFontHost_ascender.cpp (working copy)
@@ -1,211 +0,0 @@
-#include "SkScalerContext.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkDescriptor.h"
-#include "SkFDot6.h"
-#include "SkFontHost.h"
-#include "SkMask.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkThread.h"
-#include "SkTemplates.h"
-
-#include <acaapi.h>
-
-//////////////////////////////////////////////////////////////////////////
-
-#include "SkMMapStream.h"
-
-class SkScalerContext_Ascender : public SkScalerContext {
-public:
- SkScalerContext_Ascender(const SkDescriptor* desc);
- virtual ~SkScalerContext_Ascender();
-
-protected:
- virtual unsigned generateGlyphCount() const;
- virtual uint16_t generateCharToGlyph(SkUnichar uni);
- virtual void generateMetrics(SkGlyph* glyph);
- virtual void generateImage(const SkGlyph& glyph);
- virtual void generatePath(const SkGlyph& glyph, SkPath* path);
- virtual void generateFontMetrics(SkPaint::FontMetrics* mx, SkPaint::FontMetrics* my);
-
-private:
- aca_FontHandle fHandle;
- void* fWorkspace;
- void* fGlyphWorkspace;
- SkStream* fFontStream;
- SkStream* fHintStream;
-};
-
-///////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////
-
-SkScalerContext_Ascender::SkScalerContext_Ascender(const SkDescriptor* desc)
- : SkScalerContext(desc)
-{
- int size = aca_Get_FontHandleRec_Size();
- fHandle = (aca_FontHandle)sk_malloc_throw(size);
-
- // get the pointer to the font
-
- fFontStream = new SkMMAPStream("/UcsGB2312-Hei-H.FDL");
- fHintStream = new SkMMAPStream("/genv6-23.bin");
-
- void* hints = sk_malloc_throw(fHintStream->getLength());
- memcpy(hints, fHintStream->getMemoryBase(), fHintStream->getLength());
-
- aca_Create_Font_Handle(fHandle,
- (void*)fFontStream->getMemoryBase(), fFontStream->getLength(),
- "fred",
- hints, fHintStream->getLength());
-
- // compute our factors from the record
-
- SkMatrix m;
-
- fRec.getSingleMatrix(&m);
-
- // now compute our scale factors
- SkScalar sx = m.getScaleX();
- SkScalar sy = m.getScaleY();
-
- int ppemX = SkScalarRound(sx);
- int ppemY = SkScalarRound(sy);
-
- size = aca_Find_Font_Memory_Required(fHandle, ppemX, ppemY);
- size *= 8; // Jeff suggests this :)
- fWorkspace = sk_malloc_throw(size);
- aca_Set_Font_Memory(fHandle, (uint8_t*)fWorkspace, size);
-
- aca_GlyphAttribsRec rec;
-
- memset(&rec, 0, sizeof(rec));
- rec.xSize = ppemX;
- rec.ySize = ppemY;
- rec.doAdjust = true;
- rec.doExceptions = true;
- rec.doGlyphHints = true;
- rec.doInterpolate = true;
- rec.grayMode = 2;
- aca_Set_Font_Attributes(fHandle, &rec, &size);
-
- fGlyphWorkspace = sk_malloc_throw(size);
- aca_Set_Glyph_Memory(fHandle, fGlyphWorkspace);
-}
-
-SkScalerContext_Ascender::~SkScalerContext_Ascender()
-{
- delete fHintStream;
- delete fFontStream;
- sk_free(fGlyphWorkspace);
- sk_free(fWorkspace);
- sk_free(fHandle);
-}
-
-unsigned SkScalerContext_Ascender::generateGlyphCount() const
-{
- return 1000;
-}
-
-uint16_t SkScalerContext_Ascender::generateCharToGlyph(SkUnichar uni)
-{
- return (uint16_t)(uni & 0xFFFF);
-}
-
-void SkScalerContext_Ascender::generateMetrics(SkGlyph* glyph)
-{
- glyph->fRsbDelta = 0;
- glyph->fLsbDelta = 0;
-
- aca_GlyphImageRec rec;
- aca_Vector topLeft;
-
- int adv = aca_Get_Adv_Width(fHandle, glyph->getGlyphID());
- if (aca_GLYPH_NOT_PRESENT == adv)
- goto ERROR;
-
- aca_Rasterize(glyph->getGlyphID(), fHandle, &rec, &topLeft);
-
- if (false) // error
- {
-ERROR:
- glyph->fWidth = 0;
- glyph->fHeight = 0;
- glyph->fTop = 0;
- glyph->fLeft = 0;
- glyph->fAdvanceX = 0;
- glyph->fAdvanceY = 0;
- return;
- }
-
- glyph->fWidth = rec.width;
- glyph->fHeight = rec.rows;
- glyph->fRowBytes = rec.width;
- glyph->fTop = -topLeft.y;
- glyph->fLeft = topLeft.x;
- glyph->fAdvanceX = SkIntToFixed(adv);
- glyph->fAdvanceY = SkIntToFixed(0);
-}
-
-void SkScalerContext_Ascender::generateImage(const SkGlyph& glyph)
-{
- aca_GlyphImageRec rec;
- aca_Vector topLeft;
-
- aca_Rasterize(glyph.getGlyphID(), fHandle, &rec, &topLeft);
-
- const uint8_t* src = (const uint8_t*)rec.buffer;
- uint8_t* dst = (uint8_t*)glyph.fImage;
- int height = glyph.fHeight;
-
- src += rec.y0 * rec.pitch + rec.x0;
- while (--height >= 0)
- {
- memcpy(dst, src, glyph.fWidth);
- src += rec.pitch;
- dst += glyph.fRowBytes;
- }
-}
-
-///////////////////////////////////////////////////////////////////////////////////////////
-
-void SkScalerContext_Ascender::generatePath(const SkGlyph& glyph, SkPath* path)
-{
- SkRect r;
-
- r.set(0, 0, SkIntToScalar(4), SkIntToScalar(4));
- path->reset();
- path->addRect(r);
-}
-
-void SkScalerContext_Ascender::generateFontMetrics(SkPaint::FontMetrics* mx, SkPaint::FontMetrics* my)
-{
- if (NULL == mx && NULL == my)
- return;
-
- if (mx)
- {
- mx->fTop = SkIntToScalar(-16);
- mx->fAscent = SkIntToScalar(-16);
- mx->fDescent = SkIntToScalar(4);
- mx->fBottom = SkIntToScalar(4);
- mx->fLeading = 0;
- }
- if (my)
- {
- my->fTop = SkIntToScalar(-16);
- my->fAscent = SkIntToScalar(-16);
- my->fDescent = SkIntToScalar(4);
- my->fBottom = SkIntToScalar(4);
- my->fLeading = 0;
- }
-}
-
-////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////
-
-SkScalerContext* SkFontHost::CreateScalerContext(const SkDescriptor* desc)
-{
- return SkNEW_ARGS(SkScalerContext_Ascender, (desc));
-}
-
« no previous file with comments | « skia/ports/SkFontHost_android.cpp ('k') | skia/ports/SkFontHost_fontconfig.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698