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

Side by Side Diff: src/core/SkScalerContext.cpp

Issue 23021015: Initial error handling code (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Adapting code to sk_once changes Created 7 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « src/core/SkOrderedWriteBuffer.cpp ('k') | src/core/SkValidatingReadBuffer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 9
10 #include "SkScalerContext.h" 10 #include "SkScalerContext.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 fLsbDelta = 0; 60 fLsbDelta = 0;
61 } 61 }
62 62
63 /////////////////////////////////////////////////////////////////////////////// 63 ///////////////////////////////////////////////////////////////////////////////
64 64
65 #ifdef SK_DEBUG 65 #ifdef SK_DEBUG
66 #define DUMP_RECx 66 #define DUMP_RECx
67 #endif 67 #endif
68 68
69 static SkFlattenable* load_flattenable(const SkDescriptor* desc, uint32_t tag, 69 static SkFlattenable* load_flattenable(const SkDescriptor* desc, uint32_t tag,
70 SkEffectType et) { 70 SkFlattenable::Type ft) {
71 SkFlattenable* obj = NULL; 71 SkFlattenable* obj = NULL;
72 uint32_t len; 72 uint32_t len;
73 const void* data = desc->findEntry(tag, &len); 73 const void* data = desc->findEntry(tag, &len);
74 74
75 if (data) { 75 if (data) {
76 SkOrderedReadBuffer buffer(data, len); 76 SkOrderedReadBuffer buffer(data, len);
77 obj = buffer.readFlattenable(et); 77 obj = buffer.readFlattenable(ft);
78 SkASSERT(buffer.offset() == buffer.size()); 78 SkASSERT(buffer.offset() == buffer.size());
79 } 79 }
80 return obj; 80 return obj;
81 } 81 }
82 82
83 SkScalerContext::SkScalerContext(SkTypeface* typeface, const SkDescriptor* desc) 83 SkScalerContext::SkScalerContext(SkTypeface* typeface, const SkDescriptor* desc)
84 : fRec(*static_cast<const Rec*>(desc->findEntry(kRec_SkDescriptorTag, NULL)) ) 84 : fRec(*static_cast<const Rec*>(desc->findEntry(kRec_SkDescriptorTag, NULL)) )
85 85
86 , fBaseGlyphCount(0) 86 , fBaseGlyphCount(0)
87 , fTypeface(SkRef(typeface)) 87 , fTypeface(SkRef(typeface))
88 , fPathEffect(static_cast<SkPathEffect*>(load_flattenable(desc, kPathEffect_ SkDescriptorTag, kPathEffect_SkEffectType))) 88 , fPathEffect(static_cast<SkPathEffect*>(load_flattenable(desc, kPathEffect_ SkDescriptorTag,
89 , fMaskFilter(static_cast<SkMaskFilter*>(load_flattenable(desc, kMaskFilter_ SkDescriptorTag, kMaskFilter_SkEffectType))) 89 SkFlattenable::kSkPathEffect_Type)) )
90 , fRasterizer(static_cast<SkRasterizer*>(load_flattenable(desc, kRasterizer_ SkDescriptorTag, kRasterizer_SkEffectType))) 90 , fMaskFilter(static_cast<SkMaskFilter*>(load_flattenable(desc, kMaskFilter_ SkDescriptorTag,
91 91 SkFlattenable::kSkMaskFilter_Type)) )
92 , fRasterizer(static_cast<SkRasterizer*>(load_flattenable(desc, kRasterizer_ SkDescriptorTag,
93 SkFlattenable::kSkRasterizer_Type)) )
92 // Initialize based on our settings. Subclasses can also force this. 94 // Initialize based on our settings. Subclasses can also force this.
93 , fGenerateImageFromPath(fRec.fFrameWidth > 0 || fPathEffect != NULL || fRas terizer != NULL) 95 , fGenerateImageFromPath(fRec.fFrameWidth > 0 || fPathEffect != NULL || fRas terizer != NULL)
94 96
95 , fNextContext(NULL) 97 , fNextContext(NULL)
96 98
97 , fPreBlend(fMaskFilter ? SkMaskGamma::PreBlend() : SkScalerContext::GetMask PreBlend(fRec)) 99 , fPreBlend(fMaskFilter ? SkMaskGamma::PreBlend() : SkScalerContext::GetMask PreBlend(fRec))
98 , fPreBlendForFilter(fMaskFilter ? SkScalerContext::GetMaskPreBlend(fRec) 100 , fPreBlendForFilter(fMaskFilter ? SkScalerContext::GetMaskPreBlend(fRec)
99 : SkMaskGamma::PreBlend()) 101 : SkMaskGamma::PreBlend())
100 { 102 {
101 #ifdef DUMP_REC 103 #ifdef DUMP_REC
(...skipping 831 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 SkScalerContext* SkTypeface::createScalerContext(const SkDescriptor* desc, 935 SkScalerContext* SkTypeface::createScalerContext(const SkDescriptor* desc,
934 bool allowFailure) const { 936 bool allowFailure) const {
935 SkScalerContext* c = this->onCreateScalerContext(desc); 937 SkScalerContext* c = this->onCreateScalerContext(desc);
936 938
937 if (!c && !allowFailure) { 939 if (!c && !allowFailure) {
938 c = SkNEW_ARGS(SkScalerContext_Empty, 940 c = SkNEW_ARGS(SkScalerContext_Empty,
939 (const_cast<SkTypeface*>(this), desc)); 941 (const_cast<SkTypeface*>(this), desc));
940 } 942 }
941 return c; 943 return c;
942 } 944 }
OLDNEW
« no previous file with comments | « src/core/SkOrderedWriteBuffer.cpp ('k') | src/core/SkValidatingReadBuffer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698