Building openvrml

View: New views
11 Messages — Rating Filter:   Alert me  

Building openvrml

by M. van Doeselaar :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I've been trying to build the openvrml-0.17.5 library but I can't seem to make it work. I'm not sure if this is the right place to post this, but if not...let me know :)
I already changed and added some things I found on the internet to get where I am now. I started with the original solution which I downloaded from sourceforge.
- Added the include files from boost_1_34_1
- Rearranged the include files so the DirectX SDK's come last (because of a new version of strsafe.h)
- Used the png and ft2build from openscenegraph
- Switched 'public openvrml::node_impl_util::abstract_node<Derived>::exposedfield<mfnode>' with 'public openvrml::node_impl_util::abstract_node<Derived>::template exposedfield<openvrml::mfnode>' (# if defined(_MSC_VER) && _MSC_VER == 1500, not sure why, before I switched it, it gave an error)

Now I'm stuck at this error:
vrml97node.cpp(23273) : error C2440: 'initializing' : cannot convert from 'int (__cdecl *)(const FT_Vector *const ,void *const )' to 'FT_Outline_MoveToFunc'
1>        None of the functions with this name in scope match the target type

And this error:
vrml97node.cpp(27736) : error C2885: 'child_node': not a valid using-declaration at non-class scope

I searched with google but did not get any results, so I hope anyone can help me

regards, M. van Doeselaar

Re: Building openvrml

by Braden McDaniel :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, 2008-04-08 at 07:42 -0700, M. van Doeselaar wrote:
> I've been trying to build the openvrml-0.17.5 library but I can't seem to
> make it work. I'm not sure if this is the right place to post this, but if
> not...let me know :)

It is exactly the right place.

> I already changed and added some things I found on the internet to get where
> I am now. I started with the original solution which I downloaded from
> sourceforge.
> - Added the include files from boost_1_34_1

Note that you'll need to build boost as well and tell Visual Studio
where to find the libraries.

If you are using Visual C++ 2008 (9.0), I recommend using Boost 1.35.0.
The build system in 1.34.1 doesn't know about that compiler.

> - Rearranged the include files so the DirectX SDK's come last (because of a
> new version of strsafe.h)

I think I've heard of this one; though I haven't built with the DirectX
SDK present.

> - Used the png and ft2build from openscenegraph

For these, I generally use the official distributions.  They include
usable project files.

> - Switched 'public
> openvrml::node_impl_util::abstract_node<Derived>::exposedfield<mfnode>' with
> 'public openvrml::node_impl_util::abstract_node<Derived>::template
> exposedfield<openvrml::mfnode>' (# if defined(_MSC_VER) && _MSC_VER == 1500,
> not sure why, before I switched it, it gave an error)

This is fixed on the trunk. (Though it looks like the fix didn't make it
over to the 0.17 branch; I'll address that.)

> Now I'm stuck at this error:
> vrml97node.cpp(23273) : error C2440: 'initializing' : cannot convert from
> 'int (__cdecl *)(const FT_Vector *const ,void *const )' to
> 'FT_Outline_MoveToFunc'
> 1>        None of the functions with this name in scope match the target
> type

FreeType changed its function signatures some releases ago.  Either get
a fresher FreeType or set OPENVRML_FT_CONST to an empty string.  It is
set to "const" in the included project files.

> And this error:
> vrml97node.cpp(27736) : error C2885: 'child_node': not a valid
> using-declaration at non-class scope

For some reason, you need to qualify child_node here:
"openvrml::child_node".

As with the above issue, this is fixed on the trunk.

--
Braden McDaniel                           e-mail: <braden@...>
<http://endoframe.com>                    Jabber: <braden@...>



-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Register now and save $200. Hurry, offer ends at 11:59 p.m.,
Monday, April 7! Use priority code J8TLD2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
openvrml-develop mailing list
openvrml-develop@...
https://lists.sourceforge.net/lists/listinfo/openvrml-develop

Re: Building openvrml

by M. van Doeselaar :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Braden McDaniel wrote:
On Tue, 2008-04-08 at 07:42 -0700, M. van Doeselaar wrote:
> I've been trying to build the openvrml-0.17.5 library but I can't seem to
> make it work. I'm not sure if this is the right place to post this, but if
> not...let me know :)

It is exactly the right place.

> I already changed and added some things I found on the internet to get where
> I am now. I started with the original solution which I downloaded from
> sourceforge.
> - Added the include files from boost_1_34_1

Note that you'll need to build boost as well and tell Visual Studio
where to find the libraries.

If you are using Visual C++ 2008 (9.0), I recommend using Boost 1.35.0.
The build system in 1.34.1 doesn't know about that compiler.

> - Rearranged the include files so the DirectX SDK's come last (because of a
> new version of strsafe.h)

