Commit Graph

3660 Commits

Author SHA1 Message Date
DreamPiggy 82cfc450a3
Merge pull request #3556 from dreampiggy/feature/visionOS
(Part 1) Support to build for visionOS (no package manager support)
2023-09-02 20:19:09 +08:00
DreamPiggy 8000e239d2 Update readme and at least the xcconfig for visionOS 2023-09-02 20:16:06 +08:00
DreamPiggy a797da71ce Added support for visionOS using platform macro detection
The scale using traitCollection.displayScale
This only change source code
2023-09-02 20:11:27 +08:00
DreamPiggy 2db2c7ad5b
Merge pull request #3592 from dreampiggy/feature/avoid_cancel_image_options
Added `SDWebImageAvoidAutoCancelImage` to avoid cancel loading image requests for the same operation key
2023-09-02 19:26:10 +08:00
DreamPiggy 44470a8e4e Added test cases for AvoidAutoCancelImage options 2023-09-01 16:10:50 +08:00
DreamPiggy b3e1637a23 Added `SDWebImageAvoidAutoCancelImage` to avoid cancel loading image requests for the same operation key 2023-09-01 16:10:34 +08:00
DreamPiggy 507225ea04
Merge pull request #3587 from dreampiggy/bugfix/add_check_for_empty_data
Add extra check for empty data during URLSession data callback
2023-08-23 18:26:29 +08:00
DreamPiggy 1550747f2a Add extra check for image data during URLSession data callback
Make sure the assert work
2023-08-23 17:56:38 +08:00
DreamPiggy c614dffdfd Update the comments and associated key 2023-07-31 18:01:59 +08:00
DreamPiggy 5ef6c83953
Merge pull request #3576 from dreampiggy/feature_set_image_state_api
Add better support for stateful view (UIButton) for image URL/progres s state management
2023-07-31 17:59:57 +08:00
DreamPiggy 1c92951110 Fix the unit test about out-of-date behavior 2023-07-31 10:39:48 +08:00
DreamPiggy a986a77734 Add better support for stateful view (UIButton) for image URL/progress state management
Key idea:
1. Image Loading pipeline is based on `operation key`, when start/cancel it always need operation key
2. Stateful view has multiple operation key for different image property, we can use KeyPath as the hint to generate operation key
3. To make exists API compatible, we do not change much, however, in 6.0 we may do refactory and store all the loadState/operation/result into the single object, instead of 3
2023-07-31 10:35:47 +08:00
DreamPiggy 7e78633845
Merge pull request #3575 from dreampiggy/bugfix/CGImageCreateScale
Fix the CGImageCreateScaled to support 16/32 bit depth CGImage (RGB161616) and always preserve pixel format info
2023-07-29 21:59:26 +08:00
DreamPiggy 68c5808581 Added the complicated unit test `test22CGImageCreateScaledWithSize`
Test RGB888/RGB16/ARGB8888/RGB16/RGBF works on CGImageCreateScaled, because it's Foundation of coder plugin for thumbnail processing
2023-07-28 23:45:23 +08:00
DreamPiggy d25ee5b094 Fix the CGImageCreateScaled to support 16/32 bits CGImage (RGB161616), and always preserve pixel format info 2023-07-28 21:33:36 +08:00
DreamPiggy 0b225eaaeb
Merge pull request #3572 from Mervin1024/redundant_url_requests
Fix redundant requests for the same url during decoding time
2023-07-28 18:55:27 +08:00
马遥 2d73e96fdf use @syncrhonized (self) in the whole checkDone method, no longer allows something that add new handlers during checkDone 2023-07-28 14:56:28 +08:00
马遥 1ee0dbacea fix typo 2023-07-28 11:16:38 +08:00
DreamPiggy bc4d0c7c62
Merge pull request #3573 from dreampiggy/feature/keep_animated_data_macOS_imageRep
Expose the data and format when SDAnimatedImageRep created with APNG/GIF/WebP/HEICS
2023-07-27 15:28:18 +08:00
DreamPiggy 480f3b5158 Update test case `test27ThatEncodeWithFramesWorks` 2023-07-26 23:04:02 +08:00
DreamPiggy 1f4292ec82 Expose the data and format when SDAnimatedImageRep created with APNG/GIF/WebP/HEICS
This can avoid extra decoding (slow) for some cases if you need compressed image data
2023-07-26 23:01:57 +08:00
马遥 39af2be6ee fix redundant url requests 2023-07-26 15:23:59 +08:00
DreamPiggy 8dbf8ed97a Disable the test case testSDGraphicsImageRenderer on GitHub actions because it does not connect to a display
Only run on local Mac
2023-07-17 15:32:03 +08:00
DreamPiggy 512eb997ca
Merge pull request #3565 from fattiger00/master
Fix bug #3564
2023-07-15 15:08:18 +08:00
yang f9e6cc288c Add test cases for bug #3564 2023-07-15 00:33:58 +08:00
yang 01336bd3cd Fix bug #3564 decodedAndScaledDownImageWithImage may not render the image completely when met the specified image size. 2023-07-15 00:30:51 +08:00
DreamPiggy 633996a807 Fix the test case 2023-07-14 00:22:14 +08:00
DreamPiggy c7e350f792 Bumped version to 5.17.0
update CHANGELOG
2023-07-14 00:04:45 +08:00
DreamPiggy 8efa42e6bc Code garden for test cases 2023-07-14 00:03:06 +08:00
DreamPiggy 8f16a63d7f
Merge pull request #3559 from dreampiggy/performance/default_bitmap_and_force_decode
Refactory the logic to handle force decode logic to avoid CA copy frame buffer, introduce SDImageForceDecodePolicy detailed control
2023-07-13 23:59:03 +08:00
DreamPiggy 808cedc7e5 Rename to use struct to return the alignment, preserve for future HDR support 2023-07-13 23:41:09 +08:00
DreamPiggy 45b497c5f6 Fix the macOS force decode colorspace does not match screen colorspace and cause copy
Fix the NSColor should still convert to sRGB for print...
2023-07-13 23:31:19 +08:00
DreamPiggy 67da434e79 Fix the colorspace of hardware supported on macOS
Should use device RGB, like Color LCD
2023-07-13 22:58:32 +08:00
DreamPiggy cc89e14fdd Fix the handle of ForceDecodePolicyAlways, still need to check animated image and vector image to not break them 2023-07-13 22:58:32 +08:00
DreamPiggy 3e382b234d Fix the handle to context option and add test case 2023-07-13 22:58:32 +08:00
DreamPiggy b4af7cc5ef Removed the unused cache line size helper method 2023-07-13 22:58:32 +08:00
DreamPiggy 1a61c8d2d9 Update test case for SDImageForceDecodePolicyAutomatic 2023-07-13 22:58:32 +08:00
DreamPiggy e1c01fe28b Introduce `SDImageForceDecodePolicy`, which can controls whether to force-decode using automatic check, always or never
Deprecate the `SDWebImageAvoidDecodeImage`

