aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
...
* Disable SSE4 code.Gravatar mtklein2014-06-27
| | | | | | | | | | | | | Chrome canary failing to link chrome: http://108.170.220.120:10115/builders/Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT/builds/1009/steps/BuildChrome/logs/stdio BUG=skia: NOTRY=true R=mtklein@google.com, rmistry@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/361493002
* Refactor bitmap scaler to make it easier to migrate rest of chrome to use itGravatar humper2014-06-27
| | | | | | | | | | | | | | Previously, the set of platform-specific function pointers to do fast convolution (e.g., neon, SSE) were passed in a structure to the scaler. I refactored this so that the scaler fills in these function pointers after it's called, so the caller doesn't have to worry about it. R=mtklein@google.com TBR=mtklein NOTRY=True Author: humper@google.com Review URL: https://codereview.chromium.org/354193002
* Add lock to SkPDFDictGravatar halcanary2014-06-27
| | | | | | | | | | | | Add mutex lock to all functions. Remove dictionary iterator, and replace with new thread-safe functions. BUG=skia:2683 R=mtklein@google.com, djsollen@google.com Author: halcanary@google.com Review URL: https://codereview.chromium.org/360473005
* Fix RRect tranform bugGravatar robertphillips2014-06-27
| | | | | | | | | | | When a RRect is an oval transforming the rectangle and the radii separately can result in a non-oval result (i.e., due to numerical issues some tiny straight edges may creep in). This CL remedies the situation by computing the new radii directly from the transformed rect. BUG=skia:2696 R=caryclark@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/354913004
* Mark SkBBoxHierarchyRecord destructor as virtualGravatar tomhudson2014-06-27
| | | | | | | | | | | | | Immediate parent classes have empty virtual destructors, but farther up the inheritance tree there is complicated destruction going on. This change may be unnecessary but makes the polymorphism explicit. BUG=skia:1734 R=mtklein@google.com, tomhudson@google.com, mtklein Author: tomhudson@chromium.org Review URL: https://codereview.chromium.org/359773002
* Add SSE4 optimization of S32A_Opaque_BlitrowGravatar henrik.smiding2014-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | Adds optimization of Skia S32A_Opaque_Blitrow blitter using SSE4.2 SIMD instruction set. Special case for when alpha is zero or opaque. Performance increase of 10%-400% compared to the existing SSE2 optimization (measured on Silvermont architecture). Noticeable in ~25 different skia bench subtests, especially in bitmap_8888_*, repeatTile_*, and morph_*. bitmap_8888_A - 100% faster bitmap_8888_A_source_transparent - 250% faster bitmap_8888_A_source_opaque - 25% faster bitmap_8888_A_scale_bicubic - 75% faster Signed-off-by: Henrik Smiding <henrik.smiding@intel.com> Committed: https://skia.googlesource.com/skia/+/e2527b147679b0c43019fae7d59cc3777d2d097e Committed: https://skia.googlesource.com/skia/+/b5c281e1e06af3be804309877de1dac6145686b9 R=reed@google.com, mtklein@google.com, tomhudson@google.com, djsollen@google.com, joakim.landberg@intel.com Author: henrik.smiding@intel.com Review URL: https://codereview.chromium.org/289473009
* add SkSurface::NewRasterDirectReleaseProcGravatar reed2014-06-27
| | | | | | | | | | | allows for lifetime control of pixel memory on raster surface BUG=skia: R=fmalita@google.com, bsalomon@google.com, fmalita@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/351373005
* delete code for SK_SUPPORT_LEGACY_GETTOTALCLIPGravatar reed2014-06-27
| | | | | | | | | TBR= NOTRY=True Author: reed@google.com Review URL: https://codereview.chromium.org/354953008
* Revert of Switch SkPDFStream's internal storage from SkStream to SkData ↵Gravatar rmistry2014-06-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/340783013/) Reason for revert: Causes canary failures Original issue's description: > Switch SkPDFStream's internal storage from SkStream to SkData > > Motivation: This makes SkPDFStream thread-safe for two threads > serializing it at once, since a SkStream has an internal position. > > Updated SkPDFFont, SkPDFGraphicState, and SkPDFPage's use of > SkPDFStream to use the SkData constructor rather than the SkStream > constructor (saving a memcpy). > > BUG=skia:2683 > > Committed: https://skia.googlesource.com/skia/+/c1dfa14b645ae274780f026dd86c9b633fbdad06 R=mtklein@google.com, djsollen@google.com, halcanary@google.com TBR=djsollen@google.com, halcanary@google.com, mtklein@google.com NOTREECHECKS=true NOTRY=true BUG=skia:2683 Author: rmistry@google.com Review URL: https://codereview.chromium.org/354043005
* Switch SkPDFStream's internal storage from SkStream to SkDataGravatar halcanary2014-06-26
| | | | | | | | | | | | | | | | Motivation: This makes SkPDFStream thread-safe for two threads serializing it at once, since a SkStream has an internal position. Updated SkPDFFont, SkPDFGraphicState, and SkPDFPage's use of SkPDFStream to use the SkData constructor rather than the SkStream constructor (saving a memcpy). BUG=skia:2683 R=mtklein@google.com, djsollen@google.com Author: halcanary@google.com Review URL: https://codereview.chromium.org/340783013
* Promote SkInterpolator unit test to our tests driver.Gravatar tfarina2014-06-26
| | | | | | | | | | BUG=None TEST=make tests && out/Debug/tests -m Interpolator R=mtklein@google.com, bsalomon@google.com Author: tfarina@chromium.org Review URL: https://codereview.chromium.org/351713005
* Add trace event when GrBufferAllocPool unmaps a buffer indicating what % of ↵Gravatar bsalomon2014-06-26
| | | | | | | | | | | the buffer was unwritten. R=egdaniel@google.com TBR=egdaniel@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/339433009
* ARM Skia NEON patches - 40 - arm64: S32A_D565_OpaqueGravatar kevin.petit2014-06-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Here are some perf results: +-------+------------+------------+ | count | Cortex-A53 | Cortex-A57 | +-------+------------+------------+ | 1 | -2.54% | -5.39% | +-------+------------+------------+ | 2 | -0.66% | -2.08% | +-------+------------+------------+ | 4 | -11.13% | 0.00% | +-------+------------+------------+ | 8 | -5.79% | -1.30% | +-------+------------+------------+ | 16 | 71.60% | 93.27% | +-------+------------+------------+ | 64 | 30.99% | 57.35% | +-------+------------+------------+ | 256 | 25.41% | 52.59% | +-------+------------+------------+ | 1024 | 25.56% | 53.76% | +-------+------------+------------+ Signed-off-by: Kévin PETIT <kevin.petit@arm.com> BUG=skia: R=mtklein@google.com, djsollen@google.com Author: kevin.petit@arm.com Review URL: https://codereview.chromium.org/346843003
* Remove SkBicubicImageFilter, and all related tests.Gravatar senorblanco2014-06-25
| | | | | | | | | | | | | Now that we have SkResizeImageFilter, and the bicubic resizing is part of skia proper, there's no need for a specialized image filter. BUG=skia: R=bsalomon@google.com Author: senorblanco@chromium.org Review URL: https://codereview.chromium.org/357793002
* Add noinline for GCC 4.6, which seems to vectorize after inlining.Gravatar mtklein2014-06-25
| | | | | | | | | | | GCC 4.7 and 4.8 don't need this, but we're not building with them so it doesn't hurt. BUG=skia: R=mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/343423003
* "interface" is defined in Windows headers, so undef it in GrGLCaps so we ↵Gravatar george2014-06-25
| | | | | | | | | | | don't have a name collision R=bsalomon@google.com, mtklein@google.com, bsalomon BUG=skia: Author: george@mozilla.com Review URL: https://codereview.chromium.org/344253003
* Narrow disabled vectorization further to just ConvolveHorizontally.Gravatar mtklein2014-06-25
| | | | | | | | | BUG=skia:2575 R=mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/352883002
* try release onlyGravatar Mike Klein2014-06-25
|
* disable on naclGravatar Mike Klein2014-06-25
|
* Focus disabled optimizations on just BGRAConvolve2D, and only 32-bit.Gravatar mtklein2014-06-25
| | | | | | | | | | | | Last CL accidentally disabled autovectorization on 64-bit builds too. This fixes that. BUG=skia:2575 R=rmistry@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/353823005
* Rename GrAtlasMgr to GrAtlas (and other cleanup)Gravatar robertphillips2014-06-24
| | | | | | | | | | This CL also renames the old GrAtlas to ClientPlotUsage and moves it into the new GrAtlas. R=jvanverth@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/355673002
* Remove special case gpu transforms for Identity and TranslateGravatar egdaniel2014-06-24
| | | | | | | | | | | | Change will remove some special cases for coord transforms in favor of not needing to compile a new program if the coord trans changes from one special case to another. BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/344233006
* Move allocation of texture from SkGpuDevice to GrLayerCacheGravatar robertphillips2014-06-24
| | | | | | | | | | In order to atlas the layers the GrLayerCache needs to be given more control over where a given layer's texture is allocated (i.e., it could be a raw scratch texture or in the cache). R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/350183006
* Support serialization in SkRecord-backed SkPictures.Gravatar mtklein2014-06-24
| | | | | | | | | | | Update DM to test SkRecord through SkPictureRecorder API. BUG=skia: R=robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/345553003
* Make GrGLShaderBuilder::fragmentPosition() return a vec4, with 1.0 as the zw ↵Gravatar bsalomon2014-06-24
| | | | | | | | | | | | | | components when in the y-flip case. This works around an Adreno driver bug. Revert "Stop referencing gl_FragCoord z and w components." This reverts commit 160a52ba217012ed73c240f6d67b3bbf2b4879d6. R=jvanverth@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/354663002
* Another iOS fix for SampleApp.Gravatar jvanverth2014-06-24
| | | | | | | | R=caryclark@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/353683003
* Prune some dead code from SkPicture.cpp.Gravatar mtklein2014-06-24
| | | | | | | | | | | There's no path that makes playback != fPlayback.get() anymore. BUG=skia: R=robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/352643002
* add path dump testGravatar caryclark2014-06-24
| | | | | | | | | | | | | Add a unit test for SkPath::dump(). The unit test exposed a minor bug (inconsistent CRs) and an unused parameter (title). R=bsalomon@google.com TBR=bsalomon BUG=skia:1836 Author: caryclark@google.com Review URL: https://codereview.chromium.org/351833003
* Tick off some TODOs:Gravatar Mike Klein2014-06-24
| | | | | | | | | | | | | | | | | | - support fRecord in copy constructor - support SkDrawPictureCallback Moved SkDrawPictureCallback to its own header so SkRecordDraw can include it without pulling in all of SkPicture. Adding an SkAutoSaveRestore to SkRecordDraw was the easiest way to match the balance guarantees of the callback, and probably not a bad idea in general. Updated its tests. BUG=skia: R=robertphillips@google.com Review URL: https://codereview.chromium.org/349973008
* Tidy up fOwner in SkMutex_pthread.h.Gravatar mtklein2014-06-24
| | | | | | | | | | | | | - Initialize fOwner to kNoOwner in SkMutex::SkMutex. - Note that we're stretching the API with kNoOwner. - Use pthread_equal() instead of ==. BUG=387993 R=halcanary@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/357473002
* add pathops tight bounds; conform path ops' gyp to unit testsGravatar caryclark2014-06-24
| | | | | | | | | | | | | | | | | | Implement path tight bounds using path ops machinery. This is not as efficient as it could be; for instance, internally, it creates a path ops structure more suited to intersection. If this shows up as a performance bottleneck, it could be improved. Fix path ops gyp files, which have fallen out of sync with other tests. R=mtklein@google.com, bsalomon@google.com TBR=mtklein BUG=skia:1712 Author: caryclark@google.com Review URL: https://codereview.chromium.org/348343002
* Initialize a variable in GrDrawTarget::drawPathsGravatar kkinnunen2014-06-24
| | | | | | | | | | Initialize the device bounds rect variable before use in GrDrawTarget::drawPaths. R=rmistry@google.com, jvanverth@google.com, mtklein@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/355603003
* Implement text rendering with NVPRGravatar kkinnunen2014-06-24
| | | | | | | | | | | | | | | | | | | | | | | | Use path rendering to render the text from outlines if supported by the GPU. Implement this in GrStencilAndCoverTextContext by copying chunks of code from GrBitmapTextContext. The drawing is implemented with "instanced" path drawing functions. Moves the creation of the "main" text context from SkGpuDevice to the GrContext::createTextContext. This is done because the decision of which text renderer is optimal can be made only with the internal implementation-specific information of the context. Remove a windows assertion from SkScalerContext_GDI::getGDIGlyphPath. The GetGlyphOutlineW fails in fontmgr_match for the initial space char in the string " [700] ...". According to MSDN, this is a known problem. Just return that the glyph has no path data in these cases. R=jvanverth@google.com, bsalomon@google.com, mtklein@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/196133014
* No one uses SkPicture::swap.Gravatar Mike Klein2014-06-23
| | | | | | | BUG=skia: R=robertphillips@google.com Review URL: https://codereview.chromium.org/349313004
* Enable basic drawing with SkRecord-based pictures.Gravatar Mike Klein2014-06-23
| | | | | | | | | | | | | | | | | I've tagged all the functions in SkPicture.cpp is // fRecord TODO or // fRecord OK, depending on whether or not they're totally broken when used from an SkRecord-based picture. Obviously next steps are to eliminate all the TODOs, then clean up the notes. I converted SkPicture over to smart pointers too. It's particularly helpful that the smart pointers initialize to NULL by default. For now I've got all the SkRecord-based code jammed in at the bottom of the file. I figure it'll help me keep things straight for a bit, then we can rearrange later. BUG=skia: R=robertphillips@google.com Review URL: https://codereview.chromium.org/333823007
* use platform-independent font for gmGravatar caryclark2014-06-23
| | | | | | | | | | | | | | Create a custom typeface and scaler to render simple paths the same on all platforms. GM tests are modified to explicitly select the custom typeface. R=reed@google.com, mtklein@google.com, bungeman@google.com TBR=reed Author: caryclark@google.com Review URL: https://codereview.chromium.org/348323003
* Remove unneeded return from DirectWrite.Gravatar Ben Wagner2014-06-23
|
* Use smart pointers to make SkPictureRecorder lifetimes less manual.Gravatar Mike Klein2014-06-23
| | | | | | | BUG=skia: R=robertphillips@google.com Review URL: https://codereview.chromium.org/344253005
* Better rendering detection with DirectWrite.Gravatar bungeman2014-06-23
| | | | | | | | | | | When requesting embedded bitmaps, all sizes in a gridfit gasp range with a bitmap in that range should be gridfit to the fullest extent possible. R=eae@chromium.org, reed@google.com, mtklein@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/341343002
* Revert of Revert of Fix SkPaint::measureText for stroked hairline text ↵Gravatar rmistry2014-06-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/354433002/) Reason for revert: Rebaseline CL is ready to be submitted Original issue's description: > Revert of Fix SkPaint::measureText for stroked hairline text (https://codereview.chromium.org/335603003/) > > Reason for revert: > Caused many shadertext GM failures > > Original issue's description: > > Fix SkPaint::measureText for stroked hairline text > > > > SkPaint::measureText and text drawing used different criteria for > > determining whether text should be drawn as paths or not. > > > > Adds tests glyph_pos_(h/n)_(s/f/b) to test the text rendering and the glyph > > positioning in the rendering. Mainly added in order to define what is the > > expected text rendering when hairline stroke is used with various transform > > options. > > > > The testcase also tries to note or highlight the fact that SkPaint::measureText > > is not expected to produce intuitively matching results when compared to a > > rendering, if the rendering is done so that the device ends up having a device > > transform. > > > > This fixes the glyph_pos_h_s (hairline, stroked) test-case. > > > > Ignore shadertext2_pdf-poppler.png gm on > > Test-Ubuntu13.10-ShuttleA-NoGPU-x86_64-Debug temporarily, as that fails. > > > > Committed: https://skia.googlesource.com/skia/+/196af738027c5e18c3eb792dbcaf90ef27821793 > > TBR=jvanverth@google.com,reed@google.com,kkinnunen@nvidia.com > NOTREECHECKS=true > NOTRY=true > > Committed: https://skia.googlesource.com/skia/+/abc9bb55ddfeb4b1a7acc335a34841fddcd22d27 R=jvanverth@google.com, reed@google.com, kkinnunen@nvidia.com TBR=jvanverth@google.com, kkinnunen@nvidia.com, reed@google.com NOTREECHECKS=true NOTRY=true Author: rmistry@google.com Review URL: https://codereview.chromium.org/349153005
* Revert of Support using OpenGL ES context on desktop ↵Gravatar rmistry2014-06-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/319043005/) Reason for revert: Caused segmentation fault on many builders. Please see reverted CL's msg #21 for details. Original issue's description: > Support using OpenGL ES context on desktop > > Support using OpenGL ES context on desktop for unix and Android platforms. This > is mainly useful in development. > > Add --gpuAPI flag to gm, dm, bench, bench_pictures and render_pictures. The > possible parameters for the flag are "gl" and "gles". > > Committed: https://skia.googlesource.com/skia/+/74fc727dc88ee24d89f88cb1709f963e9073aeb3 R=bsalomon@google.com, mtklein@google.com, robertphillips@google.com, kkinnunen@nvidia.com TBR=bsalomon@google.com, kkinnunen@nvidia.com NOTREECHECKS=true NOTRY=true Author: rmistry@google.com Review URL: https://codereview.chromium.org/351583002
* Revert of Add functions to support NV_path_rendering in OpenGL ES ↵Gravatar rmistry2014-06-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/345723002/) Reason for revert: Will have to unfortunately revert this CL in order to revert https://codereview.chromium.org/319043005/ Original issue's description: > Add functions to support NV_path_rendering in OpenGL ES > > Add OpenGL ES extension functions needed to support NV_path_rendering in OpenGL > ES. > > The added glProgramPathFragmentInputGenNV call is defined in NV_path_rendering > revision 30, similar to following: > > Append to the end of the "Shader Inputs" subsection of Section 3.12.2 > "Shader Execution": > > The command > > void ProgramPathFragmentInputGenNV(uint program, > int location, > enum genMode, > int components, > const float *coeffs); > > controls how a user-defined (non-built-in) fragment input of a > GLSL program object is computed for fragment shading operations that > occur as a result of CoverFillPathNV or CoverStrokePathNV. > > /program/ names a GLSL program object. If /program/ has not been > successfully linked, the error INVALID_OPERATION is generated. > > The given fragment input generation state is loaded into the fragment > input variable location identified by /location/. This location > is a value returned either by GetProgramResourceLocation with a > /programInterface/ of FRAGMENT_INPUT_NV and a given fragment shader > input variable name or by GetProgramResourceiv with FRAGMENT_INPUT_NV > for the /programInterface/ and LOCATION for the property for a given > fragment input resource index. > > .... > > glProgramPathFragmentInputGenNV will be used instead of glPathTexGen, > because the latter depends on fixed function pipeline that is not > exposed in ES. > > Also add glGetProgramResourceLocation from OpenGL 4.3 or > ARB_program_interface_query. > > Also add FRAGMENT_INPUT define to be used with glGetProgramResourceLocation. > > The added functions are not used yet, but they're needed when implementing > NV_path_rendering support for OpenGL ES. They can also be used on OpenGL. > > Remove uncalled NV_path_rendering functions, so they do not cause confusion > or take space in the interface definition. The ones that are later used > can be re-added when needed. > > Remove definitions NV_path_rendering that are for NV_path_rendering function > parameters that are not used. The ones that are later used > can be re-added when needed. > > Committed: https://skia.googlesource.com/skia/+/4a995dfff2ecf91e8bf999d77e3218cec596232c R=bsalomon@google.com, kkinnunen@nvidia.com TBR=bsalomon@google.com, kkinnunen@nvidia.com NOTREECHECKS=true NOTRY=true Author: rmistry@google.com Review URL: https://codereview.chromium.org/349983002
* Revert of Fix SkPaint::measureText for stroked hairline text ↵Gravatar rmistry2014-06-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/335603003/) Reason for revert: Caused many shadertext GM failures Original issue's description: > Fix SkPaint::measureText for stroked hairline text > > SkPaint::measureText and text drawing used different criteria for > determining whether text should be drawn as paths or not. > > Adds tests glyph_pos_(h/n)_(s/f/b) to test the text rendering and the glyph > positioning in the rendering. Mainly added in order to define what is the > expected text rendering when hairline stroke is used with various transform > options. > > The testcase also tries to note or highlight the fact that SkPaint::measureText > is not expected to produce intuitively matching results when compared to a > rendering, if the rendering is done so that the device ends up having a device > transform. > > This fixes the glyph_pos_h_s (hairline, stroked) test-case. > > Ignore shadertext2_pdf-poppler.png gm on > Test-Ubuntu13.10-ShuttleA-NoGPU-x86_64-Debug temporarily, as that fails. > > Committed: https://skia.googlesource.com/skia/+/196af738027c5e18c3eb792dbcaf90ef27821793 R=jvanverth@google.com, reed@google.com, kkinnunen@nvidia.com TBR=jvanverth@google.com, kkinnunen@nvidia.com, reed@google.com NOTREECHECKS=true NOTRY=true Author: rmistry@google.com Review URL: https://codereview.chromium.org/354433002
* Add functions to support NV_path_rendering in OpenGL ESGravatar kkinnunen2014-06-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add OpenGL ES extension functions needed to support NV_path_rendering in OpenGL ES. The added glProgramPathFragmentInputGenNV call is defined in NV_path_rendering revision 30, similar to following: Append to the end of the "Shader Inputs" subsection of Section 3.12.2 "Shader Execution": The command void ProgramPathFragmentInputGenNV(uint program, int location, enum genMode, int components, const float *coeffs); controls how a user-defined (non-built-in) fragment input of a GLSL program object is computed for fragment shading operations that occur as a result of CoverFillPathNV or CoverStrokePathNV. /program/ names a GLSL program object. If /program/ has not been successfully linked, the error INVALID_OPERATION is generated. The given fragment input generation state is loaded into the fragment input variable location identified by /location/. This location is a value returned either by GetProgramResourceLocation with a /programInterface/ of FRAGMENT_INPUT_NV and a given fragment shader input variable name or by GetProgramResourceiv with FRAGMENT_INPUT_NV for the /programInterface/ and LOCATION for the property for a given fragment input resource index. .... glProgramPathFragmentInputGenNV will be used instead of glPathTexGen, because the latter depends on fixed function pipeline that is not exposed in ES. Also add glGetProgramResourceLocation from OpenGL 4.3 or ARB_program_interface_query. Also add FRAGMENT_INPUT define to be used with glGetProgramResourceLocation. The added functions are not used yet, but they're needed when implementing NV_path_rendering support for OpenGL ES. They can also be used on OpenGL. Remove uncalled NV_path_rendering functions, so they do not cause confusion or take space in the interface definition. The ones that are later used can be re-added when needed. Remove definitions NV_path_rendering that are for NV_path_rendering function parameters that are not used. The ones that are later used can be re-added when needed. R=bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/345723002
* Support using OpenGL ES context on desktopGravatar kkinnunen2014-06-22
| | | | | | | | | | | | | | Support using OpenGL ES context on desktop for unix and Android platforms. This is mainly useful in development. Add --gpuAPI flag to gm, dm, bench, bench_pictures and render_pictures. The possible parameters for the flag are "gl" and "gles". R=bsalomon@google.com, mtklein@google.com, robertphillips@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/319043005
* Fix SkPaint::measureText for stroked hairline textGravatar kkinnunen2014-06-22
| | | | | | | | | | | | | | | | | | | | | | | | | | SkPaint::measureText and text drawing used different criteria for determining whether text should be drawn as paths or not. Adds tests glyph_pos_(h/n)_(s/f/b) to test the text rendering and the glyph positioning in the rendering. Mainly added in order to define what is the expected text rendering when hairline stroke is used with various transform options. The testcase also tries to note or highlight the fact that SkPaint::measureText is not expected to produce intuitively matching results when compared to a rendering, if the rendering is done so that the device ends up having a device transform. This fixes the glyph_pos_h_s (hairline, stroked) test-case. Ignore shadertext2_pdf-poppler.png gm on Test-Ubuntu13.10-ShuttleA-NoGPU-x86_64-Debug temporarily, as that fails. R=jvanverth@google.com, reed@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/335603003
* Re-land "Fix external SkImageFilter caching with clips."Gravatar senorblanco2014-06-20
| | | | | | | | | | | | This reverts commit 9efd66b8451f25465abd1027e09a3bcfa7b9c554. R=reed@google.com TBR=reed@google.com BUG=skia: Author: senorblanco@chromium.org Review URL: https://codereview.chromium.org/348903004
* speed up rgn building by inlining memcmp for 32bit valuesGravatar reed2014-06-20
| | | | | | | | | | | | | | on mac/clang, using circularclips gm/bench - before: 400ms - after: 250ms BUG=skia: R=tomhudson@chromium.org, mtklein@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/348143002
* Fix SkBlitRow_opts_arm so that it works on ARM v4t.Gravatar george2014-06-20
| | | | | | | | | | | Original Mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=901208 R=reed@google.com, mtklein@google.com, reed1 BUG=skia: Author: george@mozilla.com Review URL: https://codereview.chromium.org/337853003
* Add some missing header include guardsGravatar george2014-06-20
| | | | | | | | | BUG=skia: R=reed@google.com, bsalomon@google.com, tfarina@chromium.org Author: george@mozilla.com Review URL: https://codereview.chromium.org/325843002