I think I've heard of this one; though I haven't built with the DirectX
SDK present.

> - Used the png and ft2build from openscenegraph

For these, I generally use the official distributions.  They include
usable project files.

> - Switched 'public
> openvrml::node_impl_util::abstract_node<Derived>::exposedfield<mfnode>' with
> 'public openvrml::node_impl_util::abstract_node<Derived>::template
> exposedfield<openvrml::mfnode>' (# if defined(_MSC_VER) && _MSC_VER == 1500,
> not sure why, before I switched it, it gave an error)

This is fixed on the trunk. (Though it looks like the fix didn't make it
over to the 0.17 branch; I'll address that.)

> Now I'm stuck at this error:
> vrml97node.cpp(23273) : error C2440: 'initializing' : cannot convert from
> 'int (__cdecl *)(const FT_Vector *const ,void *const )' to
> 'FT_Outline_MoveToFunc'
> 1>        None of the functions with this name in scope match the target
> type

FreeType changed its function signatures some releases ago.  Either get
a fresher FreeType or set OPENVRML_FT_CONST to an empty string.  It is
set to "const" in the included project files.

> And this error:
> vrml97node.cpp(27736) : error C2885: 'child_node': not a valid
> using-declaration at non-class scope

For some reason, you need to qualify child_node here:
"openvrml::child_node".

As with the above issue, this is fixed on the trunk.

--
Braden McDaniel                           e-mail: <braden@endoframe.com>
<http://endoframe.com>                    Jabber: <braden@jabber.org>



-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Register now and save $200. Hurry, offer ends at 11:59 p.m.,
Monday, April 7! Use priority code J8TLD2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
openvrml-develop mailing list
openvrml-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvrml-develop
Thank you for your fast reply, I changed to the boost 1.35 libraries and now use the official distributions of png and ft2. After this I still had one error, the last one I mentioned in my previous post. (vrml97node.cpp(27736) : error C2885: 'child_node': not a valid using-declaration at non-class scope).

        openvrml::mfnode::value_type::const_iterator iter =
                current_children_.value().begin();
        for (; iter != current_children_.value().end(); ++iter) {
                using openvrml::child_node;
                using openvrml::node_cast;
                child_node * const child = node_cast<child_node *>(iter->get());
                if (child) { child->render_child(viewer, context); }
        }

I wasn't sure what to do with, so I commented 'using openvrml::child_node;'. After this, I could build everything. Except the release version of openvrml-gl (debug builds fine). When I try to build the release-version, I get quite some errors, most of them with OPENVRML_API or OPENVRML_NOTHROW in the code.
An example:
        read_write_mutex.h(30) : error C2059: syntax error : 'string'
        read_write_mutex.h(30) : error C2146: syntax error : missing ';' before identifier 'read_write_mutex'
        read_write_mutex.h(30) : error C2470: 'read_write_mutex' : looks like a function definition, but there is no parameter list; skipping apparent body
        read_write_mutex.h(30) : error C2059: syntax error : '{'
points to:
        class OPENVRML_API read_write_mutex : boost::noncopyable {
                boost::mutex mutex_;
                boost::condition read_, write_;
                std::size_t readers_active_, readers_waiting_, writers_waiting_;
                bool writing_;

Any idea what I should do to get rid of these errors? And should I have commented the line in vrml97node.cpp?

Thanks in advance,

M. van Doeselaar

Re: Building openvrml

by Braden McDaniel :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Fri, 2008-04-25 at 06:24 -0700, M. van Doeselaar wrote:

[snip]

> Thank you for your fast reply, I changed to the boost 1.35 libraries and now
> use the official distributions of png and ft2. After this I still had one
> error, the last one I mentioned in my previous post. (vrml97node.cpp(27736)
> : error C2885: 'child_node': not a valid using-declaration at non-class
> scope).
>
> openvrml::mfnode::value_type::const_iterator iter =
> current_children_.value().begin();
> for (; iter != current_children_.value().end(); ++iter) {
> using openvrml::child_node;
> using openvrml::node_cast;
> child_node * const child = node_cast<child_node *>(iter->get());
> if (child) { child->render_child(viewer, context); }
> }
>
> I wasn't sure what to do with, so I commented 'using openvrml::child_node;'.
> After this, I could build everything.

That, apparently, is sufficient then. (In the absence of the "using"
declaration, you should need to qualify uses of "child_node" with
"openvrml::"; but if the compiler accepts the code without that, I don't
see a reason for you to care about that at the moment.)

>  Except the release version of
> openvrml-gl (debug builds fine). When I try to build the release-version, I
> get quite some errors, most of them with OPENVRML_API or OPENVRML_NOTHROW in
> the code.
> An example:
> read_write_mutex.h(30) : error C2059: syntax error : 'string'
> read_write_mutex.h(30) : error C2146: syntax error : missing ';' before
> identifier 'read_write_mutex'
> read_write_mutex.h(30) : error C2470: 'read_write_mutex' : looks like a
> function definition, but there is no parameter list; skipping apparent body
> read_write_mutex.h(30) : error C2059: syntax error : '{'
> points to:
> class OPENVRML_API read_write_mutex : boost::noncopyable {
> boost::mutex mutex_;
> boost::condition read_, write_;
> std::size_t readers_active_, readers_waiting_, writers_waiting_;
> bool writing_;
>
> Any idea what I should do to get rid of these errors?

I don't see this with the project files from the OpenVRML distribution.
Perhaps you modified the "Additional Include Directories" in the project
settings such that the compiler can no longer find "openvrml-config.h"?

--
Braden McDaniel                           e-mail: <braden@...>
<http://endoframe.com>                    Jabber: <braden@...>



-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
openvrml-develop mailing list
openvrml-develop@...
https://lists.sourceforge.net/lists/listinfo/openvrml-develop

Re: Building openvrml

by M. van Doeselaar :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Braden McDaniel wrote:
I don't see this with the project files from the OpenVRML distribution.
Perhaps you modified the "Additional Include Directories" in the project
settings such that the compiler can no longer find "openvrml-config.h"?

--
Braden McDaniel                           e-mail: <braden@endoframe.com>
<http://endoframe.com>                    Jabber: <braden@jabber.org>
You were right about that, I had the order mixed up, now I can build everything.

However I can't seem to open wrl-files in the included sdl-viewer (or an other program which uses openvrml). Every wrl-file I try to open I get the console message:
"unrecognized error during resolution
no alternative URI could be resolved"
And in my output-window: "First-chance exception at 0x7c812a5b in sdl-viewer.exe: Microsoft C++ exception: openvrml::no_alternative_url at memory location 0x0246fb58.."
I can't exactly trace back in the code where this error occurs, so I hope you have an idea?

Re: Building openvrml

by Braden McDaniel :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, 2008-04-29 at 08:47 -0700, M. van Doeselaar wrote:

>
> Braden McDaniel wrote:
> >
> > I don't see this with the project files from the OpenVRML distribution.
> > Perhaps you modified the "Additional Include Directories" in the project
> > settings such that the compiler can no longer find "openvrml-config.h"?
> >
> > --
> > Braden McDaniel                           e-mail: <braden@...>
> > <http://endoframe.com>                    Jabber: <braden@...>
> >
> You were right about that, I had the order mixed up, now I can build
> everything.
>
> However I can't seem to open wrl-files in the included sdl-viewer (or an
> other program which uses openvrml). Every wrl-file I try to open I get the
> console message:
> "unrecognized error during resolution
> no alternative URI could be resolved"
> And in my output-window: "First-chance exception at 0x7c812a5b in
> sdl-viewer.exe: Microsoft C++ exception: openvrml::no_alternative_url at
> memory location 0x0246fb58.."
> I can't exactly trace back in the code where this error occurs, so I hope
> you have an idea?

How are you invoking sdl-viewer? It only accepts valid URIs. And in the
case of sdl-viewer, it only accepts file (or relative) URIs.

--
Braden McDaniel                           e-mail: <braden@...>
<http://endoframe.com>                    Jabber: <braden@...>



-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
openvrml-develop mailing list
openvrml-develop@...
https://lists.sourceforge.net/lists/listinfo/openvrml-develop

Re: Building openvrml

by M. van Doeselaar :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Braden McDaniel wrote:
How are you invoking sdl-viewer? It only accepts valid URIs. And in the
case of sdl-viewer, it only accepts file (or relative) URIs.
Oops, my bad...I didn't set the right working directory. The viewer now only sometimes shows the vrml-object. I get a blank console and viewer window most of the time (say 16 out of 20). Sometimes the console shows only some inconsistencies in the wrl-files and the viewer stays blank. And once in a while (say 1 out of 20) I can view an object (no textures though). Any ideas on this behaviour?

Re: Building openvrml

by Braden McDaniel :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

M. van Doeselaar wrote:

>
>
> Braden McDaniel wrote:
>> How are you invoking sdl-viewer? It only accepts valid URIs. And in the
>> case of sdl-viewer, it only accepts file (or relative) URIs.
>>
>
> Oops, my bad...I didn't set the right working directory. The viewer now only
> sometimes shows the vrml-object. I get a blank console and viewer window
> most of the time (say 16 out of 20). Sometimes the console shows only some
> inconsistencies in the wrl-files and the viewer stays blank. And once in a
> while (say 1 out of 20) I can view an object (no textures though). Any ideas
> on this behaviour?

Sounds like there might be a redrawing issue. Does resizing the window
make things appear? How about minimizing/restoring?

IIRC, the project files that are included with the distribution aren't
set up to build with libjpeg; you'd need to build libjpeg and change
that if you want to see JPEG textures. PNG textures should work, though,
assuming you're building with libpng.

--
Braden McDaniel                      e-mail: <braden@...>
<http://endoframe.com>               Jabber: <braden@...>

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
openvrml-develop mailing list
openvrml-develop@...
https://lists.sourceforge.net/lists/listinfo/openvrml-develop

Re: Building openvrml

by M. van Doeselaar :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Braden McDaniel wrote:
Sounds like there might be a redrawing issue. Does resizing the window
make things appear? How about minimizing/restoring?
Resizing, minimizing/restoring doesn't make things appear. When I tried snoman.wrl and it appeared normal, after resizing the window, I could only see his arm...4 times (it was still animated).
When the console shows the inconsistencies, the viewer freezes. The output window of Visual Studio shows "First-chance exception at 0x7c812a5b in sdl-viewer.exe: Microsoft C++ exception: boost::spirit::parser_error<openvrml::vrml_parse_error,boost::spirit::position_iterator<boost::spirit::multi_pass<std::istreambuf_iterator<char,std::char_traits<char> >,boost::spirit::multi_pass_policies::input_iterator,boost::spirit::multi_pass_policies: at memory location 0x0246c480.."

Braden McDaniel wrote:
IIRC, the project files that are included with the distribution aren't
set up to build with libjpeg; you'd need to build libjpeg and change
that if you want to see JPEG textures. PNG textures should work, though,
assuming you're building with libpng.
I added the libjpeg libraries, the textures are displayed correctly now.

Re: Building openvrml

by Braden McDaniel :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, 2008-05-05 at 03:55 -0700, M. van Doeselaar wrote:

>
> Braden McDaniel wrote:
> >
> > Sounds like there might be a redrawing issue. Does resizing the window
> > make things appear? How about minimizing/restoring?
> >
>
> Resizing, minimizing/restoring doesn't make things appear. When I tried
> snoman.wrl and it appeared normal, after resizing the window, I could only
> see his arm...4 times (it was still animated).
> When the console shows the inconsistencies, the viewer freezes. The output
> window of Visual Studio shows "First-chance exception at 0x7c812a5b in
> sdl-viewer.exe: Microsoft C++ exception:
> boost::spirit::parser_error<openvrml::vrml_parse_error,boost::spirit::position_iterator<boost::spirit::multi_pass<std::istreambuf_iterator<char,std::char_traits<char>
> >,boost::spirit::multi_pass_policies::input_iterator,boost::spirit::multi_pass_policies:
> at memory location 0x0246c480.."

I haven't forgotten about this.

I have, however, had to put it (and other OpenVRML-related things) on
hold for a little while. I just haven't had the spare time lately; and
now it looks like the motherboard on my primary development machine will
be going back to the manufacturer for service.

Before all this, I was able to make a preliminary attempt at reproducing
this. I was able to produce some failures along the lines of what you
described; though I didn't get far enough tracking them down to be sure
whether they were the same thing. Please file a bug on this using the
SourceForge tracker to make sure this doesn't fall off the radar once I
resurface.

--
Braden McDaniel                           e-mail: <braden@...>
<http://endoframe.com>                    Jabber: <braden@...>



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
openvrml-develop mailing list
openvrml-develop@...
https://lists.sourceforge.net/lists/listinfo/openvrml-develop

Re: Building openvrml

by pika :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


M. van Doeselaar wrote:
Braden McDaniel wrote:
Sounds like there might be a redrawing issue. Does resizing the window
make things appear? How about minimizing/restoring?
Resizing, minimizing/restoring doesn't make things appear. When I tried snoman.wrl and it appeared normal, after resizing the window, I could only see his arm...4 times (it was still animated).
When the console shows the inconsistencies, the viewer freezes. The output window of Visual Studio shows "First-chance exception at 0x7c812a5b in sdl-viewer.exe: Microsoft C++ exception: boost::spirit::parser_error<openvrml::vrml_parse_error,boost::spirit::position_iterator<boost::spirit::multi_pass<std::istreambuf_iterator<char,std::char_traits<char> >,boost::spirit::multi_pass_policies::input_iterator,boost::spirit::multi_pass_policies: at memory location 0x0246c480.."

Braden McDaniel wrote:
IIRC, the project files that are included with the distribution aren't
set up to build with libjpeg; you'd need to build libjpeg and change
that if you want to see JPEG textures. PNG textures should work, though,
assuming you're building with libpng.
I added the libjpeg libraries, the textures are displayed correctly now.
may i know how do u add the libjpeg libraries? i'm facing the same problem as you, which unable to view my .wrl file, only the blank console window with the same error appeared.


Pika
LightInTheBox - Buy quality products at wholesale price