This can help for some user who don't use ImageIO and need to ensure the memory footprint
2023-07-13 22:58:32 +08:00
DreamPiggy 69c98c5f71 Added test case `test28ThatNotTriggerCACopyImage` and `test28ThatDoTriggerCACopyImage` 2023-07-13 22:58:32 +08:00
DreamPiggy f6ca661537 Update the correct byte alignment and check with 8 * 4 bytes
The sd_isDecoded default value only check once
2023-07-13 22:58:32 +08:00
DreamPiggy 06589dbcc4 Update the default force decode value, partial revert ff6b3b9bb5
Now it's will mark as false for not byte-aligned CGImage
2023-07-13 22:58:32 +08:00
DreamPiggy b4559994ea Provide the API for custom coders (like WebPCoder) to use runtime check to handle the decode output bitmap info
Include: colorspace, byte alignment, bitmap info

Remove the exists hardcode on BGRA8888
2023-07-13 22:58:32 +08:00
DreamPiggy f5f27a9e01
Merge pull request #3561 from dreampiggy/bugfix/macOS_limitBytes_animatedImageRep
Fix macOS bug that SDImageCoderDecodeScaleDownLimitBytes still use the AnimatedImageRep and beyond the byte limit
2023-07-13 22:53:09 +08:00
DreamPiggy 47fd1c9a10 Fix the bug that SDImageCoderDecodeScaleDownLimitBytes still use the AnimatedImageRep and beyond the byte limit
Also, expose the limit bytes calculation utils method
2023-07-13 22:32:27 +08:00
DreamPiggy c51ba84499 Bumped version to 5.16.0
update CHANGELOG
2023-06-04 14:19:24 +08:00
DreamPiggy 90aa750c92
Merge pull request #3547 from dreampiggy/doc/update_api_document
Update some comments to allows SwiftDocC generate better page
2023-06-04 14:02:00 +08:00
DreamPiggy 82793d27bf Update some comments to allows SwiftDocC generate better page 2023-06-04 13:31:22 +08:00
DreamPiggy 5c14e73f70 Added description about the non-cache key awareness for .scaleDownLimitBytes
May be changed in the future if user reply
2023-06-04 13:30:42 +08:00
DreamPiggy b27c579f47
Merge pull request #3537 from dreampiggy/feature/coder_scale_down_limit_bytes_auto
Introduce the automatically calculation of thumbnail (include animated/static image) using `SDImageCoderDecodeScaleDownLimitBytes`
2023-06-04 12:45:36 +08:00
DreamPiggy c27e18506d
Merge pull request #3524 from dreampiggy/feature/sdanimatedimage_frame_pool
Performance: Introduce frame pool for SDAnimatedImage playback. Solve when multiple image view references the same URL image cause un-wanted decode which waste RAM/CPU
2023-06-04 12:38:52 +08:00