aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkFixed.h
Commit message (Collapse)AuthorAge
* clamp fixed divide to 32 bitsGravatar caryclark2016-01-12
| | | | | | | | | | | | | | In SkEdge::setLine, the numerator is a 26.6 fixed number. SkFixedDiv shifts it up by an additional 16 bits. If the y interval is small, the result overflows 32 bits. The code pins in 64 bit space before down-casting the result. R=reed@google.com BUG=skia:4708 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1583453002 Review URL: https://codereview.chromium.org/1583453002
* ubsan shift fixesGravatar caryclark2015-12-09
| | | | | | | | | | | Use an inline function that does a normal shift. When built for the sanitizer, add casts so that the shift is unsigned. Also make a few fixes to do unsigned shifts or avoid the shift altogether; and add an argument spec to some macros. R=reed@google.com,mtklein@google.com BUG=skia:4633 Review URL: https://codereview.chromium.org/1503423003
* Fix UB in SkDivBitsGravatar mtklein2015-11-20
| | | | | | | | | | | | | | | | | | | | | | | This used to: DIVBITS_ITER was shifting bits up into the sign bit, which is a no-no. This turns numer into a uint32_t to make those defined, and adds a few notes. x >= 0 is always true for unsigned x, so we needed a few small logic refactors. Instead it now: Only call SkDivBits if the old behavior is required. Usually, just do the divide with /. BUG=skia:3562 Committed: https://skia.googlesource.com/skia/+/988adddd48322bfa3e3cb0c017cfce71fbbf1123 Committed: https://skia.googlesource.com/skia/+/6c7b104b4c08ae2332a6ce3c8c906da4e8c51e5f TBR=reed@google.com No API change. Review URL: https://codereview.chromium.org/1455163004
* Fix code that left shifts a negative value. This has undefined behavior.Gravatar benjaminwagner2015-11-11
| | | | | | | | Patched from internal cl/107515669 by rtrieu and added comments. BUG=skia:2481 Review URL: https://codereview.chromium.org/1439483002
* Correct SkFixedToDouble.Gravatar bungeman2015-04-17
| | | | | | | | | | | | SkFixedToDouble uses the decimal floating point string representation of 1/(2^16) to provide a constant value. This value is exactly representable by a double but the decimal constant currently used does not map to this value. This change modifies this constant to more decimal digits so that the actual double value desired is created. Review URL: https://codereview.chromium.org/1097473002
* Revert of replace SkFixedDiv impl with native 64bit math (patchset #2 ↵Gravatar reed2015-03-19
| | | | | | | | | | | | | | | | | | | | | | | | | id:20001 of https://codereview.chromium.org/1022543003/) Reason for revert: http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/53096 layouttests failures Original issue's description: > replace SkFixedDiv impl with native 64bit math > > BUG=skia: > TBR= > > Committed: https://skia.googlesource.com/skia/+/7c44ca926bf42b3b2e56131f250c0fd58f87ac71 TBR= NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1018523008
* replace SkFixedDiv impl with native 64bit mathGravatar reed2015-03-18
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1022543003
* Remove SkLONGLONG.Gravatar bungeman2015-03-17
| | | | | | | | | All users now define SkLONGLONG. This fixes a long outstanding TODO now that int64_t is required. BUG=skia:179 Review URL: https://codereview.chromium.org/1000933003
* Glyph positions maintain 32 bit integer part.Gravatar bungeman2015-03-11
| | | | | | | | | | | | | A glyph position when mapped from canvas space to device space may land outside the bounds of the current 16 bit integer part of device space. Device space is already limited to 32 bits for the integer part, but for a short space in drawText and drawPosText it is currently limited to 16 bits (SkFixed). Raise this limit by moving to 48.16. This matches the current similar fix for measureText. BUG=chromium:375322 Review URL: https://codereview.chromium.org/977623002
* Switch SkBitmapProcState's SkFractionalInt to 32.32.Gravatar mtklein2014-11-21
| | | | | | | | | | | 16 bits are not enough to hold the integral part of fx in Clamp_S32_opaque_D32_nofilter_DX_shaderproc. Weirdly, no GM diffs on my desktop. BUG=skia:3096 Review URL: https://codereview.chromium.org/733163003
* Archive more dead code.Gravatar mtklein2014-09-30
| | | | | | | | | BUG=skia: R=reed@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/617003004
* SK_CPU_ARM --> SK_CPU_ARM32Gravatar mtklein2014-06-03
| | | | | | | | | | | That's what it means. It keeps confusing us as named today. BUG=skia: R=djsollen@google.com, mtklein@google.com, reed@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/314643004
* Always inline SkFloatToFixed_arm.Gravatar commit-bot@chromium.org2014-05-15
| | | | | | | | | | | | | | | We have "inline" assembly for speed on ARM, but the compiler when told to optimize for space wasn't inlining it, destroying any possible performance improvement. BUG=skbug:2550 R=mtklein@google.com, reed@google.com, tomhudson@google.com Author: tomhudson@chromium.org Review URL: https://codereview.chromium.org/281143002 git-svn-id: http://skia.googlecode.com/svn/trunk@14745 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove SK_SUPPORTED_DEPRECATED_FIXEDROUND, no longer neededGravatar reed@google.com2014-01-06
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12918 2bbb7eff-a529-9590-31e7-b0007b416f81
* SK_SUPPORTED_DEPRECATED_FIXEDROUND around deprecated fixed[round,ceil,floor]Gravatar mike@reedtribe.org2014-01-06
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12903 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Revert "begin to remove SkLONGLONG and wean Skia off of Sk64""Gravatar reed@google.com2013-12-20
| | | | | | | | | | This reverts commit 15b986baf026a3da5e2cac8106a1b753df242c39. BUG= Review URL: https://codereview.chromium.org/119353003 git-svn-id: http://skia.googlecode.com/svn/trunk@12796 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "begin to remove SkLONGLONG and wean Skia off of Sk64"Gravatar reed@google.com2013-12-19
| | | | | | | | | | | | | | This reverts commit 784890196fdab96289f9389db43aca01f35db0f9. Revert "use LL suffix for 64bit literal" This reverts commit 9634295aff9bffd7a3875a0ca4a9b1a27d0793fc. BUG= Review URL: https://codereview.chromium.org/116543009 git-svn-id: http://skia.googlecode.com/svn/trunk@12790 2bbb7eff-a529-9590-31e7-b0007b416f81
* begin to remove SkLONGLONG and wean Skia off of Sk64Gravatar reed@google.com2013-12-19
| | | | | | | | | BUG= R=caryclark@google.com Review URL: https://codereview.chromium.org/99433009 git-svn-id: http://skia.googlecode.com/svn/trunk@12788 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove unused SkFixed and SkFract functionsGravatar reed@google.com2013-12-19
| | | | | | | | | BUG= R=caryclark@google.com Review URL: https://codereview.chromium.org/113873008 git-svn-id: http://skia.googlecode.com/svn/trunk@12767 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove SK_SCALAR_IS_[FLOAT,FIXED] and assume floatsGravatar reed@google.com2013-12-17
| | | | | | | | | | | | | To keep the CL (slightly) managable, this does not make any changes to existing macros (e.g. SkScalarMul). Just tackling #ifdef constructs this time around. BUG= R=bsalomon@google.com, caryclark@google.com Review URL: https://codereview.chromium.org/117053002 git-svn-id: http://skia.googlecode.com/svn/trunk@12712 2bbb7eff-a529-9590-31e7-b0007b416f81
* The register keyword is deprecated in C++, even at -O0, registers are used ↵Gravatar commit-bot@chromium.org2013-12-16
| | | | | | | | | | | | | | | | | automatically. Having the register keyword there causes a warning about deprecated keywords when using clang (and possibly future gcc versions), and isn't needed. Patch originally submitted to AOSP https://android-review.googlesource.com/#/c/72501 R=mtklein@google.com, scroggo@google.com, reed@google.com Author: djsollen@google.com Review URL: https://codereview.chromium.org/93703005 git-svn-id: http://skia.googlecode.com/svn/trunk@12702 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert r10705 (ARM Skia NEON patches - 04 - Clean SkFixed / SkLONGLONG) due ↵Gravatar robertphillips@google.com2013-08-15
| | | | | | to 1000+ linux_layout failures (http://build.chromium.org/p/tryserver.chromium/builders/linux_layout_rel/builds/18997/steps/webkit_tests/logs/stdio) git-svn-id: http://skia.googlecode.com/svn/trunk@10729 2bbb7eff-a529-9590-31e7-b0007b416f81
* ARM Skia NEON patches - 04 - Clean SkFixed / SkLONGLONGGravatar commit-bot@chromium.org2013-08-14
| | | | | | | | | | | | | | | It removes SkLONGLONG and uses int64_t to implement the SkFixed operations for which a SkLONGLONG version existed. It also removes the 32 bit version that are being replaced. BUG= R=djsollen@google.com, reed@google.com Author: kevin.petit.arm@gmail.com Review URL: https://chromiumcodereview.appspot.com/18539004 git-svn-id: http://skia.googlecode.com/svn/trunk@10705 2bbb7eff-a529-9590-31e7-b0007b416f81
* one more thing to try before rebaselining androidGravatar mtklein@google.com2013-07-29
| | | | | | | | | BUG= R=djsollen@google.com Review URL: https://codereview.chromium.org/21112004 git-svn-id: http://skia.googlecode.com/svn/trunk@10420 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add bench to test float to fixed conversionGravatar djsollen@google.com2013-07-18
| | | | | | | | R=reed@google.com Review URL: https://codereview.chromium.org/19773006 git-svn-id: http://skia.googlecode.com/svn/trunk@10155 2bbb7eff-a529-9590-31e7-b0007b416f81
* ARM Skia NEON patches - 01 - Simple fixesGravatar commit-bot@chromium.org2013-07-15
| | | | | | | | | | | | | | | | | | | | | | | | This series contains a few fairly non-controversial fixes. Misc: remove dead references to neon 4444 functions Misc: avoid the double _neon_neon suffix in the clamp matrix functions. MAKENAME already adds the _neon suffix Misc: a few stupid / obvious fixes BUG= R=djsollen@google.com Author: kevin.petit.arm@gmail.com Review URL: https://chromiumcodereview.appspot.com/18666004 git-svn-id: http://skia.googlecode.com/svn/trunk@10072 2bbb7eff-a529-9590-31e7-b0007b416f81
* first cut at making iOS workGravatar caryclark@google.com2012-09-20
| | | | | | | | | | | | | Replace __arm__ with SK_CPU_ARM add support for iOS simulator and device fix const warning in iOSSampleApp update gyp files https://code.google.com/p/skia/issues/detail?id=900 tracks fixing missing arm assembly Review URL: https://codereview.appspot.com/6552045 git-svn-id: http://skia.googlecode.com/svn/trunk@5606 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix warngs by casting from float to int64_tGravatar reed@google.com2012-08-03
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4945 2bbb7eff-a529-9590-31e7-b0007b416f81
* add debugging SkFloatToFixed_Check() which asserts that the float is in ↵Gravatar reed@google.com2012-08-03
| | | | | | range of a fixed git-svn-id: http://skia.googlecode.com/svn/trunk@4942 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove SK_CAN_USE_FLOAT (deprecated)Gravatar reed@google.com2012-06-11
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4232 2bbb7eff-a529-9590-31e7-b0007b416f81
* use higher precision (64bit) fixed-point for matrix procGravatar reed@google.com2012-03-07
| | | | | | Review URL: https://codereview.appspot.com/5772044 git-svn-id: http://skia.googlecode.com/svn/trunk@3336 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make SkMath.h less visible in public header files.Gravatar tomhudson@google.com2011-09-27
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2340 2bbb7eff-a529-9590-31e7-b0007b416f81
* deprecate SkScalarFloor, SkScalarCeil, SkScalarRoundGravatar reed@google.com2011-08-01
| | | | | | | | | | | | Should instead use the explicit version that returns either a scalar or int e.g. SkScalarRoundToInt SkScalarROundToScalar git-svn-id: http://skia.googlecode.com/svn/trunk@2018 2bbb7eff-a529-9590-31e7-b0007b416f81
* Automatic update of all copyright notices to reflect new license terms.Gravatar epoger@google.com2011-07-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I have manually examined all of these diffs and restored a few files that seem to require manual adjustment. The following files still need to be modified manually, in a separate CL: android_sample/SampleApp/AndroidManifest.xml android_sample/SampleApp/res/layout/layout.xml android_sample/SampleApp/res/menu/sample.xml android_sample/SampleApp/res/values/strings.xml android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java experimental/CiCarbonSampleMain.c experimental/CocoaDebugger/main.m experimental/FileReaderApp/main.m experimental/SimpleCocoaApp/main.m experimental/iOSSampleApp/Shared/SkAlertPrompt.h experimental/iOSSampleApp/Shared/SkAlertPrompt.m experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig gpu/src/android/GrGLDefaultInterface_android.cpp gyp/common.gypi gyp_skia include/ports/SkHarfBuzzFont.h include/views/SkOSWindow_wxwidgets.h make.bat make.py src/opts/memset.arm.S src/opts/memset16_neon.S src/opts/memset32_neon.S src/opts/opts_check_arm.cpp src/ports/SkDebug_brew.cpp src/ports/SkMemory_brew.cpp src/ports/SkOSFile_brew.cpp src/ports/SkXMLParser_empty.cpp src/utils/ios/SkImageDecoder_iOS.mm src/utils/ios/SkOSFile_iOS.mm src/utils/ios/SkStream_NSData.mm tests/FillPathTest.cpp Review URL: http://codereview.appspot.com/4816058 git-svn-id: http://skia.googlecode.com/svn/trunk@1982 2bbb7eff-a529-9590-31e7-b0007b416f81
* add SkFixedFloorToFixedGravatar reed@google.com2011-06-07
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@1524 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixes from Sk/Gr rect unification. Gravatar bsalomon@google.com2011-05-09
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@1288 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix SkFixed overflows in SkFixedSquare, SkGradientShader.Gravatar wjmaclean@chromium.org2011-04-13
| | | | | | Return SK_FixedMax when overflow occurs. git-svn-id: http://skia.googlecode.com/svn/trunk@1117 2bbb7eff-a529-9590-31e7-b0007b416f81
* add getter/setter for device-factory on canvasGravatar reed@google.com2011-01-11
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@683 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix build for scalar==fixedGravatar reed@google.com2011-01-04
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@671 2bbb7eff-a529-9590-31e7-b0007b416f81
* grab from latest androidGravatar reed@android.com2008-12-17
git-svn-id: http://skia.googlecode.com/svn/trunk@27 2bbb7eff-a529-9590-31e7-b0007b416f81