Commit Graph

100 Commits

Author SHA1 Message Date
Michael Schneider
cd20716750 Fix using NSGraphicsContext in creating a CGImage in NSImage category 2016-01-06 14:58:34 +01:00
Michael Schneider
8df9dc00c6 Add support for OS X to library
Mapping generic classes like PINImage, PINImageView and PINButton to the equivalent UIKit or AppKit classes. Throughout the framework use these mappings instead of the concrete UIKit / AppKit names. Furthermore we provide a category on NSImage that is adding methods that are not available on NSImage but on UIImage.
2016-01-04 17:39:50 +01:00
Garrett Moon
a19ac9f05b Merge pull request #105 from bsmith11/addSharedImageManagerConfiguration
Support for sharedImageManager with custom configuration
2015-12-15 13:50:34 -08:00
Garrett Moon
b7cace0802 Revert "use NS_EXTENSION_UNAVAILABLE_IOS instead of PIN_APP_EXTENSIONS"
This reverts commit 464bb1921c.
2015-12-14 14:34:27 -08:00
Garrett Moon
08b5b94573 processor property is unused 2015-12-14 14:33:38 -08:00
Garrett Moon
4922e90adf Merge pull request #107 from foursquare/session-auth-challenge
Fix crash in urlSession authentication challenge.
2015-12-09 10:28:13 -08:00
Garrett Moon
2271a04091 Merge pull request #108 from mRs-/NS_EXTENSION_UNAVAILABLE_IOS
use NS_EXTENSION_UNAVAILABLE_IOS instead of PIN_APP_EXTENSIONS
2015-12-09 10:24:54 -08:00
Marius Landwehr
464bb1921c use NS_EXTENSION_UNAVAILABLE_IOS instead of PIN_APP_EXTENSIONS 2015-12-09 07:47:15 +01:00
Brian Dorfman
21e69bcf80 Fix crash in urlSession authentication challenge.
Implement delegate method for when there is a session-level authentication challenge so that the call isn't forwarded to the task version.
Make sure we always strongSelf inside blocks.
2015-12-08 17:32:27 -08:00
Bradley Smith
cc9f900a95 - added sharedImageManager configuration 2015-12-07 16:05:31 -05:00
Garrett Moon
77e3fe563a Need to release image if returning 2015-12-05 14:18:47 -08:00
Garrett Moon
1bac095042 Remove decode for CI progressive images
Previously, I'd speculatively decoded images returned from the progressive CIContext
because I'd read that doing so would move the memory from the GPU to the CPU, hopefully
making drawing faster.

I decided to test this hypothesis and by drawing the un-'decoded' image and the image
directly returned from CIContext. Here are some results:

When decoded is drawn before regular
[22486:30240049] decoded - 'regular': 0.000263
[22486:30240097] decoded - 'regular': 0.000242
[22486:30240306] decoded - 'regular': 0.000092
[22486:30240068] decoded - 'regular': 0.000384
[22486:30240096] decoded - 'regular': 0.000111
[22486:30240074] decoded - 'regular': 0.000089
[22486:30240046] decoded - 'regular': 0.000273
[22486:30240351] decoded - 'regular': 0.000250
[22486:30240307] decoded - 'regular': 0.000313
[22486:30240308] decoded - 'regular': 0.000684
[22486:30240307] decoded - 'regular': 0.000485
[22486:30240069] decoded - 'regular': 0.002414
[22486:30240052] decoded - 'regular': 0.000397
[22486:30240049] decoded - 'regular': 0.000293
[22486:30240351] decoded - 'regular': 0.000145

When regular is drawn before decoded
[22610:30246046] decoded - 'regular': 0.000056
[22610:30246030] decoded - 'regular': 0.000473
[22610:30246029] decoded - 'regular': 0.000138
[22610:30246053] decoded - 'regular': 0.000387
[22610:30246030] decoded - 'regular': -0.000006
[22610:30246026] decoded - 'regular': 0.000714
[22610:30246034] decoded - 'regular': 0.000097
[22610:30246621] decoded - 'regular': 0.000039
[22610:30246024] decoded - 'regular': 0.000121
[22610:30246662] decoded - 'regular': -0.000090
[22610:30246030] decoded - 'regular': -0.000057
[22610:30246619] decoded - 'regular': 0.000443
[22610:30246033] decoded - 'regular': 0.001297
[22610:30246623] decoded - 'regular': -0.000020
[22610:30246057] decoded - 'regular': 0.001249
[22610:30246660] decoded - 'regular': 0.000208
[22610:30246659] decoded - 'regular': 0.000048
[22610:30246709] decoded - 'regular': -0.000327
[22610:30246027] decoded - 'regular': 0.000953
[22610:30246025] decoded - 'regular': 0.001228
[22610:30246659] decoded - 'regular': 0.001141

Decoding the image makes little difference and that the difference shows that
the 'decoded' image actually takes longer to draw.

