diff options
author | Aaron Carlisle <carlisle.b3d@gmail.com> | 2022-03-25 01:24:06 +0300 |
---|---|---|
committer | Aaron Carlisle <carlisle.b3d@gmail.com> | 2022-03-25 01:24:06 +0300 |
commit | 4fd0a69d7ba86e92390c421a745c6f32f1050c31 (patch) | |
tree | e98005f5a099665d09296569fbee1ef5e72b1d1e /build_files/cmake/platform | |
parent | 07846b31f34caa88244d192ee7d3aa6c057ac602 (diff) |
ImBuf: Add support for WebP image format
Currently only supports single image frames (no animation possible).
If quality slider is set to 100 then lossless compression will be used,
otherwise lossy compression is used.
Gives about 35% reduction of filesize save when re-saving splash screens with lossless
compression.
Also saves much faster, up to 15x faster than PNG with a better compression ratio as a plus.
Note, this is currently left disabled until we have WebP libs (see T95206)
For testing precompiled libs can be downloaded from Google:
https://storage.googleapis.com/downloads.webmproject.org/releases/webp/index.html
Differential Revision: https://developer.blender.org/D1598
Diffstat (limited to 'build_files/cmake/platform')
-rw-r--r-- | build_files/cmake/platform/platform_apple.cmake | 9 | ||||
-rw-r--r-- | build_files/cmake/platform/platform_unix.cmake | 8 | ||||
-rw-r--r-- | build_files/cmake/platform/platform_win32.cmake | 8 |
3 files changed, 25 insertions, 0 deletions
diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake index b09f2f8917b..43ce23081af 100644 --- a/build_files/cmake/platform/platform_apple.cmake +++ b/build_files/cmake/platform/platform_apple.cmake @@ -232,6 +232,15 @@ if(WITH_IMAGE_TIFF) endif() endif() +if(WITH_IMAGE_WEBP) + set(WEBP_ROOT_DIR ${LIBDIR}/webp) + find_package(WebP) + if(NOT WEBP_FOUND) + message(WARNING "WebP not found, disabling WITH_IMAGE_WEBP") + set(WITH_IMAGE_WEBP OFF) + endif() +endif() + if(WITH_BOOST) set(Boost_NO_BOOST_CMAKE ON) set(BOOST_ROOT ${LIBDIR}/boost) diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake index 0a7119802c8..cc168476d5d 100644 --- a/build_files/cmake/platform/platform_unix.cmake +++ b/build_files/cmake/platform/platform_unix.cmake @@ -368,6 +368,14 @@ if(WITH_PUGIXML) endif() endif() +if(WITH_IMAGE_WEBP) + set(WEBP_ROOT_DIR ${LIBDIR}/webp) + find_package_wrapper(WebP) + if(NOT WEBP_FOUND) + set(WITH_IMAGE_WEBP OFF) + endif() +endif() + if(WITH_OPENIMAGEIO) find_package_wrapper(OpenImageIO) set(OPENIMAGEIO_LIBRARIES diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake index ca4af2274e6..9418f74994b 100644 --- a/build_files/cmake/platform/platform_win32.cmake +++ b/build_files/cmake/platform/platform_win32.cmake @@ -343,6 +343,14 @@ if(WITH_FFTW3) set(FFTW3_LIBPATH ${FFTW3}/lib) endif() +windows_find_package(WebP) +if(NOT WEBP_FOUND) + set(WEBP_INCLUDE_DIRS ${LIBDIR}/webp/include) + set(WEBP_ROOT_DIR ${LIBDIR}/webp) + set(WEBP_LIBRARIES ${LIBDIR}/webp/lib/webp.lib ${LIBDIR}/webp/lib/webpdemux.lib ${LIBDIR}/webp/lib/webpmux.lib) + set(WEBP_FOUND ON) +endif() + if(WITH_OPENCOLLADA) set(OPENCOLLADA ${LIBDIR}/opencollada) |