Skip to content

Commit

Permalink
WT-10254: Remove Skia
Browse files Browse the repository at this point in the history
The Skia WRasterImage implementation is unmaintained, and it was pinned
to a very specific version. We have Direct2D/DirectWrite support on
Windows, so we can remove it, otherwise we're just pulling around dead
weight.
  • Loading branch information
RockinRoel committed May 11, 2022
1 parent 91ce314 commit 857c788
Show file tree
Hide file tree
Showing 7 changed files with 14 additions and 1,013 deletions.
18 changes: 2 additions & 16 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,6 @@ SET(ZLIB_PREFIX ${USERLIB_PREFIX} CACHE PATH
"Installation prefix of zlib library (overrides USERLIB_PREFIX)")
SET(GM_PREFIX ${USERLIB_PREFIX} CACHE PATH
"Installation prefix of GraphicsMagick library (overrides USERLIB_PREFIX)")
SET(SKIA_PREFIX ${USERLIB_PREFIX} CACHE PATH
"Prefix of skia library (overrides USERLIB_PREFIX)")
SET(ASIO_PREFIX ${USERLIB_PREFIX} CACHE PATH
"Prefix of Asio (overrides USERLIB_PREFIX), only used when WT_ASIO_IMPLEMENTATION is standalone")
SET(UNWIND_PREFIX ${UNWIND_PREFIX} CACHE PATH
Expand Down Expand Up @@ -248,7 +246,6 @@ INCLUDE(cmake/WtFindAsciidoc.txt)
INCLUDE(cmake/WtFindHaru.txt)
INCLUDE(cmake/WtFindGm.txt)
INCLUDE(cmake/WtFindGL.txt)
INCLUDE(cmake/WtFindSkia.txt)

set(OPENSSL_ROOT_DIR ${SSL_PREFIX})
find_package(OpenSSL)
Expand Down Expand Up @@ -330,37 +327,26 @@ ELSE(BOOST_WT_MT_FOUND)
ADD_DEFINITIONS(-DBOOST_DISABLE_THREADS -DSQLITE_THREADSAFE=0)
ENDIF(BOOST_WT_MT_FOUND)

# decide on GraphicsMagick vs skia
# todo: set default to whatever was found
IF (WIN32)
SET(WT_WRASTERIMAGE_DEFAULT_IMPLEMENTATION "Direct2D")
ELSE (WIN32)
SET(WT_WRASTERIMAGE_DEFAULT_IMPLEMENTATION "none")
ENDIF (WIN32)

SET(WT_WRASTERIMAGE_IMPLEMENTATION ${WT_WRASTERIMAGE_DEFAULT_IMPLEMENTATION} CACHE STRING "Implementation for WRasterImage server-side rendering")
IF (CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 8)
MESSAGE(STATUS "Informational: WT_WRASTERIMAGE_IMPLEMENTATION should be either GraphicsMagick, skia, or Direct2D")
ELSE (CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 8)
SET_PROPERTY(CACHE WT_WRASTERIMAGE_IMPLEMENTATION PROPERTY STRINGS GraphicsMagick skia Direct2D none)
ENDIF (CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 8)
SET_PROPERTY(CACHE WT_WRASTERIMAGE_IMPLEMENTATION PROPERTY STRINGS GraphicsMagick Direct2D none)

IF (${WT_WRASTERIMAGE_IMPLEMENTATION} STREQUAL "GraphicsMagick")
IF (NOT GM_FOUND)
MESSAGE(FATAL_ERROR "WT_WRASTERIMAGE_IMPLEMENTATION set to GraphicsMagick but GM is not found. Indicate the location of your graphicsmagick library using -DGM_PREFIX=...")
ENDIF (NOT GM_FOUND)
SET(WT_HAS_WRASTERIMAGE true)
ELSEIF (${WT_WRASTERIMAGE_IMPLEMENTATION} STREQUAL "skia")
IF (NOT SKIA_FOUND)
MESSAGE(FATAL_ERROR "WT_WRASTERIMAGE_IMPLEMENTATION set to skia but skia is not found. Indicate the location of your skia library using -DSKIA_PREFIX=...")
ENDIF (NOT SKIA_FOUND)
SET(WT_HAS_WRASTERIMAGE true)
ELSEIF (${WT_WRASTERIMAGE_IMPLEMENTATION} STREQUAL "Direct2D")
IF (WIN32)
SET(WT_HAS_WRASTERIMAGE true)
ENDIF (WIN32)
ELSE (${WT_WRASTERIMAGE_IMPLEMENTATION} STREQUAL "GraphicsMagick")
MESSAGE("** Disabled WRasterimage support. Set WT_WRASTERIMAGE_IMPLEMENTATION to GraphicsMagick, skia, or Direct2D.")
MESSAGE("** Disabled WRasterimage support. Set WT_WRASTERIMAGE_IMPLEMENTATION to GraphicsMagick or Direct2D.")
ENDIF (${WT_WRASTERIMAGE_IMPLEMENTATION} STREQUAL "GraphicsMagick")

IF((CMAKE_CXX_STANDARD EQUAL 17) OR (CMAKE_CXX_STANDARD GREATER 17))
Expand Down
6 changes: 6 additions & 0 deletions ReleaseNotes.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ <h2>Release 4.8.0 (June 9, 2022)</h2>
Tabs have been replaced by spaces in the source code. Previously, we had a mix of tabs and spaces,
where newer code used only spaces, and older code changed 8 spaces into a tab.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/10248" target="_blank">Issue #10254</a>:
The Skia-based <a href="Wt_1_1WRasterImage.html">WRasterImage</a> implementation has been removed,
since it was unmaintained and dependent on very specific Skia versions, and we have good alternatives
with GraphicsMagick and Direct2D.
</li>
</ul>

<h2>Release 4.7.1 (April 15, 2022)</h2>
Expand Down
242 changes: 0 additions & 242 deletions cmake/WtFindSkia.txt

This file was deleted.

10 changes: 2 additions & 8 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -466,8 +466,6 @@ ENDIF(HAVE_HARU)

IF("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "GraphicsMagick")
SET(libsources ${libsources} Wt/WRasterImage.h Wt/WRasterImage-gm.C)
ELSEIF("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "skia")
SET(libsources ${libsources} Wt/WRasterImage.h Wt/WRasterImage-skia.C)
ELSEIF("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "Direct2D")
SET(libsources ${libsources} Wt/WRasterImage.h Wt/WRasterImage-d2d1.C)
ENDIF("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "GraphicsMagick")
Expand Down Expand Up @@ -633,14 +631,10 @@ IF("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "GraphicsMagick")
TARGET_LINK_LIBRARIES(wt PRIVATE ${GM_LIBRARIES})
INCLUDE_DIRECTORIES(${GM_INCLUDE_DIRS})
ADD_DEFINITIONS(-DHAVE_GRAPHICSMAGICK)
ELSEIF("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "skia")
TARGET_LINK_LIBRARIES(wt PRIVATE ${SKIA_LIBRARIES})
INCLUDE_DIRECTORIES(${SKIA_INCLUDE_DIRS})
ADD_DEFINITIONS(${SKIA_DEFINES})
ELSEIF("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "Direct2D")
TARGET_LINK_LIBRARIES(wt PRIVATE d2d1 dwrite windowscodecs shlwapi)
ELSE("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "GraphicsMagick")
MESSAGE("** Disabling raster image support (WRasterImage): set WT_WRASTERIMAGE_IMPLEMENTATION to GraphicsMagick or skia.")
MESSAGE("** Disabling raster image support (WRasterImage): set WT_WRASTERIMAGE_IMPLEMENTATION to GraphicsMagick or Direct2D.")
ENDIF("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "GraphicsMagick")

IF(HAVE_GL)
Expand All @@ -650,7 +644,7 @@ IF(HAVE_GL)
ENDIF(USE_SYSTEM_GLEW)
TARGET_LINK_LIBRARIES(wt PRIVATE ${GL_LIBRARIES})
ELSE(HAVE_GL)
MESSAGE("** Disabling server-side opengl rendering for WGLWidget: requires gl, glew and WRasterImage (GraphicsMagick or skia).")
MESSAGE("** Disabling server-side opengl rendering for WGLWidget: requires gl, glew and WRasterImage (GraphicsMagick or Direct2D).")
ENDIF(HAVE_GL)

IF(WT_FONTSUPPORT_SIMPLE)
Expand Down
4 changes: 2 additions & 2 deletions src/Wt/WPaintedWidget.C
Original file line number Diff line number Diff line change
Expand Up @@ -766,7 +766,7 @@ std::unique_ptr<WPaintDevice> WWidgetRasterPainter
return std::unique_ptr<WPaintDevice>
(new WRasterImage("png", widget_->renderWidth_, widget_->renderHeight_));
#else
throw WException("Wt was built without WRasterImage (graphicsmagick, skia or Direct2D)");
throw WException("Wt was built without WRasterImage (graphicsmagick or Direct2D)");
#endif
}

Expand All @@ -777,7 +777,7 @@ std::unique_ptr<WPaintDevice> WWidgetRasterPainter
#ifdef WT_HAS_WRASTERIMAGE
device_ = createPaintDevice(paintUpdate);
#else
throw WException("Wt was built without WRasterImage (graphicsmagick, skia or Direct2D)");
throw WException("Wt was built without WRasterImage (graphicsmagick or Direct2D)");
#endif
}

Expand Down
Loading

0 comments on commit 857c788

Please sign in to comment.