lightbasenl / react-native-panorama-view

A simple component for displaying panoramic images in your React Native app.
MIT License
127 stars 47 forks source link

Make sure the provided image does not overflow the iOS' metal size. #75

Open cristianoccazinsp opened 2 years ago

cristianoccazinsp commented 2 years ago

@rodymolenaar I've just discovered that iOS may blow up when given large images, and it will vary from device to device.

On an iPhone 12 pro, the error will be: Texture Descriptor Validation MTLTextureDescriptor has width (18240) greater than the maximum allowed size of 16384.

On an iPhone 7 the value was the same, which is odd, but I guess it depends on a combination of hardware and software.

The fix is to just resize the image if it is too large for the device to handle. The actual metal buffer max size is not constant and not directly exposed to the code, but I grabbed an idea from here https://stackoverflow.com/questions/58366416/how-to-get-programmatically-the-maximum-texture-size-width-and-height which seems to work.

Happy new year by the way!

cristianoccazinsp commented 2 years ago

@rodymolenaar any thoughts on this one?