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

Side by Side Diff: src/gpu/SkGpuDevice.cpp

Issue 719253002: rename filterTextFlags to disableLCD (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rename disableLCD to shouldDisableLCD Created 6 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
« no previous file with comments | « src/gpu/SkGpuDevice.h ('k') | src/image/SkSurface_Gpu.cpp » ('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 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkGpuDevice.h" 8 #include "SkGpuDevice.h"
9 9
10 #include "effects/GrBicubicEffect.h" 10 #include "effects/GrBicubicEffect.h"
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 /////////////////////////////////////////////////////////////////////////////// 123 ///////////////////////////////////////////////////////////////////////////////
124 124
125 SkGpuDevice* SkGpuDevice::Create(GrSurface* surface, const SkSurfaceProps& props , unsigned flags) { 125 SkGpuDevice* SkGpuDevice::Create(GrSurface* surface, const SkSurfaceProps& props , unsigned flags) {
126 SkASSERT(surface); 126 SkASSERT(surface);
127 if (NULL == surface->asRenderTarget() || surface->wasDestroyed()) { 127 if (NULL == surface->asRenderTarget() || surface->wasDestroyed()) {
128 return NULL; 128 return NULL;
129 } 129 }
130 return SkNEW_ARGS(SkGpuDevice, (surface, props, flags)); 130 return SkNEW_ARGS(SkGpuDevice, (surface, props, flags));
131 } 131 }
132 132
133 SkGpuDevice::SkGpuDevice(GrSurface* surface, const SkSurfaceProps& props, unsign ed flags) { 133 static SkDeviceProperties surfaceprops_to_deviceprops(const SkSurfaceProps& prop s) {
134 return SkDeviceProperties(props.pixelGeometry());
135 }
134 136
137 SkGpuDevice::SkGpuDevice(GrSurface* surface, const SkSurfaceProps& props, unsign ed flags)
138 : INHERITED(surfaceprops_to_deviceprops(props))
139 {
135 fDrawProcs = NULL; 140 fDrawProcs = NULL;
136 141
137 fContext = SkRef(surface->getContext()); 142 fContext = SkRef(surface->getContext());
138 143
139 fFlags = flags; 144 fFlags = flags;
140 145
141 fRenderTarget = SkRef(surface->asRenderTarget()); 146 fRenderTarget = SkRef(surface->asRenderTarget());
142 147
143 SkImageInfo info = surface->surfacePriv().info(); 148 SkImageInfo info = surface->surfacePriv().info();
144 SkPixelRef* pr = SkNEW_ARGS(SkGrPixelRef, (info, surface)); 149 SkPixelRef* pr = SkNEW_ARGS(SkGrPixelRef, (info, surface));
145 fLegacyBitmap.setInfo(info); 150 fLegacyBitmap.setInfo(info);
146 fLegacyBitmap.setPixelRef(pr)->unref(); 151 fLegacyBitmap.setPixelRef(pr)->unref();
147 152
148 this->setPixelGeometry(props.pixelGeometry());
149
150 bool useDFT = SkToBool(flags & kDFText_Flag); 153 bool useDFT = SkToBool(flags & kDFText_Flag);
151 fTextContext = fContext->createTextContext(fRenderTarget, this->getLeakyProp erties(), useDFT); 154 fTextContext = fContext->createTextContext(fRenderTarget, this->getLeakyProp erties(), useDFT);
152 } 155 }
153 156
154 SkGpuDevice* SkGpuDevice::Create(GrContext* context, const SkImageInfo& origInfo , 157 SkGpuDevice* SkGpuDevice::Create(GrContext* context, const SkImageInfo& origInfo ,
155 const SkSurfaceProps& props, int sampleCount) { 158 const SkSurfaceProps& props, int sampleCount) {
156 if (kUnknown_SkColorType == origInfo.colorType() || 159 if (kUnknown_SkColorType == origInfo.colorType() ||
157 origInfo.width() < 0 || origInfo.height() < 0) { 160 origInfo.width() < 0 || origInfo.height() < 0) {
158 return NULL; 161 return NULL;
159 } 162 }
(...skipping 1554 matching lines...) Expand 10 before | Expand all | Expand 10 after
1714 size_t len, const SkPath& path, 1717 size_t len, const SkPath& path,
1715 const SkMatrix* m, const SkPaint& paint) { 1718 const SkMatrix* m, const SkPaint& paint) {
1716 CHECK_SHOULD_DRAW(draw, false); 1719 CHECK_SHOULD_DRAW(draw, false);
1717 1720
1718 SkASSERT(draw.fDevice == this); 1721 SkASSERT(draw.fDevice == this);
1719 draw.drawTextOnPath((const char*)text, len, path, m, paint); 1722 draw.drawTextOnPath((const char*)text, len, path, m, paint);
1720 } 1723 }
1721 1724
1722 /////////////////////////////////////////////////////////////////////////////// 1725 ///////////////////////////////////////////////////////////////////////////////
1723 1726
1724 bool SkGpuDevice::filterTextFlags(const SkPaint& paint, TextFlags* flags) { 1727 bool SkGpuDevice::onShouldDisableLCD(const SkPaint& paint) const {
1725 if (!paint.isLCDRenderText()) {
1726 // we're cool with the paint as is
1727 return false;
1728 }
1729
1730 if (paint.getShader() || 1728 if (paint.getShader() ||
1731 paint.getXfermode() || // unless its srcover 1729 !SkXfermode::IsMode(paint.getXfermode(), SkXfermode::kSrcOver_Mode) ||
1732 paint.getMaskFilter() || 1730 paint.getMaskFilter() ||
1733 paint.getRasterizer() || 1731 paint.getRasterizer() ||
1734 paint.getColorFilter() || 1732 paint.getColorFilter() ||
1735 paint.getPathEffect() || 1733 paint.getPathEffect() ||
1736 paint.isFakeBoldText() || 1734 paint.isFakeBoldText() ||
1737 paint.getStyle() != SkPaint::kFill_Style) { 1735 paint.getStyle() != SkPaint::kFill_Style)
1738 // turn off lcd, but turn on kGenA8 1736 {
1739 flags->fFlags = paint.getFlags() & ~SkPaint::kLCDRenderText_Flag;
1740 flags->fFlags |= SkPaint::kGenA8FromLCD_Flag;
1741 return true; 1737 return true;
1742 } 1738 }
1743 // we're cool with the paint as is
1744 return false; 1739 return false;
1745 } 1740 }
1746 1741
1747 void SkGpuDevice::flush() { 1742 void SkGpuDevice::flush() {
1748 DO_DEFERRED_CLEAR(); 1743 DO_DEFERRED_CLEAR();
1749 fRenderTarget->prepareForExternalRead(); 1744 fRenderTarget->prepareForExternalRead();
1750 } 1745 }
1751 1746
1752 /////////////////////////////////////////////////////////////////////////////// 1747 ///////////////////////////////////////////////////////////////////////////////
1753 1748
(...skipping 15 matching lines...) Expand all
1769 // layers are never draw in repeat modes, so we can request an approx 1764 // layers are never draw in repeat modes, so we can request an approx
1770 // match and ignore any padding. 1765 // match and ignore any padding.
1771 const GrContext::ScratchTexMatch match = (kSaveLayer_Usage == cinfo.fUsage) ? 1766 const GrContext::ScratchTexMatch match = (kSaveLayer_Usage == cinfo.fUsage) ?
1772 GrContext::kApprox_ScratchTexMat ch : 1767 GrContext::kApprox_ScratchTexMat ch :
1773 GrContext::kExact_ScratchTexMatc h; 1768 GrContext::kExact_ScratchTexMatc h;
1774 texture.reset(fContext->refScratchTexture(desc, match)); 1769 texture.reset(fContext->refScratchTexture(desc, match));
1775 #else 1770 #else
1776 texture.reset(fContext->createUncachedTexture(desc, NULL, 0)); 1771 texture.reset(fContext->createUncachedTexture(desc, NULL, 0));
1777 #endif 1772 #endif
1778 if (texture.get()) { 1773 if (texture.get()) {
1779 return SkGpuDevice::Create(texture, SkSurfaceProps(SkSurfaceProps::kLega cyFontHost_InitType), flags); 1774 return SkGpuDevice::Create(texture, SkSurfaceProps(0, cinfo.fPixelGeomet ry), flags);
1780 } else { 1775 } else {
1781 SkDebugf("---- failed to create compatible device texture [%d %d]\n", 1776 SkDebugf("---- failed to create compatible device texture [%d %d]\n",
1782 cinfo.fInfo.width(), cinfo.fInfo.height()); 1777 cinfo.fInfo.width(), cinfo.fInfo.height());
1783 return NULL; 1778 return NULL;
1784 } 1779 }
1785 } 1780 }
1786 1781
1787 SkSurface* SkGpuDevice::newSurface(const SkImageInfo& info, const SkSurfaceProps & props) { 1782 SkSurface* SkGpuDevice::newSurface(const SkImageInfo& info, const SkSurfaceProps & props) {
1788 return SkSurface::NewRenderTarget(fContext, info, fRenderTarget->numSamples( ), &props); 1783 return SkSurface::NewRenderTarget(fContext, info, fRenderTarget->numSamples( ), &props);
1789 } 1784 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1843 return true; 1838 return true;
1844 } 1839 }
1845 1840
1846 SkImageFilter::Cache* SkGpuDevice::getImageFilterCache() { 1841 SkImageFilter::Cache* SkGpuDevice::getImageFilterCache() {
1847 // We always return a transient cache, so it is freed after each 1842 // We always return a transient cache, so it is freed after each
1848 // filter traversal. 1843 // filter traversal.
1849 return SkImageFilter::Cache::Create(kDefaultImageFilterCacheSize); 1844 return SkImageFilter::Cache::Create(kDefaultImageFilterCacheSize);
1850 } 1845 }
1851 1846
1852 #endif 1847 #endif
OLDNEW
« no previous file with comments | « src/gpu/SkGpuDevice.h ('k') | src/image/SkSurface_Gpu.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698