So, we'll save memory and processing time by returning the CGImage from the
context directly as opposed to attempting to decode it.
2015-12-05 13:09:14 -08:00
Garrett Moon
d09f83379b CIImage doesn't retain its CGImage :( 2015-11-24 11:42:17 -08:00
Garrett Moon
b427105731 Merge pull request #97 from Adlai-Holler/UseNSOptions
Use NS_OPTIONS for PINRemoteImageManagerDownloadOptions
2015-11-23 14:06:56 -08:00
Adlai Holler
e1bfaa0fa1 Revert "Remove explicit options values"
This reverts commit bace9ce8d6.
2015-11-23 13:50:04 -08:00
Adlai Holler
af7bfe3f59 Revert "Fix raw value for .None option"
This reverts commit 897fd4c55f.
2015-11-23 13:49:59 -08:00
Adlai Holler
897fd4c55f Fix raw value for .None option 2015-11-22 10:49:15 -08:00
Garrett Moon
b52d4a867a Improve readability 2015-11-20 18:11:23 -08:00
Garrett Moon
db588e49cc Respect the maximum size of CIContexts 2015-11-20 18:04:01 -08:00
Adlai Holler
bace9ce8d6 Remove explicit options values 2015-11-20 15:53:04 -08:00
Adlai Holler
5fadcb46d0 Use NS_OPTIONS for PINRemoteImageManagerDownloadOptions 2015-11-20 15:24:57 -08:00
Connor Montgomery
213ce3cb14 fix test 2015-11-09 13:00:05 -05:00
Connor Montgomery
1fcc55c296 check class instead 2015-11-09 12:23:08 -05:00
Connor Montgomery
5884bc29cc Don't cast . 2015-11-09 12:11:33 -05:00
Connor Montgomery
dbf05ce687 Fix for local image URLs 2015-11-09 12:00:27 -05:00
Garrett Moon
49239f6899 Merge pull request #86 from foursquare/check-nil-url
Guard against nil url in category methods
2015-10-28 11:30:53 -07:00
Brian Dorfman
755fb0f253 Remove my name from xcode's auto gen header template 2015-10-28 11:27:22 -07:00
Brian Dorfman
0add2f2846 Remove unnecessary forward declaration 2015-10-28 11:27:22 -07:00
Brian Dorfman
ce61f2d43b Remove category methods from umbrella header.
LLVM's module documentation is a little arcane, but I believe this is the correct syntax to get what we want.
2015-10-28 11:27:22 -07:00
Brian Dorfman
3bc02e3c24 Add a new project for building Carthage framework 2015-10-28 11:27:22 -07:00
Brian Dorfman
836223b241 Guard against nil url in category methods 2015-10-26 17:09:59 -07:00
Garrett Moon
c3ac95ad26 Merge pull request #81 from farhanpatel/farhanpatel-placeholder
Placeholder image is set even if url is nil
2015-10-23 15:06:34 -07:00
Garrett Moon
25d83331b0 Add queue name 2015-10-23 14:05:22 -07:00
Garrett Moon
65d9c582fb Fix a race condition in PINURLSessionManager
The callback queue cannot be concurrent because there's no way to guarantee the
operations happen FIFO.

Also fixed an issue where authentication wouldn't happen if the PINURLSessionManager
delegate didn't respond to didReceiveChallenge:
2015-10-23 14:05:22 -07:00
Brian Dorfman
999b5305ec Only call respondsToSelector once. 2015-10-23 14:05:22 -07:00
Brian Dorfman
52c7463350 Optionally pass full result to category implementor 2015-10-23 14:05:22 -07:00
Garrett Moon
bbc0a9c86f URLs need to be HTTPs 2015-10-23 11:39:12 -07:00
Farhan Patel
21b3cb197f Placeholder image is set even if url is nil
In the PinRemoteImageCategory if a url is nil but a placeholder is provided the placeholder is removed instead of being set on the UIImage.
2015-10-19 11:02:31 -07:00
Garrett Moon
c7246b3cd0 Merge pull request #75 from foursquare/master
Optionally pass full result to category implementor
2015-10-14 16:53:35 -07:00
Brian Dorfman
2106b3c6f4 Only call respondsToSelector once. 2015-10-14 16:48:01 -07:00
Garrett Moon
dc0458ff3e So, uh,
+ (UIImage * _Nonnull)imageWithCGImage:(CGImageRef _Nonnull)cgImage

says it returns a non-nil value but documentation says:

Return Value
A new image object for the specified Quartz image, or nil if the method could not initialize the image from the specified image reference.

So we're guarding against a nil inputImage
2015-10-14 14:40:33 -07:00
Brian Dorfman
4eaf1994e9 Optionally pass full result to category implementor 2015-10-14 12:23:50 -07:00
Adam Speakman
82015fb881 Return image result type of 'None' if no image is downloaded
Previously the resultType was being returned
PINRemoteImageResultTypeDownload even when the download failed. Now, we
check to see if the image has been set and if it not then we return
PINRemoteImageResultTypeNone.
2015-10-11 10:21:36 -04:00
Garrett Moon
e1cf9343e4 Merge branch 'master' of https://github.com/kerrmarin/PINRemoteImage into kerrmarin-master 2015-10-06 16:14:46 -07:00
Kurry
21e95bfd82 made changes so FLAnimatedImage is optional and updated PINCache and pod version 2015-10-04 15:07:06 -04:00
Kerr Marin Miller
63749f0122 Remove optional method from image categories 2015-10-04 10:17:46 +01:00
Kerr Marin Miller
fb4d9327f0 Make pin_defaultOptions optional 2015-10-03 10:45:44 +01:00
Sam Dean
c0e74f10eb Replace @import with #import 2015-09-30 14:39:13 +01:00
Kerr Marin Miller
b0a4289389 Add default PINRemoteImageManagerDownloadOptions for each of the image categories 2015-09-30 11:15:26 +01:00
Garrett Moon
4ba0affc3f [CIFilter outputImage] can return nil, [CIContext createCGImage:fromRect:] requires a non-nil CIImage as input. 2015-09-28 17:00:16 -07:00