1. Coin3D
  2. Coin
  3. Issues
Issue #37 new

Coin3D for Visual Studio 2010 or later version of Visual Studio

Anonymous created an issue

I wanna to develop a application with Coin3D using my Kinect,but the Microsoft Kinect only is supported by Visual Studio 2010 or later version of Visual Studio. I cannot find the version of Coin3D for VC10.0 or later. Is there a version of Coin3D meeting my needs? Thanks very much.

Comments (12)

  1. Amit Aronovitch

    Please try the version on my fork project

    https://bitbucket.org/amitar/coin/wiki/Home

    We are still waiting for original Coin developers to respond, but meanwhile I had started that fork, in order to integrate some of the community contributions waiting on the "pull request" queue here (starting with vc10 support :-))..

    If you are using the binary sdk, please note that right now I only provide the core library and the simage library. If you need some dll / .h files that are not included in my distribution - let me know and I will try to find out which extra projects to compile.

    If you want to compile Coin yourself - I would be glad to know (I only use Coin in a very restricted way and the community contributions definitely need more testing).

  2. ebaklund

    The quick and dirty way is just to copy .\Coin-3.1.3\build\msvc9 to a new folder .\Coin-3.1.3\build\msvc10. Open the contained solution with VS2010 and let VS2010 convert it. You can do the same with SoWin-1.5.0.

    For advanced developers: Visual Studio is making some shortcuts in the upgrade. In particular, because the property inheritance rules have changed, Visual Studio plays "safe" and copies project properties to each .cpp file. That does not immediately have any bad consequences - that is until you want to change some project properties and you discover that some project properties does not take effect since each .cpp file overrule them with their own properties.

    Also be aware that neither Coin3D nor SoWin manage _WIN32_WINNT. That caused Coin3D/SoWin to fail on my Windows7 machine when I compiled with VS2012 for which the default system target is Windows8. Though it should be easy to work around, I have not figured out the best way to introduce _WIN32_WINNT to the Coin3D/SoWin build system.

  3. Amit Aronovitch

    ebaklund : we would be grateful if you could contribute any changes you have made to make SoWin compile. Someone else might find a workaround for the issue you describe above and save you some time.

    Simple patches to make things work (such as the last 5 fixes in https://bitbucket.org/amitar/coin/commits/all ) still take time to figure out. Instead of having 100 people repeat the same task, we can collaborate and gain from each other's efforts.

    In case you are not fluent in bitbucket/mercurial/etc. - do not worry about managing repositories or making diffs - just pack your working project tree and mail it to me, I can take care of the rest (also do not worry if things are too patchy - first priority is making things work).

  4. Nuno Pessanha Santos

    Hi,

    I´m using Microsoft Visual Studio 2012, but I can´t find any version of coin3D that is compatible with that version.

    Is there a version of Coin3D meeting my needs?

    Thanks, Nuno Pessanha Santos

  5. Guglielmo Calligaro

    I too have Coin3D perfectly working with VS2012. I just let VS make the most changes then I had to fix something but unfortunately I don't romember becase it was 8 months ago. I'm waiting VS2013 to be stable (actually is a nightmare) and I will repeat the task soon. This time I'll write notes about what I'm doing so I'll help somebody else to repeat the trick.

  6. Dragos budan

    I am having a similar issue I think. I have compiled Coin and SoWin with VC110 in VS2012 and everything seemed fine (no compiler or linker issues). But when I try the cone tutorial project I do not get the same output: the viewer window does not show the cone or any widgets/buttons and it seems to be broken.

    Would this be an issue with the way I built the libraries?

  7. yurigaid

    Has anybody made coin 3D work on VS 2013? It compiles and work fine on VS2010, it also compiles fine on 2013, but when I run the test project with Examiner viewer and cone, the window hangs (only outlines of buttons on the window decoration shown and window is not responding), the same problem as Dragos budan reported.

  8. yurigaid

    I've found a solution for the problem running Coin 3D under VC 2013. The problem was in SoWin::mainLoop(void), the function GetQueueStatus(QS_ALLINPUT) always returned 0, so none of the messages were translated, so the window was not painted and not responded to user interaction. Replacing it by GetQueueStatus(0x5FF) fixed the problem. (VS 2013 targets Win8.1, where QS_ALLINPUT includes a couple of new flags, which seems to caused the problem).

  9. Bastiaan Veelo

    yurigaid Good to see you found a way to make it work. Coin3D is kept alive by its users, and there are not many that are using SoWin. Would you care to prepare a pull request for a solution that is backwards compatible? If there is continuing interest in this module you might consider introducing CMake support like we are doing in Coin. SoWin is not multi-platform, but CMake may take the burden of adjusting the build system to every new release of MSVC. CMake is going to be the preferred (only?) way to build Coin, so you would need it anyway. See https://bitbucket.org/Coin3D/quarter/pull-requests/6 for an easy way to detect Coin.

  10. Lee Butler

    I thought I would contribute what I know about getting Coin-3.1.3 to build under Visual Studio 12 2013.

    Unfortunately, this is a manual process. You need to patch the file Coin-3.1.3/build/msvc9/include/Inventor/system/inttypes.h so that int8_t is taken from stdint.h not from the defines. Use the following patch:

    --- Coin-3.1.3/build/msvc9/include/Inventor/system/inttypes.h   2010-03-02 08:20:09.000000000 -0500
    +++ inttypes.h  2017-02-12 09:42:02.033485400 -0500
    @@ -113,6 +113,7 @@
     #ifdef HAVE_INTTYPES_H
     #include <inttypes.h>
     #else
    +#define HAVE_STDINT_H 1
     #ifdef HAVE_STDINT_H
     #include <stdint.h>
     #endif /* HAVE_STDINT_H */
    @@ -124,7 +125,9 @@
     #include <stddef.h>
     #endif /* HAVE_STDDEF_H */
    
    -
    +#ifndef HAVE_INT8_T
    +#define HAVE_INT8_T 1
    +#endif
     #if !defined(HAVE_INT8_T) && defined(COIN_INT8_T)
     typedef COIN_INT8_T int8_t;
     #define HAVE_INT8_T 1
    

    This gets the right defines in place. Be aware that if you create a 64bit build (I never do otherwise these days) there will be lots of warnings about conversion from size_t to other int types that truncate values.

    If there was anyone willing to work with me that is familiar with Coin3d, I would convert the project to CMake so that it could be built almost anywhere. I am not sure what the target platforms for Coin3D are these days, but I find it easy to do Win/Mac/Linux work with CMake.

  11. Bastiaan Veelo

    Thanks.

    If there was anyone willing to work with me that is familiar with Coin3d, I would convert the project to CMake so that it could be built almost anywhere. I am not sure what the target platforms for Coin3D are these days, but I find it easy to do Win/Mac/Linux work with CMake.

    Note that there is a CMake branch of Coin already. IIRW, the consensus was that the work has come quite far, but is not completely ready to be merged.

  12. Log in to comment