From 967566acf12a3d440a6f2d95f3d741c3898e70a0 Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 18 Aug 2014 11:34:02 +0200 Subject: [PATCH] + improve OCC version macro, fix build failure with MinGW, fix build failure with Coin2 --- cMake/FreeCadMacros.cmake | 2 +- src/App/Application.cpp | 3 +++ src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 14 ++++++++++++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/cMake/FreeCadMacros.cmake b/cMake/FreeCadMacros.cmake index de2a9f927b71..9cf63a078b86 100644 --- a/cMake/FreeCadMacros.cmake +++ b/cMake/FreeCadMacros.cmake @@ -255,9 +255,9 @@ MACRO(SET_PYTHON_PREFIX_SUFFIX ProjectName) ENDMACRO(SET_PYTHON_PREFIX_SUFFIX) MACRO(CHECK_MINIMUM_OCC_VERSION_HEX MinVersionHex) + message(STATUS "Check for OCC version >= ${MinVersionHex}") set(CMAKE_REQUIRED_INCLUDES ${OCC_INCLUDE_DIR}) unset(OCC_MIN_VERSION CACHE) - set(OCC_CHECK_VERSION 0x060600) CHECK_CXX_SOURCE_RUNS(" #include int main () diff --git a/src/App/Application.cpp b/src/App/Application.cpp index 60e281027001..5e577619d40d 100644 --- a/src/App/Application.cpp +++ b/src/App/Application.cpp @@ -34,6 +34,9 @@ # include # include # include +# elif defined(__MINGW32__) +# define WINVER 0x502 // needed for SetDllDirectory +# include # endif # include # include diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 7ca9ba49d593..f74648b833b3 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -32,6 +32,7 @@ # include # include # include +# include # include # include # include @@ -1685,13 +1686,22 @@ bool ViewProviderSketch::detectPreselection(const SoPickedPoint *Point, SbVec3s ViewProviderSketch::getDisplayedSize(const SoImage *iconPtr) const { +#if (COIN_MAJOR_VERSION >= 3) SbVec3s iconSize = iconPtr->image.getValue().getSize(); - if(iconPtr->width.getValue() != -1) +#else + SbVec2s size; + int nc; + const unsigned char * bytes = iconPtr->image.getValue(size, nc); + SbImage img (bytes, size, nc); + SbVec3s iconSize = img.getSize(); +#endif + if (iconPtr->width.getValue() != -1) iconSize[0] = iconPtr->width.getValue(); - if(iconPtr->height.getValue() != -1) + if (iconPtr->height.getValue() != -1) iconSize[1] = iconPtr->height.getValue(); return iconSize; } + void ViewProviderSketch::doBoxSelection(const SbVec2s &startPos, const SbVec2s &endPos, const Gui::View3DInventorViewer *viewer) {