From: <br...@us...> - 2009-03-20 08:42:56
|
Revision: 3861 http://openvrml.svn.sourceforge.net/openvrml/?rev=3861&view=rev Author: braden Date: 2009-03-20 08:42:54 +0000 (Fri, 20 Mar 2009) Log Message: ----------- Now that font rendering is isolated to a dlopen'd module, we don't need to add fontconfig and freetype2 to OPENVRML_PKG_REQUIRES. Modified Paths: -------------- trunk/ChangeLog trunk/configure.ac Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-20 08:39:34 UTC (rev 3860) +++ trunk/ChangeLog 2009-03-20 08:42:54 UTC (rev 3861) @@ -1,5 +1,11 @@ 2009-03-20 Braden McDaniel <br...@en...> + * configure.ac: Now that font rendering is isolated to a dlopen'd + module, we don't need to add fontconfig and freetype2 to + OPENVRML_PKG_REQUIRES. + +2009-03-20 Braden McDaniel <br...@en...> + * configure.ac: Now that the SpiderMonkey dependency is isolated to a dlopen'd module, we don't need to add mozilla-js to OPENVRML_PKG_REQUIRES. Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2009-03-20 08:39:34 UTC (rev 3860) +++ trunk/configure.ac 2009-03-20 08:42:54 UTC (rev 3861) @@ -262,10 +262,6 @@ if test X$have_fontconfig = Xno -o X$have_freetype = Xno; then AC_MSG_FAILURE([fontconfig and FreeType are required for rendering Text nodes.]) fi - if test -n "${OPENVRML_PKG_REQUIRES}"; then - OPENVRML_PKG_REQUIRES="${OPENVRML_PKG_REQUIRES}," - fi - OPENVRML_PKG_REQUIRES="${OPENVRML_PKG_REQUIRES} ${REQUIRE_FONTCONFIG} ${REQUIRE_FREETYPE}" AC_DEFINE([OPENVRML_ENABLE_RENDER_TEXT_NODE], [1], [Defined if support for rendering Text nodes is enabled.]) AC_DEFINE_UNQUOTED([OPENVRML_FT_CONST], [$ov_cv_ft_const], This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-03-20 08:46:17
|
Revision: 3862 http://openvrml.svn.sourceforge.net/openvrml/?rev=3862&view=rev Author: braden Date: 2009-03-20 08:46:07 +0000 (Fri, 20 Mar 2009) Log Message: ----------- Don't need OPENVRML_PKG_REQUIRES anymore. Modified Paths: -------------- trunk/ChangeLog trunk/configure.ac trunk/openvrml.pc.in Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-20 08:42:54 UTC (rev 3861) +++ trunk/ChangeLog 2009-03-20 08:46:07 UTC (rev 3862) @@ -1,5 +1,13 @@ 2009-03-20 Braden McDaniel <br...@en...> + Don't need OPENVRML_PKG_REQUIRES anymore. + + * configure.ac: Removed AC_SUBST for OPENVRML_PKG_REQUIRES. + * openvrml.pc.in: Removed Requires; we don't depend on any other + pkg-config-aware libraries. + +2009-03-20 Braden McDaniel <br...@en...> + * configure.ac: Now that font rendering is isolated to a dlopen'd module, we don't need to add fontconfig and freetype2 to OPENVRML_PKG_REQUIRES. Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2009-03-20 08:42:54 UTC (rev 3861) +++ trunk/configure.ac 2009-03-20 08:46:07 UTC (rev 3862) @@ -425,11 +425,6 @@ AM_CONDITIONAL([ENABLE_SHARED], [test "X$enable_shared" != "Xno"]) # -# Optional dependencies (substituted in the pkg-config metadata files). -# -AC_SUBST([OPENVRML_PKG_REQUIRES]) - -# # Determine whether to apply the -rpath for the Gecko runtime libraries. # AS_IF([test "X$enable_gecko_rpath" = Xyes], Modified: trunk/openvrml.pc.in =================================================================== --- trunk/openvrml.pc.in 2009-03-20 08:42:54 UTC (rev 3861) +++ trunk/openvrml.pc.in 2009-03-20 08:46:07 UTC (rev 3862) @@ -6,6 +6,5 @@ Name: @PACKAGE_NAME@ Description: VRML/X3D run-time library. Version: @PACKAGE_VERSION@ -Requires: @OPENVRML_PKG_REQUIRES@ Libs: -L${libdir} -lopenvrml -lboost_thread@BOOST_LIB_SUFFIX@ -lboost_filesystem@BOOST_LIB_SUFFIX@ -lltdl Cflags: -I${includedir} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-03-23 23:42:26
|
Revision: 3863 http://openvrml.svn.sourceforge.net/openvrml/?rev=3863&view=rev Author: braden Date: 2009-03-23 23:42:22 +0000 (Mon, 23 Mar 2009) Log Message: ----------- Make use of pkg-config's Requires.private and Libs.private. Modified Paths: -------------- trunk/ChangeLog trunk/openvrml-gl.pc.in trunk/openvrml.pc.in Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-20 08:46:07 UTC (rev 3862) +++ trunk/ChangeLog 2009-03-23 23:42:22 UTC (rev 3863) @@ -1,3 +1,10 @@ +2009-03-23 Braden McDaniel <br...@en...> + + Make use of pkg-config's Requires.private and Libs.private. + + * openvrml.pc.in + * openvrml-gl.pc.in + 2009-03-20 Braden McDaniel <br...@en...> Don't need OPENVRML_PKG_REQUIRES anymore. Modified: trunk/openvrml-gl.pc.in =================================================================== --- trunk/openvrml-gl.pc.in 2009-03-20 08:46:07 UTC (rev 3862) +++ trunk/openvrml-gl.pc.in 2009-03-23 23:42:22 UTC (rev 3863) @@ -6,6 +6,7 @@ Name: @PACKAGE_NAME@-GL Description: OpenGL renderer for OpenVRML. Version: @PACKAGE_VERSION@ -Requires: openvrml = @PACKAGE_VERSION@ -Libs: -L${libdir} -lopenvrml-gl @GLU_LIBS@ +Requires.private: openvrml = @PACKAGE_VERSION@ +Libs: -L${libdir} -lopenvrml-gl +Libs.private: @GLU_LIBS@ Cflags: -I${includedir} @GLU_CFLAGS@ Modified: trunk/openvrml.pc.in =================================================================== --- trunk/openvrml.pc.in 2009-03-20 08:46:07 UTC (rev 3862) +++ trunk/openvrml.pc.in 2009-03-23 23:42:22 UTC (rev 3863) @@ -6,5 +6,6 @@ Name: @PACKAGE_NAME@ Description: VRML/X3D run-time library. Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -lopenvrml -lboost_thread@BOOST_LIB_SUFFIX@ -lboost_filesystem@BOOST_LIB_SUFFIX@ -lltdl +Libs: -L${libdir} -lopenvrml +Libs.private: -lboost_thread@BOOST_LIB_SUFFIX@ -lboost_filesystem@BOOST_LIB_SUFFIX@ -lltdl Cflags: -I${includedir} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-03-24 04:40:56
|
Revision: 3864 http://openvrml.svn.sourceforge.net/openvrml/?rev=3864&view=rev Author: braden Date: 2009-03-24 04:40:50 +0000 (Tue, 24 Mar 2009) Log Message: ----------- Moved configuration for the Mozilla plug-in into the top-level configure.ac. Modified Paths: -------------- trunk/ChangeLog trunk/configure.ac trunk/mozilla-plugin/Makefile.am trunk/mozilla-plugin/src/Makefile.am trunk/mozilla-plugin/src/openvrml.cpp Removed Paths: ------------- trunk/mozilla-plugin/configure.ac Property Changed: ---------------- trunk/mozilla-plugin/ Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-23 23:42:22 UTC (rev 3863) +++ trunk/ChangeLog 2009-03-24 04:40:50 UTC (rev 3864) @@ -1,3 +1,19 @@ +2009-03-24 Braden McDaniel <br...@en...> + + Moved configuration for the Mozilla plug-in into the top-level + configure.ac. + + * configure.ac: Added checks for Mozilla plug-in dependencies. + * mozilla-plugin/Makefile.am (ACLOCAL_AMFLAGS): Removed. + * mozilla-plugin/configure.ac: Removed. + * mozilla-plugin/src/Makefile.am + (AM_CPPFLAGS): Define MOZ_X11. + (browser-host-server-glue.h): Adjusted path for browser-host.xml. + (browser-factory-client-glue.h): Adjusted path for + browser-factory.xml. + (browser-client-glue.h): Adjusted path for browser.xml. + * mozilla-plugin/src/openvrml.cpp: Include <config.h>. + 2009-03-23 Braden McDaniel <br...@en...> Make use of pkg-config's Requires.private and Libs.private. Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2009-03-23 23:42:22 UTC (rev 3863) +++ trunk/configure.ac 2009-03-24 04:40:50 UTC (rev 3864) @@ -16,6 +16,8 @@ [src/script/java/vrml/Makefile] [src/script/java/vrml/field/Makefile] [src/script/java/vrml/node/Makefile] + [mozilla-plugin/Makefile] + [mozilla-plugin/src/Makefile] [data/Makefile] [examples/Makefile] [tests/Makefile] @@ -181,6 +183,16 @@ PKG_CHECK_MODULES([GNOMEUI], [libgnomeui-2.0 libgnome-2.0 >= 2.14], , [have_gnomeui=no]) PKG_CHECK_MODULES([CURL], [libcurl], , [have_libcurl=no]) +PKG_CHECK_MODULES([MOZILLA_PLUGIN], [xulrunner-plugin], + [mozilla_plugin_pkg=xulrunner-plugin], + [PKG_CHECK_MODULES([MOZILLA_PLUGIN], [firefox-plugin], + [mozilla_plugin_pkg=firefox-plugin], + [PKG_CHECK_MODULES([MOZILLA_PLUGIN], [seamonkey-plugin], + [mozilla_plugin_pkg=seamonkey-plugin], + [PKG_CHECK_MODULES([MOZILLA_PLUGIN], [mozilla-plugin >= 1.6], + [mozilla_plugin_pkg=mozilla-plugin], + [have_mozilla_plugin=no])])])]) + AC_PATH_XTRA AX_CHECK_GLU @@ -400,7 +412,13 @@ [do not build the Mozilla plug-in])]) AS_IF([test X$enable_mozilla_plugin != Xno], [AS_IF([test X$enable_xembed = Xno], - [AC_MSG_FAILURE([the Mozilla plug-in cannot be built without the XEmbed control])])]) + [AC_MSG_FAILURE([the Mozilla plug-in cannot be built without the XEmbed control])]) + AS_IF([test "X$have_mozilla_plugin" = "Xno"], + [AC_MSG_FAILURE([Mozilla plug-in development headers are required to build the Mozilla plug-in.])]) + AS_IF([test "X$have_dbus_glib" = "Xno"], + [AC_MSG_FAILURE([The D-Bus GLib binding is required to build the Mozilla plug-in])])]) +AM_CONDITIONAL([ENABLE_MOZILLA_PLUGIN], + [test "X$enable_mozilla_plugin" != "Xno" -a "X$have_dbus_glib" != "Xno"]) # # build examples @@ -440,8 +458,6 @@ ]) AC_SUBST([OPENVRML_JAVASCRIPT_RPATH]) -AC_CONFIG_SUBDIRS([mozilla-plugin]) - AC_CONFIG_TESTDIR([tests]) AC_OUTPUT Property changes on: trunk/mozilla-plugin ___________________________________________________________________ Modified: svn:ignore - Makefile Makefile.in aclocal.m4 autom4te.cache config.guess config.sub configure depcomp install-sh ltmain.sh missing + Makefile Makefile.in Modified: trunk/mozilla-plugin/Makefile.am =================================================================== --- trunk/mozilla-plugin/Makefile.am 2009-03-23 23:42:22 UTC (rev 3863) +++ trunk/mozilla-plugin/Makefile.am 2009-03-24 04:40:50 UTC (rev 3864) @@ -1,3 +1 @@ SUBDIRS = src - -ACLOCAL_AMFLAGS = -I ../m4 Deleted: trunk/mozilla-plugin/configure.ac =================================================================== --- trunk/mozilla-plugin/configure.ac 2009-03-23 23:42:22 UTC (rev 3863) +++ trunk/mozilla-plugin/configure.ac 2009-03-24 04:40:50 UTC (rev 3864) @@ -1,43 +0,0 @@ -AC_PREREQ([2.53]) -AC_INIT([OpenVRML Mozilla Plugin], [0.17.99], - [ope...@li...]) -AC_COPYRIGHT([Portions copyright 2004, 2005, 2006, 2007, 2008 Braden McDaniel]) -AC_CONFIG_FILES([Makefile] - [src/Makefile]) -AM_INIT_AUTOMAKE([1.7 foreign]) - -AC_PROG_CXX - -AC_DISABLE_STATIC -AC_ENABLE_SHARED -enable_shared=yes -AC_PROG_LIBTOOL - -ACX_PTHREAD(, [AC_MSG_FAILURE([pthread support not found])]) - -AC_PATH_X -if test X$no_x != Xyes; then - AC_DEFINE([MOZ_X11], [1], [Build an X11 plug-in]) -fi - -PKG_CHECK_MODULES([MOZILLA_PLUGIN], [xulrunner-plugin], - [mozilla_plugin_pkg=xulrunner-plugin], - [PKG_CHECK_MODULES([MOZILLA_PLUGIN], [firefox-plugin], - [mozilla_plugin_pkg=firefox-plugin], - [PKG_CHECK_MODULES([MOZILLA_PLUGIN], [seamonkey-plugin], - [mozilla_plugin_pkg=seamonkey-plugin], - [PKG_CHECK_MODULES([MOZILLA_PLUGIN], [mozilla-plugin >= 1.6], - [mozilla_plugin_pkg=mozilla-plugin], - [have_mozilla_plugin=no])])])]) -PKG_CHECK_MODULES([DBUS_G], [dbus-glib-1], , [have_dbus_glib=no]) -AC_PATH_PROG([DBUS_BINDING_TOOL], [dbus-binding-tool]) - -AS_IF([test "X$enable_mozilla_plugin" != "Xno"], - [AS_IF([test "X$have_mozilla_plugin" = "Xno"], - [AC_MSG_FAILURE([Mozilla plug-in development headers are required to build the Mozilla plug-in.])]) - AS_IF([test "X$have_dbus_glib" = "Xno"], - [AC_MSG_FAILURE([The D-Bus GLib binding is required to build the Mozilla plug-in])])]) -AM_CONDITIONAL([ENABLE_MOZILLA_PLUGIN], - [test "X$enable_mozilla_plugin" != "Xno" -a "X$have_dbus_glib" != "Xno"]) - -AC_OUTPUT Modified: trunk/mozilla-plugin/src/Makefile.am =================================================================== --- trunk/mozilla-plugin/src/Makefile.am 2009-03-23 23:42:22 UTC (rev 3863) +++ trunk/mozilla-plugin/src/Makefile.am 2009-03-24 04:40:50 UTC (rev 3864) @@ -1,4 +1,5 @@ AM_CPPFLAGS = \ + -DMOZ_X11 \ -DGTK_DISABLE_DEPRECATED \ -DOPENVRML_LIBEXECDIR_=\"$(libexecdir)\" AM_CXXFLAGS = $(MOZILLA_PLUGIN_CFLAGS) $(DBUS_G_CFLAGS) @@ -19,20 +20,20 @@ $(MOZILLA_PLUGIN_LIBS) \ $(DBUS_G_LIBS) -browser-host-server-glue.h: $(top_srcdir)/../src/openvrml-xembed/browser-host.xml +browser-host-server-glue.h: $(srcdir)/../../src/openvrml-xembed/browser-host.xml $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ --prefix=openvrml_np_browser_host \ --mode=glib-server \ --output=$@ \ $? -browser-factory-client-glue.h: $(top_srcdir)/../src/openvrml-xembed/browser-factory.xml +browser-factory-client-glue.h: $(srcdir)/../../src/openvrml-xembed/browser-factory.xml $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ --mode=glib-client \ --output=$@ \ $? -browser-client-glue.h: $(top_srcdir)/../src/openvrml-xembed/browser.xml +browser-client-glue.h: $(srcdir)/../../src/openvrml-xembed/browser.xml $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ --mode=glib-client \ --output=$@ \ Modified: trunk/mozilla-plugin/src/openvrml.cpp =================================================================== --- trunk/mozilla-plugin/src/openvrml.cpp 2009-03-23 23:42:22 UTC (rev 3863) +++ trunk/mozilla-plugin/src/openvrml.cpp 2009-03-24 04:40:50 UTC (rev 3864) @@ -38,6 +38,8 @@ # error Unsupported toolkit. # endif +# include <config.h> + # define OPENVRML_NP_TYPE_BROWSER_HOST (openvrml_np_browser_host_get_type()) # define OPENVRML_NP_BROWSER_HOST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), OPENVRML_NP_TYPE_BROWSER_HOST, OpenvrmlNpBrowserHost)) # define OPENVRML_NP_BROWSER_HOST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), OPENVRML_NP_TYPE_BROWSER_HOST, OpenvrmlNpBrowserHostClass)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-03-24 05:01:29
|
Revision: 3865 http://openvrml.svn.sourceforge.net/openvrml/?rev=3865&view=rev Author: braden Date: 2009-03-24 05:01:18 +0000 (Tue, 24 Mar 2009) Log Message: ----------- Moved Mozilla plug-in source to src/mozilla-plugin. Modified Paths: -------------- trunk/ChangeLog trunk/Makefile.am trunk/configure.ac trunk/src/Makefile.am Added Paths: ----------- trunk/src/mozilla-plugin/ trunk/src/mozilla-plugin/Makefile.am trunk/src/mozilla-plugin/openvrml.cpp Removed Paths: ------------- trunk/mozilla-plugin/ trunk/src/mozilla-plugin/Makefile.am trunk/src/mozilla-plugin/openvrml.cpp Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-24 04:40:50 UTC (rev 3864) +++ trunk/ChangeLog 2009-03-24 05:01:18 UTC (rev 3865) @@ -1,5 +1,20 @@ 2009-03-24 Braden McDaniel <br...@en...> + Moved Mozilla plug-in source to src/mozilla-plugin. + + * Makefile (SUBDIRS): Removed mozilla-plugin. + * configure.ac: Emit src/mozilla-plugin/Makefile. + * mozilla-plugin/Makefile.am: Removed. + * mozilla-plugin/src/Makefile.am: Removed. + * mozilla-plugin/src/openvrml.cpp: Removed. + * src/Makefile.am (SUBDIRS): Added mozilla-plugin. + * src/mozilla-plugin/Makefile.am: Moved from + mozilla-plugin/src/Makefile.am. + * src/mozilla-plugin/openvrml.cpp: Moved from + mozilla-plugin/src/openvrml.cpp. + +2009-03-24 Braden McDaniel <br...@en...> + Moved configuration for the Mozilla plug-in into the top-level configure.ac. Modified: trunk/Makefile.am =================================================================== --- trunk/Makefile.am 2009-03-24 04:40:50 UTC (rev 3864) +++ trunk/Makefile.am 2009-03-24 05:01:18 UTC (rev 3865) @@ -1,4 +1,4 @@ -SUBDIRS = doc ide-projects models src mozilla-plugin data examples tests +SUBDIRS = doc ide-projects models src data examples tests ACLOCAL_AMFLAGS = -I m4 Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2009-03-24 04:40:50 UTC (rev 3864) +++ trunk/configure.ac 2009-03-24 05:01:18 UTC (rev 3865) @@ -16,8 +16,7 @@ [src/script/java/vrml/Makefile] [src/script/java/vrml/field/Makefile] [src/script/java/vrml/node/Makefile] - [mozilla-plugin/Makefile] - [mozilla-plugin/src/Makefile] + [src/mozilla-plugin/Makefile] [data/Makefile] [examples/Makefile] [tests/Makefile] Modified: trunk/src/Makefile.am =================================================================== --- trunk/src/Makefile.am 2009-03-24 04:40:50 UTC (rev 3864) +++ trunk/src/Makefile.am 2009-03-24 05:01:18 UTC (rev 3865) @@ -1,4 +1,4 @@ -SUBDIRS = script +SUBDIRS = script mozilla-plugin BUILT_SOURCES = Property changes on: trunk/src/mozilla-plugin ___________________________________________________________________ Added: svn:ignore + Makefile.in Added: svn:mergeinfo + Deleted: trunk/src/mozilla-plugin/Makefile.am =================================================================== --- trunk/mozilla-plugin/src/Makefile.am 2009-03-23 23:42:22 UTC (rev 3863) +++ trunk/src/mozilla-plugin/Makefile.am 2009-03-24 05:01:18 UTC (rev 3865) @@ -1,43 +0,0 @@ -AM_CPPFLAGS = \ - -DGTK_DISABLE_DEPRECATED \ - -DOPENVRML_LIBEXECDIR_=\"$(libexecdir)\" -AM_CXXFLAGS = $(MOZILLA_PLUGIN_CFLAGS) $(DBUS_G_CFLAGS) - -mozpluginsdir = $(libdir)/mozilla/plugins - -if ENABLE_MOZILLA_PLUGIN -mozplugins_LTLIBRARIES = openvrml.la -BUILT_SOURCES = \ - browser-host-server-glue.h \ - browser-factory-client-glue.h \ - browser-client-glue.h -endif - -openvrml_la_SOURCES = openvrml.cpp -openvrml_la_LDFLAGS = \ - -module -avoid-version \ - $(MOZILLA_PLUGIN_LIBS) \ - $(DBUS_G_LIBS) - -browser-host-server-glue.h: $(top_srcdir)/../src/openvrml-xembed/browser-host.xml - $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ - --prefix=openvrml_np_browser_host \ - --mode=glib-server \ - --output=$@ \ - $? - -browser-factory-client-glue.h: $(top_srcdir)/../src/openvrml-xembed/browser-factory.xml - $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ - --mode=glib-client \ - --output=$@ \ - $? - -browser-client-glue.h: $(top_srcdir)/../src/openvrml-xembed/browser.xml - $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ - --mode=glib-client \ - --output=$@ \ - $? - -EXTRA_DIST = $(openvrml_la_SOURCES) - -CLEANFILES = $(BUILT_SOURCES) Copied: trunk/src/mozilla-plugin/Makefile.am (from rev 3864, trunk/mozilla-plugin/src/Makefile.am) =================================================================== --- trunk/src/mozilla-plugin/Makefile.am (rev 0) +++ trunk/src/mozilla-plugin/Makefile.am 2009-03-24 05:01:18 UTC (rev 3865) @@ -0,0 +1,44 @@ +AM_CPPFLAGS = \ + -DMOZ_X11 \ + -DGTK_DISABLE_DEPRECATED \ + -DOPENVRML_LIBEXECDIR_=\"$(libexecdir)\" +AM_CXXFLAGS = $(MOZILLA_PLUGIN_CFLAGS) $(DBUS_G_CFLAGS) + +mozpluginsdir = $(libdir)/mozilla/plugins + +if ENABLE_MOZILLA_PLUGIN +mozplugins_LTLIBRARIES = openvrml.la +BUILT_SOURCES = \ + browser-host-server-glue.h \ + browser-factory-client-glue.h \ + browser-client-glue.h +endif + +openvrml_la_SOURCES = openvrml.cpp +openvrml_la_LDFLAGS = \ + -module -avoid-version \ + $(MOZILLA_PLUGIN_LIBS) \ + $(DBUS_G_LIBS) + +browser-host-server-glue.h: $(srcdir)/../openvrml-xembed/browser-host.xml + $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ + --prefix=openvrml_np_browser_host \ + --mode=glib-server \ + --output=$@ \ + $? + +browser-factory-client-glue.h: $(srcdir)/../openvrml-xembed/browser-factory.xml + $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ + --mode=glib-client \ + --output=$@ \ + $? + +browser-client-glue.h: $(srcdir)/../openvrml-xembed/browser.xml + $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ + --mode=glib-client \ + --output=$@ \ + $? + +EXTRA_DIST = $(openvrml_la_SOURCES) + +CLEANFILES = $(BUILT_SOURCES) Deleted: trunk/src/mozilla-plugin/openvrml.cpp =================================================================== --- trunk/mozilla-plugin/src/openvrml.cpp 2009-03-23 23:42:22 UTC (rev 3863) +++ trunk/src/mozilla-plugin/openvrml.cpp 2009-03-24 05:01:18 UTC (rev 3865) @@ -1,1307 +0,0 @@ -// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 78 -*- -// -// OpenVRML Mozilla plug-in -// -// Copyright 2004, 2005, 2006, 2007, 2008 Braden McDaniel -// -// This program is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by the Free -// Software Foundation; either version 3 of the License, or (at your option) -// any later version. -// -// This program is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -// more details. -// -// You should have received a copy of the GNU General Public License along -// with this library; if not, see <http://www.gnu.org/licenses/>. -// - -# include <map> -# include <memory> -# include <sstream> -# include <stdexcept> -# include <vector> -# include <sys/socket.h> -# include <sys/wait.h> -# include <boost/concept_check.hpp> -# include <boost/lexical_cast.hpp> -# include <boost/multi_index/detail/scope_guard.hpp> -# include <boost/noncopyable.hpp> -# include <boost/ref.hpp> -# include <boost/scoped_ptr.hpp> -# include <npupp.h> -# if defined MOZ_X11 -# include <dbus/dbus-glib-bindings.h> -# else -# error Unsupported toolkit. -# endif - -# define OPENVRML_NP_TYPE_BROWSER_HOST (openvrml_np_browser_host_get_type()) -# define OPENVRML_NP_BROWSER_HOST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), OPENVRML_NP_TYPE_BROWSER_HOST, OpenvrmlNpBrowserHost)) -# define OPENVRML_NP_BROWSER_HOST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), OPENVRML_NP_TYPE_BROWSER_HOST, OpenvrmlNpBrowserHostClass)) - -G_BEGIN_DECLS - -typedef struct OpenvrmlNpBrowserHost_ OpenvrmlNpBrowserHost; -typedef struct OpenvrmlNpBrowserHostClass_ OpenvrmlNpBrowserHostClass; - -struct OpenvrmlNpBrowserHost_ { - GObject parent; - gchar * path; - NPP npp; -}; - -struct OpenvrmlNpBrowserHostClass_ { - GObjectClass parent; - DBusGConnection * connection; - gchar * host_name; -}; - -GType openvrml_np_browser_host_get_type(); - -int -openvrml_np_browser_host_get_url(OpenvrmlNpBrowserHost * host, const char * url, - GError ** error); -void openvrml_np_browser_host_set_world_url(OpenvrmlNpBrowserHost * host, - const char * url, GError ** error); - -G_END_DECLS - -# include "browser-host-server-glue.h" -# include "browser-factory-client-glue.h" -# include "browser-client-glue.h" - -using namespace boost::multi_index::detail; // for scope_guard - -namespace { - - void printerr(const char * str); - - class plugin_instance; - - typedef bool (plugin_instance::*script_callback_t)(const NPVariant *, - uint32_t, - NPVariant *); - - // - // Mozilla doesn't like us to use NPN_GetStringIdentifier during static - // initialization; so this is a singleton. - // - class script_callback_map : public std::map<NPIdentifier, - script_callback_t>, - boost::noncopyable { - static boost::scoped_ptr<const script_callback_map> instance_; - - script_callback_map(); - - public: - static const script_callback_map & instance(); - }; - - - class plugin_instance : boost::noncopyable { - const NPP npp; - void * window; - int x, y; - int width, height; - OpenvrmlNpBrowserHost * browser_host; - DBusGProxy * browser; - - public: - NPObject * const npobj; - - explicit plugin_instance(NPP npp) throw (std::bad_alloc); - ~plugin_instance() throw (); - - void set_window(NPWindow & window) - throw (std::bad_alloc, std::runtime_error); - void HandleEvent(void * event) throw (); - - NPError new_stream(NPMIMEType type, NPStream * stream); - NPError destroy_stream(NPStream * stream); - int32 write(NPStream * stream, int32 len, void * buffer); - - // - // Scripting API method implementations. - // - bool get_name(const NPVariant * args, uint32_t argCount, - NPVariant * result); - bool get_version(const NPVariant * args, uint32_t argCount, - NPVariant * result); - }; -} // namespace - -G_DEFINE_TYPE(OpenvrmlNpBrowserHost, openvrml_np_browser_host, G_TYPE_OBJECT) - -void openvrml_np_browser_host_init(OpenvrmlNpBrowserHost * const host) -{ - static unsigned long count = 0; - host->path = g_strdup_printf("/org/openvrml/BrowserHost/%u/%lu", - getpid(), count++); - dbus_g_connection_register_g_object( - OPENVRML_NP_BROWSER_HOST_GET_CLASS(host)->connection, - host->path, - G_OBJECT(host)); -} - -namespace { - enum np_host_signal_id { - shutdown_id, - last_signal_id - }; - - G_GNUC_INTERNAL guint signals[last_signal_id]; -} - -void openvrml_np_browser_host_class_init(OpenvrmlNpBrowserHostClass * klass) -{ - signals[shutdown_id] = - g_signal_new("shutdown", - G_OBJECT_CLASS_TYPE(klass), - GSignalFlags(G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED), - 0, - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - GError * error = 0; - scope_guard error_guard = make_guard(g_error_free, boost::ref(error)); - klass->connection = dbus_g_bus_get(DBUS_BUS_SESSION, &error); - if (!klass->connection) { - g_critical("Failed to open connection to bus: %s", error->message); - return; - } - - klass->host_name = g_strdup_printf("org.openvrml.BrowserHost-%u", - getpid()); - - DBusGProxy * driver_proxy = - dbus_g_proxy_new_for_name(klass->connection, - DBUS_SERVICE_DBUS, - DBUS_PATH_DBUS, - DBUS_INTERFACE_DBUS); - scope_guard driver_proxy_guard = make_guard(g_object_unref, driver_proxy); - boost::ignore_unused_variable_warning(driver_proxy_guard); - - guint request_ret; - if (!org_freedesktop_DBus_request_name(driver_proxy, - klass->host_name, - 0, &request_ret, - &error)) { - g_critical("Request for name \"%s\" failed: %s", - klass->host_name, error->message); - return; - } - - dbus_g_object_type_install_info( - OPENVRML_NP_TYPE_BROWSER_HOST, - &dbus_glib_openvrml_np_browser_host_object_info); - error_guard.dismiss(); -} - -int openvrml_np_browser_host_get_url(OpenvrmlNpBrowserHost * const host, - const char * const url, - GError ** /* error */) -{ - return NPN_GetURL(host->npp, url, 0); -} - -void openvrml_np_browser_host_set_world_url(OpenvrmlNpBrowserHost * /* host */, - const char * /* url */, - GError ** /* error */) -{ -} - -char * NP_GetMIMEDescription() -{ - return NPP_GetMIMEDescription(); -} - -namespace { - NPNetscapeFuncs mozillaFuncs; -} - -/** - * @brief Provides global initialization for a plug-in. - * - * @param mozTable table of functions the plug-in can use to call into - * the browser. - * @retval pluginFuncs table of functions that the browser can use to call - * into the plug-in. - * - * @return - * - @c NPERR_INVALID_FUNCTABLE_ERROR if: - * - @p mozTable is 0; or - * - @p mozTable->size is smaller than expected; or - * - @p pluginFuncs is 0; or - * - @p pluginFuncs->size is smaller than expected. - * - @c NPERR_INCOMPATIBLE_VERSION_ERROR if: - * - @p mozTable->version indicates an incompatible version; or - * - (under X) the browser does not support XEmbed; or - * - (under X) the browser does not use Gtk2. - * - @c NPERR_NO_ERROR otherwise. - * - * @see http://devedge.netscape.com/library/manuals/2002/plugin/1.0/npp_api7.html#999264 - */ -NPError NP_Initialize(NPNetscapeFuncs * const mozTable, - NPPluginFuncs * const pluginFuncs) -{ - if (!mozTable || !pluginFuncs) { return NPERR_INVALID_FUNCTABLE_ERROR; } - - // - // Check the major version passed in Mozilla's function table. We won't - // load if the major version is newer than what we expect. Also check that - // the function tables passed in are big enough for all the functions we - // need. (They could be bigger if Mozilla added new APIs; but that's okay; - // we'll just ignore them.) - // - if ((mozTable->version >> 8) > NP_VERSION_MAJOR) { - return NPERR_INCOMPATIBLE_VERSION_ERROR; - } - if (mozTable->size < sizeof (NPNetscapeFuncs) - || pluginFuncs->size < sizeof (NPPluginFuncs)) { - return NPERR_INVALID_FUNCTABLE_ERROR; - } - - // - // Copy the fields of the Mozilla function table into our copy so we can - // call back into Mozilla later. Note that we need to copy the fields one - // by one rather than assign the whole struct because the Mozilla function - // table could be bigger than what we expect. - // - mozillaFuncs.version = mozTable->version; - mozillaFuncs.size = mozTable->size; - mozillaFuncs.posturl = mozTable->posturl; - mozillaFuncs.geturl = mozTable->geturl; - mozillaFuncs.geturlnotify = mozTable->geturlnotify; - mozillaFuncs.requestread = mozTable->requestread; - mozillaFuncs.newstream = mozTable->newstream; - mozillaFuncs.write = mozTable->write; - mozillaFuncs.destroystream = mozTable->destroystream; - mozillaFuncs.status = mozTable->status; - mozillaFuncs.uagent = mozTable->uagent; - mozillaFuncs.memalloc = mozTable->memalloc; - mozillaFuncs.memfree = mozTable->memfree; - mozillaFuncs.memflush = mozTable->memflush; - mozillaFuncs.reloadplugins = mozTable->reloadplugins; - mozillaFuncs.getJavaEnv = mozTable->getJavaEnv; - mozillaFuncs.getJavaPeer = mozTable->getJavaPeer; - mozillaFuncs.getvalue = mozTable->getvalue; - mozillaFuncs.getstringidentifier = mozTable->getstringidentifier; - mozillaFuncs.getstringidentifiers = mozTable->getstringidentifiers; - mozillaFuncs.getintidentifier = mozTable->getintidentifier; - mozillaFuncs.identifierisstring = mozTable->identifierisstring; - mozillaFuncs.utf8fromidentifier = mozTable->utf8fromidentifier; - mozillaFuncs.intfromidentifier = mozTable->intfromidentifier; - mozillaFuncs.createobject = mozTable->createobject; - mozillaFuncs.retainobject = mozTable->retainobject; - mozillaFuncs.releaseobject = mozTable->releaseobject; - mozillaFuncs.invoke = mozTable->invoke; - mozillaFuncs.invokeDefault = mozTable->invokeDefault; - mozillaFuncs.evaluate = mozTable->evaluate; - mozillaFuncs.getproperty = mozTable->getproperty; - mozillaFuncs.setproperty = mozTable->setproperty; - mozillaFuncs.removeproperty = mozTable->removeproperty; - mozillaFuncs.hasproperty = mozTable->hasproperty; - mozillaFuncs.hasmethod = mozTable->hasmethod; - mozillaFuncs.releasevariantvalue = mozTable->releasevariantvalue; - mozillaFuncs.setexception = mozTable->setexception; - - // - // Set up the plug-in function table that Mozilla will use to call us. - // Mozilla needs to know about our version and size an have a - // UniversalProcPointer for every function we implement. - // - pluginFuncs->version = (NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR; - pluginFuncs->size = sizeof (NPPluginFuncs); - pluginFuncs->newp = NPP_New; - pluginFuncs->destroy = NPP_Destroy; - pluginFuncs->setwindow = NPP_SetWindow; - pluginFuncs->newstream = NPP_NewStream; - pluginFuncs->destroystream = NPP_DestroyStream; - pluginFuncs->asfile = NPP_StreamAsFile; - pluginFuncs->writeready = NPP_WriteReady; - pluginFuncs->write = NPP_Write; - pluginFuncs->print = NPP_Print; - pluginFuncs->urlnotify = NPP_URLNotify; - pluginFuncs->event = NPP_HandleEvent; - pluginFuncs->getvalue = NPP_GetValue; - pluginFuncs->setvalue = NPP_SetValue; - pluginFuncs->javaClass = 0; - -# ifdef MOZ_X11 - NPError err = NPERR_NO_ERROR; - - // - // Make sure the browser supports XEmbed plug-ins. - // - PRBool supportsXEmbed = PR_FALSE; - err = CallNPN_GetValueProc(mozillaFuncs.getvalue, - 0, - NPNVSupportsXEmbedBool, - &supportsXEmbed); - - if (err != NPERR_NO_ERROR || !supportsXEmbed) { - return NPERR_INCOMPATIBLE_VERSION_ERROR; - } - - // - // Make sure the browser tookit is Gtk2. - // - NPNToolkitType toolkit = NPNToolkitType(); - err = CallNPN_GetValueProc(mozillaFuncs.getvalue, - 0, - NPNVToolkit, - &toolkit); - - if (err != NPERR_NO_ERROR || toolkit != NPNVGtk2) { - return NPERR_INCOMPATIBLE_VERSION_ERROR; - } -# endif // defined MOZ_X11 - - return NPP_Initialize(); -} - -NPError NP_Shutdown() -{ - NPP_Shutdown(); - return NPERR_NO_ERROR; -} - -NPError NP_GetValue(void *, NPPVariable variable, void * value) -{ - NPError err = NPERR_NO_ERROR; - switch (variable) { - case NPPVpluginNameString: - *static_cast<const char **>(value) = "OpenVRML"; - break; - case NPPVpluginDescriptionString: - *static_cast<const char **>(value) = "VRML browser"; - break; - default: - err = NPERR_GENERIC_ERROR; - } - return err; -} - -char * NPP_GetMIMEDescription() -{ - static const char mimeDescription[] = - "model/x3d+vrml:x3dv:X3D world;" - "model/vrml:wrl:VRML world;" - "x-world/x-vrml:wrl:VRML world"; - return const_cast<char *>(&mimeDescription[0]); -} - -NPError NPP_Initialize() -{ - return NPERR_NO_ERROR; -} - -void NPP_Shutdown() -{} - -/** - * @internal - * - * @brief Create a new instance of a plug-in. - * - * NPP_New is called after NPP_Initialize and provides the MIME type, - * embedded or full-screen display mode, and, for embedded plug-ins, - * information about HTML @c EMBED arguments. - * - * The plug-in's NPP pointer is valid until the instance is destroyed with - * NPP_Destroy. - * - * If instance data was saved from a previous instance of the plug-in by - * the NPP_Destroy function, it is returned in the saved parameter for the - * current instance to use. - * - * All attributes in the @c EMBED tag (standard and private) are passed in - * NPP_New in the argn and argv arrays. Gecko ignores any non-standard - * attributes within an @c EMBED tag. This gives developers a chance to use - * private attributes to communicate instance-specific options or other - * information to the plug-in. Place private options at the end of the list - * of standard attributes in the @c EMBED Tag. - * - * @param pluginType Pointer to the MIME type for new plug-in instance. - * @param instance Contains instance-specific private data for the plug-in - * and Gecko. The data is stored in @p instance->pdata. - * @param mode Display mode of the plug-in. Can be NP_EMBED or - * NP_FULL. - * @param argc Number of HTML arguments in the @c EMBED tag for an - * embedded plug-in; determines the number of attributes - * in the @p argn and @p argv arrays. - * @param argn Array of attribute names passed to the plug-in from the - * @c EMBED tag. - * @param argv Array of attribute values passed to the plug-in from - * the @c EMBED tag. - * @param saved Pointer to data saved by NPP_Destroy for a previous - * instance of this plug-in at the same URL. If non-null, - * Gecko passes ownership of the NPSavedData object back - * to the plug-in. The plug-in is responsible for freeing - * the memory for the NPSavedData and the buffer it - * contains. - * - * @see http://devedge.netscape.com/library/manuals/2002/plugin/1.0/npp_api8.html#999289 - */ -NPError NPP_New(const NPMIMEType, - const NPP instance, - uint16 /* mode */, - int16 /* argc */, - char * /* argn */[], - char * /* argv */[], - NPSavedData *) -{ - if (!instance) { return NPERR_INVALID_INSTANCE_ERROR; } - - try { - instance->pdata = new plugin_instance(instance); - } catch (std::bad_alloc &) { - return NPERR_OUT_OF_MEMORY_ERROR; - } - return NPERR_NO_ERROR; -} - -/** - * @internal - * - * @brief Release the instance data and resources associated with a plug-in. - * - * Gecko calls this function when a plug-in instance is deleted, typically - * because the user has left the page containing the instance, closed the - * window, or quit the browser. You should delete any private instance-specific - * information stored in the plug-in's instance->pdata at this time. - * - * If this function is deleting the last instance of a plug-in, NPP_Shutdown - * is subsequently called. Use NPP_Shutdown to delete any data allocated in - * NPP_Initialize and intended to be shared by all instances of a plug-in. - * - * Use the optional save parameter if you want to save and reuse some state - * or other information. Upon the user's return to the page, this information - * is passed to the new plug-in instance when it is created with NPP_New. - * - * Avoid trying to save critical data with this function. Ownership of the - * @a buf field of the NPSavedData structure passes from the plug-in to - * Gecko when NPP_Destroy returns. The Communicator can and will discard this - * data based on arbitrary criteria such as its size and the user's page - * history. - * - * To ensure that Gecko does not crash or leak memory when the saved data is - * discarded, NPSavedData's @a buf field should be a flat structure (a simple - * structure with no allocated substructures) allocated with NPN_MemAlloc. - * - * @param instance Pointer to the plug-in instance to delete. - * @param save State or other information to save for reuse by a new - * instance of this plug-in at the same URL. Passed to - * NPP_New. - * - * @return @c NPERR_NO_ERROR if successful; @c NPERR_INVALID_INSTANCE_ERROR if - * @p instance is 0. - * - * @see http://developer.netscape.com/docs/manuals/communicator/plugin/pgfns.htm#1006838 - */ -NPError NPP_Destroy(const NPP instance, NPSavedData **) -{ - if (!instance) { return NPERR_INVALID_INSTANCE_ERROR; } - - /* PLUGIN DEVELOPERS: - * If desired, call NP_MemAlloc to create a - * NPSavedDate structure containing any state information - * that you want restored if this plugin instance is later - * recreated. - */ - - delete static_cast<plugin_instance *>(instance->pdata); - instance->pdata = 0; - - return NPERR_NO_ERROR; -} - -NPError NPP_SetWindow(const NPP instance, NPWindow * const window) -{ - if (!instance || !instance->pdata) { return NPERR_INVALID_INSTANCE_ERROR; } - try { - assert(window); - static_cast<plugin_instance *>(instance->pdata) - ->set_window(*window); - } catch (std::bad_alloc &) { - return NPERR_OUT_OF_MEMORY_ERROR; - } catch (std::runtime_error & ex) { - g_critical(ex.what()); - return NPERR_GENERIC_ERROR; - } - return NPERR_NO_ERROR; -} - -NPError NPP_NewStream(const NPP instance, - const NPMIMEType type, - NPStream * const stream, - NPBool /* seekable */, - uint16 * const stype) -{ - if (!instance || !instance->pdata) { return NPERR_INVALID_INSTANCE_ERROR; } - - *stype = NP_NORMAL; - - plugin_instance & pluginInstance = - *static_cast<plugin_instance *>(instance->pdata); - - return pluginInstance.new_stream(type, stream); -} - -NPError NPP_DestroyStream(const NPP instance, - NPStream * const stream, - NPError /* reason */) -{ - if (!instance || !instance->pdata) { return NPERR_INVALID_INSTANCE_ERROR; } - - plugin_instance & pluginInstance = - *static_cast<plugin_instance *>(instance->pdata); - - return pluginInstance.destroy_stream(stream); -} - -/* PLUGIN DEVELOPERS: - * These next 2 functions are directly relevant in a plug-in which - * handles the data in a streaming manner. If you want zero bytes - * because no buffer space is YET available, return 0. As long as - * the stream has not been written to the plugin, Navigator will - * continue trying to send bytes. If the plugin doesn't want them, - * just return some large number from NPP_WriteReady(), and - * ignore them in NPP_Write(). For a NP_ASFILE stream, they are - * still called but can safely be ignored using this strategy. - */ - -namespace { - int32 STREAMBUFSIZE = 0X0FFFFFFF; /* If we are reading from a file in - * NPAsFile mode so we can take any size - * stream in our write call (since we - * ignore it) */ -} - -int32 NPP_WriteReady(NPP, NPStream *) -{ - return STREAMBUFSIZE; -} - - -int32 NPP_Write(const NPP instance, - NPStream * const stream, - int32 /* offset */, - const int32 len, - void * const buffer) -{ - if (!instance || !instance->pdata) { return 0; } - - plugin_instance & pluginInstance = - *static_cast<plugin_instance *>(instance->pdata); - - return pluginInstance.write(stream, len, buffer); -} - -void NPP_StreamAsFile(const NPP instance, - NPStream *, - const char * /* fname */) -{ - assert(instance); -} - -void NPP_Print(const NPP instance, NPPrint * const printInfo) -{ - if (!printInfo) { return; } - - if (instance) { - if (printInfo->mode == NP_FULL) { - /* - * PLUGIN DEVELOPERS: - * If your plugin would like to take over - * printing completely when it is in full-screen mode, - * set printInfo->pluginPrinted to TRUE and print your - * plugin as you see fit. If your plugin wants Netscape - * to handle printing in this case, set - * printInfo->pluginPrinted to FALSE (the default) and - * do nothing. If you do want to handle printing - * yourself, printOne is true if the print button - * (as opposed to the print menu) was clicked. - * On the Macintosh, platformPrint is a THPrint; on - * Windows, platformPrint is a structure - * (defined in npapi.h) containing the printer name, port, - * etc. - */ - - // void * platformPrint = printInfo->print.fullPrint.platformPrint; - // NPBool printOne = printInfo->print.fullPrint.printOne; - - /* Do the default*/ - // printInfo->print.fullPrint.pluginPrinted = false; - } - else { /* If not fullscreen, we must be embedded */ - /* - * PLUGIN DEVELOPERS: - * If your plugin is embedded, or is full-screen - * but you returned false in pluginPrinted above, NPP_Print - * will be called with mode == NP_EMBED. The NPWindow - * in the printInfo gives the location and dimensions of - * the embedded plugin on the printed page. On the - * Macintosh, platformPrint is the printer port; on - * Windows, platformPrint is the handle to the printing - * device context. - */ - - // NPWindow * printWindow = &printInfo->print.embedPrint.window; - // void * platformPrint = printInfo->print.embedPrint.platformPrint; - } - } -} - -int16 NPP_HandleEvent(NPP, void * /* event */) -{ - return true; -} - -void NPP_URLNotify(NPP, - const char * /* url */, - NPReason, - void * /* notifyData */) -{} - -jref NPP_GetJavaClass() -{ - return 0; -} - -NPError NPP_GetValue(const NPP npp, - const NPPVariable variable, - void * const value) -{ - if (!npp) { return NPERR_INVALID_INSTANCE_ERROR; } - - NPError err = NPERR_NO_ERROR; - plugin_instance * instance = 0; - - switch (variable) { - case NPPVpluginNeedsXEmbed: - *static_cast<PRBool *>(value) = PR_TRUE; - break; - case NPPVpluginScriptableNPObject: - assert(npp->pdata); - instance = static_cast<plugin_instance *>(npp->pdata); - NPN_RetainObject(instance->npobj); - *static_cast<NPObject **>(value) = instance->npobj; - break; - default: - err = NP_GetValue(instance, variable, value); - } - return err; -} - -NPError NPP_SetValue(NPP, NPNVariable, void * /* value */) -{ - return NPERR_NO_ERROR; -} - -void NPN_Version(int * plugin_major, - int * plugin_minor, - int * mozilla_major, - int * mozilla_minor) -{ - *plugin_major = NP_VERSION_MAJOR; - *plugin_minor = NP_VERSION_MINOR; - *mozilla_major = mozillaFuncs.version >> 8; - *mozilla_minor = mozillaFuncs.version & 0xff; -} - -NPError NPN_GetURLNotify(NPP instance, - const char * url, - const char * target, - void * notifyData) -{ - const int navMinorVers = mozillaFuncs.version & 0xFF; - return (navMinorVers >= NPVERS_HAS_NOTIFICATION) - ? CallNPN_GetURLNotifyProc(mozillaFuncs.geturlnotify, - instance, - url, - target, - notifyData) - : NPERR_INCOMPATIBLE_VERSION_ERROR; -} - -NPError NPN_GetURL(NPP instance, const char * url, const char * target) -{ - return CallNPN_GetURLProc(mozillaFuncs.geturl, instance, url, target); -} - -NPError NPN_PostURLNotify(NPP instance, - const char * url, - const char * window, - uint32 len, - const char * buf, - NPBool file, - void * notifyData) -{ - const int navMinorVers = mozillaFuncs.version & 0xFF; - return (navMinorVers >= NPVERS_HAS_NOTIFICATION) - ? CallNPN_PostURLNotifyProc(mozillaFuncs.posturlnotify, - instance, - url, - window, - len, - buf, - file, - notifyData) - : NPERR_INCOMPATIBLE_VERSION_ERROR; -} - -NPError NPN_PostURL(NPP instance, - const char * url, - const char * window, - uint32 len, - const char * buf, - NPBool file) -{ - return CallNPN_PostURLProc(mozillaFuncs.posturl, - instance, - url, - window, - len, - buf, - file); -} - -NPError NPN_RequestRead(NPStream * stream, NPByteRange * rangeList) -{ - return CallNPN_RequestReadProc(mozillaFuncs.requestread, - stream, - rangeList); -} - -NPError NPN_NewStream(NPP instance, - NPMIMEType type, - const char * target, - NPStream ** stream) -{ - const int navMinorVersion = mozillaFuncs.version & 0xFF; - return (navMinorVersion >= NPVERS_HAS_STREAMOUTPUT) - ? CallNPN_NewStreamProc(mozillaFuncs.newstream, - instance, - type, - target, - stream) - : NPERR_INCOMPATIBLE_VERSION_ERROR; -} - -int32 NPN_Write(NPP instance, NPStream * stream, int32 len, void * buffer) -{ - const int navMinorVersion = mozillaFuncs.version & 0xFF; - return (navMinorVersion >= NPVERS_HAS_STREAMOUTPUT) - ? CallNPN_WriteProc(mozillaFuncs.write, instance, stream, len, buffer) - : -1; -} - -NPError NPN_DestroyStream(NPP instance, NPStream* stream, NPError reason) -{ - const int navMinorVersion = mozillaFuncs.version & 0xFF; - return (navMinorVersion >= NPVERS_HAS_STREAMOUTPUT) - ? CallNPN_DestroyStreamProc(mozillaFuncs.destroystream, - instance, - stream, - reason) - : NPERR_INCOMPATIBLE_VERSION_ERROR; -} - -void NPN_Status(NPP instance, const char * message) -{ - CallNPN_StatusProc(mozillaFuncs.status, instance, message); -} - -const char * NPN_UserAgent(NPP instance) -{ - return CallNPN_UserAgentProc(mozillaFuncs.uagent, instance); -} - -void * NPN_MemAlloc(uint32 size) -{ - return CallNPN_MemAllocProc(mozillaFuncs.memalloc, size); -} - -void NPN_MemFree(void * ptr) -{ - CallNPN_MemFreeProc(mozillaFuncs.memfree, ptr); -} - -uint32 NPN_MemFlush(uint32 size) -{ - return CallNPN_MemFlushProc(mozillaFuncs.memflush, size); -} - -void NPN_ReloadPlugins(NPBool reloadPages) -{ - CallNPN_ReloadPluginsProc(mozillaFuncs.reloadplugins, reloadPages); -} - -JRIEnv * NPN_GetJavaEnv() -{ - return CallNPN_GetJavaEnvProc(mozillaFuncs.getJavaEnv); -} - -jref NPN_GetJavaPeer(NPP instance) -{ - return CallNPN_GetJavaPeerProc(mozillaFuncs.getJavaPeer, instance); -} - -NPError NPN_GetValue(NPP instance, NPNVariable variable, void * value) -{ - return CallNPN_GetValueProc(mozillaFuncs.getvalue, - instance, - variable, - value); -} - -NPError NPN_SetValue(NPP instance, NPPVariable variable, void * value) -{ - return CallNPN_SetValueProc(mozillaFuncs.setvalue, - instance, - variable, - value); -} - -void NPN_InvalidateRect(NPP instance, NPRect * invalidRect) -{ - CallNPN_InvalidateRectProc(mozillaFuncs.invalidaterect, - instance, - invalidRect); -} - -void NPN_InvalidateRegion(NPP instance, NPRegion invalidRegion) -{ - CallNPN_InvalidateRegionProc(mozillaFuncs.invalidateregion, - instance, - invalidRegion); -} - -void NPN_ForceRedraw(NPP instance) -{ - CallNPN_ForceRedrawProc(mozillaFuncs.forceredraw, instance); -} - -void NPN_ReleaseVariantValue(NPVariant * variant) -{ - CallNPN_ReleaseVariantValueProc(mozillaFuncs.releasevariantvalue, variant); -} - -NPIdentifier NPN_GetStringIdentifier(const NPUTF8 * name) -{ - return CallNPN_GetStringIdentifierProc(mozillaFuncs.getstringidentifier, - name); -} - -void NPN_GetStringIdentifiers(const NPUTF8 ** names, - int32_t nameCount, - NPIdentifier * identifiers) -{ - CallNPN_GetStringIdentifiersProc(mozillaFuncs.getstringidentifiers, - names, - nameCount, - identifiers); -} - -NPIdentifier NPN_GetIntIdentifier(int32_t intid) -{ - return CallNPN_GetIntIdentifierProc(mozillaFuncs.getintidentifier, intid); -} - -bool NPN_IdentifierIsString(NPIdentifier * identifier) -{ - return CallNPN_IdentifierIsStringProc(mozillaFuncs.identifierisstring, - identifier); -} - -NPUTF8 * NPN_UTF8FromIdentifier(NPIdentifier identifier) -{ - return CallNPN_UTF8FromIdentifierProc(mozillaFuncs.utf8fromidentifier, - identifier); -} - -int32_t NPN_IntFromIdentifier(NPIdentifier identifier) -{ - return CallNPN_IntFromIdentifierProc(mozillaFuncs.intfromidentifier, - identifier); -} - -NPObject * NPN_CreateObject(NPP npp, NPClass * aClass) -{ - return CallNPN_CreateObjectProc(mozillaFuncs.createobject, npp, aClass); -} - -NPObject * NPN_RetainObject(NPObject * npobj) -{ - return CallNPN_RetainObjectProc(mozillaFuncs.retainobject, npobj); -} - -void NPN_ReleaseObject(NPObject * npobj) -{ - CallNPN_ReleaseObjectProc(mozillaFuncs.releaseobject, npobj); -} - -bool NPN_Invoke(NPP npp, NPObject * npobj, NPIdentifier methodName, - const NPVariant * args, uint32_t argCount, NPVariant * result) -{ - return CallNPN_InvokeProc(mozillaFuncs.invoke, - npp, npobj, methodName, args, argCount, result); -} - -bool NPN_InvokeDefault(NPP npp, NPObject * npobj, const NPVariant * args, - uint32_t argCount, NPVariant * result) -{ - return CallNPN_InvokeDefaultProc(mozillaFuncs.invokeDefault, - npp, npobj, args, argCount, result); -} - -bool NPN_Evaluate(NPP npp, NPObject * npobj, NPString * script, - NPVariant * result) -{ - return CallNPN_EvaluateProc(mozillaFuncs.evaluate, npp, npobj, script, - result); -} - -bool NPN_GetProperty(NPP npp, NPObject * npobj, NPIdentifier propertyName, - NPVariant * result) -{ - return CallNPN_GetPropertyProc(mozillaFuncs.getproperty, - npp, npobj, propertyName, result); -} - -bool NPN_SetProperty(NPP npp, NPObject * npobj, NPIdentifier propertyName, - const NPVariant * result) -{ - return CallNPN_SetPropertyProc(mozillaFuncs.setproperty, - npp, npobj, propertyName, result); -} - -bool NPN_RemoveProperty(NPP npp, NPObject * npobj, NPIdentifier propertyName) -{ - return CallNPN_RemovePropertyProc(mozillaFuncs.removeproperty, - npp, npobj, propertyName); -} - -bool NPN_HasProperty(NPP npp, NPObject * npobj, NPIdentifier propertyName) -{ - return CallNPN_HasPropertyProc(mozillaFuncs.hasproperty, - npp, npobj, propertyName); -} - -bool NPN_HasMethod(NPP npp, NPObject * npobj, NPIdentifier methodName) -{ - return CallNPN_HasMethodProc(mozillaFuncs.hasmethod, - npp, npobj, methodName); -} - -void NPN_SetException(NPObject * npobj, const NPUTF8 * message) -{ - return CallNPN_SetExceptionProc(mozillaFuncs.setexception, npobj, message); -} - -namespace { - - boost::scoped_ptr<const script_callback_map> script_callback_map::instance_; - - script_callback_map::script_callback_map() - { - using std::make_pair; - this->insert(make_pair(NPN_GetStringIdentifier("getName"), - &plugin_instance::get_name)); - this->insert(make_pair(NPN_GetStringIdentifier("getVersion"), - &plugin_instance::get_version)); - } - - const script_callback_map & script_callback_map::instance() - { - if (!script_callback_map::instance_) { - script_callback_map::instance_.reset(new script_callback_map); - } - return *script_callback_map::instance_; - } - - void printerr(const char * str) - { - fprintf(stderr, "%s\n", str); - } - - - struct OpenVRMLNPObject { - NPObject npobj; - NPP npp; - }; - - NPObject * openvrmlnpobject_allocate(NPP npp, NPClass *) - { - OpenVRMLNPObject * const npobj = - static_cast<OpenVRMLNPObject *>( - NPN_MemAlloc(sizeof (OpenVRMLNPObject))); - - npobj->npp = npp; - - return static_cast<NPObject *>(static_cast<void *>(npobj)); - } - - void openvrmlnpobject_deallocate(NPObject * const npobj) - { - NPN_MemFree(npobj); - } - - void openvrmlnpobject_invalidate(NPObject * /* npobj */) - {} - - bool openvrmlnpobject_hasMethod(NPObject *, const NPIdentifier name) - { - const script_callback_map::const_iterator pos = - script_callback_map::instance().find(name); - return pos != script_callback_map::instance().end(); - } - - bool openvrmlnpobject_invoke(NPObject * const npobj, - const NPIdentifier name, - const NPVariant * const args, - const uint32_t argCount, - NPVariant * const result) - { - const script_callback_map::const_iterator pos = - script_callback_map::instance().find(name); - assert(pos != script_callback_map::instance().end()); - - OpenVRMLNPObject * const openvrml_npobj = - static_cast<OpenVRMLNPObject *>(static_cast<void *>(npobj)); - - plugin_instance * const instance = - static_cast<plugin_instance *>(openvrml_npobj->npp->pdata); - - return (instance->*(pos->second))(args, argCount, result); - } - - bool openvrmlnpobject_invokeDefault(NPObject * /* npobj */, - const NPVariant * /* args */, - uint32_t /* argCount */, - NPVariant * /* result */) - { - return false; - } - - bool openvrmlnpobject_hasProperty(NPObject * /* npobj */, - NPIdentifier /* name */) - { - return false; - } - - bool openvrmlnpobject_getProperty(NPObject * /* npobj */, - NPIdentifier /* name */, - NPVariant * /* result */) - { - return false; - } - - bool openvrmlnpobject_setProperty(NPObject * /* npobj */, - NPIdentifier /* name */, - const NPVariant * /* value */) - { - return false; - } - - bool openvrmlnpobject_removeProperty(NPObject * /* npobj */, - NPIdentifier /* name */) - { - return false; - } - - NPClass npclass = { - NP_CLASS_STRUCT_VERSION, - openvrmlnpobject_allocate, - openvrmlnpobject_deallocate, - openvrmlnpobject_invalidate, - openvrmlnpobject_hasMethod, - openvrmlnpobject_invoke, - openvrmlnpobject_invokeDefault, - openvrmlnpobject_hasProperty, - openvrmlnpobject_getProperty, - openvrmlnpobject_setProperty, - openvrmlnpobject_removeProperty - }; - - plugin_instance::plugin_instance(const NPP npp) throw (std::bad_alloc): - npp(npp), - window(0), - x(0), - y(0), - width(0), - height(0), - browser_host( - OPENVRML_NP_BROWSER_HOST( - g_object_new(OPENVRML_NP_TYPE_BROWSER_HOST, 0))), - browser(0), - npobj(NPN_CreateObject(this->npp, &npclass)) - { - if (!this->browser_host) { throw std::bad_alloc(); } - if (!this->npobj) { throw std::bad_alloc(); } - - browser_host->npp = npp; - } - - plugin_instance::~plugin_instance() throw () - { - NPN_ReleaseObject(this->npobj); - g_signal_emit(this->browser_host, signals[shutdown_id], 0); - } - - DBusGProxy * get_browser(DBusGConnection * const connection, - const char * const host_name, - const char * const host_path, - const guint64 host_id, - GError ** const error) - throw () - { - DBusGProxy * browser_factory = - dbus_g_proxy_new_for_name(connection, - "org.openvrml.BrowserControl", - "/org/openvrml/BrowserFactory", - "org.openvrml.BrowserFactory"); - g_return_val_if_fail(browser_factory, 0); - scope_guard browser_factory_guard = - make_guard(g_object_unref, G_OBJECT(browser_factory)); - boost::ignore_unused_variable_warning(browser_factory_guard); - - char * browser_path = 0; - if (!org_openvrml_BrowserFactory_create_control(browser_factory, - host_name, - host_path, - host_id, - true, - &browser_path, - error)) { - return 0; - } - - DBusGProxy * browser = - dbus_g_proxy_new_for_name(connection, - "org.openvrml.BrowserControl", - browser_path, - "org.openvrml.Browser"); - return browser; - } - - void plugin_instance::set_window(NPWindow & window) - throw (std::bad_alloc, std::runtime_error) - { - assert(window.window); - if (this->window) { - // - // The plug-in window is unchanged. Resize the window and exit. - // - return; - } - - using std::string; - using std::vector; - using boost::lexical_cast; - using boost::ref; - - this->window = window.window; - - OpenvrmlNpBrowserHostClass * const browser_host_class = - OPENVRML_NP_BROWSER_HOST_GET_CLASS(this->browser_host); - - GError * error = 0; - scope_guard error_guard = make_guard(g_error_free, boost::ref(error)); - - this->browser = get_browser(browser_host_class->connection, - browser_host_class->host_name, - this->browser_host->path, - guint64(this->window), - &error); - if (!this->browser) { - g_critical("Browser creation failed: %s", error->message); - return; - } - - error_guard.dismiss(); - } - - NPError plugin_instance::new_stream(const NPMIMEType type, - NPStream * const stream) - { - if (!this->browser) { return NPERR_INVALID_INSTANCE_ERROR; } - - GError * error = 0; - scope_guard error_guard = make_guard(g_error_free, boost::ref(error)); - gboolean result = org_openvrml_Browser_new_stream(this->browser, - guint64(stream), - type, - stream->url, - &error); - if (!result) { - g_critical("Call to org.openvrml.Browser.NewStream failed: %s", - error->message); - return NPERR_GENERIC_ERROR; - } - error_guard.dismiss(); - return NPERR_NO_ERROR; - } - - NPError plugin_instance::destroy_stream(NPStream * const stream) - { - if (!this->browser) { return NPERR_INVALID_INSTANCE_ERROR; } - - dbus_g_proxy_call_no_reply(this->browser, - "DestroyStream", - G_TYPE_UINT64, guint64(stream), - G_TYPE_INVALID); - return NPERR_NO_ERROR; - } - - int32 plugin_instance::write(NPStream * const stream, - const int32 len, - void * const buffer) - { - if (!this->browser) { return 0; } - - GArray array = {}; - array.data = static_cast<char *>(buffer); - array.len = len; - - dbus_g_proxy_call_no_reply(this->browser, - "Write", - G_TYPE_UINT64, guint64(stream), - DBUS_TYPE_G_UCHAR_ARRAY, &array, - G_TYPE_INVALID); - return len; - } - - void plugin_instance::HandleEvent(void *) throw () - {} - - bool plugin_instance::get_name(const NPVariant * const /* args */, - const uint32_t /* argCount */, - NPVariant * const result) - { - static const std::string name = PACKAGE_NAME; - NPUTF8 * const name_str = - static_cast<NPUTF8 *>( - NPN_MemAlloc(sizeof (NPUTF8) * name.length())); - std::copy(name.begin(), name.end(), name_str); - STRINGN_TO_NPVARIANT(name_str, name.length(), *result); - return true; - } - - bool plugin_instance::get_version(const NPVariant * const /* args */, - const uint32_t /* argCount */, - NPVariant * const result) - { - static const std::string ver = PACKAGE_VERSION; - NPUTF8 * const ver_str = - static_cast<NPUTF8 *>(NPN_MemAlloc(sizeof (NPUTF8) * ver.length())); - std::copy(ver.begin(), ver.end(), ver_str); - STRINGN_TO_NPVARIANT(ver_str, ver.length(), *result); - return true; - } -} // namespace Copied: trunk/src/mozilla-plugin/openvrml.cpp (from rev 3864, trunk/mozilla-plugin/src/openvrml.cpp) =================================================================== --- trunk/src/mozilla-plugin/openvrml.cpp (rev 0) +++ trunk/src/mozilla-plugin/openvrml.cpp 2009-03-24 05:01:18 UTC (rev 3865) @@ -0,0 +1,1309 @@ +// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 78 -*- +// +// OpenVRML Mozilla plug-in +// +// Copyright 2004, 2005, 2006, 2007, 2008 Braden McDaniel +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +// more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; if not, see <http://www.gnu.org/licenses/>. +// + +# include <map> +# include <memory> +# include <sstream> +# include <stdexcept> +# include <vector> +# include <sys/socket.h> +# include <sys/wait.h> +# include <boost/concept_check.hpp> +# include <boost/lexical_cast.hpp> +# include <boost/multi_index/detail/scope_guard.hpp> +# include <boost/noncopyable.hpp> +# include <boost/ref.hpp> +# include <boost/scoped_ptr.hpp> +# include <npupp.h> +# if defined MOZ_X11 +# include <dbus/dbus-glib-bindings.h> +# else +# error Unsupported toolkit. +# endif + +# include <config.h> + +# define OPENVRML_NP_TYPE_BROWSER_HOST (openvrml_np_browser_host_get_type()) +# define OPENVRML_NP_BROWSER_HOST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), OPENVRML_NP_TYPE_BROWSER_HOST, OpenvrmlNpBrowserHost)) +# define OPENVRML_NP_BROWSER_HOST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), OPENVRML_NP_TYPE_BROWSER_HOST, OpenvrmlNpBrowserHostClass)) + +G_BEGIN_DECLS + +typedef struct OpenvrmlNpBrowserHost_ OpenvrmlNpBrowserHost; +typedef struct OpenvrmlNpBrowserHostClass_ OpenvrmlNpBrowserHostClass; + +struct OpenvrmlNpBrowserHost_ { + GObject parent; + gchar * path; + NPP npp; +}; + +struct OpenvrmlNpBrowserHostClass_ { + GObjectClass parent; + DBusGConnection * connection; + gchar * host_name; +}; + +GType openvrml_np_browser_host_get_type(); + +int +openvrml_np_browser_host_get_url(OpenvrmlNpBrowserHost * host, const char * url, + GError ** error); +void openvrml_np_browser_host_set_world_url(OpenvrmlNpBrowserHost * host, + const char * url, GError ** error); + +G_END_DECLS + +# include "browser-host-server-glue.h" +# include "browser-factory-client-glue.h" +# include "browser-client-glue.h" + +using namespace boost::multi_index::detail; // for scope_guard + +namespace { + + void printerr(const char * str); + + class plugin_instance; + + typedef bool (plugin_instance::*script_callback_t)(const NPVariant *, + uint32_t, + NPVariant *); + + // + // Mozilla doesn't like us to use NPN_GetStringIdentifier during static + // initialization; so this is a singleton. + // + class script_callback_map : public std::map<NPIdentifier, + script_callback_t>, + boost::noncopyable { + static boost::scoped_ptr<const script_callback_map> instance_; + + script_callback_map(); + + public: + static const script_callback_map & instance(); + }; + + + class plugin_instance : boost::noncopyable { + const NPP npp; + void * window; + int x, y; + int width, height; + OpenvrmlNpBrowserHost * browser_host; + DBusGProxy * browser; + + public: + NPObject * const npobj; + + explicit plugin_instance(NPP npp) throw (std::bad_alloc); + ~plugin_instance() throw (); + + void set_window(NPWindow & window) + throw (std::bad_alloc, std::runtime_error); + void HandleEvent(void * event) throw (); + + NPError new_stream(NPMIMEType type, NPStream * stream); + NPError destroy_stream(NPStream * stream); + int32 write(NPStream * stream, int32 len, void * buffer); + + // + // Scripting API method implementations. + // + bool get_name(const NPVariant * args, uint32_t argCount, + NPVariant * result); + bool get_version(const NPVariant * args, uint32_t argCount, + NPVariant * result); + }; +} // namespace + +G_DEFINE_TYPE(OpenvrmlNpBrowserHost, openvrml_np_browser_host, G_TYPE_OBJECT) + +void openvrml_np_browser_host_init(OpenvrmlNpBrowserHost * const host) +{ + static unsigned long count = 0; + host->path = g_strdup_printf("/org/openvrml/BrowserHost/%u/%lu", + getpid(), count++); + dbus_g_connection_register_g_object( + OPENVRML_NP_BROWSER_HOST_GET_CLASS(host)->connection, + host->path, + G_OBJECT(host)); +} + +namespace { + enum np_host_signal_id { + shutdown_id, + last_signal_id + }; + + G_GNUC_INTERNAL guint signals[last_signal_id]; +} + +void openvrml_np_browser_host_class_init(OpenvrmlNpBrowserHostClass * klass) +{ + signals[shutdown_id] = + g_signal_new("shutdown", + G_OBJECT_CLASS_TYPE(klass), + GSignalFlags(G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED), + 0, + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + GError * error = 0; + scope_guard error_guard = make_guard(g_error_free, boost::ref(error)); + klass->connection = dbus_g_bus_get(DBUS_BUS_SESSION, &error); + if (!klass->connection) { + g_critical("Failed to open connection to bus: %s", error->message); + return; + } + + klass->host_name = g_strdup_printf("org.openvrml.BrowserHost-%u", + getpid()); + + DBusGProxy * driver_proxy = + dbus_g_proxy_new_for_name(klass->connection, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS); + scope_guard driver_proxy_guard = make_guard(g_object_unref, driver_proxy); + boost::ignore_unused_variable_warning(driver_proxy_guard); + + guint request_ret; + if... [truncated message content] |
From: <br...@us...> - 2009-03-24 05:49:51
|
Revision: 3866 http://openvrml.svn.sourceforge.net/openvrml/?rev=3866&view=rev Author: braden Date: 2009-03-24 05:49:46 +0000 (Tue, 24 Mar 2009) Log Message: ----------- Moved Mozilla plug-in build into the big nonrecursive makefile. Modified Paths: -------------- trunk/ChangeLog trunk/configure.ac trunk/src/Makefile.am Removed Paths: ------------- trunk/src/mozilla-plugin/Makefile.am Property Changed: ---------------- trunk/src/mozilla-plugin/ Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-24 05:01:18 UTC (rev 3865) +++ trunk/ChangeLog 2009-03-24 05:49:46 UTC (rev 3866) @@ -1,5 +1,13 @@ 2009-03-24 Braden McDaniel <br...@en...> + Moved Mozilla plug-in build into the big nonrecursive makefile. + + * configure.ac: No longer emit src/mozilla-plugin/Makefile. + * src/Makefile.am: Build the Mozilla plug-in. + * src/mozilla-plugin/Makefile.am: Removed. + +2009-03-24 Braden McDaniel <br...@en...> + Moved Mozilla plug-in source to src/mozilla-plugin. * Makefile (SUBDIRS): Removed mozilla-plugin. Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2009-03-24 05:01:18 UTC (rev 3865) +++ trunk/configure.ac 2009-03-24 05:49:46 UTC (rev 3866) @@ -16,7 +16,6 @@ [src/script/java/vrml/Makefile] [src/script/java/vrml/field/Makefile] [src/script/java/vrml/node/Makefile] - [src/mozilla-plugin/Makefile] [data/Makefile] [examples/Makefile] [tests/Makefile] Modified: trunk/src/Makefile.am =================================================================== --- trunk/src/Makefile.am 2009-03-24 05:01:18 UTC (rev 3865) +++ trunk/src/Makefile.am 2009-03-24 05:49:46 UTC (rev 3866) @@ -1,4 +1,4 @@ -SUBDIRS = script mozilla-plugin +SUBDIRS = script BUILT_SOURCES = @@ -857,6 +857,48 @@ --output=$@ \ $? +mozpluginsdir = $(libdir)/mozilla/plugins +if ENABLE_MOZILLA_PLUGIN +mozplugins_LTLIBRARIES = mozilla-plugin/openvrml.la +BUILT_SOURCES += \ + mozilla-plugin/browser-host-server-glue.h \ + mozilla-plugin/browser-factory-client-glue.h \ + mozilla-plugin/browser-client-glue.h +endif + +mozilla_plugin_openvrml_la_CPPFLAGS = \ + -DMOZ_X11 \ + -DGTK_DISABLE_DEPRECATED \ + -DOPENVRML_LIBEXECDIR_=\"$(libexecdir)\" \ + -Imozilla-plugin +mozilla_plugin_openvrml_la_CXXFLAGS = \ + $(MOZILLA_PLUGIN_CFLAGS) \ + $(DBUS_G_CFLAGS) +mozilla_plugin_openvrml_la_SOURCES = mozilla-plugin/openvrml.cpp +mozilla_plugin_openvrml_la_LDFLAGS = \ + -module -avoid-version \ + $(MOZILLA_PLUGIN_LIBS) \ + $(DBUS_G_LIBS) + +mozilla-plugin/browser-host-server-glue.h: $(srcdir)/openvrml-xembed/browser-host.xml + $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ + --prefix=openvrml_np_browser_host \ + --mode=glib-server \ + --output=$@ \ + $? + +mozilla-plugin/browser-factory-client-glue.h: $(srcdir)/openvrml-xembed/browser-factory.xml + $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ + --mode=glib-client \ + --output=$@ \ + $? + +mozilla-plugin/browser-client-glue.h: $(srcdir)/openvrml-xembed/browser.xml + $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ + --mode=glib-client \ + --output=$@ \ + $? + EXTRA_DIST = \ libopenvrml/openvrml-config.h.in \ libopenvrml-gl/openvrml-gl-config.h.in \ Property changes on: trunk/src/mozilla-plugin ___________________________________________________________________ Deleted: svn:ignore - Makefile.in Deleted: trunk/src/mozilla-plugin/Makefile.am =================================================================== --- trunk/src/mozilla-plugin/Makefile.am 2009-03-24 05:01:18 UTC (rev 3865) +++ trunk/src/mozilla-plugin/Makefile.am 2009-03-24 05:49:46 UTC (rev 3866) @@ -1,44 +0,0 @@ -AM_CPPFLAGS = \ - -DMOZ_X11 \ - -DGTK_DISABLE_DEPRECATED \ - -DOPENVRML_LIBEXECDIR_=\"$(libexecdir)\" -AM_CXXFLAGS = $(MOZILLA_PLUGIN_CFLAGS) $(DBUS_G_CFLAGS) - -mozpluginsdir = $(libdir)/mozilla/plugins - -if ENABLE_MOZILLA_PLUGIN -mozplugins_LTLIBRARIES = openvrml.la -BUILT_SOURCES = \ - browser-host-server-glue.h \ - browser-factory-client-glue.h \ - browser-client-glue.h -endif - -openvrml_la_SOURCES = openvrml.cpp -openvrml_la_LDFLAGS = \ - -module -avoid-version \ - $(MOZILLA_PLUGIN_LIBS) \ - $(DBUS_G_LIBS) - -browser-host-server-glue.h: $(srcdir)/../openvrml-xembed/browser-host.xml - $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ - --prefix=openvrml_np_browser_host \ - --mode=glib-server \ - --output=$@ \ - $? - -browser-factory-client-glue.h: $(srcdir)/../openvrml-xembed/browser-factory.xml - $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ - --mode=glib-client \ - --output=$@ \ - $? - -browser-client-glue.h: $(srcdir)/../openvrml-xembed/browser.xml - $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \ - --mode=glib-client \ - --output=$@ \ - $? - -EXTRA_DIST = $(openvrml_la_SOURCES) - -CLEANFILES = $(BUILT_SOURCES) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-03-25 16:15:55
|
Revision: 3867 http://openvrml.svn.sourceforge.net/openvrml/?rev=3867&view=rev Author: braden Date: 2009-03-25 16:15:50 +0000 (Wed, 25 Mar 2009) Log Message: ----------- Avoid overusing the "proto_node_metatype" identifier. The Microsoft compiler doesn't like it and it's just not pretty. Modified Paths: -------------- trunk/ChangeLog trunk/src/libopenvrml/openvrml/local/externproto.cpp trunk/src/libopenvrml/openvrml/local/externproto.h Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-24 05:49:46 UTC (rev 3866) +++ trunk/ChangeLog 2009-03-25 16:15:50 UTC (rev 3867) @@ -1,3 +1,17 @@ +2009-03-25 Braden McDaniel <br...@en...> + + Avoid overusing the "proto_node_metatype" identifier. The + Microsoft compiler doesn't like it and it's just not pretty. + + * src/libopenvrml/openvrml/local/externproto.h + (openvrml::local::externproto_node_metatype::set_proto_node_metatype(const + boost::weak_ptr<proto_node_metatype> &)): Avoid overusing + "proto_node_metatype" identifier. + * src/libopenvrml/openvrml/local/externproto.h + (openvrml::local::externproto_node_metatype::set_proto_node_metatype(const + boost::weak_ptr<proto_node_metatype> &)): Avoid overusing + "proto_node_metatype" identifier. + 2009-03-24 Braden McDaniel <br...@en...> Moved Mozilla plug-in build into the big nonrecursive makefile. Modified: trunk/src/libopenvrml/openvrml/local/externproto.cpp =================================================================== --- trunk/src/libopenvrml/openvrml/local/externproto.cpp 2009-03-24 05:49:46 UTC (rev 3866) +++ trunk/src/libopenvrml/openvrml/local/externproto.cpp 2009-03-25 16:15:50 UTC (rev 3867) @@ -199,8 +199,7 @@ void openvrml::local::externproto_node_metatype:: -set_proto_node_metatype( - const boost::weak_ptr<openvrml::local::proto_node_metatype> & proto_node_metatype) +set_proto_node_metatype(const boost::weak_ptr<proto_node_metatype> & metatype) OPENVRML_THROW1(std::bad_alloc) { boost::mutex::scoped_lock lock(this->mutex_); @@ -208,15 +207,15 @@ using boost::shared_ptr; using boost::static_pointer_cast; - this->proto_node_metatype_ = proto_node_metatype; + this->proto_node_metatype_ = metatype; // // Now that we have a proto_node_metatype, we need to tell all the // externproto_node_types we've created so that they can in turn // tell the externproto_nodes they've created. // - const shared_ptr<openvrml::local::proto_node_metatype> shared_proto_node_metatype = - proto_node_metatype.lock(); + const shared_ptr<proto_node_metatype> shared_proto_node_metatype = + metatype.lock(); assert(shared_proto_node_metatype); for (externproto_node_types::const_iterator node_type = this->externproto_node_types_.begin(); Modified: trunk/src/libopenvrml/openvrml/local/externproto.h =================================================================== --- trunk/src/libopenvrml/openvrml/local/externproto.h 2009-03-24 05:49:46 UTC (rev 3866) +++ trunk/src/libopenvrml/openvrml/local/externproto.h 2009-03-25 16:15:50 UTC (rev 3867) @@ -72,7 +72,8 @@ virtual void do_shutdown(double time) OPENVRML_NOTHROW; void set_proto_node_metatype( - const boost::weak_ptr<proto_node_metatype> & proto_node_metatype = boost::weak_ptr<proto_node_metatype>()) + const boost::weak_ptr<proto_node_metatype> & metatype = + boost::weak_ptr<proto_node_metatype>()) OPENVRML_THROW1(std::bad_alloc); void clear_externproto_node_types() OPENVRML_NOTHROW; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-03-25 16:22:28
|
Revision: 3868 http://openvrml.svn.sourceforge.net/openvrml/?rev=3868&view=rev Author: braden Date: 2009-03-25 16:22:17 +0000 (Wed, 25 Mar 2009) Log Message: ----------- Emit .pdb files for node component DLLs. Also, changed output location so that Debug and Release builds no longer share the same directories. Modified Paths: -------------- trunk/ChangeLog trunk/ide-projects/Windows/VisualC9_0/OpenVRML/javascript/javascript.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/parse-vrml97/parse-vrml97.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/parse-x3dvrml/parse-x3dvrml.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/pretty-print/pretty-print.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/vrml97/vrml97.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-cad-geometry/x3d-cad-geometry.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-core/x3d-core.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-dis/x3d-dis.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-environmental-effects/x3d-environmental-effects.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-event-utilities/x3d-event-utilities.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geospatial/x3d-geospatial.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-grouping/x3d-grouping.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-h-anim/x3d-h-anim.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-interpolation/x3d-interpolation.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-key-device-sensor/x3d-key-device-sensor.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-networking/x3d-networking.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-nurbs/x3d-nurbs.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-rendering/x3d-rendering.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-shape/x3d-shape.vcproj trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-texturing/x3d-texturing.vcproj Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ChangeLog 2009-03-25 16:22:17 UTC (rev 3868) @@ -1,5 +1,36 @@ 2009-03-25 Braden McDaniel <br...@en...> + Emit .pdb files for node component DLLs. Also, changed output + location so that Debug and Release builds no longer share the same + directories. + + * ide-projects/Windows/VisualC9_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/pretty-print/pretty-print.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-interpolation/x3d-interpolation.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-networking/x3d-networking.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geospatial/x3d-geospatial.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-core/x3d-core.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-nurbs/x3d-nurbs.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-texturing/x3d-texturing.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-event-utilities/x3d-event-utilities.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-grouping/x3d-grouping.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-key-device-sensor/x3d-key-device-sensor.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-environmental-effects/x3d-environmental-effects.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-shape/x3d-shape.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/vrml97/vrml97.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-h-anim/x3d-h-anim.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/javascript/javascript.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/parse-x3dvrml/parse-x3dvrml.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/parse-vrml97/parse-vrml97.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-rendering/x3d-rendering.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-dis/x3d-dis.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-cad-geometry/x3d-cad-geometry.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj + +2009-03-25 Braden McDaniel <br...@en...> + Avoid overusing the "proto_node_metatype" identifier. The Microsoft compiler doesn't like it and it's just not pretty. Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/javascript/javascript.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/javascript/javascript.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/javascript/javascript.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -63,7 +63,7 @@ <Tool Name="VCLinkerTool" AdditionalDependencies="js3250.lib" - OutputFile="$(SolutionDir)..\bin\script\$(ProjectName).dll" + OutputFile="$(OutDir)\bin\script\$(ProjectName).dll" LinkIncremental="2" GenerateDebugInformation="true" SubSystem="2" @@ -139,7 +139,7 @@ <Tool Name="VCLinkerTool" AdditionalDependencies="js3250.lib" - OutputFile="$(SolutionDir)..\bin\script\$(ProjectName).dll" + OutputFile="$(OutDir)\bin\script\$(ProjectName).dll" LinkIncremental="1" GenerateDebugInformation="true" SubSystem="2" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -18,7 +18,7 @@ <Configurations> <Configuration Name="Debug|Win32" - OutputDirectory="$(ConfigurationName)" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" IntermediateDirectory="$(ConfigurationName)" ConfigurationType="2" CharacterSet="2" @@ -68,12 +68,12 @@ <Tool Name="VCLinkerTool" AdditionalDependencies="gdi32.lib advapi32.lib shell32.lib shlwapi.lib XmlLite.lib" - OutputFile="$(SolutionDir)..\bin\$(ProjectName)d.dll" + OutputFile="$(OutDir)\bin\$(ProjectName).dll" IgnoreDefaultLibraryNames="libcmtd;msvcrt" GenerateDebugInformation="true" RandomizedBaseAddress="1" DataExecutionPrevention="0" - ImportLibrary="$(SolutionDir)..\lib\$(TargetName).lib" + ImportLibrary="$(OutDir)\lib\$(TargetName).lib" /> <Tool Name="VCALinkTool" @@ -99,7 +99,7 @@ </Configuration> <Configuration Name="Release|Win32" - OutputDirectory="$(ConfigurationName)" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" IntermediateDirectory="$(ConfigurationName)" ConfigurationType="2" CharacterSet="0" @@ -152,13 +152,13 @@ <Tool Name="VCLinkerTool" AdditionalDependencies="gdi32.lib advapi32.lib shell32.lib shlwapi.lib XmlLite.lib" - OutputFile="$(SolutionDir)..\bin\$(ProjectName).dll" + OutputFile="$(OutDir)\bin\$(ProjectName).dll" IgnoreDefaultLibraryNames="libcmt" GenerateDebugInformation="true" LinkTimeCodeGeneration="1" RandomizedBaseAddress="1" DataExecutionPrevention="0" - ImportLibrary="$(SolutionDir)..\lib\$(TargetName).lib" + ImportLibrary="$(OutDir)\lib\$(TargetName).lib" /> <Tool Name="VCALinkTool" @@ -224,6 +224,10 @@ </FileConfiguration> </File> <File + RelativePath="..\..\..\..\..\src\libopenvrml\openvrml\local\component.cpp" + > + </File> + <File RelativePath="..\..\..\..\..\src\libopenvrml\openvrml\local\dl.cpp" > </File> @@ -236,6 +240,10 @@ > </File> <File + RelativePath="..\..\..\..\..\src\libopenvrml\openvrml\local\externproto.cpp" + > + </File> + <File RelativePath="..\..\..\..\..\src\libopenvrml\openvrml\field_value.cpp" > </File> @@ -256,6 +264,10 @@ > </File> <File + RelativePath="..\..\..\..\..\src\libopenvrml\openvrml\local\parse_vrml.cpp" + > + </File> + <File RelativePath="..\..\..\..\..\src\libopenvrml\openvrml\local\proto.cpp" > </File> @@ -321,6 +333,10 @@ > </File> <File + RelativePath="..\..\..\..\..\src\libopenvrml\openvrml\local\component.h" + > + </File> + <File RelativePath="..\..\..\..\..\src\libopenvrml\openvrml\local\dl.h" > </File> @@ -333,6 +349,10 @@ > </File> <File + RelativePath="..\..\..\..\..\src\libopenvrml\openvrml\local\externproto.h" + > + </File> + <File RelativePath="..\..\..\..\..\src\libopenvrml\openvrml\field_value.h" > </File> @@ -361,6 +381,10 @@ > </File> <File + RelativePath="..\..\..\..\..\src\libopenvrml\openvrml\local\parse_vrml.h" + > + </File> + <File RelativePath="..\..\..\..\..\src\libopenvrml\private.h" > </File> Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -18,7 +18,7 @@ <Configurations> <Configuration Name="Debug|Win32" - OutputDirectory="$(ConfigurationName)" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" IntermediateDirectory="$(ConfigurationName)" ConfigurationType="2" CharacterSet="2" @@ -67,11 +67,11 @@ <Tool Name="VCLinkerTool" AdditionalDependencies="GlU32.lib OpenGL32.lib" - OutputFile="$(SolutionDir)..\bin\$(ProjectName)d.dll" + OutputFile="$(OutDir)\bin\$(ProjectName).dll" GenerateDebugInformation="true" RandomizedBaseAddress="1" DataExecutionPrevention="0" - ImportLibrary="$(SolutionDir)..\lib\$(TargetName).lib" + ImportLibrary="$(OutDir)\lib\$(TargetName).lib" /> <Tool Name="VCALinkTool" @@ -97,7 +97,7 @@ </Configuration> <Configuration Name="Release|Win32" - OutputDirectory="$(ConfigurationName)" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" IntermediateDirectory="$(ConfigurationName)" ConfigurationType="2" CharacterSet="2" @@ -148,12 +148,12 @@ <Tool Name="VCLinkerTool" AdditionalDependencies="GlU32.lib OpenGL32.lib" - OutputFile="$(SolutionDir)..\bin\$(ProjectName).dll" + OutputFile="$(OutDir)\bin\$(ProjectName).dll" GenerateDebugInformation="true" LinkTimeCodeGeneration="1" RandomizedBaseAddress="1" DataExecutionPrevention="0" - ImportLibrary="$(SolutionDir)..\lib\$(TargetName).lib" + ImportLibrary="$(OutDir)\lib\$(TargetName).lib" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/parse-vrml97/parse-vrml97.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/parse-vrml97/parse-vrml97.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/parse-vrml97/parse-vrml97.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,7 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\$(ProjectName)d.exe" + OutputFile="$(OutDir)\bin\$(ProjectName).exe" LinkIncremental="2" GenerateDebugInformation="true" SubSystem="1" @@ -138,7 +138,7 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" + OutputFile="$(OutDir)\bin\$(ProjectName).exe" LinkIncremental="1" GenerateDebugInformation="true" SubSystem="1" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/parse-x3dvrml/parse-x3dvrml.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/parse-x3dvrml/parse-x3dvrml.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/parse-x3dvrml/parse-x3dvrml.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,7 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\$(ProjectName)d.exe" + OutputFile="$(OutDir)\bin\$(ProjectName).exe" LinkIncremental="2" GenerateDebugInformation="true" SubSystem="1" @@ -138,7 +138,7 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" + OutputFile="$(OutDir)\bin\$(ProjectName).exe" LinkIncremental="1" GenerateDebugInformation="true" SubSystem="1" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/pretty-print/pretty-print.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/pretty-print/pretty-print.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/pretty-print/pretty-print.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,7 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\$(ProjectName)d.exe" + OutputFile="$(OutDir)\bin\$(ProjectName).exe" LinkIncremental="2" GenerateDebugInformation="true" SubSystem="1" @@ -137,7 +137,7 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" + OutputFile="$(OutDir)\bin\$(ProjectName).exe" LinkIncremental="1" GenerateDebugInformation="true" SubSystem="1" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -18,7 +18,7 @@ <Configurations> <Configuration Name="Debug|Win32" - OutputDirectory="$(ConfigurationName)" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" CharacterSet="2" @@ -66,11 +66,10 @@ <Tool Name="VCLinkerTool" AdditionalDependencies="opengl32.lib glu32.lib SDLmain.lib SDL.lib" - OutputFile="$(SolutionDir)..\bin\sdl-viewerd.exe" + OutputFile="$(OutDir)\bin\$(ProjectName).exe" LinkIncremental="2" IgnoreDefaultLibraryNames="msvcrt.lib" GenerateDebugInformation="true" - ProgramDatabaseFile="$(OutDir)/sdl-viewer.pdb" SubSystem="2" RandomizedBaseAddress="1" DataExecutionPrevention="0" @@ -100,7 +99,7 @@ </Configuration> <Configuration Name="Release|Win32" - OutputDirectory="$(ConfigurationName)" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" CharacterSet="2" @@ -147,7 +146,7 @@ <Tool Name="VCLinkerTool" AdditionalDependencies="opengl32.lib glu32.lib SDLmain.lib SDL.lib" - OutputFile="$(SolutionDir)..\bin\sdl-viewer.exe" + OutputFile="$(OutDir)\bin\$(ProjectName).exe" LinkIncremental="1" GenerateDebugInformation="true" SubSystem="2" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/vrml97/vrml97.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/vrml97/vrml97.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/vrml97/vrml97.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,9 +62,11 @@ /> <Tool Name="VCLinkerTool" + IgnoreImportLibrary="true" AdditionalDependencies="libpngd.lib zlibd.lib freetype239MT_D.lib" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" IgnoreDefaultLibraryNames="libcmtd" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -135,8 +137,10 @@ /> <Tool Name="VCLinkerTool" + IgnoreImportLibrary="true" AdditionalDependencies="libpng.lib zlib.lib freetype239MT.lib" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-cad-geometry/x3d-cad-geometry.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-cad-geometry/x3d-cad-geometry.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-cad-geometry/x3d-cad-geometry.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-core/x3d-core.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-core/x3d-core.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-core/x3d-core.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -63,7 +63,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -134,7 +136,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-dis/x3d-dis.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-dis/x3d-dis.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-dis/x3d-dis.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-environmental-effects/x3d-environmental-effects.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-environmental-effects/x3d-environmental-effects.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-environmental-effects/x3d-environmental-effects.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-event-utilities/x3d-event-utilities.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-event-utilities/x3d-event-utilities.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-event-utilities/x3d-event-utilities.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geospatial/x3d-geospatial.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geospatial/x3d-geospatial.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geospatial/x3d-geospatial.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-grouping/x3d-grouping.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-grouping/x3d-grouping.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-grouping/x3d-grouping.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-h-anim/x3d-h-anim.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-h-anim/x3d-h-anim.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-h-anim/x3d-h-anim.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-interpolation/x3d-interpolation.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-interpolation/x3d-interpolation.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-interpolation/x3d-interpolation.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-key-device-sensor/x3d-key-device-sensor.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-key-device-sensor/x3d-key-device-sensor.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-key-device-sensor/x3d-key-device-sensor.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-networking/x3d-networking.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-networking/x3d-networking.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-networking/x3d-networking.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-nurbs/x3d-nurbs.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-nurbs/x3d-nurbs.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-nurbs/x3d-nurbs.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-rendering/x3d-rendering.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-rendering/x3d-rendering.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-rendering/x3d-rendering.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-shape/x3d-shape.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-shape/x3d-shape.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-shape/x3d-shape.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-texturing/x3d-texturing.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-texturing/x3d-texturing.vcproj 2009-03-25 16:15:50 UTC (rev 3867) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-texturing/x3d-texturing.vcproj 2009-03-25 16:22:17 UTC (rev 3868) @@ -62,7 +62,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" @@ -133,7 +135,9 @@ /> <Tool Name="VCLinkerTool" - OutputFile="$(SolutionDir)..\bin\node\$(ProjectName).dll" + IgnoreImportLibrary="true" + OutputFile="$(OutDir)\bin\node\$(ProjectName).dll" + GenerateDebugInformation="true" /> <Tool Name="VCALinkTool" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-03-26 03:20:51
|
Revision: 3869 http://openvrml.svn.sourceforge.net/openvrml/?rev=3869&view=rev Author: braden Date: 2009-03-26 03:20:49 +0000 (Thu, 26 Mar 2009) Log Message: ----------- Whitespace cleanup. Modified Paths: -------------- trunk/ChangeLog trunk/models/snoman.wrl Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-25 16:22:17 UTC (rev 3868) +++ trunk/ChangeLog 2009-03-26 03:20:49 UTC (rev 3869) @@ -1,5 +1,9 @@ 2009-03-25 Braden McDaniel <br...@en...> + * models/snoman.wrl: Whitespace cleanup. + +2009-03-25 Braden McDaniel <br...@en...> + Emit .pdb files for node component DLLs. Also, changed output location so that Debug and Release builds no longer share the same directories. Modified: trunk/models/snoman.wrl =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-03-28 08:41:07
|
Revision: 3870 http://openvrml.svn.sourceforge.net/openvrml/?rev=3870&view=rev Author: braden Date: 2009-03-28 08:40:56 +0000 (Sat, 28 Mar 2009) Log Message: ----------- Include OpenGL headers in openvrml/gl/viewer.h to avoid having to forward-declare OpenGL types. Modified Paths: -------------- trunk/ChangeLog trunk/configure.ac trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp trunk/src/libopenvrml-gl/openvrml/gl/viewer.h trunk/src/libopenvrml-gl/openvrml-gl-config.h.in Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-26 03:20:49 UTC (rev 3869) +++ trunk/ChangeLog 2009-03-28 08:40:56 UTC (rev 3870) @@ -1,3 +1,17 @@ +2009-03-28 Braden McDaniel <br...@en...> + + Include OpenGL headers in openvrml/gl/viewer.h to avoid having to + forward-declare OpenGL types. + + * configure.ac: AC_SUBST OPENVRML_GL_HAVE_WINDOWS_H, + OPENVRML_GL_HAVE_GL_GLU_H, and OPENVRML_GL_HAVE_OPENGL_GLU_H. + * src/libopenvrml-gl/openvrml-gl-config.h.in: Define + OPENVRML_GL_HAVE_WINDOWS_H, OPENVRML_GL_HAVE_GL_GLU_H, and + OPENVRML_GL_HAVE_OPENGL_GLU_H. + * src/libopenvrml-gl/openvrml/gl/viewer.cpp: Removed inclusion of + OpenGL headers. + * src/libopenvrml-gl/openvrml/gl/viewer.h: Include OpenGL headers. + 2009-03-25 Braden McDaniel <br...@en...> * models/snoman.wrl: Whitespace cleanup. Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2009-03-26 03:20:49 UTC (rev 3869) +++ trunk/configure.ac 2009-03-28 08:40:56 UTC (rev 3870) @@ -193,6 +193,30 @@ AC_PATH_XTRA AX_CHECK_GLU +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], + [[#ifndef HAVE_WINDOWS_H + choke +#endif +]])], + [OPENVRML_GL_HAVE_WINDOWS_H=1], + [OPENVRML_GL_HAVE_WINDOWS_H=0]) +AC_SUBST([OPENVRML_GL_HAVE_WINDOWS_H]) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], + [[#ifndef HAVE_GL_GLU_H + choke +#endif +]])], + [OPENVRML_GL_HAVE_GL_GLU_H=1], + [OPENVRML_GL_HAVE_GL_GLU_H=0]) +AC_SUBST([OPENVRML_GL_HAVE_GL_GLU_H]) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], + [[#ifndef HAVE_OPENGL_GLU_H + choke +#endif +]])], + [OPENVRML_GL_HAVE_OPENGL_GLU_H=1], + [OPENVRML_GL_HAVE_OPENGL_GLU_H=0]) +AC_SUBST([OPENVRML_GL_HAVE_OPENGL_GLU_H]) AC_PATH_PROG([SDL_CONFIG], [sdl-config]) have_sdl=no Modified: trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp =================================================================== --- trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp 2009-03-26 03:20:49 UTC (rev 3869) +++ trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp 2009-03-28 08:40:56 UTC (rev 3870) @@ -29,23 +29,10 @@ # include <config.h> # endif -# if defined(HAVE_WINDOWS_H) && defined(_WIN32) -# include <windows.h> -# endif # ifdef interface # undef interface # endif -# ifdef HAVE_GL_GLU_H -# include <GL/gl.h> -# include <GL/glu.h> -# elif defined(HAVE_OPENGL_GLU_H) -# include <OpenGL/gl.h> -# include <OpenGL/glu.h> -# else -# error must define HAVE_GL_GLU_H or HAVE_OPENGL_GLU_H -# endif - # include <cmath> # include <limits> # ifndef NDEBUG Modified: trunk/src/libopenvrml-gl/openvrml/gl/viewer.h =================================================================== --- trunk/src/libopenvrml-gl/openvrml/gl/viewer.h 2009-03-26 03:20:49 UTC (rev 3869) +++ trunk/src/libopenvrml-gl/openvrml/gl/viewer.h 2009-03-28 08:40:56 UTC (rev 3870) @@ -23,11 +23,21 @@ # define OPENVRML_GL_VIEWER_H # include <openvrml-gl-common.h> +# include <openvrml/viewer.h> +# if OPENVRML_GL_HAVE_WINDOWS_H && defined(_WIN32) +# include <windows.h> +# endif +# if OPENVRML_GL_HAVE_GL_GLU_H +# include <GL/gl.h> +# include <GL/glu.h> +# elif OPENVRML_GL_HAVE_OPENGL_GLU_H +# include <OpenGL/gl.h> +# include <OpenGL/glu.h> +# else +# error must define OPENVRML_GL_HAVE_GL_GLU_H or OPENVRML_GL_HAVE_OPENGL_GLU_H +# endif # include <stack> -# include <openvrml/viewer.h> -extern "C" struct GLUtesselator; - namespace openvrml { namespace gl { Modified: trunk/src/libopenvrml-gl/openvrml-gl-config.h.in =================================================================== --- trunk/src/libopenvrml-gl/openvrml-gl-config.h.in 2009-03-26 03:20:49 UTC (rev 3869) +++ trunk/src/libopenvrml-gl/openvrml-gl-config.h.in 2009-03-28 08:40:56 UTC (rev 3870) @@ -2,7 +2,7 @@ // // OpenVRML // -// Copyright 2005, 2006, 2007 Braden McDaniel +// Copyright 2005, 2006, 2007, 2009 Braden McDaniel // // This library is free software; you can redistribute it and/or modify it // under the terms of the GNU Lesser General Public License as published by @@ -19,9 +19,12 @@ // # ifndef OPENVRML_GL_CONFIG_H -# define OPENVRML_GL_CONFIG_H +# define OPENVRML_GL_CONFIG_H -# define OPENVRML_GL_API @OPENVRML_GL_API@ -# define OPENVRML_GL_LOCAL @OPENVRML_GL_LOCAL@ +# define OPENVRML_GL_API @OPENVRML_GL_API@ +# define OPENVRML_GL_LOCAL @OPENVRML_GL_LOCAL@ +# define OPENVRML_GL_HAVE_WINDOWS_H @OPENVRML_GL_HAVE_WINDOWS_H@ +# define OPENVRML_GL_HAVE_GL_GLU_H @OPENVRML_GL_HAVE_GL_GLU_H@ +# define OPENVRML_GL_HAVE_OPENGL_GLU_H @OPENVRML_GL_HAVE_OPENGL_GLU_H@ # endif // ifndef OPENVRML_GL_CONFIG_H This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-03-28 08:46:10
|
Revision: 3871 http://openvrml.svn.sourceforge.net/openvrml/?rev=3871&view=rev Author: braden Date: 2009-03-28 08:46:04 +0000 (Sat, 28 Mar 2009) Log Message: ----------- No longer need to undefine "interface". Modified Paths: -------------- trunk/ChangeLog trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-28 08:40:56 UTC (rev 3870) +++ trunk/ChangeLog 2009-03-28 08:46:04 UTC (rev 3871) @@ -1,5 +1,10 @@ 2009-03-28 Braden McDaniel <br...@en...> + * src/libopenvrml-gl/openvrml/gl/viewer.cpp: No longer need to + undefine "interface". + +2009-03-28 Braden McDaniel <br...@en...> + Include OpenGL headers in openvrml/gl/viewer.h to avoid having to forward-declare OpenGL types. Modified: trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp =================================================================== --- trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp 2009-03-28 08:40:56 UTC (rev 3870) +++ trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp 2009-03-28 08:46:04 UTC (rev 3871) @@ -29,10 +29,6 @@ # include <config.h> # endif -# ifdef interface -# undef interface -# endif - # include <cmath> # include <limits> # ifndef NDEBUG This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-03-29 04:34:23
|
Revision: 3872 http://openvrml.svn.sourceforge.net/openvrml/?rev=3872&view=rev Author: braden Date: 2009-03-29 04:34:20 +0000 (Sun, 29 Mar 2009) Log Message: ----------- Applied OPENVRML_LOCAL. Modified Paths: -------------- trunk/ChangeLog trunk/src/libopenvrml-control/openvrml_control/browser.cpp Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-28 08:46:04 UTC (rev 3871) +++ trunk/ChangeLog 2009-03-29 04:34:20 UTC (rev 3872) @@ -1,3 +1,9 @@ +2009-03-29 Braden McDaniel <br...@en...> + + * src/libopenvrml-control/openvrml_control/browser.cpp + (openvrml_control::browser::uninitialized_plugin_streambuf_map::map_entry_matches_streambuf): + Applied OPENVRML_LOCAL. + 2009-03-28 Braden McDaniel <br...@en...> * src/libopenvrml-gl/openvrml/gl/viewer.cpp: No longer need to Modified: trunk/src/libopenvrml-control/openvrml_control/browser.cpp =================================================================== --- trunk/src/libopenvrml-control/openvrml_control/browser.cpp 2009-03-28 08:46:04 UTC (rev 3871) +++ trunk/src/libopenvrml-control/openvrml_control/browser.cpp 2009-03-29 04:34:20 UTC (rev 3872) @@ -377,7 +377,7 @@ this->map_.insert(make_pair(url, streambuf)); } -struct openvrml_control::browser::uninitialized_plugin_streambuf_map::map_entry_matches_streambuf : +struct OPENVRML_LOCAL openvrml_control::browser::uninitialized_plugin_streambuf_map::map_entry_matches_streambuf : std::unary_function<bool, map_t::value_type> { explicit map_entry_matches_streambuf(const plugin_streambuf * streambuf): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-03-30 02:30:24
|
Revision: 3873 http://openvrml.svn.sourceforge.net/openvrml/?rev=3873&view=rev Author: braden Date: 2009-03-30 02:30:12 +0000 (Mon, 30 Mar 2009) Log Message: ----------- Use the nonvirtual interface pattern consistently with the abstract node types. Modified Paths: -------------- trunk/ChangeLog trunk/src/libopenvrml/openvrml/browser.cpp trunk/src/libopenvrml/openvrml/node.cpp trunk/src/libopenvrml/openvrml/node.h trunk/src/node/vrml97/abstract_texture.h trunk/src/node/vrml97/appearance.cpp trunk/src/node/vrml97/color.cpp trunk/src/node/vrml97/coordinate.cpp trunk/src/node/vrml97/font_style.cpp trunk/src/node/vrml97/image_texture.cpp trunk/src/node/vrml97/material.cpp trunk/src/node/vrml97/movie_texture.cpp trunk/src/node/vrml97/navigation_info.cpp trunk/src/node/vrml97/navigation_info.h trunk/src/node/vrml97/normal.cpp trunk/src/node/vrml97/pixel_texture.cpp trunk/src/node/vrml97/texture_coordinate.cpp trunk/src/node/vrml97/transform.cpp trunk/src/node/vrml97/viewpoint.cpp trunk/src/node/vrml97/viewpoint.h trunk/src/node/x3d-rendering/color_rgba.cpp Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-29 04:34:20 UTC (rev 3872) +++ trunk/ChangeLog 2009-03-30 02:30:12 UTC (rev 3873) @@ -1,5 +1,31 @@ 2009-03-29 Braden McDaniel <br...@en...> + Use the nonvirtual interface pattern consistently with the + abstract node types. + + * src/libopenvrml/openvrml/browser.cpp + * src/libopenvrml/openvrml/node.cpp + * src/libopenvrml/openvrml/node.h + * src/node/vrml97/material.cpp + * src/node/vrml97/movie_texture.cpp + * src/node/vrml97/navigation_info.cpp + * src/node/vrml97/color.cpp + * src/node/vrml97/coordinate.cpp + * src/node/vrml97/viewpoint.h + * src/node/vrml97/image_texture.cpp + * src/node/vrml97/navigation_info.h + * src/node/vrml97/appearance.cpp + * src/node/vrml97/pixel_texture.cpp + * src/node/vrml97/texture_coordinate.cpp + * src/node/vrml97/transform.cpp + * src/node/vrml97/font_style.cpp + * src/node/vrml97/normal.cpp + * src/node/vrml97/viewpoint.cpp + * src/node/vrml97/abstract_texture.h + * src/node/x3d-rendering/color_rgba.cpp + +2009-03-29 Braden McDaniel <br...@en...> + * src/libopenvrml-control/openvrml_control/browser.cpp (openvrml_control::browser::uninitialized_plugin_streambuf_map::map_entry_matches_streambuf): Applied OPENVRML_LOCAL. Modified: trunk/src/libopenvrml/openvrml/browser.cpp =================================================================== --- trunk/src/libopenvrml/openvrml/browser.cpp 2009-03-29 04:34:20 UTC (rev 3872) +++ trunk/src/libopenvrml/openvrml/browser.cpp 2009-03-30 02:30:12 UTC (rev 3873) @@ -96,13 +96,6 @@ OPENVRML_NOTHROW; virtual ~default_navigation_info() OPENVRML_NOTHROW; - virtual const std::vector<float> & avatar_size() const - OPENVRML_NOTHROW; - virtual bool headlight() const OPENVRML_NOTHROW; - virtual float speed() const OPENVRML_NOTHROW; - virtual const std::vector<std::string> & type() const OPENVRML_NOTHROW; - virtual float visibility_limit() const OPENVRML_NOTHROW; - private: virtual void do_field(const std::string & id, const openvrml::field_value & value) @@ -124,6 +117,14 @@ virtual openvrml::event_emitter & do_event_emitter(const std::string & id) OPENVRML_THROW1(openvrml::unsupported_interface); + + virtual const std::vector<float> & do_avatar_size() const + OPENVRML_NOTHROW; + virtual bool do_headlight() const OPENVRML_NOTHROW; + virtual float do_speed() const OPENVRML_NOTHROW; + virtual const std::vector<std::string> & do_type() const + OPENVRML_NOTHROW; + virtual float do_visibility_limit() const OPENVRML_NOTHROW; }; const boost::shared_ptr<openvrml::scope> null_scope_ptr; @@ -153,7 +154,7 @@ * * @return [0.25, 1.6, 0.75] */ - const std::vector<float> & default_navigation_info::avatar_size() const + const std::vector<float> & default_navigation_info::do_avatar_size() const OPENVRML_NOTHROW { static const float array[] = { 0.25f, 1.6f, 0.75f }; @@ -166,7 +167,7 @@ * * @return @c true */ - bool default_navigation_info::headlight() const OPENVRML_NOTHROW + bool default_navigation_info::do_headlight() const OPENVRML_NOTHROW { return true; } @@ -176,7 +177,7 @@ * * @return 1.0 */ - float default_navigation_info::speed() const OPENVRML_NOTHROW + float default_navigation_info::do_speed() const OPENVRML_NOTHROW { return 1.0; } @@ -186,7 +187,7 @@ * * @return ["WALK", "ANY"] */ - const std::vector<std::string> & default_navigation_info::type() const + const std::vector<std::string> & default_navigation_info::do_type() const OPENVRML_NOTHROW { static const char * array[] = { "WALK", "ANY" }; @@ -199,7 +200,7 @@ * * @return 0.0 */ - float default_navigation_info::visibility_limit() const OPENVRML_NOTHROW + float default_navigation_info::do_visibility_limit() const OPENVRML_NOTHROW { return 0.0; } @@ -265,15 +266,6 @@ OPENVRML_NOTHROW; virtual ~default_viewpoint() OPENVRML_NOTHROW; - virtual const openvrml::mat4f & transformation() const - OPENVRML_NOTHROW; - virtual const openvrml::mat4f & user_view_transform() const - OPENVRML_NOTHROW; - virtual void user_view_transform(const openvrml::mat4f & transform) - OPENVRML_NOTHROW; - virtual const std::string & description() const OPENVRML_NOTHROW; - virtual float field_of_view() const OPENVRML_NOTHROW; - private: virtual void do_field(const std::string & id, const openvrml::field_value & value) @@ -295,6 +287,15 @@ virtual openvrml::event_emitter & do_event_emitter(const std::string & id) OPENVRML_THROW1(openvrml::unsupported_interface); + + virtual const openvrml::mat4f & do_transformation() const + OPENVRML_NOTHROW; + virtual const openvrml::mat4f & do_user_view_transform() const + OPENVRML_NOTHROW; + virtual void do_user_view_transform(const openvrml::mat4f & transform) + OPENVRML_NOTHROW; + virtual const std::string & do_description() const OPENVRML_NOTHROW; + virtual float do_field_of_view() const OPENVRML_NOTHROW; }; /** @@ -317,7 +318,7 @@ default_viewpoint::~default_viewpoint() OPENVRML_NOTHROW {} - const openvrml::mat4f & default_viewpoint::transformation() const + const openvrml::mat4f & default_viewpoint::do_transformation() const OPENVRML_NOTHROW { using openvrml::mat4f; @@ -338,26 +339,27 @@ return t; } - const openvrml::mat4f & default_viewpoint::user_view_transform() const + const openvrml::mat4f & default_viewpoint::do_user_view_transform() const OPENVRML_NOTHROW { return this->userViewTransform; } void - default_viewpoint::user_view_transform(const openvrml::mat4f & transform) + default_viewpoint::do_user_view_transform(const openvrml::mat4f & transform) OPENVRML_NOTHROW { this->userViewTransform = transform; } - const std::string & default_viewpoint::description() const OPENVRML_NOTHROW + const std::string & default_viewpoint::do_description() const + OPENVRML_NOTHROW { static const std::string desc; return desc; } - float default_viewpoint::field_of_view() const OPENVRML_NOTHROW + float default_viewpoint::do_field_of_view() const OPENVRML_NOTHROW { static const float fieldOfView = 0.785398f; return fieldOfView; Modified: trunk/src/libopenvrml/openvrml/node.cpp =================================================================== --- trunk/src/libopenvrml/openvrml/node.cpp 2009-03-29 04:34:20 UTC (rev 3872) +++ trunk/src/libopenvrml/openvrml/node.cpp 2009-03-30 02:30:12 UTC (rev 3873) @@ -3195,6 +3195,17 @@ } /** + * @brief Get the material node associated with this appearance node. + * + * @return the @c material_node associated with this @c appearance_node. + */ +const boost::intrusive_ptr<openvrml::node> & +openvrml::appearance_node::material() const OPENVRML_NOTHROW +{ + return this->do_material(); +} + +/** * @fn const boost::intrusive_ptr<openvrml::node> & openvrml::appearance_node::material() const * * @brief Get the material node associated with this appearance node. @@ -3203,6 +3214,17 @@ */ /** + * @brief Get the texture node associated with this appearance node. + * + * @return the @c texture_node associated with this @c appearance_node. + */ +const boost::intrusive_ptr<openvrml::node> & +openvrml::appearance_node::texture() const OPENVRML_NOTHROW +{ + return this->do_texture(); +} + +/** * @fn const boost::intrusive_ptr<openvrml::node> & openvrml::appearance_node::texture() const * * @brief Get the texture node associated with this appearance node. @@ -3211,6 +3233,18 @@ */ /** + * @brief Get the texture transform node associated with this appearance node. + * + * @return the @c texture_transform_node associated with this + * @c appearance_node. + */ +const boost::intrusive_ptr<openvrml::node> & +openvrml::appearance_node::texture_transform() const OPENVRML_NOTHROW +{ + return this->do_texture_transform(); +} + +/** * @fn const boost::intrusive_ptr<openvrml::node> & openvrml::appearance_node::texture_transform() const * * @brief Get the texture transform node associated with this appearance node. @@ -3514,8 +3548,21 @@ } /** - * @fn const std::vector<openvrml::color> & openvrml::color_node::color() const + * @brief Get the color array encapsulated by this node. * + * This function delegates to @c #do_color. + * + * @return the color array for this node. + */ +const std::vector<openvrml::color> & openvrml::color_node::color() const + OPENVRML_NOTHROW +{ + return this->do_color(); +} + +/** + * @fn const std::vector<openvrml::color> & openvrml::color_node::do_color() const + * * @brief Get the color array encapsulated by this node. * * @return the color array for this node. @@ -3559,8 +3606,21 @@ } /** - * @fn const std::vector<openvrml::color_rgba> & openvrml::color_rgba_node::color_rgba() const + * @brief Get the @c color_rgba array encapsulated by this @c node. * + * This function delegates to @c #do_color. + * + * @return the @c color_rgba array for this @c node. + */ +const std::vector<openvrml::color_rgba> & +openvrml::color_rgba_node::color_rgba() const OPENVRML_NOTHROW +{ + return this->do_color_rgba(); +} + +/** + * @fn const std::vector<openvrml::color_rgba> & openvrml::color_rgba_node::do_color_rgba() const + * * @brief Get the @c color_rgba array encapsulated by this @c node. * * @return the @c color_rgba array for this @c node. @@ -3604,8 +3664,21 @@ } /** - * @fn const std::vector<openvrml::vec3f> & openvrml::coordinate_node::point() const + * @brief Get the points encapsulated by this node. * + * This function delegates to @c #do_point. + * + * @return the array of points for this node. + */ +const std::vector<openvrml::vec3f> & openvrml::coordinate_node::point() const + OPENVRML_NOTHROW +{ + return this->do_point(); +} + +/** + * @fn const std::vector<openvrml::vec3f> & openvrml::coordinate_node::do_point() const + * * @brief Get the points encapsulated by this node. * * @return the array of points for this node. @@ -3649,16 +3722,43 @@ } /** - * @fn const std::vector<std::string> & openvrml::font_style_node::family() const + * @brief Get the list of font families. * + * This function delegates to @c #do_family. + * + * @return the font families that may be used for this FontStyle. + */ +const std::vector<std::string> & openvrml::font_style_node::family() const + OPENVRML_NOTHROW +{ + return this->do_family(); +} + +/** + * @fn const std::vector<std::string> & openvrml::font_style_node::do_family() const + * * @brief Get the list of font families. * * @return the font families that may be used for this FontStyle. */ /** - * @fn bool openvrml::font_style_node::horizontal() const + * @brief Get the flag indicating whether the text should be horizontal or + * vertical. * + * This function delegates to @c #do_horizontal. + * + * @return @c true if the text should be horizontal, or @c false if the text + * should be vertical. + */ +bool openvrml::font_style_node::horizontal() const OPENVRML_NOTHROW +{ + return this->do_horizontal(); +} + +/** + * @fn bool openvrml::font_style_node::do_horizontal() const + * * @brief Get the flag indicating whether the text should be horizontal or * vertical. * @@ -3667,24 +3767,63 @@ */ /** - * @fn const std::vector<std::string> & openvrml::font_style_node::justify() const + * @brief Get the descriptor for the text justification. * + * This function delegates to @c #do_justify. + * + * @return the characteristics of the text justification. + */ +const std::vector<std::string> & openvrml::font_style_node::justify() const + OPENVRML_NOTHROW +{ + return this->do_justify(); +} + +/** + * @fn const std::vector<std::string> & openvrml::font_style_node::do_justify() const + * * @brief Get the descriptor for the text justification. * * @return the characteristics of the text justification. */ /** - * @fn const std::string & openvrml::font_style_node::language() const + * @brief Get the language code. * + * This function delegates to @c #do_language. + * + * @return the language code. + */ +const std::string & openvrml::font_style_node::language() const OPENVRML_NOTHROW +{ + return this->do_language(); +} + +/** + * @fn const std::string & openvrml::font_style_node::do_language() const + * * @brief Get the language code. * * @return the language code. */ /** - * @fn bool openvrml::font_style_node::left_to_right() const + * @brief Get the flag indicating whether the text should be rendered + * left-to-right. * + * This function delegates to @c #do_left_to_right. + * + * @return @c true if the text should be rendered left-to-right, or @c false if + * the text should be rendered right-to-left. + */ +bool openvrml::font_style_node::left_to_right() const OPENVRML_NOTHROW +{ + return this->do_left_to_right(); +} + +/** + * @fn bool openvrml::font_style_node::do_left_to_right() const + * * @brief Get the flag indicating whether the text should be rendered * left-to-right. * @@ -3693,32 +3832,82 @@ */ /** - * @fn float openvrml::font_style_node::size() const + * @brief Get the size of the text. * + * This function delegates to @c #do_size. + * + * @return the size of the text. + */ +float openvrml::font_style_node::size() const OPENVRML_NOTHROW +{ + return this->do_size(); +} + +/** + * @fn float openvrml::font_style_node::do_size() const + * * @brief Get the size of the text. * * @return the size of the text. */ /** - * @fn float openvrml::font_style_node::spacing() const + * @brief Get the spacing for the text. * + * This function delegates to @c #do_spacing. + * + * @return the spacing for the text. + */ +float openvrml::font_style_node::spacing() const OPENVRML_NOTHROW +{ + return this->do_spacing(); +} + +/** + * @fn float openvrml::font_style_node::do_spacing() const + * * @brief Get the spacing for the text. * * @return the spacing for the text. */ /** - * @fn const std::string & openvrml::font_style_node::style() const + * @brief Get the style for the text. * + * This function delegates to @c #do_style. + * + * @return the text style. + */ +const std::string & openvrml::font_style_node::style() const OPENVRML_NOTHROW +{ + return this->do_style(); +} + +/** + * @fn const std::string & openvrml::font_style_node::do_style() const + * * @brief Get the style for the text. * * @return the text style. */ /** - * @fn bool openvrml::font_style_node::top_to_bottom() const + * @brief Get the flag indicating whether the text should be rendered + * top-to-bottom. * + * This function delegates to @c #do_top_to_bottom. + * + * @return @c true if the text should be rendered top-to-bottom, or @c false if + * the text should be rendered bottom-to-top. + */ +bool openvrml::font_style_node::top_to_bottom() const OPENVRML_NOTHROW +{ + return this->do_top_to_bottom(); +} + +/** + * @fn bool openvrml::font_style_node::do_top_to_bottom() const + * * @brief Get the flag indicating whether the text should be rendered * top-to-bottom. * @@ -3866,6 +4055,18 @@ const openvrml::color_node * openvrml::geometry_node::color() const OPENVRML_NOTHROW { + return this->do_color(); +} + +/** + * @brief Get the color node (if any) associated with this geometry. + * + * @return the @c color_node associated associated with this geometry, or 0 if + * there is no such node. + */ +const openvrml::color_node * openvrml::geometry_node::do_color() const + OPENVRML_NOTHROW +{ return 0; } @@ -4125,48 +4326,123 @@ } /** - * @fn float openvrml::material_node::ambient_intensity() const + * @brief Get the ambient intensity. * + * This function delegates to @c #do_ambient_intensity. + * + * @return the ambient intensity. + */ +float openvrml::material_node::ambient_intensity() const OPENVRML_NOTHROW +{ + return this->do_ambient_intensity(); +} + +/** + * @fn float openvrml::material_node::do_ambient_intensity() const + * * @brief Get the ambient intensity. * * @return the ambient intensity. */ /** - * @fn const openvrml::color & openvrml::material_node::diffuse_color() const + * @brief Get the diffuse color. * + * This function delegatest to @c #do_diffuse_color. + * + * @return the diffuse color. + */ +const openvrml::color & openvrml::material_node::diffuse_color() const + OPENVRML_NOTHROW +{ + return this->do_diffuse_color(); +} + +/** + * @fn const openvrml::color & openvrml::material_node::do_diffuse_color() const + * * @brief Get the diffuse color. * * @return the diffuse color. */ /** - * @fn const openvrml::color & openvrml::material_node::emissive_color() const + * @brief Get the emissive color. * + * This function delegates to @c #do_emissive_color. + * + * @return the emissive color. + */ +const openvrml::color & openvrml::material_node::emissive_color() const + OPENVRML_NOTHROW +{ + return this->do_emissive_color(); +} + +/** + * @fn const openvrml::color & openvrml::material_node::do_emissive_color() const + * * @brief Get the emissive color. * * @return the emissive color. */ /** - * @fn float openvrml::material_node::shininess() const + * @brief Get the shininess. * + * This function delegates to @c #do_shininess. + * + * @return the shininess. + */ +float openvrml::material_node::shininess() const OPENVRML_NOTHROW +{ + return this->do_shininess(); +} + +/** + * @fn float openvrml::material_node::do_shininess() const + * * @brief Get the shininess. * * @return the shininess. */ /** - * @fn const openvrml::color & openvrml::material_node::specular_color() const + * @brief Get the specular color. * + * This function delegates to @c #do_specular_color. + * + * @return the specular color. + */ +const openvrml::color & openvrml::material_node::specular_color() const + OPENVRML_NOTHROW +{ + return this->do_specular_color(); +} + +/** + * @fn const openvrml::color & openvrml::material_node::do_specular_color() const + * * @brief Get the specular color. * * @return the specular color. */ /** - * @fn float openvrml::material_node::transparency() const + * @brief Get the transparency. * + * This function delegates to @c #do_transparency. + * + * @return the transparency. + */ +float openvrml::material_node::transparency() const OPENVRML_NOTHROW +{ + return this->do_transparency(); +} + +/** + * @fn float openvrml::material_node::do_transparency() const + * * @brief Get the transparency. * * @return the transparency. @@ -4212,40 +4488,102 @@ } /** - * @fn const std::vector<float> & openvrml::navigation_info_node::avatar_size() const + * @brief Get the avatar dimensions. * + * This function delegates to @c #do_avatar_size. + * + * @return the avatar dimensions. + */ +const std::vector<float> & openvrml::navigation_info_node::avatar_size() const + OPENVRML_NOTHROW +{ + return this->do_avatar_size(); +} + +/** + * @fn const std::vector<float> & openvrml::navigation_info_node::do_avatar_size() const + * * @brief Get the avatar dimensions. * * @return the avatar dimensions. */ /** - * @fn bool openvrml::navigation_info_node::headlight() const + * @brief Get the state of the headlight. * + * This function delegates to @c #do_headlight. + * + * @return @c true if the headlight is on; @c false otherwise. + */ +bool openvrml::navigation_info_node::headlight() const OPENVRML_NOTHROW +{ + return this->do_headlight(); +} + +/** + * @fn bool openvrml::navigation_info_node::do_headlight() const + * * @brief Get the state of the headlight. * * @return @c true if the headlight is on; @c false otherwise. */ /** - * @fn float openvrml::navigation_info_node::speed() const + * @brief Get the current speed of the user view. * + * This function delegates to @c #do_speed. + * + * @return the current speed of the user view. + */ +float openvrml::navigation_info_node::speed() const OPENVRML_NOTHROW +{ + return this->do_speed(); +} + +/** + * @fn float openvrml::navigation_info_node::do_speed() const + * * @brief Get the current speed of the user view. * * @return the current speed of the user view. */ /** - * @fn const std::vector<std::string> & openvrml::navigation_info_node::type() const + * @brief Get the navigation type. * + * This function delegates to @c do_type. + * + * @return the navigation type. + */ +const std::vector<std::string> & openvrml::navigation_info_node::type() const + OPENVRML_NOTHROW +{ + return this->do_type(); +} + +/** + * @fn const std::vector<std::string> & openvrml::navigation_info_node::do_type() const + * * @brief Get the navigation type. * * @return the navigation type. */ /** - * @fn float openvrml::navigation_info_node::visibility_limit() const + * @brief Get the visibility limit. * + * This function delegates to @c #do_visibility_limit. + * + * @return the visibility limit. + */ +float openvrml::navigation_info_node::visibility_limit() const OPENVRML_NOTHROW +{ + return this->do_visibility_limit(); +} + +/** + * @fn float openvrml::navigation_info_node::do_visibility_limit() const + * * @brief Get the visibility limit. * * @return the visibility limit. @@ -4288,8 +4626,21 @@ } /** - * @fn const std::vector<openvrml::vec3f> & openvrml::normal_node::vector() const + * @brief Get the array of normal vectors. * + * This function delegates to @c #do_vector. + * + * @return the array of normal vectors. + */ +const std::vector<openvrml::vec3f> & openvrml::normal_node::vector() const + OPENVRML_NOTHROW +{ + return this->do_vector(); +} + +/** + * @fn const std::vector<openvrml::vec3f> & openvrml::normal_node::do_vector() const + * * @brief Get the array of normal vectors. * * @return the array of normal vectors. @@ -4571,17 +4922,45 @@ return this; } + /** - * @fn const openvrml::image & openvrml::texture_node::image() const + * @brief The image. * + * This function delegates to @c #do_image. + * + * @return the image. + */ +const openvrml::image & openvrml::texture_node::image() const + OPENVRML_NOTHROW +{ + return this->do_image(); +} + +/** + * @fn const openvrml::image & openvrml::texture_node::do_image() const + * * @brief The image. * * @return the image. */ /** - * @fn bool openvrml::texture_node::repeat_s() const + * @brief Get the flag indicating whether the texture should repeat in the + * <var>S</var> direction. * + * This function delegates to @c #do_repeat_s. + * + * @return @c true if the image should repeat in the <var>S</var> direction, + * @c false otherwise. + */ +bool openvrml::texture_node::repeat_s() const OPENVRML_NOTHROW +{ + return this->do_repeat_s(); +} + +/** + * @fn bool openvrml::texture_node::do_repeat_s() const + * * @brief Get the flag indicating whether the texture should repeat in the * <var>S</var> direction. * @@ -4590,8 +4969,22 @@ */ /** - * @fn bool openvrml::texture_node::repeat_t() const + * @brief Get the flag indicating whether the texture should repeat in the + * <var>T</var> direction. * + * This function delegates to @c #do_repeat_t. + * + * @return @c true if the image should repeat in the <var>T</var> direction, + * @c false otherwise. + */ +bool openvrml::texture_node::repeat_t() const OPENVRML_NOTHROW +{ + return this->do_repeat_t(); +} + +/** + * @fn bool openvrml::texture_node::do_repeat_t() const + * * @brief Get the flag indicating whether the texture should repeat in the * <var>T</var> direction. * @@ -4638,8 +5031,21 @@ } /** - * @fn const std::vector<openvrml::vec2f> & openvrml::texture_coordinate_node::point() const + * @brief The texture coordinates. * + * This function delegates to @c #do_point. + * + * @return the texture coordinates. + */ +const std::vector<openvrml::vec2f> & +openvrml::texture_coordinate_node::point() const OPENVRML_NOTHROW +{ + return this->do_point(); +} + +/** + * @fn const std::vector<openvrml::vec2f> & openvrml::texture_coordinate_node::do_point() const + * * @brief The texture coordinates. * * @return the texture coordinates. @@ -4802,8 +5208,21 @@ } /** - * @fn const openvrml::mat4f & openvrml::transform_node::transform() const + * @brief Get the transformation associated with the @c node as a matrix. * + * This function delegates to @c #do_transform. + * + * @return the transformation associated with the @c node. + */ +const openvrml::mat4f & openvrml::transform_node::transform() const + OPENVRML_NOTHROW +{ + return this->do_transform(); +} + +/** + * @fn const openvrml::mat4f & openvrml::transform_node::do_transform() const + * * @brief Get the transformation associated with the @c node as a matrix. * * @return the transformation associated with the @c node. @@ -4849,8 +5268,23 @@ } /** - * @fn const openvrml::mat4f & openvrml::viewpoint_node::transformation() const + * @brief Get the transformation of the @c viewpoint_node in the global + * coordinate system. * + * This function delegates to @c #do_transformation. + * + * @return the transformation of the @c viewpoint_node in the global coordinate + * system. + */ +const openvrml::mat4f & openvrml::viewpoint_node::transformation() const + OPENVRML_NOTHROW +{ + return this->do_transformation(); +} + +/** + * @fn const openvrml::mat4f & openvrml::viewpoint_node::do_transformation() const + * * @brief Get the transformation of the @c viewpoint_node in the global * coordinate system. * @@ -4859,8 +5293,23 @@ */ /** - * @fn const openvrml::mat4f & openvrml::viewpoint_node::user_view_transform() const + * @brief Get the transformation of the user view relative to the + * @c viewpoint_node. * + * This function delegates to @c #do_user_view_transform(). + * + * @return the transformation of the user view relative to the + * @c viewpoint_node. + */ +const openvrml::mat4f & openvrml::viewpoint_node::user_view_transform() const + OPENVRML_NOTHROW +{ + return this->do_user_view_transform(); +} + +/** + * @fn const openvrml::mat4f & openvrml::viewpoint_node::do_user_view_transform() const + * * @brief Get the transformation of the user view relative to the * @c viewpoint_node. * @@ -4869,8 +5318,22 @@ */ /** - * @fn void openvrml::viewpoint_node::user_view_transform(const mat4f & transform) + * @brief Set the transformation of the user view relative to the + * @c viewpoint_node. * + * This function delegates to @c #do_user_view_transform(const mat4f &). + * + * @param[in] transform the new transformation. + */ +void openvrml::viewpoint_node::user_view_transform(const mat4f & transform) + OPENVRML_NOTHROW +{ + this->do_user_view_transform(transform); +} + +/** + * @fn void openvrml::viewpoint_node::do_user_view_transform(const mat4f & transform) + * * @brief Set the transformation of the user view relative to the * @c viewpoint_node. * @@ -4878,16 +5341,41 @@ */ /** - * @fn const std::string & openvrml::viewpoint_node::description() const + * @brief Get the description. * + * This function delegates to @c #do_description. + * + * @return the description. + */ +const std::string & openvrml::viewpoint_node::description() const + OPENVRML_NOTHROW +{ + return this->do_description(); +} + +/** + * @fn const std::string & openvrml::viewpoint_node::do_description() const + * * @brief Get the description. * * @return the description. */ /** - * @fn float openvrml::viewpoint_node::field_of_view() const + * @brief Get the field of view. * + * This function delegates to @c #do_field_of_view. + * + * @return the field of view in radians. + */ +float openvrml::viewpoint_node::field_of_view() const OPENVRML_NOTHROW +{ + return this->do_field_of_view(); +} + +/** + * @fn float openvrml::viewpoint_node::do_field_of_view() const + * * @brief Get the field of view. * * @return the field of view in radians. Modified: trunk/src/libopenvrml/openvrml/node.h =================================================================== --- trunk/src/libopenvrml/openvrml/node.h 2009-03-29 04:34:20 UTC (rev 3872) +++ trunk/src/libopenvrml/openvrml/node.h 2009-03-30 02:30:12 UTC (rev 3873) @@ -884,12 +884,10 @@ void render_appearance(viewer & v, rendering_context context); - virtual const boost::intrusive_ptr<node> & material() const - OPENVRML_NOTHROW = 0; - virtual const boost::intrusive_ptr<node> & texture() const - OPENVRML_NOTHROW = 0; - virtual const boost::intrusive_ptr<node> & texture_transform() const - OPENVRML_NOTHROW = 0; + const boost::intrusive_ptr<node> & material() const OPENVRML_NOTHROW; + const boost::intrusive_ptr<node> & texture() const OPENVRML_NOTHROW; + const boost::intrusive_ptr<node> & texture_transform() const + OPENVRML_NOTHROW; protected: appearance_node(const node_type & type, @@ -899,6 +897,12 @@ private: virtual appearance_node * to_appearance() OPENVRML_NOTHROW; + virtual const boost::intrusive_ptr<node> & do_material() const + OPENVRML_NOTHROW = 0; + virtual const boost::intrusive_ptr<node> & do_texture() const + OPENVRML_NOTHROW = 0; + virtual const boost::intrusive_ptr<node> & do_texture_transform() const + OPENVRML_NOTHROW = 0; virtual void do_render_appearance(viewer & v, rendering_context context); }; @@ -953,8 +957,7 @@ public: virtual ~color_node() OPENVRML_NOTHROW = 0; - virtual const std::vector<openvrml::color> & color() const - OPENVRML_NOTHROW = 0; + const std::vector<openvrml::color> & color() const OPENVRML_NOTHROW; protected: color_node(const node_type & type, @@ -963,6 +966,9 @@ private: virtual color_node * to_color() OPENVRML_NOTHROW; + + virtual const std::vector<openvrml::color> & do_color() const + OPENVRML_NOTHROW = 0; }; @@ -970,8 +976,8 @@ public: virtual ~color_rgba_node() OPENVRML_NOTHROW = 0; - virtual const std::vector<openvrml::color_rgba> & color_rgba() const - OPENVRML_NOTHROW = 0; + const std::vector<openvrml::color_rgba> & color_rgba() const + OPENVRML_NOTHROW; protected: color_rgba_node(const node_type & type, @@ -980,6 +986,9 @@ private: virtual color_rgba_node * to_color_rgba() OPENVRML_NOTHROW; + + virtual const std::vector<openvrml::color_rgba> & do_color_rgba() const + OPENVRML_NOTHROW = 0; }; @@ -987,7 +996,7 @@ public: virtual ~coordinate_node() OPENVRML_NOTHROW = 0; - virtual const std::vector<vec3f> & point() const OPENVRML_NOTHROW = 0; + const std::vector<vec3f> & point() const OPENVRML_NOTHROW; protected: coordinate_node(const node_type & type, @@ -996,6 +1005,9 @@ private: virtual coordinate_node * to_coordinate() OPENVRML_NOTHROW; + + virtual const std::vector<vec3f> & do_point() const + OPENVRML_NOTHROW = 0; }; @@ -1003,17 +1015,15 @@ public: virtual ~font_style_node() OPENVRML_NOTHROW = 0; - virtual const std::vector<std::string> & family() const - OPENVRML_NOTHROW = 0; - virtual bool horizontal() const OPENVRML_NOTHROW = 0; - virtual const std::vector<std::string> & justify() const - OPENVRML_NOTHROW = 0; - virtual const std::string & language() const OPENVRML_NOTHROW = 0; - virtual bool left_to_right() const OPENVRML_NOTHROW = 0; - virtual float size() const OPENVRML_NOTHROW = 0; - virtual float spacing() const OPENVRML_NOTHROW = 0; - virtual const std::string & style() const OPENVRML_NOTHROW = 0; - virtual bool top_to_bottom() const OPENVRML_NOTHROW = 0; + const std::vector<std::string> & family() const OPENVRML_NOTHROW; + bool horizontal() const OPENVRML_NOTHROW; + const std::vector<std::string> & justify() const OPENVRML_NOTHROW; + const std::string & language() const OPENVRML_NOTHROW; + bool left_to_right() const OPENVRML_NOTHROW; + float size() const OPENVRML_NOTHROW; + float spacing() const OPENVRML_NOTHROW; + const std::string & style() const OPENVRML_NOTHROW; + bool top_to_bottom() const OPENVRML_NOTHROW; protected: font_style_node(const node_type & type, @@ -1022,6 +1032,18 @@ private: virtual font_style_node * to_font_style() OPENVRML_NOTHROW; + + virtual const std::vector<std::string> & do_family() const + OPENVRML_NOTHROW = 0; + virtual bool do_horizontal() const OPENVRML_NOTHROW = 0; + virtual const std::vector<std::string> & do_justify() const + OPENVRML_NOTHROW = 0; + virtual const std::string & do_language() const OPENVRML_NOTHROW = 0; + virtual bool do_left_to_right() const OPENVRML_NOTHROW = 0; + virtual float do_size() const OPENVRML_NOTHROW = 0; + virtual float do_spacing() const OPENVRML_NOTHROW = 0; + virtual const std::string & do_style() const OPENVRML_NOTHROW = 0; + virtual bool do_top_to_bottom() const OPENVRML_NOTHROW = 0; }; @@ -1035,7 +1057,7 @@ viewer::object_t render_geometry(viewer & v, rendering_context context); bool emissive() const OPENVRML_NOTHROW; - virtual const color_node * color() const OPENVRML_NOTHROW; + const color_node * color() const OPENVRML_NOTHROW; protected: geometry_node(const node_type & type, @@ -1046,6 +1068,7 @@ virtual viewer::object_t do_render_geometry(viewer & v, rendering_context context); virtual bool do_emissive() const OPENVRML_NOTHROW; + virtual const color_node * do_color() const OPENVRML_NOTHROW; virtual geometry_node * to_geometry() OPENVRML_NOTHROW; }; @@ -1069,8 +1092,10 @@ private: virtual grouping_node * to_grouping() OPENVRML_NOTHROW; - virtual const std::vector<boost::intrusive_ptr<node> > - do_children() const OPENVRML_THROW1(std::bad_alloc) = 0; + + virtual + const std::vector<boost::intrusive_ptr<node> > do_children() const + OPENVRML_THROW1(std::bad_alloc) = 0; }; @@ -1102,12 +1127,12 @@ public: virtual ~material_node() OPENVRML_NOTHROW = 0; - virtual float ambient_intensity() const OPENVRML_NOTHROW = 0; - virtual const color & diffuse_color() const OPENVRML_NOTHROW = 0; - virtual const color & emissive_color() const OPENVRML_NOTHROW = 0; - virtual float shininess() const OPENVRML_NOTHROW = 0; - virtual const color & specular_color() const OPENVRML_NOTHROW = 0; - virtual float transparency() const OPENVRML_NOTHROW = 0; + float ambient_intensity() const OPENVRML_NOTHROW; + const color & diffuse_color() const OPENVRML_NOTHROW; + const color & emissive_color() const OPENVRML_NOTHROW; + float shininess() const OPENVRML_NOTHROW; + const color & specular_color() const OPENVRML_NOTHROW; + float transparency() const OPENVRML_NOTHROW; protected: material_node(const node_type & type, @@ -1116,6 +1141,13 @@ private: virtual material_node * to_material() OPENVRML_NOTHROW; + + virtual float do_ambient_intensity() const OPENVRML_NOTHROW = 0; + virtual const color & do_diffuse_color() const OPENVRML_NOTHROW = 0; + virtual const color & do_emissive_color() const OPENVRML_NOTHROW = 0; + virtual float do_shininess() const OPENVRML_NOTHROW = 0; + virtual const color & do_specular_color() const OPENVRML_NOTHROW = 0; + virtual float do_transparency() const OPENVRML_NOTHROW = 0; }; @@ -1123,13 +1155,11 @@ public: virtual ~navigation_info_node() OPENVRML_NOTHROW = 0; - virtual const std::vector<float> & avatar_size() const - OPENVRML_NOTHROW = 0; - virtual bool headlight() const OPENVRML_NOTHROW = 0; - virtual float speed() const OPENVRML_NOTHROW = 0; - virtual const std::vector<std::string> & type() const - OPENVRML_NOTHROW = 0; - virtual float visibility_limit() const OPENVRML_NOTHROW = 0; + const std::vector<float> & avatar_size() const OPENVRML_NOTHROW; + bool headlight() const OPENVRML_NOTHROW; + float speed() const OPENVRML_NOTHROW; + const std::vector<std::string> & type() const OPENVRML_NOTHROW; + float visibility_limit() const OPENVRML_NOTHROW; protected: navigation_info_node(const node_type & type, @@ -1138,6 +1168,14 @@ private: virtual navigation_info_node * to_navigation_info() OPENVRML_NOTHROW; + + virtual const std::vector<float> & do_avatar_size() const + OPENVRML_NOTHROW = 0; + virtual bool do_headlight() const OPENVRML_NOTHROW = 0; + virtual float do_speed() const OPENVRML_NOTHROW = 0; + virtual const std::vector<std::string> & do_type() const + OPENVRML_NOTHROW = 0; + virtual float do_visibility_limit() const OPENVRML_NOTHROW = 0; }; @@ -1145,7 +1183,7 @@ public: virtual ~normal_node() OPENVRML_NOTHROW = 0; - virtual const std::vector<vec3f> & vector() const OPENVRML_NOTHROW = 0; + const std::vector<vec3f> & vector() const OPENVRML_NOTHROW; protected: normal_node(const node_type & type, @@ -1154,6 +1192,9 @@ private: virtual normal_node * to_normal() OPENVRML_NOTHROW; + + virtual const std::vector<vec3f> & do_vector() const + OPENVRML_NOTHROW = 0; }; @@ -1218,9 +1259,9 @@ viewer::texture_object_t render_texture(viewer & v); - virtual const openvrml::image & image() const OPENVRML_NOTHROW = 0; - virtual bool repeat_s() const OPENVRML_NOTHROW = 0; - virtual bool repeat_t() const OPENVRML_NOTHROW = 0; + const openvrml::image & image() const OPENVRML_NOTHROW; + bool repeat_s() const OPENVRML_NOTHROW; + bool repeat_t() const OPENVRML_NOTHROW; protected: texture_node(const node_type & type, @@ -1231,6 +1272,10 @@ virtual texture_node * to_texture() OPENVRML_NOTHROW; virtual viewer::texture_object_t do_render_texture(viewer & v); + + virtual const openvrml::image & do_image() const OPENVRML_NOTHROW = 0; + virtual bool do_repeat_s() const OPENVRML_NOTHROW = 0; + virtual bool do_repeat_t() const OPENVRML_NOTHROW = 0; }; @@ -1238,7 +1283,7 @@ public: virtual ~texture_coordinate_node() OPENVRML_NOTHROW = 0; - virtual const std::vector<vec2f> & point() const OPENVRML_NOTHROW = 0; + const std::vector<vec2f> & point() const OPENVRML_NOTHROW; protected: texture_coordinate_node( @@ -1249,6 +1294,9 @@ private: virtual texture_coordinate_node * to_texture_coordinate() OPENVRML_NOTHROW; + + virtual const std::vector<vec2f> & do_point() const + OPENVRML_NOTHROW = 0; }; @@ -1294,7 +1342,7 @@ public: virtual ~transform_node() OPENVRML_NOTHROW = 0; - virtual const mat4f & transform() const OPENVRML_NOTHROW = 0; + const mat4f & transform() const OPENVRML_NOTHROW; protected: transform_node(const node_type & type, @@ -1303,6 +1351,8 @@ private: virtual transform_node * to_transform() OPENVRML_NOTHROW; + + virtual const mat4f & do_transform() const OPENVRML_NOTHROW = 0; }; @@ -1310,12 +1360,11 @@ public: virtual ~viewpoint_node() OPENVRML_NOTHROW = 0; - virtual const mat4f & transformation() const OPENVRML_NOTHROW = 0; - virtual const mat4f & user_view_transform() const OPENVRML_NOTHROW = 0; - virtual void user_view_transform(const mat4f & transform) - OPENVRML_NOTHROW = 0; - virtual const std::string & description() const OPENVRML_NOTHROW = 0; - virtual float field_of_view() const OPENVRML_NOTHROW = 0; + const mat4f & transformation() const OPENVRML_NOTHROW; + const mat4f & user_view_transform() const OPENVRML_NOTHROW; + void user_view_transform(const mat4f & transform) OPENVRML_NOTHROW; + const std::string & description() const OPENVRML_NOTHROW; + float field_of_view() const OPENVRML_NOTHROW; protected: viewpoint_node(const node_type & type, @@ -1324,6 +1373,14 @@ private: virtual viewpoint_node * to_viewpoint() OPENVRML_NOTHROW; + + virtual const mat4f & do_transformation() const OPENVRML_NOTHROW = 0; + virtual const mat4f & do_user_view_transform() const + OPENVRML_NOTHROW = 0; + virtual void do_user_view_transform(const mat4f & transform) + OPENVRML_NOTHROW = 0; + virtual const std::string & do_description() const OPENVRML_NOTHROW = 0; + virtual float do_field_of_view() const OPENVRML_NOTHROW = 0; }; Modified: trunk/src/node/vrml97/abstract_texture.h =================================================================== --- trunk/src/node/vrml97/abstract_texture.h 2009-03-29 04:34:20 UTC (rev 3872) +++ trunk/src/node/vrml97/abstract_texture.h 2009-03-30 02:30:12 UTC (rev 3873) @@ -40,16 +40,17 @@ public: virtual ~abstract_texture_node() OPENVRML_NOTHROW = 0; - // - // texture_node implementation. - // - virtual bool repeat_s() const OPENVRML_NOTHROW; - virtual bool repeat_t() const OPENVRML_NOTHROW; - protected: abstract_texture_node( const openvrml::node_type & type, const boost::shared_ptr<openvrml::scope> & scope); + + private: + // + // texture_node implementation. + // + virtual bool do_repeat_s() const OPENVRML_NOTHROW; + virtual bool do_repeat_t() const OPENVRML_NOTHROW; }; /** @@ -96,7 +97,7 @@ * direction, @c false otherwise. */ template <typename Derived> - bool abstract_texture_node<Derived>::repeat_s() const OPENVRML_NOTHROW + bool abstract_texture_node<Derived>::do_repeat_s() const OPENVRML_NOTHROW { return this->repeat_s_.value(); } @@ -108,7 +109,7 @@ * direction, @c false otherwise. */ template <typename Derived> - bool abstract_texture_node<Derived>::repeat_t() const OPENVRML_NOTHROW + bool abstract_texture_node<Derived>::do_repeat_t() const OPENVRML_NOTHROW { return this->repeat_t_.value(); } Modified: trunk/src/node/vrml97/appearance.cpp =================================================================== --- trunk/src/node/vrml97/appearance.cpp 2009-03-29 04:34:20 UTC (rev 3872) +++ trunk/src/node/vrml97/appearance.cpp 2009-03-30 02:30:12 UTC (rev 3873) @@ -49,14 +49,16 @@ virtual bool modified() const; + private: // // appearance_node implementation // - virtual const boost::intrusive_ptr<node> & material() const OPENVRML_NOTHROW; - virtual const boost::intrusive_ptr<node> & texture() const OPENVRML_NOTHROW; - virtual const boost::intrusive_ptr<node> & texture_transform() const OPENVRML_NOTHROW; - - private: + virtual const boost::intrusive_ptr<node> & do_material() const + OPENVRML_NOTHROW; + virtual const boost::intrusive_ptr<node> & do_texture() const + OPENVRML_NOTHROW; + virtual const boost::intrusive_ptr<node> & do_texture_transform() const + OPENVRML_NOTHROW; virtual void do_render_appearance(openvrml::viewer & v, openvrml::rendering_context context); }; @@ -140,19 +142,19 @@ * this Appearance. */ const boost::intrusive_ptr<openvrml::node> & - appearance_node::material() const OPENVRML_NOTHROW + appearance_node::do_material() const OPENVRML_NOTHROW { return this->material_.sfnode::value(); } -/** - * @brief Get the texture node. - * - * @return an sfnode object containing the texture node associated with - * this Appearance. - */ + /** + * @brief Get the texture node. + * + * @return an sfnode object containing the texture node associated with + * this Appearance. + */ const boost::intrusive_ptr<openvrml::node> & - appearance_node::texture() const OPENVRML_NOTHROW + appearance_node::do_texture() const OPENVRML_NOTHROW { return this->texture_.sfnode::value(); } @@ -164,7 +166,7 @@ * associated with this Appearance. */ const boost::intrusive_ptr<openvrml::node> & - appearance_node::texture_transform() const OPENVRML_NOTHROW + appearance_node::do_texture_transform() const OPENVRML_NOTHROW { return this->texture_transform_.sfnode::value(); } Modified: trunk/src/node/vrml97/color.cpp =================================================================== --- trunk/src/node/vrml97/color.cpp 2009-03-29 04:34:20 UTC (rev 3872) +++ trunk/src/node/vrml97/color.cpp 2009-03-30 02:30:12 UTC (rev 3873) @@ -42,10 +42,11 @@ const boost::shared_ptr<openvrml::scope> & scope); virtual ~color_node() OPENVRML_NOTHROW; + private: // // color_node implementation // - virtual const std::vector<openvrml::color> & color() const + virtual const std::vector<openvrml::color> & do_color() const OPENVRML_NOTHROW; }; @@ -93,8 +94,8 @@ * * @return the color array associated with the node. */ - const std::vector<openvrml::color> & - color_node::color() const OPENVRML_NOTHROW + const std::vector<openvrml::color> & color_node::do_color() const + OPENVRML_NOTHROW { return this->color_.mfcolor::value(); } Modified: trunk/src/node/vrml97/coordinate.cpp =================================================================== --- trunk/src/node/vrml97/coordinate.cpp 2009-03-29 04:34:20 UTC (rev 3872) +++ trunk/src/node/vrml97/coordinate.cpp 2009-03-30 02:30:12 UTC (rev 3873) @@ -42,10 +42,12 @@ const boost::shared_ptr<openvrml::scope> & scope); virtual ~coordinate_node() OPENVRML_NOTHROW; + private: // // coordinate_node implementation // - virtual const std::vector<openvrml::vec3f> & point() const OPENVRML_NOTHROW; + virtual const std::vector<openvrml::vec3f> & do_point() const + OPENVRML_NOTHROW; }; /** @@ -92,8 +94,8 @@ * * @return the array of points for this node. */ - const std::vector<openvrml::vec3f> & - coordinate_node::point() const OPENVRML_NOTHROW + const std::vector<openvrml::vec3f> & coordinate_node::do_point() const + OPENVRML_NOTHROW { return this->point_.mfvec3f::value(); } Modified: trunk/src/node/vrml97/font_style.cpp =================================================================== --- trunk/src/node/vrml97/font_style.cpp 2009-03-29 04:34:20 UTC (rev 3872) +++ trunk/src/node/vrml97/font_style.cpp 2009-03-30 02:30:12 UTC (rev 3873) @@ -52,18 +52,21 @@ const boost::shared_ptr<openvrml::scope> & scope); virtual ~font_style_node() OPENVRML_NOTHROW; + private: // // font_style_node implementation // - virtual const std::vector<std::string> & family() const OPENVRML_NOTHROW; - virtual bool horizontal() const OPENVRML_NOTHROW; - virtual const std::vector<std::string> & justify() const OPENVRML_NOTHROW; - virtual const std::string & language() const OPENVRML_NOTHROW; - virtual bool left_to_right() const OPENVRML_NOTHROW; - virtual float size() const OPENVRML_NOTHROW; - virtual float spacing() const OPENVRML_NOTHROW; - virtual const std::string & style() const OPENVRML_NOTHROW; - virtual bool top_to_bottom() const OPENVRML_NOTHROW; + virtual const std::vector<std::string> & do_family() const + OPENVRML_NOTHROW; + virtual bool do_horizontal() const OPENVRML_NOTHROW; + virtual const std::vector<std::string> & do_justify() const + OPENVRML_NOTHROW; + virtual const std::string & do_language() const OPENVRML_NOTHROW; + virtual bool do_left_to_right() const OPENVRML_NOTHROW; + virtual float do_size() const OPENVRML_NOTHROW; + virtual float do_spacing() const OPENVRML_NOTHROW; + virtual const std::string & do_style() const OPENVRML_NOTHROW; + virtual bool do_top_to_bottom() const OPENVRML_NOTHROW; }; /** @@ -172,7 +175,7 @@ * this <code>font_style_node</code>. */ const std::vector<std::string> & - font_style_node::family() const OPENVRML_NOTHROW + font_style_node::do_family() const OPENVRML_NOTHROW { return this->family_.value(); } @@ -184,7 +187,7 @@ * @return @c true if the text should be horizontal, or @c false if the * text should be vertical. */ - bool font_style_node::horizontal() const OPENVRML_NOTHROW + bool font_style_node::do_horizontal() const OPENVRML_NOTHROW { return this->horizontal_.value(); } @@ -196,7 +199,7 @@ * justification. */ const std::vector<std::string> & - font_style_node::justify() const OPENVRML_NOTHROW + font_style_node::do_justify() const OPENVRML_NOTHROW { return this->justify_.value(); } @@ -206,7 +209,7 @@ * * @return the language code. */ - const std::string & font_style_node::language() const + const std::string & font_style_node::do_language() const OPENVRML_NOTHROW { return this->language_.value(); @@ -219,7 +222,7 @@ * @return @c true if the text should be rendered left-to-right, or * @c false if the text should be rendered right-to-left. */ - bool font_style_node::left_to_right() const OPENVRML_NOTHROW + bool font_style_node::do_left_to_right() const OPENVRML_NOTHROW { return this->leftToRight.value(); } @@ -229,7 +232,7 @@ * * @return the size of the text. */ - float font_style_node::size() const OPENVRML_NOTHROW + float font_style_node::do_size() const OPENVRML_NOTHROW { return this->size_.value(); } @@ -239,7 +242,7 @@ * * @return the spacing for the text. */ - float font_style_node::spacing() const OPENVRML_NOTHROW + float font_style_node::do_spacing() const OPENVRML_NOTHROW { return this->spacing_.value(); } @@ -249,7 +252,7 @@ * * @return an string descriptor of the text style. */ - const std::string & font_style_node::style() const + const std::string & font_style_node::do_style() const OPENVRML_NOTHROW { return this->style_.value(); @@ -262,7 +265,7 @@ * @return @c true if the text should be rendered top-to-bottom, or * @c false if the text should be rendered bottom-to-top. */ - bool font_style_node::top_to_bottom() const OPENVRML_NOTHROW + bool font_style_node::do_top_to_bottom() const OPENVRML_NOTHROW { return this->topToBottom.value(); } Modified: trunk/src/node/vrml97/image_texture.cpp =================================================================== --- trunk/src/node/vrml97/image_texture.cpp 2009-03-29 04:34:20 UTC (rev 3872) +++ trunk/src/node/vrml97/image_texture.cpp 2009-03-30 02:30:12 UTC (rev 3873) @@ -64,9 +64,8 @@ const boost::shared_ptr<openvrml::scope> & scope); virtual ~image_texture_node() OPENVRML_NOTHROW; - virtual const openvrml::image & image() const OPENVRML_NOTHROW; - private: + virtual const openvrml::image & do_image() const OPENVRML_NOTHROW; virtual openvrml::viewer::texture_object_t do_render_texture(openvrml::viewer & v); @@ -216,7 +215,7 @@ * @return the image. */ const openvrml::image & - image_texture_node::image() const OPENVRML_NOTHROW + image_texture_node::do_image() const OPENVRML_NOTHROW { return this->image_; } Modified: trunk/src/node/vrml97/material.cpp =================================================================== --- trunk/src/node/vrml97/material.cpp 2009-03-29 04:34:20 UTC (rev 3872) +++ trunk/src/node/vrml97/material.cpp 2009-03-30 02:30:12 UTC (rev 3873) @@ -49,17 +49,19 @@ const boost::shared_ptr<openvrml::scope> & scope); virtual ~material_node() OPENVRML_NOTHROW; + private: // // material_node implementation // - virtual float ambient_intensity() const OPENVRML_NOTHROW; - virtual const openvrml::color & diffuse_color() const OPENVRML_NOTHROW; - virtual const openvrml::color & emissive_color() const + virtual float do_ambient_intensity() const OPENVRML_NOTHROW; + virtual const openvrml::color & do_diffuse_color() const OPENVRML_NOTHROW; - virtual float shininess() const OPENVRML_NOTHROW; - virtual const openvrml::color & specular_color() const + virtual const openvrml::color & do_emissive_color() const OPENVRML_NOTHROW; - virtual float transparency() const OPENVRML_NOTHROW; + virtual float do_shininess() const OPENVRML_NOTHROW; + virtual const openvrml::color & do_specular_color() const + OPENVRML_NOTHROW; + virtual float do_transparency() const OPENVRML_NOTHROW; }; /** @@ -141,7 +143,7 @@ * * @return the ambient intensity. */ - float material_node::ambient_intensity() const OPENVRML_NOTHROW + float material_node::do_ambient_intensity() const OPENVRML_NOTHROW { return this->ambient_intensity_.sffloat::value(); } @@ -152,7 +154,7 @@ * @return the diffuse color. */ const openvrml::color & - material_node::diffuse_color() const OPENVRML_NOTHROW + material_node::do_diffuse_color() const OPENVRML_NOTHROW { return this->diffuse_color_.sfcolor::value(); } @@ -163,7 +165,7 @@ * @return the emissive color. */ const openvrml::color & - material_node::emissive_color() const OPENVRML_NOTHROW + material_node::do_emissive_color() const OPENVRML_NOTHROW { return this->emissive_color_.sfcolor::value(); } @@ -173,7 +175,7 @@ * * @return the shininess. */ - float material_node::shininess() const OPENVRML_NOTHROW + float material_node::do_shininess() const OPENVRML_NOTHROW { return this->shininess_.sffloat::value(); } @@ -184,7 +186,7 @@ * @return the specular color. */ const openvrml::color & - material_node::specular_color() const OPENVRML_NOTHROW + material_node::do_specular_color() const OPENVRML_NOTHROW { return this->specular_color_.sfcolor::value(); } @@ -194,7 +196,7 @@ * * @return the transparency. */ - float material_node::transparency() const OPENVRML_NOTHROW + float material_node::do_transparency() const OPENVRML_NOTHROW { return this->transparency_.sffloat::value(); } Modified: trunk/src/node/vrml97/movie_texture.cpp =================================================================== --- trunk/src/node/vrml97/movie_texture.cpp 2009-03-29 04:34:20 UTC (rev 3872) +++ trunk/src/node/vrml97/movie_texture.cpp 2009-03-30 02:30:12 UTC (rev 3873) @@ -75,13 +75,14 @@ const boost::shared_ptr<openvrml::scope> & scope); virtual ~movie_texture_node() OPENVRML_NOTHROW; - virtual const openvrml::image & image() const OPENVRML_NOTHROW; - private: virtual void do_initialize(double timestamp) OPENVRML_THROW1(std::bad_alloc); virtual void do_shutdown(double timestamp) OPENVRML_NOTHROW; + + virtual const openvrml::image & do_image() const OPENVRML_NOTHROW; virtual openvrml::viewer::texture_object_t do_render_texture(openvrml::viewer & v); + virtual void do_update(double time); }; @@ -414,7 +415,7 @@ * @return the image. */ const openvrml::image & - movie_texture_node::image() const OPENVRML_NOTHROW + movie_texture_node::do_image() const OPENVRML_NOTHROW { return this->image_; } Modified: trunk/src/node/vrml97/navigation_info.cpp =================================================================== --- trunk/src/node/vrml97/navigation_info.cpp 2009-03-29 04:34:20 UTC (rev 3872) +++ trunk/src/node/vrml97/navigation_info.cpp 2009-03-30 02:30:12 UTC (rev 3873) @@ -486,7 +486,7 @@ * @return the avatar size. */ const std::vector<float> & -openvrml_node_vrml97::navigation_info_node::avatar_size() const +openvrml_node_vrml97::navigation_info_node::do_avatar_size() const OPENVRML_NOTHROW { return this->avatar_size_.mffloat::value(); @@ -497,7 +497,7 @@ * * @return @c true if the headlight is on; @c false otherwise. */ -bool openvrml_node_vrml97::navigation_info_node::headlight() const +bool openvrml_node_vrml97::navigation_info_node::do_headlight() const OPENVRML_NOTHROW { return this->headlight_.sfbool::value(); @@ -508,7 +508,7 @@ * * @return the speed. */ -float openvrml_node_vrml97::navigation_info_node::speed() const +float openvrml_node_vrml97::navigation_info_node::do_speed() const OPENVRML_NOTHROW { return this->speed_.sffloat::value(); @@ -520,7 +520,7 @@ * @return the navigation type. */ const std::vector<std::string> & -openvrml_node_vrml97::navigation_info_node::type() const OPENVRML_NOTHROW +openvrml_node_vrml97::navigation_info_node::do_type() const OPENVRML_NOTHROW { return this->type_.mfstring::value(); } @@ -530,7 +530,7 @@ * * @return the visibility limit. */ -float openvrml_node_vrml97::navigation_info_node::visibility_limit() const +float openvrml_node_vrml97::navigation_info_node::do_visibility_limit() const OPENVRML_NOTHROW { return this->visibility_limit_.sffloat::value(); Modified: trunk/src/node/vrml97/navigation_info.h =================================================================== --- trunk/src/node/vrml97/navigation_info.h 2009-03-29 04:34:20 UTC (rev 3872) +++ trunk/src/node/vrml97/naviga... [truncated message content] |
From: <br...@us...> - 2009-03-30 04:23:46
|
Revision: 3874 http://openvrml.svn.sourceforge.net/openvrml/?rev=3874&view=rev Author: braden Date: 2009-03-30 04:23:36 +0000 (Mon, 30 Mar 2009) Log Message: ----------- Expose the types openvrml::null_node_metatype and openvrml::null_node_type. Modified Paths: -------------- trunk/ChangeLog trunk/src/libopenvrml/openvrml/browser.cpp trunk/src/libopenvrml/openvrml/browser.h trunk/src/libopenvrml/openvrml/node.cpp trunk/src/libopenvrml/openvrml/node.h Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-30 02:30:12 UTC (rev 3873) +++ trunk/ChangeLog 2009-03-30 04:23:36 UTC (rev 3874) @@ -1,3 +1,18 @@ +2009-03-30 Braden McDaniel <br...@en...> + + Expose the types openvrml::null_node_metatype and + openvrml::null_node_type. + + * src/libopenvrml/openvrml/browser.cpp: Removed + openvrml::null_node_metatype and openvrml::null_node_type. + * src/libopenvrml/openvrml/browser.h: No longer need to declare + openvrml::null_node_metatype and openvrml::null_node_type. + * src/libopenvrml/openvrml/node.cpp: Moved definitions of member + functions of openvrml::null_node_metatype and + openvrml::null_node_type here. + * src/libopenvrml/openvrml/node.h: Moved definitions of + openvrml::null_node_metatype and openvrml::null_node_type here. + 2009-03-29 Braden McDaniel <br...@en...> Use the nonvirtual interface pattern consistently with the Modified: trunk/src/libopenvrml/openvrml/browser.cpp =================================================================== --- trunk/src/libopenvrml/openvrml/browser.cpp 2009-03-30 02:30:12 UTC (rev 3873) +++ trunk/src/libopenvrml/openvrml/browser.cpp 2009-03-30 04:23:36 UTC (rev 3874) @@ -55,38 +55,6 @@ * @brief Classes that manage the scene. */ -namespace openvrml { - - class OPENVRML_LOCAL null_node_metatype : public node_metatype { - public: - explicit null_node_metatype(openvrml::browser & browser) - OPENVRML_NOTHROW; - virtual ~null_node_metatype() OPENVRML_NOTHROW; - - private: - virtual const boost::shared_ptr<node_type> - do_create_type(const std::string & id, - const node_interface_set & interfaces) const - OPENVRML_NOTHROW; - }; - - - class OPENVRML_LOCAL null_node_type : public node_type { - public: - explicit null_node_type(null_node_metatype & nodeClass) - OPENVRML_NOTHROW; - virtual ~null_node_type() OPENVRML_NOTHROW; - - private: - virtual const node_interface_set & do_interfaces() const - OPENVRML_NOTHROW; - virtual const boost::intrusive_ptr<node> - do_create_node(const boost::shared_ptr<openvrml::scope> & scope, - const initial_value_map & initial_values) const - OPENVRML_NOTHROW; - }; -} // namespace openvrml - namespace { class OPENVRML_LOCAL default_navigation_info : @@ -2567,50 +2535,3 @@ boost::mutex::scoped_lock(this->err_mutex_); *this->err_ << str << std::endl; } - - -openvrml::null_node_metatype::null_node_metatype(openvrml::browser & browser) - OPENVRML_NOTHROW: - node_metatype("urn:X-openvrml:node:null", browser) -{} - -openvrml::null_node_metatype::~null_node_metatype() OPENVRML_NOTHROW -{} - -const boost::shared_ptr<openvrml::node_type> -openvrml::null_node_metatype:: -do_create_type(const std::string &, const node_interface_set &) const - OPENVRML_NOTHROW -{ - assert(false); - static const boost::shared_ptr<node_type> nodeType; - return nodeType; -} - - -openvrml::null_node_type::null_node_type(null_node_metatype & nodeClass) - OPENVRML_NOTHROW: - node_type(nodeClass, std::string()) -{} - -openvrml::null_node_type::~null_node_type() OPENVRML_NOTHROW -{} - -const openvrml::node_interface_set & -openvrml::null_node_type::do_interfaces() const OPENVRML_NOTHROW -{ - assert(false); - static const node_interface_set interfaces; - return interfaces; -} - -const boost::intrusive_ptr<openvrml::node> -openvrml::null_node_type:: -do_create_node(const boost::shared_ptr<openvrml::scope> &, - const initial_value_map &) const - OPENVRML_NOTHROW -{ - assert(false); - static const boost::intrusive_ptr<node> node; - return node; -} Modified: trunk/src/libopenvrml/openvrml/browser.h =================================================================== --- trunk/src/libopenvrml/openvrml/browser.h 2009-03-30 02:30:12 UTC (rev 3873) +++ trunk/src/libopenvrml/openvrml/browser.h 2009-03-30 04:23:36 UTC (rev 3874) @@ -176,8 +176,6 @@ class viewer; class scene; - class null_node_metatype; - class null_node_type; namespace local { struct vrml97_parse_actions; Modified: trunk/src/libopenvrml/openvrml/node.cpp =================================================================== --- trunk/src/libopenvrml/openvrml/node.cpp 2009-03-30 02:30:12 UTC (rev 3873) +++ trunk/src/libopenvrml/openvrml/node.cpp 2009-03-30 04:23:36 UTC (rev 3874) @@ -927,6 +927,51 @@ /** + * @class openvrml::null_node_metatype openvrml/node.h + * + * @brief A placeholder @c node_metatype. + * + * The @c null_node_metatype is provided for convenience for the uncommon (but + * not inconceivable) situation where one needs something that acts like a + * @c node, yet isn't a full-fleged node with proper @c node_metatype and + * @c node_type implementations. + * + * @sa openvrml::null_node_type + */ + +/** + * @brief Construct. + * + * @param browser a @c browser. + */ +openvrml::null_node_metatype::null_node_metatype(openvrml::browser & browser) + OPENVRML_NOTHROW: + node_metatype("urn:X-openvrml:node:null", browser) +{} + +/** + * @brief Destroy. + */ +openvrml::null_node_metatype::~null_node_metatype() OPENVRML_NOTHROW +{} + +/** + * @brief Do not call. + * + * @warning Correct code will not call this function. + */ +const boost::shared_ptr<openvrml::node_type> +openvrml::null_node_metatype:: +do_create_type(const std::string &, const node_interface_set &) const + OPENVRML_NOTHROW +{ + assert(false); + static const boost::shared_ptr<node_type> type; + return type; +} + + +/** * @typedef openvrml::initial_value_map * * @brief A map of the initial values with which a @c node is instantiated. @@ -1127,6 +1172,63 @@ /** + * @class openvrml::null_node_type openvrml/node.h + * + * @brief A placeholder @c node_type. + * + * The @c null_node_type is provided for convenience for the uncommon (but not + * inconceivable) situation where one needs something that acts like a + * @c node, yet isn't a full-fleged node with proper @c node_metatype and + * @c node_type implementations. + * + * @sa openvrml::null_node_metatype + */ + +/** + * @brief Construct. + */ +openvrml::null_node_type::null_node_type(null_node_metatype & metatype) + OPENVRML_NOTHROW: + node_type(metatype, std::string()) +{} + +/** + * @brief Destroy. + */ +openvrml::null_node_type::~null_node_type() OPENVRML_NOTHROW +{} + +/** + * @brief Do not call. + * + * @warning Correct code will not call this function. + */ +const openvrml::node_interface_set & +openvrml::null_node_type::do_interfaces() const OPENVRML_NOTHROW +{ + assert(false); + static const node_interface_set interfaces; + return interfaces; +} + +/** + * @brief Do not call. + * + * @warning Correct code will not call this function. + */ +const boost::intrusive_ptr<openvrml::node> +openvrml::null_node_type:: +do_create_node(const boost::shared_ptr<openvrml::scope> &, + const initial_value_map &) const + OPENVRML_NOTHROW +{ + assert(false); + static const boost::intrusive_ptr<node> node; + return node; +} + + +/** * @class openvrml::field_value_type_mismatch openvrml/node.h * * @brief Thrown when field value types do not match, generally in a @c ROUTE Modified: trunk/src/libopenvrml/openvrml/node.h =================================================================== --- trunk/src/libopenvrml/openvrml/node.h 2009-03-30 02:30:12 UTC (rev 3873) +++ trunk/src/libopenvrml/openvrml/node.h 2009-03-30 04:23:36 UTC (rev 3874) @@ -274,6 +274,20 @@ }; + class OPENVRML_API null_node_metatype : public node_metatype { + public: + explicit null_node_metatype(openvrml::browser & browser) + OPENVRML_NOTHROW; + virtual ~null_node_metatype() OPENVRML_NOTHROW; + + private: + virtual const boost::shared_ptr<node_type> + do_create_type(const std::string & id, + const node_interface_set & interfaces) const + OPENVRML_NOTHROW; + }; + + typedef std::map<std::string, boost::shared_ptr<field_value> > initial_value_map; @@ -316,6 +330,22 @@ OPENVRML_NOTHROW; + class OPENVRML_API null_node_type : public node_type { + public: + explicit null_node_type(null_node_metatype & nodeClass) + OPENVRML_NOTHROW; + virtual ~null_node_type() OPENVRML_NOTHROW; + + private: + virtual const node_interface_set & do_interfaces() const + OPENVRML_NOTHROW; + virtual const boost::intrusive_ptr<node> + do_create_node(const boost::shared_ptr<openvrml::scope> & scope, + const initial_value_map & initial_values) const + OPENVRML_NOTHROW; + }; + + class OPENVRML_API field_value_type_mismatch : public std::logic_error { public: field_value_type_mismatch(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-03-30 08:28:51
|
Revision: 3875 http://openvrml.svn.sourceforge.net/openvrml/?rev=3875&view=rev Author: braden Date: 2009-03-30 08:28:46 +0000 (Mon, 30 Mar 2009) Log Message: ----------- Removed some stray semicolons. Modified Paths: -------------- trunk/ChangeLog trunk/src/libopenvrml/openvrml/node.h trunk/src/libopenvrml/openvrml/vrml97_grammar.h trunk/src/openvrml-xembed/browser.cpp trunk/src/openvrml-xembed/browserfactory.cpp Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-30 04:23:36 UTC (rev 3874) +++ trunk/ChangeLog 2009-03-30 08:28:46 UTC (rev 3875) @@ -1,5 +1,14 @@ 2009-03-30 Braden McDaniel <br...@en...> + Removed some stray semicolons. + + * src/libopenvrml/openvrml/node.h + * src/libopenvrml/openvrml/vrml97_grammar.h + * src/openvrml-xembed/browser.cpp + * src/openvrml-xembed/browserfactory.cpp + +2009-03-30 Braden McDaniel <br...@en...> + Expose the types openvrml::null_node_metatype and openvrml::null_node_type. Modified: trunk/src/libopenvrml/openvrml/node.h =================================================================== --- trunk/src/libopenvrml/openvrml/node.h 2009-03-30 04:23:36 UTC (rev 3874) +++ trunk/src/libopenvrml/openvrml/node.h 2009-03-30 08:28:46 UTC (rev 3875) @@ -397,7 +397,7 @@ namespace local { class proto_node; class externproto_node; - }; + } class OPENVRML_API node : boost::noncopyable { friend class local::proto_node; Modified: trunk/src/libopenvrml/openvrml/vrml97_grammar.h =================================================================== --- trunk/src/libopenvrml/openvrml/vrml97_grammar.h 2009-03-30 04:23:36 UTC (rev 3874) +++ trunk/src/libopenvrml/openvrml/vrml97_grammar.h 2009-03-30 08:28:46 UTC (rev 3875) @@ -623,7 +623,7 @@ ; match_t match = rule.parse(scan); return match.length(); - }; + } }; const boost::spirit::functor_parser<image_parser> image_p; Modified: trunk/src/openvrml-xembed/browser.cpp =================================================================== --- trunk/src/openvrml-xembed/browser.cpp 2009-03-30 04:23:36 UTC (rev 3874) +++ trunk/src/openvrml-xembed/browser.cpp 2009-03-30 08:28:46 UTC (rev 3875) @@ -512,7 +512,7 @@ G_DEFINE_TYPE(OpenvrmlXembedBrowserPlug, openvrml_xembed_browser_plug, - GTK_TYPE_PLUG); + GTK_TYPE_PLUG) extern "C" { G_GNUC_INTERNAL Modified: trunk/src/openvrml-xembed/browserfactory.cpp =================================================================== --- trunk/src/openvrml-xembed/browserfactory.cpp 2009-03-30 04:23:36 UTC (rev 3874) +++ trunk/src/openvrml-xembed/browserfactory.cpp 2009-03-30 08:28:46 UTC (rev 3875) @@ -38,7 +38,7 @@ G_DEFINE_TYPE(OpenvrmlXembedBrowserFactory, openvrml_xembed_browser_factory, - G_TYPE_OBJECT); + G_TYPE_OBJECT) extern "C" { G_GNUC_INTERNAL This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-03-31 03:25:18
|
Revision: 3876 http://openvrml.svn.sourceforge.net/openvrml/?rev=3876&view=rev Author: braden Date: 2009-03-31 03:25:12 +0000 (Tue, 31 Mar 2009) Log Message: ----------- Removed errant shape_node definition. Modified Paths: -------------- trunk/ChangeLog trunk/src/node/vrml97/scalar_interpolator.cpp Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-30 08:28:46 UTC (rev 3875) +++ trunk/ChangeLog 2009-03-31 03:25:12 UTC (rev 3876) @@ -1,5 +1,10 @@ 2009-03-30 Braden McDaniel <br...@en...> + * src/node/vrml97/scaler_interpolator.cpp: Removed errant + shape_node definition. + +2009-03-30 Braden McDaniel <br...@en...> + Removed some stray semicolons. * src/libopenvrml/openvrml/node.h Modified: trunk/src/node/vrml97/scalar_interpolator.cpp =================================================================== --- trunk/src/node/vrml97/scalar_interpolator.cpp 2009-03-30 08:28:46 UTC (rev 3875) +++ trunk/src/node/vrml97/scalar_interpolator.cpp 2009-03-31 03:25:12 UTC (rev 3876) @@ -62,31 +62,6 @@ }; - class OPENVRML_LOCAL shape_node : public openvrml::node_impl_util::abstract_node<shape_node>, - public openvrml::child_node { - friend class shape_metatype; - - exposedfield<openvrml::sfnode> appearance_; - exposedfield<openvrml::sfnode> geometry_; - openvrml::sfvec3f bbox_center_; - openvrml::sfvec3f bbox_size_; - - openvrml::viewer::object_t viewerObject; - - public: - shape_node(const openvrml::node_type & type, - const boost::shared_ptr<openvrml::scope> & scope); - virtual ~shape_node() OPENVRML_NOTHROW; - - virtual bool modified() const; - - private: - virtual const openvrml::bounding_volume & do_bounding_volume() const; - - virtual void do_render_child(openvrml::viewer & viewer, - openvrml::rendering_context context); - }; - /** * @class scalar_interpolator_node * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-04-01 02:29:01
|
Revision: 3877 http://openvrml.svn.sourceforge.net/openvrml/?rev=3877&view=rev Author: braden Date: 2009-04-01 02:28:51 +0000 (Wed, 01 Apr 2009) Log Message: ----------- Added a dlerror work-alike; use it to emit some diagnostic information if loading a module fails. Modified Paths: -------------- trunk/ChangeLog trunk/src/libopenvrml/openvrml/local/dl.cpp trunk/src/libopenvrml/openvrml/local/dl.h trunk/src/libopenvrml/openvrml/local/node_metatype_registry_impl.cpp Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-31 03:25:12 UTC (rev 3876) +++ trunk/ChangeLog 2009-04-01 02:28:51 UTC (rev 3877) @@ -1,3 +1,16 @@ +2009-03-31 Braden McDaniel <br...@en...> + + Added a dlerror work-alike; use it to emit some diagnostic + information if loading a module fails. + + * src/libopenvrml/openvrml/local/dl.cpp + (openvrml::local::dl::error()): Added function. + * src/libopenvrml/openvrml/local/dl.h: Added declaration of + openvrml::local::dl::error(). + * src/libopenvrml/openvrml/local/node_metatype_registry_impl.cpp + (openvrml_open_node_module(const char *, void *)): Print the + result of openvrml::local::dl::error if module loading fails. + 2009-03-30 Braden McDaniel <br...@en...> * src/node/vrml97/scaler_interpolator.cpp: Removed errant Modified: trunk/src/libopenvrml/openvrml/local/dl.cpp =================================================================== --- trunk/src/libopenvrml/openvrml/local/dl.cpp 2009-03-31 03:25:12 UTC (rev 3876) +++ trunk/src/libopenvrml/openvrml/local/dl.cpp 2009-04-01 02:28:51 UTC (rev 3877) @@ -19,7 +19,6 @@ // # include "dl.h" -# include <string> # include <boost/filesystem.hpp> # include <boost/tokenizer.hpp> @@ -125,6 +124,31 @@ # endif } +const std::string openvrml::local::dl::error() +{ +# ifdef _WIN32 + const DWORD err = GetLastError(); + char * buf = 0; + scope_guard buf_guard = make_guard(LocalFree, boost::ref(buf)); + static const LPCVOID source = 0; + static const DWORD buf_size = 0; + static va_list * const args = 0; + const DWORD buf_chars = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER + | FORMAT_MESSAGE_FROM_SYSTEM, + source, + err, + LANG_USER_DEFAULT, + &buf, + buf_size, + args); + assert(buf_chars != 0); // If FormatMessage failed, just give up. + const std::string buf_str(buf ? buf : ""); + return buf_str; +# else + return lt_dlerror(); +# endif +} + int openvrml::local::dl::close(handle h) { # ifdef _WIN32 Modified: trunk/src/libopenvrml/openvrml/local/dl.h =================================================================== --- trunk/src/libopenvrml/openvrml/local/dl.h 2009-03-31 03:25:12 UTC (rev 3876) +++ trunk/src/libopenvrml/openvrml/local/dl.h 2009-04-01 02:28:51 UTC (rev 3877) @@ -27,6 +27,7 @@ # else # include <ltdl.h> # endif +# include <string> namespace openvrml { @@ -51,6 +52,8 @@ OPENVRML_LOCAL handle open(const char * filename); + OPENVRML_LOCAL const std::string error(); + OPENVRML_LOCAL int close(handle); OPENVRML_LOCAL void * sym(handle, const char * name); Modified: trunk/src/libopenvrml/openvrml/local/node_metatype_registry_impl.cpp =================================================================== --- trunk/src/libopenvrml/openvrml/local/node_metatype_registry_impl.cpp 2009-03-31 03:25:12 UTC (rev 3876) +++ trunk/src/libopenvrml/openvrml/local/node_metatype_registry_impl.cpp 2009-04-01 02:28:51 UTC (rev 3877) @@ -21,6 +21,7 @@ # include "node_metatype_registry_impl.h" # include <openvrml/browser.h> # include <boost/multi_index/detail/scope_guard.hpp> +# include <iostream> # include <sstream> using namespace boost::multi_index::detail; // for scope_guard @@ -37,7 +38,10 @@ *static_cast<node_metatype_registry_impl *>(data); const dl::handle handle = dl::open(filename); - if (!handle) { return 0; } // Ignore things we can't open. + if (!handle) { + std::cerr << dl::error() << std::endl; + return 0; + } scope_guard handle_guard = make_guard(dl::close, handle); // This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-04-01 02:42:43
|
Revision: 3878 http://openvrml.svn.sourceforge.net/openvrml/?rev=3878&view=rev Author: braden Date: 2009-04-01 02:42:37 +0000 (Wed, 01 Apr 2009) Log Message: ----------- Fixes for the Windows implementation of openvrml::local::dl::error(). Modified Paths: -------------- trunk/ChangeLog trunk/src/libopenvrml/openvrml/local/dl.cpp Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-04-01 02:28:51 UTC (rev 3877) +++ trunk/ChangeLog 2009-04-01 02:42:37 UTC (rev 3878) @@ -1,5 +1,11 @@ 2009-03-31 Braden McDaniel <br...@en...> + * src/libopenvrml/openvrml/local/dl.cpp + (openvrml::local::dl::error()): Fixes for the Windows + implementation. + +2009-03-31 Braden McDaniel <br...@en...> + Added a dlerror work-alike; use it to emit some diagnostic information if loading a module fails. Modified: trunk/src/libopenvrml/openvrml/local/dl.cpp =================================================================== --- trunk/src/libopenvrml/openvrml/local/dl.cpp 2009-04-01 02:28:51 UTC (rev 3877) +++ trunk/src/libopenvrml/openvrml/local/dl.cpp 2009-04-01 02:42:37 UTC (rev 3878) @@ -20,8 +20,12 @@ # include "dl.h" # include <boost/filesystem.hpp> +# include <boost/ref.hpp> # include <boost/tokenizer.hpp> +# include <boost/multi_index/detail/scope_guard.hpp> +using namespace boost::multi_index::detail; // for scope_guard + int openvrml::local::dl::init() { # ifdef _WIN32 @@ -138,7 +142,7 @@ source, err, LANG_USER_DEFAULT, - &buf, + reinterpret_cast<LPSTR>(&buf), buf_size, args); assert(buf_chars != 0); // If FormatMessage failed, just give up. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-04-01 06:12:03
|
Revision: 3879 http://openvrml.svn.sourceforge.net/openvrml/?rev=3879&view=rev Author: braden Date: 2009-04-01 06:11:57 +0000 (Wed, 01 Apr 2009) Log Message: ----------- Define OPENVRML_GL_HAVE_GL_GLU_H and OPENVRML_GL_HAVE_WINDOWS_H for the Visual Studio build. Modified Paths: -------------- trunk/ChangeLog trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl-config.h trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-04-01 02:42:37 UTC (rev 3878) +++ trunk/ChangeLog 2009-04-01 06:11:57 UTC (rev 3879) @@ -1,3 +1,11 @@ +2009-04-01 Braden McDaniel <br...@en...> + + Define OPENVRML_GL_HAVE_GL_GLU_H and OPENVRML_GL_HAVE_WINDOWS_H + for the Visual Studio build. + + * ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj + * ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl-config.h + 2009-03-31 Braden McDaniel <br...@en...> * src/libopenvrml/openvrml/local/dl.cpp Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl-config.h =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl-config.h 2009-04-01 02:42:37 UTC (rev 3878) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl-config.h 2009-04-01 06:11:57 UTC (rev 3879) @@ -37,4 +37,7 @@ # define OPENVRML_GL_LOCAL +# define OPENVRML_GL_HAVE_GL_GLU_H 1 +# define OPENVRML_GL_HAVE_WINDOWS_H 1 + # endif // ifndef OPENVRML_GL_CONFIG_H Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj 2009-04-01 02:42:37 UTC (rev 3878) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj 2009-04-01 06:11:57 UTC (rev 3879) @@ -42,7 +42,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories=".;..\openvrml;"..\..\..\..\..\src\libopenvrml-gl";..\..\..\..\..\src\libopenvrml" - PreprocessorDefinitions="HAVE_GL_GLU_H;HAVE_WINDOWS_H;OPENVRML_USE_DLL;OPENVRML_GL_BUILD_DLL" + PreprocessorDefinitions="OPENVRML_USE_DLL;OPENVRML_GL_BUILD_DLL" MinimalRebuild="true" BasicRuntimeChecks="0" RuntimeLibrary="3" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories=".;..\openvrml;"..\..\..\..\..\src\libopenvrml-gl";..\..\..\..\..\src\libopenvrml" - PreprocessorDefinitions="_SECURE_SCL=0;HAVE_GL_GLU_H;HAVE_WINDOWS_H;OPENVRML_GL_BUILD_DLL;OPENVRML_USE_DLL;NDEBUG" + PreprocessorDefinitions="_SECURE_SCL=0;OPENVRML_GL_BUILD_DLL;OPENVRML_USE_DLL;NDEBUG" StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-04-03 06:28:34
|
Revision: 3880 http://openvrml.svn.sourceforge.net/openvrml/?rev=3880&view=rev Author: braden Date: 2009-04-03 06:28:17 +0000 (Fri, 03 Apr 2009) Log Message: ----------- Localize the management of display list and texture object references inside the renderer. Modified Paths: -------------- trunk/ChangeLog trunk/src/libopenvrml/openvrml/browser.cpp trunk/src/libopenvrml/openvrml/node.cpp trunk/src/libopenvrml/openvrml/node.h trunk/src/libopenvrml/openvrml/viewer.cpp trunk/src/libopenvrml/openvrml/viewer.h trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp trunk/src/libopenvrml-gl/openvrml/gl/viewer.h trunk/src/node/vrml97/anchor.cpp trunk/src/node/vrml97/appearance.cpp trunk/src/node/vrml97/background.cpp trunk/src/node/vrml97/background.h trunk/src/node/vrml97/billboard.cpp trunk/src/node/vrml97/box.cpp trunk/src/node/vrml97/cone.cpp trunk/src/node/vrml97/cylinder.cpp trunk/src/node/vrml97/directional_light.cpp trunk/src/node/vrml97/elevation_grid.cpp trunk/src/node/vrml97/extrusion.cpp trunk/src/node/vrml97/fog.cpp trunk/src/node/vrml97/grouping_node_base.h trunk/src/node/vrml97/image_texture.cpp trunk/src/node/vrml97/indexed_face_set.cpp trunk/src/node/vrml97/indexed_line_set.cpp trunk/src/node/vrml97/movie_texture.cpp trunk/src/node/vrml97/pixel_texture.cpp trunk/src/node/vrml97/point_light.cpp trunk/src/node/vrml97/point_set.cpp trunk/src/node/vrml97/proximity_sensor.cpp trunk/src/node/vrml97/shape.cpp trunk/src/node/vrml97/sphere.cpp trunk/src/node/vrml97/spot_light.cpp trunk/src/node/vrml97/text.cpp trunk/src/node/vrml97/texture_transform.cpp trunk/src/node/vrml97/transform.cpp trunk/src/node/vrml97/visibility_sensor.cpp trunk/src/node/x3d-cad-geometry/indexed_quad_set.cpp trunk/src/node/x3d-geometry2d/arc2d.cpp trunk/src/node/x3d-geometry2d/arc_close2d.cpp trunk/src/node/x3d-geometry2d/circle2d.cpp trunk/src/node/x3d-geometry2d/disk2d.cpp trunk/src/node/x3d-geometry2d/polyline2d.cpp trunk/src/node/x3d-geometry2d/polypoint2d.cpp trunk/src/node/x3d-geometry2d/rectangle2d.cpp trunk/src/node/x3d-geometry2d/triangle_set2d.cpp trunk/src/node/x3d-geospatial/geo_elevation_grid.cpp trunk/src/node/x3d-grouping/static_group.cpp trunk/src/node/x3d-nurbs/nurbs_curve.cpp trunk/src/node/x3d-nurbs/nurbs_patch_surface.cpp trunk/src/node/x3d-nurbs/nurbs_swept_surface.cpp trunk/src/node/x3d-nurbs/nurbs_swung_surface.cpp trunk/src/node/x3d-nurbs/nurbs_trimmed_surface.cpp trunk/src/node/x3d-rendering/indexed_triangle_fan_set.cpp trunk/src/node/x3d-rendering/indexed_triangle_set.cpp trunk/src/node/x3d-rendering/indexed_triangle_strip_set.cpp trunk/src/node/x3d-rendering/triangle_fan_set.cpp trunk/src/node/x3d-rendering/triangle_set.cpp trunk/src/node/x3d-rendering/triangle_strip_set.cpp Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-04-01 06:11:57 UTC (rev 3879) +++ trunk/ChangeLog 2009-04-03 06:28:17 UTC (rev 3880) @@ -1,3 +1,354 @@ +2009-04-03 Braden McDaniel <br...@en...> + + Localize the management of display list and texture object + references inside the renderer. + + * src/libopenvrml/openvrml/browser.cpp: Include viewer.h. + * src/libopenvrml/openvrml/node.cpp + (openvrml::geometry_node::geometry_node(const node_type &, const + boost::shared_ptr<openvrml::scope> &)): Removed geometry_reference + member. + (openvrml::geometry_node::render_geometry(viewer &, + rendering_context)): Return void; we don't need to manage the + geometry_reference anymore. + (openvrml::geometry_node::do_render_geometry(viewer &, + rendering_context)): Return void. + (openvrml::texture_node::texture_node(const node_type &, const + boost::shared_ptr<openvrml::scope> &)): Removed texture_reference + member. + (openvrml::texture_node::render_texture(viewer &)): Return void; + we don't need to manage the texture_reference anymore. + (openvrml::texture_node::do_render_texture(viewer &)): Return + void. + * src/libopenvrml/openvrml/node.h + (openvrml::geometry_node): Removed geometry_reference and + geometry_reference_mutex_ members. + (openvrml::texture_node): Removed texture_reference and + texture_reference_mutex_ members. + * src/libopenvrml/openvrml/viewer.cpp + (openvrml::viewer::insert_background(const std::vector<float> &, + const std::vector<color> &, const std::vector<float> &, const + std::vector<color> &, const texture_node &, const texture_node &, + const texture_node &, const texture_node &, const texture_node &, + const texture_node &)): Pass openvrml::texture_node for the + textures instead of openvrml::image. + (openvrml::viewer::insert_box(const geometry_node &, const + vec3f&)): Pass the geometry_node as the first parameter. + (openvrml::viewer::insert_cone(const geometry_node &, float, + float, bool, bool)): Pass the geometry_node as the first + parameter. + (openvrml::viewer::insert_cylinder(const geometry_node &, float, + float, bool, bool, bool)): Pass the geometry_node as the first + parameter. + (openvrml::viewer::insert_elevation_grid(const geometry_node &, + unsigned int, const std::vector<float> &, int32, int32, const + std::vector<vec3f> &, const std::vector<vec2f> &)): Pass the + geometry_node as the first parameter. + (openvrml::viewer::insert_extrusion(const geometry_node &, + unsigned int, const std::vector<vec3f> &, const + std::vector<vec2f>&, const std::vector<rotation> &, const + std::vector<vec2f> &)): Pass the geometry_node as the first + parameter. + (openvrml::viewer::insert_line_set(const geometry_node &, const + std::vector<vec3f> &, const std::vector<int32> &, bool, const + std::vector<color> &, const std::vector<int32> &)): Pass the + geometry_node as the first parameter. + (openvrml::viewer::insert_point_set(const geometry_node &, const + std::vector<vec3f> &, const std::vector<color> &)): Pass the + geometry_node as the first parameter. + (openvrml::viewer::insert_shell(const geometry_node &, unsigned + int, const std::vector<vec3f> &, const std::vector<int32> &, const + std::vector<color> &, const std::vector<int32> &, const + std::vector<vec3f> &, const std::vector<int32> &, const + std::vector<vec2f> &, const std::vector<int32> &)): Pass the + geometry_node as the first parameter. + (openvrml::viewer::insert_sphere(const geometry_node &, float)): + Pass the geometry_node as the first parameter. + (openvrml::viewer::insert_reference(object_t)): Removed. + (openvrml::viewer::remove_object(const node &)): Take a node + reference instead of an object_t. + (openvrml::viewer::insert_texture(const texture_node &, bool)): + Take a texture_node instead of an image; return void. + (openvrml::viewer::insert_texture_reference(texture_object_t, + size_t)): Removed. + (openvrml::viewer::remove_texture_object(const texture_node &)): + Take a texture_node instead of a texture_object_t. + * src/libopenvrml/openvrml/viewer.h + (openvrml::viewer): Removed texture_object_t typedef; pass + texture_nodes to insert_background instead of images; pass + geometry_node & as the first parameter of insert_box, insert_cone, + insert_cylinder, insert_elevation_grid, insert_extrusion, + insert_line_set, insert_point_set, insert_shell, and + insert_sphere; pass texture_node & to insert_texture instead of an + image; removed insert_reference and insert_texture_reference. + * src/libopenvrml-gl/openvrml/gl/viewer.cpp + (openvrml::gl::viewer::do_insert_background(const + std::vector<float> &, const std::vector<color> &, const + std::vector<float> &, const std::vector<color> &, const + texture_node &, const texture_node &, const texture_node &, const + texture_node &, const texture_node &, const texture_node &)): Get + the textures from the texture_nodes instead of the images. + (openvrml::gl::viewer::do_insert_box(const geometry_node &, const + vec3f &)): Store/retrieve the display list in list_map_. + (openvrml::gl::viewer::do_insert_cone(const geometry_node &, + float, float, bool, bool)): Store/retrieve the display list in + list_map_. + (openvrml::gl::viewer::do_insert_cylinder(const geometry_node &, + float, float, bool, bool, bool)): Store/retrieve the display list + in list_map_. + (openvrml::gl::viewer::do_insert_elevation_grid(const + geometry_node &, unsigned int, const std::vector<float> &, int32, + int32, const std::vector<vec3f> &, const std::vector<vec2f> &)): + Store/retrieve the display list in list_map_. + (openvrml::gl::viewer::do_insert_extrusion(const geometry_node &, + unsigned int, const std::vector<vec3f> &, const + std::vector<vec2f>&, const std::vector<rotation> &, const + std::vector<vec2f> &)): Store/retrieve the display list in + list_map_. + (openvrml::gl::viewer::do_insert_line_set(const geometry_node &, + const std::vector<vec3f> &, const std::vector<int32> &, bool, + const std::vector<color> &, const std::vector<int32> &)): + Store/retrieve the display list in list_map_. + (openvrml::gl::viewer::do_insert_point_set(const geometry_node &, + const std::vector<vec3f> &, const std::vector<color> &)): + Store/retrieve the display list in list_map_. + (openvrml::gl::viewer::do_insert_shell(const geometry_node &, + unsigned int, const std::vector<vec3f> &, const + std::vector<int32>&, const std::vector<color> &, const + std::vector<int32> &, const std::vector<vec3f> &, const + std::vector<int32> &, const std::vector<vec2f> &, const + std::vector<int32> &)): Store/retrieve the display list in + list_map_. + (openvrml::gl::viewer::do_insert_sphere(const geometry_node &, + float)): Store/retrieve the display list in list_map_. + (openvrml::gl::viewer::do_insert_reference(object_t)): Removed. + (openvrml::gl::viewer::do_remove_object(const node &)): Retrieve + the display list to delete from list_map_. + (openvrml::gl::viewer::do_insert_texture(const texture_node &, + bool)): Store/retrieve the texture object reference in + texture_map_. + (openvrml::gl::viewer::do_insert_texture_reference(texture_object_t, + size_t)): Removed. + (openvrml::gl::viewer::do_remove_texture_object(const + texture_node&)): Retrieve the texture object to delete from + texture_map_. + * src/libopenvrml-gl/openvrml/gl/viewer.h + (openvrml::gl::viewer): Added members list_map_ and texture_map_. + * src/node/vrml97/anchor.cpp: Reorderd includes for consistency. + * src/node/vrml97/appearance.cpp: Include <openvrml/viewer.h>. + * src/node/vrml97/background.cpp + (openvrml_node_vrml97::background_metatype::background_metatype(openvrml::browser&)): + Initialize null_texture_node_metatype_ and null_texture_node_type_ + members. + (null_texture_node): A "null" texture_node implementation to + provide the default background. + (openvrml_node_vrml97::background_metatype::do_render(openvrml::viewer&) + const): Use null_texture_node for the default background textures. + (openvrml_node_vrml97::background_node::texture_url_exposedfield::texture_url_exposedfield(background_node&, + bool background_node::*)): Removed. + (openvrml_node_vrml97::background_node::texture_url_exposedfield::texture_url_exposedfield(const + texture_url_exposedfield &)): Removed. + (openvrml_node_vrml97::background_node::texture_url_exposedfield::~texture_url_exposedfield()): + Removed. + (openvrml_node_vrml97::background_node::texture_url_exposedfield::do_clone() + const): Removed. + (openvrml_node_vrml97::background_node::texture_url_exposedfield::event_side_effect(const + openvrml::mfstring &, double)): Removed. + (openvrml_node_vrml97::background_node::background_node(const + openvrml::node_type &, const + boost::shareed_ptr<openvrml::scope>&)): Don't need to pass the + update flag pointer to the url fields; removed initialization of + the update flags; construct ImageTexture nodes to provide the + textures. + (openvrml_node_vrml97::background_node::update_textures()): + Removed. + (null_scope_ptr): Something to hand off to the null_texture_node + base class constructors. + (null_texture_node::null_texture_node(const + openvrml::null_node_type &)): Added null_texture_node constructor. + (null_texture_node::~null_texture_node()): Added null_texture_node + destructor. + (null_texture_node::do_field(const std::string &, const + openvrml::field_value &)): Do-nothing (but crash) implementation. + (null_texture_node::do_field(const std::string &) const)): + Do-nothing (but crash) implementation. + (null_texture_node::do_process_event(const std::string &, const + openvrml::field_value &, double)): Do-nothing (but crash) + implementation. + (null_texture_node::do_eventout(const std::string &) const)): + Do-nothing (but crash) implementation. + (null_texture_node::do_event_listener(const std::string &)): + Do-nothing (but crash) implementation. + (null_texture_node::do_event_emitter(const std::string &)): + Do-nothing (but crash) implementation. + (null_texture_node::do_image() const): Return an empty + openvrml::image. + (null_texture_node::do_repeat_s() const): Return false. + (null_texture_node::do_repeat_t() const): Return false. + * src/node/vrml97/background.h + (openvrml_node_vrml97::background_metatype): Added members + null_texture_node_metatype_ and null_texture_node_type_. + (openvrml_node_vrml97::background_node): Removed + texture_url_exposedfield; changed back_url_, bottom_url_, + front_url_, left_url_, right_url, and top_url_ to + exposedfield<openvrml::mfstring>; changed front, back, left, + right, top, and bottom to + boost::intrusive_ptr<openvrml::texture_node>; removed texture + mutex and update flag members; removed update_textures member + function. + * src/node/vrml97/billboard.cpp + (billboard_node): Removed xformObject member. + (billboard_node::billboard_node(const openvrml::node_type &, const + boost::shared_ptr<openvrml::scope> &)): Removed initialization of + xformObject. + (billboard_node::do_render_child(openvrml::viewer &, + openvrml::rendering_context)): Removed code to manage xformObject. + * src/node/vrml97/box.cpp + (box_node::do_render_geometry(openvrml::viewer &, + openvrml::rendering_context)): Return void. + * src/node/vrml97/cone.cpp + (cone_node::do_render_geometry(openvrml::viewer &, + openvrml::rendering_context)): Return void. + * src/node/vrml97/cylinder.cpp + (cylinder_node::do_render_geometry(openvrml::viewer &, + openvrml::rendering_context)): Return void. + * src/node/vrml97/directional_light.cpp: Include + <openvrml/viewer.h>. + * src/node/vrml97/elevation_grid.cpp + (elevation_grid_node::do_render_geometry(openvrml::viewer &, + openvrml::rendering_context)): Return void. + * src/node/vrml97/extrusion.cpp + (extrusion_node::do_render_geometry(openvrml::viewer &, + openvrml::rendering_context)): Return void. + * src/node/vrml97/fog.cpp: Include <openvrml/viewer.h>. + * src/node/vrml97/grouping_node_base.h + (openvrml_node_vrml97::grouping_node_base<Derived>): Removed + viewerObject member. + (openvrml_node_vrml97::grouping_node_base<Derived>::grouping_node_base(const + openvrml::node_type &, const + boost::shared_ptr<openvrml::scope>&)): Removed initialization of + viewerObject. + (openvrml_node_vrml97::grouping_node_base<Derived>::render_nocull(openvrml::viewer&, + openvrml::rendering_context)): Removed code to manage + viewerObject. + * src/node/vrml97/image_texture.cpp + (image_texture_node::do_render_texture(openvrml::viewer &)): + Return void. + * src/node/vrml97/indexed_face_set.cpp + (indexed_face_set::do_render_geometry(openvrml::viewer &, + openvrml::rendering_context)): Return void. + * src/node/vrml97/indexed_line_set.cpp + (indexed_line_set::do_render_geometry(openvrml::viewer &, + openvrml::rendering_context)): Return void. + * src/node/vrml97/movie_texture.cpp + (movie_texture_node::do_render_texture(openvrml::viewer &)): + Return void. + * src/node/vrml97/pixel_texture.cpp + (pixel_texture_node::do_render_texture(openvrml::viewer &)): + Return void. + * src/node/vrml97/point_light.cpp: Include <openvrml/viewer.h>. + * src/node/vrml97/point_set.cpp + (point_set::do_render_geometry(openvrml::viewer &, + openvrml::rendering_context)): Return void. + * src/node/vrml97/proximity_sensor.cpp: Include + <openvrml/viewer.h>. + * src/node/vrml97/sphere.cpp + (sphere::do_render_geometry(openvrml::viewer &, + openvrml::rendering_context)): Return void. + * src/node/vrml97/spot_light.cpp: Include <openvrml/viewer.h>. + * src/node/vrml97/shape.cpp + (shape_node): Removed viewerObject member. + (shape_node::shape_node(const openvrml::node_type &, const + boost::shared_ptr<openvrml::scope> &)): Removed initialization of + viewerObject. + (shape_node::do_render_child(openvrml::viewer &, + openvrml::rendering_context)): Removed code to manage + viewerObject. + * src/node/vrml97/text.cpp + (text::do_render_geometry(openvrml::viewer &, + openvrml::rendering_context)): Return void. + * src/node/vrml97/texture_transform.cpp: Include + <openvrml/viewer.h>. + * src/node/vrml97/transform.cpp + (transform_node): Removed xformObject member. + (transform_node::transform_node(const openvrml::node_type &, const + boost::shared_ptr<openvrml::scope> &)): Removed initialization of + xformObject. + (transform_node::do_render_child(openvrml::viewer &, + openvrml::rendering_context)): Removed code to manage xformObject. + * src/node/vrml97/visibility_sensor.cpp: Include + <openvrml/viewer.h>. + * src/node/x3d-cad-geometry/indexed_quad_set.cpp + (indexed_quad_set::do_render_geometry(openvrml::viewer &, + openvrml::rendering_context)): Return void. + * src/node/x3d-geospatial/geo_elevation_grid.cpp + (geo_elevation_grid_node::do_render_geometry(openvrml::viewer &, + rendering_context)): Return void. + * src/node/x3d-grouping/static_group.cpp + (static_group_node): Removed viewerObject member. + (static_group_node::render_nocull(openvrml::viewer &, + rendering_context)): Removed code to manage viewerObject. + (static_group_node::static_group_node(const node_type &, const + boost::shared_ptr<openvrml::scope> &)): Removed viewerObject + initialization. + * src/node/x3d-nurbs/nurbs_curve.cpp + (nurbs_curve_node::do_render_geometry(openvrml::viewer &, + rendering_context)): Return void. + * src/node/x3d-nurbs/nurbs_patch_surface.cpp + (nurbs_patch_surface_node::do_render_geometry(openvrml::viewer &, + rendering_context)): Return void. + * src/node/x3d-nurbs/nurbs_trimmed_surface.cpp + (nurbs_trimmed_surface_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + * src/node/x3d-nurbs/nurbs_swept_surface.cpp + (nurbs_swept_surface_node::do_render_geometry(openvrml::viewer &, + rendering_context)): Return void. + * src/node/x3d-nurbs/nurbs_swung_surface.cpp + (nurbs_swung_surface_node::do_render_geometry(openvrml::viewer &, + rendering_context)): Return void. + * src/node/x3d-rendering/indexed_triangle_fan_set.cpp + (indexed_triangle_fan_set_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + * src/node/x3d-rendering/indexed_triangle_set.cpp + (indexed_triangle_set_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + * src/node/x3d-rendering/indexed_triangle_strip_set.cpp + (indexed_triangle_strip_set_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + * src/node/x3d-rendering/triangle_fan_set.cpp + (triangle_fan_set_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + * src/node/x3d-rendering/triangle_set.cpp + (triangle_set_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + * src/node/x3d-rendering/triangle_strip_set.cpp + (triangle_strip_set_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + * src/node/x3d-geometry2d/arc2d.cpp + (arc2d_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + * src/node/x3d-geometry2d/arc_close2d.cpp + (arc_close2d_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + * src/node/x3d-geometry2d/circle2d.cpp + (circle2d_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + * src/node/x3d-geometry2d/disk2d.cpp + (disk2d_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + * src/node/x3d-geometry2d/polyline2d.cpp + (polyline2d_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + * src/node/x3d-geometry2d/polypoint2d.cpp + (polypoint2d_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + * src/node/x3d-geometry2d/rectangle2d.cpp + (rectangle2d_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + * src/node/x3d-geometry2d/triangle_set2d.cpp + (triangle_set2d_node::do_render_geometry(openvrml::viewer&, + rendering_context)): Return void. + 2009-04-01 Braden McDaniel <br...@en...> Define OPENVRML_GL_HAVE_GL_GLU_H and OPENVRML_GL_HAVE_WINDOWS_H @@ -27,7 +378,7 @@ 2009-03-30 Braden McDaniel <br...@en...> - * src/node/vrml97/scaler_interpolator.cpp: Removed errant + * src/node/vrml97/scalar_interpolator.cpp: Removed errant shape_node definition. 2009-03-30 Braden McDaniel <br...@en...> Modified: trunk/src/libopenvrml/openvrml/browser.cpp =================================================================== --- trunk/src/libopenvrml/openvrml/browser.cpp 2009-04-01 06:11:57 UTC (rev 3879) +++ trunk/src/libopenvrml/openvrml/browser.cpp 2009-04-03 06:28:17 UTC (rev 3880) @@ -22,6 +22,7 @@ # include "browser.h" # include "scene.h" # include "scope.h" +# include "viewer.h" # include <openvrml/local/uri.h> # include <openvrml/local/node_metatype_registry_impl.h> # include <openvrml/local/component.h> Modified: trunk/src/libopenvrml/openvrml/node.cpp =================================================================== --- trunk/src/libopenvrml/openvrml/node.cpp 2009-04-01 06:11:57 UTC (rev 3879) +++ trunk/src/libopenvrml/openvrml/node.cpp 2009-04-03 06:28:17 UTC (rev 3880) @@ -21,6 +21,7 @@ # include "browser.h" # include "scope.h" +# include "viewer.h" # include <openvrml/local/node_metatype_registry_impl.h> # include <openvrml/local/uri.h> # include <openvrml/local/field_value_types.h> @@ -4025,22 +4026,6 @@ */ /** - * @internal - * - * @var boost::mutex openvrml::geometry_node::geometry_reference_mutex_ - * - * @brief Mutex protecting @c #geometry_reference. - */ - -/** - * @internal - * - * @var openvrml::viewer::object_t openvrml::geometry_node::geometry_reference - * - * @brief Identifier for a geometry object in the renderer. - */ - -/** * @brief Construct. * * @param[in] type the @c node_type associated with the @c node. @@ -4051,16 +4036,11 @@ const boost::shared_ptr<openvrml::scope> & scope) OPENVRML_NOTHROW: node(type, scope), - bounded_volume_node(type, scope), - geometry_reference(0) + bounded_volume_node(type, scope) {} /** * @brief Destroy. - * - * @todo Proper resource deallocation in the @c viewer depends on the - * @c viewer @b not having been decoupled from the @c browser. We need - * to handle this better via some refcounting scheme. */ openvrml::geometry_node::~geometry_node() OPENVRML_NOTHROW {} @@ -4081,31 +4061,18 @@ * * @param[in,out] v viewer. * @param[in] context rendering context. - * - * @return object identifier for the inserted geometry. */ -openvrml::viewer::object_t -openvrml::geometry_node::render_geometry(viewer & v, - rendering_context context) +void openvrml::geometry_node::render_geometry(viewer & v, + rendering_context context) { read_write_mutex::scoped_read_lock lock(this->scene_mutex()); - if (this->scene()) { - boost::mutex::scoped_lock lock(this->geometry_reference_mutex_); - if (this->geometry_reference != 0 && this->modified()) { - v.remove_object(this->geometry_reference); - this->geometry_reference = 0; - } + if (!this->scene()) { return; } - if (this->geometry_reference != 0) { - v.insert_reference(this->geometry_reference); - } else { - this->geometry_reference = this->do_render_geometry(v, context); - this->modified(false); - } - return this->geometry_reference; - } - return 0; + if (this->modified()) { v.remove_object(*this); } + + this->do_render_geometry(v, context); + this->modified(false); } /** @@ -4126,14 +4093,9 @@ * * @param[in,out] v viewer. * @param[in] context rendering context. - * - * @return object identifier for the inserted geometry. */ -openvrml::viewer::object_t -openvrml::geometry_node::do_render_geometry(viewer &, rendering_context) -{ - return 0; -} +void openvrml::geometry_node::do_render_geometry(viewer &, rendering_context) +{} /** * @brief @c #emissive implementation. @@ -4931,22 +4893,6 @@ */ /** - * @internal - * - * @var boost::mutex openvrml::texture_node::texture_reference_mutex_ - * - * @brief Mutex protecting @c #texture_reference. - */ - -/** - * @internal - * - * @var openvrml::viewer::texture_object_t openvrml::texture_node::texture_reference - * - * @brief Identifier for a texture object in the renderer. - */ - -/** * @brief Construct. * * @param[in] type the @c node_type associated with the @c node. @@ -4956,16 +4902,11 @@ texture_node(const node_type & type, const boost::shared_ptr<openvrml::scope> & scope) OPENVRML_NOTHROW: - node(type, scope), - texture_reference(0) + node(type, scope) {} /** * @brief Destroy. - * - * @todo Proper resource deallocation in the @c viewer depends on the - * @c viewer @b not having been decoupled from the @c browser. We need - * to handle this better via some refcounting scheme. */ openvrml::texture_node::~texture_node() OPENVRML_NOTHROW {} @@ -4974,45 +4915,26 @@ * @brief Insert a texture into a viewer. * * @param[in,out] v viewer. - * - * @return object identifier for the inserted texture. */ -openvrml::viewer::texture_object_t -openvrml::texture_node::render_texture(viewer & v) +void openvrml::texture_node::render_texture(viewer & v) { read_write_mutex::scoped_read_lock lock(this->scene_mutex()); - if (this->scene()) { - boost::mutex::scoped_lock lock(this->texture_reference_mutex_); - if (this->texture_reference != 0 && this->modified()) { - v.remove_texture_object(this->texture_reference); - this->texture_reference = 0; - } + if (!this->scene()) { return; } - if (this->texture_reference != 0) { - v.insert_texture_reference(this->texture_reference, - this->image().comp()); - } else { - this->texture_reference = this->do_render_texture(v); - this->modified(false); - } - return this->texture_reference; - } - return 0; + if (this->modified()) { v.remove_texture_object(*this); } + + this->do_render_texture(v); + this->modified(false); } /** * @brief @c #render_texture implementation. * * @param[in,out] v viewer. - * - * @return object identifier for the inserted texture. */ -openvrml::viewer::texture_object_t -openvrml::texture_node::do_render_texture(viewer &) -{ - return 0; -} +void openvrml::texture_node::do_render_texture(viewer &) +{} /** * @brief Cast to a @c texture_node. Modified: trunk/src/libopenvrml/openvrml/node.h =================================================================== --- trunk/src/libopenvrml/openvrml/node.h 2009-04-01 06:11:57 UTC (rev 3879) +++ trunk/src/libopenvrml/openvrml/node.h 2009-04-03 06:28:17 UTC (rev 3880) @@ -24,7 +24,6 @@ # include <openvrml/field_value.h> # include <openvrml/rendering_context.h> -# include <openvrml/viewer.h> # include <boost/bind.hpp> # include <deque> # include <map> @@ -237,6 +236,7 @@ class browser; class viewpoint_node; class node_type; + class viewer; class OPENVRML_API node_metatype : boost::noncopyable { const node_metatype_id id_; @@ -332,7 +332,7 @@ class OPENVRML_API null_node_type : public node_type { public: - explicit null_node_type(null_node_metatype & nodeClass) + explicit null_node_type(null_node_metatype & type) OPENVRML_NOTHROW; virtual ~null_node_type() OPENVRML_NOTHROW; @@ -1078,14 +1078,10 @@ class OPENVRML_API geometry_node : public virtual bounded_volume_node { - boost::mutex geometry_reference_mutex_; - viewer::object_t geometry_reference; - public: virtual ~geometry_node() OPENVRML_NOTHROW = 0; - viewer::object_t render_geometry(viewer & v, - rendering_context context); + void render_geometry(viewer & v, rendering_context context); bool emissive() const OPENVRML_NOTHROW; const color_node * color() const OPENVRML_NOTHROW; @@ -1095,8 +1091,7 @@ OPENVRML_NOTHROW; private: - virtual viewer::object_t - do_render_geometry(viewer & v, rendering_context context); + virtual void do_render_geometry(viewer & v, rendering_context context); virtual bool do_emissive() const OPENVRML_NOTHROW; virtual const color_node * do_color() const OPENVRML_NOTHROW; @@ -1281,13 +1276,10 @@ class OPENVRML_API texture_node : public virtual node { - boost::mutex texture_reference_mutex_; - viewer::texture_object_t texture_reference; - public: virtual ~texture_node() OPENVRML_NOTHROW = 0; - viewer::texture_object_t render_texture(viewer & v); + void render_texture(viewer & v); const openvrml::image & image() const OPENVRML_NOTHROW; bool repeat_s() const OPENVRML_NOTHROW; @@ -1301,7 +1293,7 @@ private: virtual texture_node * to_texture() OPENVRML_NOTHROW; - virtual viewer::texture_object_t do_render_texture(viewer & v); + virtual void do_render_texture(viewer & v); virtual const openvrml::image & do_image() const OPENVRML_NOTHROW = 0; virtual bool do_repeat_s() const OPENVRML_NOTHROW = 0; Modified: trunk/src/libopenvrml/openvrml/viewer.cpp =================================================================== --- trunk/src/libopenvrml/openvrml/viewer.cpp 2009-04-01 06:11:57 UTC (rev 3879) +++ trunk/src/libopenvrml/openvrml/viewer.cpp 2009-04-03 06:28:17 UTC (rev 3880) @@ -112,12 +112,6 @@ */ /** - * @typedef openvrml::viewer::texture_object_t - * - * @brief An texture object handle. - */ - -/** * @brief Construct. */ openvrml::viewer::viewer() OPENVRML_NOTHROW: @@ -265,12 +259,12 @@ const std::vector<color> & ground_color, const std::vector<float> & sky_angle, const std::vector<color> & sky_color, - const image & front, - const image & back, - const image & left, - const image & right, - const image & top, - const image & bottom) + const texture_node & front, + const texture_node & back, + const texture_node & left, + const texture_node & right, + const texture_node & top, + const texture_node & bottom) { return this->do_insert_background(ground_angle, ground_color, sky_angle, sky_color, @@ -278,7 +272,7 @@ } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_background(const std::vector<float> & ground_angle, const std::vector<color> & ground_color, const std::vector<float> & sky_angle, const std::vector<color> & sky_color, const image & front, const image & back, const image & left, const image & right, const image & top, const image & bottom) + * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_background(const std::vector<float> & ground_angle, const std::vector<color> & ground_color, const std::vector<float> & sky_angle, const std::vector<color> & sky_color, const texture_node & front, const texture_node & back, const texture_node & left, const texture_node & right, const texture_node & top, const texture_node & bottom) * * @brief Insert a background into a display list. * @@ -301,23 +295,21 @@ * * This function delegates to @c viewer::do_insert_box. * + * @param[in] n the @c geometry_node corresponding to the box. * @param[in] size box dimensions. - * - * @return display object identifier. */ -openvrml::viewer::object_t openvrml::viewer::insert_box(const vec3f & size) +void openvrml::viewer::insert_box(const geometry_node & n, const vec3f & size) { - return this->do_insert_box(size); + this->do_insert_box(n, size); } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_box(const vec3f & size) + * @fn void openvrml::viewer::do_insert_box(const geometry_node & n, const vec3f & size) * * @brief Insert a box into a display list. * + * @param[in] n the @c geometry_node corresponding to the box. * @param[in] size box dimensions. - * - * @return display object identifier. */ /** @@ -325,32 +317,31 @@ * * This function delegates to @c viewer::do_insert_cone. * + * @param[in] n the @c geometry_node corresponding to the cone. * @param[in] height height. * @param[in] radius radius at base. * @param[in] bottom show the bottom. * @param[in] side show the side. - * - * @return display object identifier. */ -openvrml::viewer::object_t openvrml::viewer::insert_cone(const float height, - const float radius, - const bool bottom, - const bool side) +void openvrml::viewer::insert_cone(const geometry_node & n, + const float height, + const float radius, + const bool bottom, + const bool side) { - return this->do_insert_cone(height, radius, bottom, side); + this->do_insert_cone(n, height, radius, bottom, side); } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_cone(float height, float radius, bool bottom, bool side) + * @fn void openvrml::viewer::do_insert_cone(const geometry_node & n, float height, float radius, bool bottom, bool side) * * @brief Insert a cone into a display list. * + * @param[in] n the @c geometry_node corresponding to the cone. * @param[in] height height. * @param[in] radius radius at base. * @param[in] bottom show the bottom. * @param[in] side show the side. - * - * @return display object identifier. */ /** @@ -358,36 +349,34 @@ * * This function delegates to @c viewer::do_insert_cylinder. * + * @param[in] n the @c geometry_node corresponding to the cylinder. * @param[in] height height. * @param[in] radius radius. * @param[in] bottom show the bottom. * @param[in] side show the side. * @param[in] top show the top. - * - * @return display object identifier. */ -openvrml::viewer::object_t -openvrml::viewer::insert_cylinder(const float height, - const float radius, - const bool bottom, - const bool side, - const bool top) +void openvrml::viewer::insert_cylinder(const geometry_node & n, + const float height, + const float radius, + const bool bottom, + const bool side, + const bool top) { - return this->do_insert_cylinder(height, radius, bottom, side, top); + this->do_insert_cylinder(n, height, radius, bottom, side, top); } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_cylinder(float height, float radius, bool bottom, bool side, bool top) + * @fn void openvrml::viewer::do_insert_cylinder(const geometry_node & n, float height, float radius, bool bottom, bool side, bool top) * * @brief Insert a cylinder into a display list. * + * @param[in] n the @c geometry_node corresponding to the cylinder. * @param[in] height height. * @param[in] radius radius. * @param[in] bottom show the bottom. * @param[in] side show the side. * @param[in] top show the top. - * - * @return display object identifier. */ /** @@ -395,6 +384,8 @@ * * This function delegates to @c viewer::do_insert_elevation_grid. * + * @param[in] n the @c geometry_node corresponding to the elevation + * grid. * @param[in] mask * @param[in] height height field. * @param[in] x_dimension vertices in the x direction. @@ -404,11 +395,10 @@ * @param[in] color colors. * @param[in] normal normals. * @param[in] tex_coord texture coordinates. - * - * @return display object identifier. */ -openvrml::viewer::object_t -openvrml::viewer::insert_elevation_grid(const unsigned int mask, +void +openvrml::viewer::insert_elevation_grid(const geometry_node & n, + const unsigned int mask, const std::vector<float> & height, int32 x_dimension, int32 z_dimension, @@ -418,17 +408,19 @@ const std::vector<vec3f> & normal, const std::vector<vec2f> & tex_coord) { - return this->do_insert_elevation_grid(mask, height, - x_dimension, z_dimension, - x_spacing, z_spacing, - color, normal, tex_coord); + this->do_insert_elevation_grid(n, mask, height, + x_dimension, z_dimension, + x_spacing, z_spacing, + color, normal, tex_coord); } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_elevation_grid(unsigned int mask, const std::vector<float> & height, int32 x_dimension, int32 z_dimension, float x_spacing, float z_spacing, const std::vector<color> & color, const std::vector<vec3f> & normal, const std::vector<vec2f> & tex_coord) + * @fn void openvrml::viewer::do_insert_elevation_grid(const geometry_node & n, unsigned int mask, const std::vector<float> & height, int32 x_dimension, int32 z_dimension, float x_spacing, float z_spacing, const std::vector<color> & color, const std::vector<vec3f> & normal, const std::vector<vec2f> & tex_coord) * * @brief Insert an elevation grid into a display list. * + * @param[in] n the @c geometry_node corresponding to the elevation + * grid. * @param[in] mask * @param[in] height height field. * @param[in] x_dimension vertices in the x direction. @@ -438,8 +430,6 @@ * @param[in] color colors. * @param[in] normal normals. * @param[in] tex_coord texture coordinates. - * - * @return display object identifier. */ /** @@ -447,40 +437,36 @@ * * This function delegates to @c viewer::do_insert_extrusion. * + * @param[in] n the @c geometry_node corresponding to the extrusion. * @param[in] mask * @param[in] spine spine points. * @param[in] cross_section cross-sections. * @param[in] orientation cross-section orientations. * @param[in] scale cross-section scales. - * - * @return display object identifier. */ -openvrml::viewer::object_t -openvrml::viewer::insert_extrusion(unsigned int mask, +void +openvrml::viewer::insert_extrusion(const geometry_node & n, + unsigned int mask, const std::vector<vec3f> & spine, const std::vector<vec2f> & cross_section, const std::vector<rotation> & orientation, const std::vector<vec2f> & scale) { - return this->do_insert_extrusion(mask, - spine, - cross_section, - orientation, - scale); + this->do_insert_extrusion(n, mask, + spine, cross_section, orientation, scale); } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_extrusion(unsigned int mask, const std::vector<vec3f> & spine, const std::vector<vec2f> & cross_section, const std::vector<rotation> & orientation, const std::vector<vec2f> & scale) + * @fn void openvrml::viewer::do_insert_extrusion(const geometry_node & n, unsigned int mask, const std::vector<vec3f> & spine, const std::vector<vec2f> & cross_section, const std::vector<rotation> & orientation, const std::vector<vec2f> & scale) * * @brief Insert an extrusion into a display list. * + * @param[in] n the @c geometry_node corresponding to the extrusion. * @param[in] mask * @param[in] spine spine points. * @param[in] cross_section cross-sections. * @param[in] orientation cross-section orientations. * @param[in] scale cross-section scales. - * - * @return display object identifier. */ /** @@ -488,37 +474,39 @@ * * This function delegates to @c viewer::do_insert_line_set. * + * @param[in] n the @c geometry_node corresponding to the line + * set. * @param[in] coord coordinates. * @param[in] coord_index coordinate indices. - * @param[in] color_per_vertex whether colors are applied per-vertex or per-face. + * @param[in] color_per_vertex whether colors are applied per-vertex or + * per-face. * @param[in] color colors. * @param[in] color_index color indices. - * - * @return display object identifier. */ -openvrml::viewer::object_t -openvrml::viewer::insert_line_set(const std::vector<vec3f> & coord, +void +openvrml::viewer::insert_line_set(const geometry_node & n, + const std::vector<vec3f> & coord, const std::vector<int32> & coord_index, const bool color_per_vertex, const std::vector<color> & color, const std::vector<int32> & color_index) { - return this->do_insert_line_set(coord, coord_index, - color_per_vertex, color, color_index); + this->do_insert_line_set(n, coord, coord_index, + color_per_vertex, color, color_index); } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_line_set(const std::vector<vec3f> & coord, const std::vector<int32> & coord_index, bool color_per_vertex, const std::vector<color> & color, const std::vector<int32> & color_index) + * @fn void openvrml::viewer::do_insert_line_set(const geometry_node & n, const std::vector<vec3f> & coord, const std::vector<int32> & coord_index, bool color_per_vertex, const std::vector<color> & color, const std::vector<int32> & color_index) * * @brief Insert a line set into a display list. * + * @param[in] n the @c geometry_node corresponding to the line + * set. * @param[in] coord coordinates. * @param[in] coord_index coordinate indices. * @param[in] color_per_vertex whether colors are applied per-vertex or per-face. * @param[in] color colors. * @param[in] color_index color indices. - * - * @return display object identifier. */ /** @@ -526,27 +514,26 @@ * * This function delegates to @c viewer::insert_point_set. * + * @param[in] n the @c geometry_node corresponding to the point set. * @param[in] coord points. * @param[in] color colors. - * - * @return display object identifier. */ -openvrml::viewer::object_t -openvrml::viewer::insert_point_set(const std::vector<vec3f> & coord, +void +openvrml::viewer::insert_point_set(const geometry_node & n, + const std::vector<vec3f> & coord, const std::vector<color> & color) { - return this->do_insert_point_set(coord, color); + this->do_insert_point_set(n, coord, color); } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_point_set(const std::vector<vec3f> & coord, const std::vector<color> & color) + * @fn void openvrml::viewer::do_insert_point_set(const geometry_node & n, const std::vector<vec3f> & coord, const std::vector<color> & color) * * @brief Insert a point set into a display list. * + * @param[in] n the @c geometry_node corresponding to the point set. * @param[in] coord points. * @param[in] color colors. - * - * @return display object identifier. */ /** @@ -554,6 +541,7 @@ * * This function delegates to @c viewer::do_insert_shell. * + * @param[in] n the @c geometry_node corresponding to the shell. * @param[in] mask * @param[in] coord coordinates. * @param[in] coord_index coordinate indices. @@ -563,11 +551,10 @@ * @param[in] normal_index normal indices. * @param[in] tex_coord texture coordinates. * @param[in] tex_coord_index texture coordinate indices. - * - * @return display object identifier. */ -openvrml::viewer::object_t -openvrml::viewer::insert_shell(unsigned int mask, +void +openvrml::viewer::insert_shell(const geometry_node & n, + unsigned int mask, const std::vector<vec3f> & coord, const std::vector<int32> & coord_index, const std::vector<color> & color, @@ -577,18 +564,19 @@ const std::vector<vec2f> & tex_coord, const std::vector<int32> & tex_coord_index) { - return this->do_insert_shell(mask, - coord, coord_index, - color, color_index, - normal, normal_index, - tex_coord, tex_coord_index); + this->do_insert_shell(n, mask, + coord, coord_index, + color, color_index, + normal, normal_index, + tex_coord, tex_coord_index); } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_shell(unsigned int mask, const std::vector<vec3f> & coord, const std::vector<int32> & coord_index, const std::vector<color> & color, const std::vector<int32> & color_index, const std::vector<vec3f> & normal, const std::vector<int32> & normal_index, const std::vector<vec2f> & tex_coord, const std::vector<int32> & tex_coord_index) + * @fn void openvrml::viewer::do_insert_shell(const geometry_node & n, unsigned int mask, const std::vector<vec3f> & coord, const std::vector<int32> & coord_index, const std::vector<color> & color, const std::vector<int32> & color_index, const std::vector<vec3f> & normal, const std::vector<int32> & normal_index, const std::vector<vec2f> & tex_coord, const std::vector<int32> & tex_coord_index) * * @brief Insert a shell into a display list. * + * @param[in] n the @c geometry_node corresponding to the shell. * @param[in] mask * @param[in] coord coordinates. * @param[in] coord_index coordinate indices. @@ -598,8 +586,6 @@ * @param[in] normal_index normal indices. * @param[in] tex_coord texture coordinates. * @param[in] tex_coord_index texture coordinate indices. - * - * @return display object identifier. */ /** @@ -607,23 +593,22 @@ * * This function delegates to @c viewer::do_insert_sphere. * + * @param[in] n the @c geometry_node corresponding to the sphere. * @param[in] radius sphere radius. - * - * @return display object identifier. */ -openvrml::viewer::object_t openvrml::viewer::insert_sphere(const float radius) +void openvrml::viewer::insert_sphere(const geometry_node & n, + const float radius) { - return this->do_insert_sphere(radius); + this->do_insert_sphere(n, radius); } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_sphere(float radius) + * @fn void openvrml::viewer::do_insert_sphere(const geometry_node & n, float radius) * * @brief Insert a sphere into a display list. * + * @param[in] n the @c geometry_node corresponding to the sphere. * @param[in] radius sphere radius. - * - * @return display object identifier. */ /** @@ -766,40 +751,19 @@ */ /** - * @brief Insert a reference to an existing object into a display list. - * - * This function delegates to @c viewer::do_insert_reference. - * - * @return display object identifier. - */ -openvrml::viewer::object_t -openvrml::viewer::insert_reference(const object_t existing_object) -{ - return this->do_insert_reference(existing_object); -} - -/** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_reference(object_t existing_object) - * - * @brief Insert a reference to an existing object into a display list. - * - * @return display object identifier. - */ - -/** * @brief Remove an object from the display list. * * This function delegates to @c viewer::do_remove_object. * * @param[in] ref object handle. */ -void openvrml::viewer::remove_object(const object_t ref) +void openvrml::viewer::remove_object(const node & ref) { this->do_remove_object(ref); } /** - * @fn void openvrml::viewer::do_remove_object(object_t ref) + * @fn void openvrml::viewer::do_remove_object(const node & ref) * * @brief Remove an object from the display list. * @@ -964,76 +928,42 @@ * * This function delegates to @c viewer::do_insert_texture. * - * @param[in] img image. - * @param[in] repeat_s repeat in the S direction. - * @param[in] repeat_t repeat in the T direction. + * @param[in] n a @c texture_node. * @param[in] retainHint whether the texture is likely to be reused. - * - * @return a handle to the inserted texture. */ -openvrml::viewer::texture_object_t -openvrml::viewer::insert_texture(const image & img, - const bool repeat_s, - const bool repeat_t, - const bool retainHint) +void openvrml::viewer::insert_texture(const texture_node & n, + const bool retainHint) { - return this->do_insert_texture(img, repeat_s, repeat_t, retainHint); + return this->do_insert_texture(n, retainHint); } /** - * @fn openvrml::viewer::texture_object_t openvrml::viewer::do_insert_texture(const image & img, bool repeat_s, bool repeat_t, bool retainHint) + * @fn openvrml::viewer::texture_object_t openvrml::viewer::do_insert_texture(const texture_node & n, bool retainHint) * * @brief Create a texture object. * - * @param[in] img image. - * @param[in] repeat_s repeat in the S direction. - * @param[in] repeat_t repeat in the T direction. + * @param[in] n a @c texture_node. * @param[in] retainHint whether the texture is likely to be reused. - * - * @return a handle to the inserted texture. */ /** - * @brief Insert a texture into the display list from an existing handle. - * - * This function delegates to @c viewer::do_insert_texture_reference. - * - * @param[in] ref texture handle. - * @param[in] components number of components. - */ -void openvrml::viewer::insert_texture_reference(const texture_object_t ref, - const size_t components) -{ - this->do_insert_texture_reference(ref, components); -} - -/** - * @fn void openvrml::viewer::do_insert_texture_reference(texture_object_t ref, size_t components) - * - * @brief Insert a texture into the display list from an existing handle. - * - * @param[in] ref texture handle. - * @param[in] components number of components. - */ - -/** * @brief Remove a texture from the display list. * * This function delegates to @c viewer::do_remove_texture_object. * * @param[in] ref texture handle. */ -void openvrml::viewer::remove_texture_object(const texture_object_t ref) +void openvrml::viewer::remove_texture_object(const texture_node & ref) { this->do_remove_texture_object(ref); } /** - * @fn void openvrml::viewer::do_remove_texture_object(texture_object_t ref) + * @fn void openvrml::viewer::do_remove_texture_object(const texture_node & ref) * * @brief Remove a texture from the display list. * - * @param[in] ref texture handle. + * @param[in] ref a @c texture_node. */ /** Modified: trunk/src/libopenvrml/openvrml/viewer.h =================================================================== --- trunk/src/libopenvrml/openvrml/viewer.h 2009-04-01 06:11:57 UTC (rev 3879) +++ trunk/src/libopenvrml/openvrml/viewer.h 2009-04-03 06:28:17 UTC (rev 3880) @@ -28,8 +28,10 @@ namespace openvrml { + class browser; class node; - class browser; + class geometry_node; + class texture_node; class OPENVRML_API viewer : boost::noncopyable { friend class browser; @@ -58,7 +60,6 @@ }; typedef long object_t; - typedef long texture_object_t; virtual ~viewer() OPENVRML_NOTHROW = 0; @@ -75,47 +76,54 @@ const std::vector<color> & ground_color, const std::vector<float> & sky_angle, const std::vector<color> & sky_color, - const image & front, - const image & back, - const image & left, - const image & right, - const image & top, - const image & bottom); + const texture_node & front, + const texture_node & back, + const texture_node & left, + const texture_node & right, + const texture_node & top, + const texture_node & bottom); - object_t insert_box(const vec3f & size); - object_t insert_cone(float height, float radius, bool bottom, - bool side); - object_t insert_cylinder(float height, float radius, bool bottom, - bool side, bool top); - object_t insert_elevation_grid(unsigned int mask, - const std::vector<float> & height, - int32 x_dimension, int32 z_dimension, - float x_spacing, float z_spacing, - const std::vector<color> & color, - const std::vector<vec3f> & normal, - const std::vector<vec2f> & tex_coord); - object_t insert_extrusion(unsigned int mask, - const std::vector<vec3f> & spine, - const std::vector<vec2f> & cross_section, - const std::vector<rotation> & orientation, - const std::vector<vec2f> & scale); - object_t insert_line_set(const std::vector<vec3f> & coord, - const std::vector<int32> & coord_index, - bool color_per_vertex, - const std::vector<color> & color, - const std::vector<int32> & color_index); - object_t insert_point_set(const std::vector<vec3f> & coord, - const std::vector<color> & color); - object_t insert_shell(unsigned int mask, + void insert_box(const geometry_node & n, const vec3f & size); + void insert_cone(const geometry_node & n, + float height, float radius, bool bottom, + bool side); + void insert_cylinder(const geometry_node & n, + float height, float radius, bool bottom, + bool side, bool top); + void insert_elevation_grid(const geometry_node & n, + unsigned int mask, + const std::vector<float> & height, + int32 x_dimension, int32 z_dimension, + float x_spacing, float z_spacing, + const std::vector<color> & color, + const std::vector<vec3f> & normal, + const std::vector<vec2f> & tex_coord); + void insert_extrusion(const geometry_node & n, + unsigned int mask, + const std::vector<vec3f> & spine, + const std::vector<vec2f> & cross_section, + const std::vector<rotation> & orientation, + const std::vector<vec2f> & scale); + void insert_line_set(const geometry_node & n, + const std::vector<vec3f> & coord, + const std::vector<int32> & coord_index, + bool color_per_vertex, + const std::vector<color> & color, + const std::vector<int32> & color_index); + void insert_point_set(const geometry_node & n, const std::vector<vec3f> & coord, - const std::vector<int32> & coord_index, - const std::vector<color> & color, - const std::vector<int32> & color_index, - const std::vector<vec3f> & normal, - const std::vector<int32> & normal_index, - const std::vector<vec2f> & tex_coord, - const std::vector<int32> & tex_coord_index); - object_t insert_sphere(float radius); + const std::vector<color> & color); + void insert_shell(const geometry_node & n, + unsigned int mask, + const std::vector<vec3f> & coord, + const std::vector<int32> & coord_index, + const std::vector<color> & color, + const std::vector<int32> & color_index, + const std::vector<vec3f> & normal, + const std::vector<int32> & normal_index, + const std::vector<vec2f> & tex_coord, + const std::vector<int32> & tex_coord_index); + void insert_sphere(const geometry_node & n, float radius); object_t insert_dir_light(float ambient_intensity, float intensity, const color & color, @@ -135,9 +143,8 @@ float intensity, const vec3f & location, float radius); - object_t insert_reference(object_t existing_object); - void remove_object... [truncated message content] |
From: <br...@us...> - 2009-04-03 07:15:29
|
Revision: 3881 http://openvrml.svn.sourceforge.net/openvrml/?rev=3881&view=rev Author: braden Date: 2009-04-03 07:15:23 +0000 (Fri, 03 Apr 2009) Log Message: ----------- Get rid of the last vestiges of openvrml::viewer::object_t. Modified Paths: -------------- trunk/ChangeLog trunk/src/libopenvrml/openvrml/viewer.cpp trunk/src/libopenvrml/openvrml/viewer.h trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp trunk/src/libopenvrml-gl/openvrml/gl/viewer.h Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-04-03 06:28:17 UTC (rev 3880) +++ trunk/ChangeLog 2009-04-03 07:15:23 UTC (rev 3881) @@ -1,5 +1,43 @@ 2009-04-03 Braden McDaniel <br...@en...> + Get rid of the last vestiges of openvrml::viewer::object_t. + + * src/libopenvrml/openvrml/viewer.cpp + (openvrml::viewer::begin_object(const char *, bool)): Return void. + (openvrml::viewer::insert_background(const std::vector<float> &, + const std::vector<color> &, const std::vector<float> &, const + std::vector<color> &, const texture_node &, const texture_node &, + const texture_node &, const texture_node &, const texture_node &, + const texture_node &)): Return void. + (openvrml::viewer::insert_dir_light(float, float, const color &, + const vec3f &)): Return void. + (openvrml::viewer::insert_point_light(float, const vec3f &, const + color &, float, const vec3f &, float)): Return void. + (openvrml::viewer::insert_spot_light(float, const vec3f &, float, + const color &, float, const vec3f &, float, const vec3f &, + float)): Return void. + * src/libopenvrml/openvrml/viewer.h + (openvrml::viewer): Removed object_t member typedef. + * src/libopenvrml-gl/openvrml/gl/viewer.cpp + (openvrml::gl::viewer::do_begin_object(const char *, bool)): + Return void. + (openvrml::gl::viewer::do_insert_background(const + std::vector<float> &, const std::vector<color> &, const + std::vector<float> &, const std::vector<color> &, const + texture_node &, const texture_node &, const texture_node &, const + texture_node &, const texture_node &, const texture_node &)): + Return void. + (openvrml::gl::viewer::do_insert_dir_light(float, float, const + color &, const vec3f &)): Return void. + (openvrml::gl::viewer::do_insert_point_light(float, const vec3f &, + const color &, float, const vec3f &, float)): Return void. + (openvrml::gl::viewer::do_insert_spot_light(float, const vec3f &, + float, const color &, float, const vec3f &, float, const vec3f &, + float)): Return void. + * src/libopenvrml-gl/openvrml/gl/viewer.h + +2009-04-03 Braden McDaniel <br...@en...> + Localize the management of display list and texture object references inside the renderer. Modified: trunk/src/libopenvrml/openvrml/viewer.cpp =================================================================== --- trunk/src/libopenvrml/openvrml/viewer.cpp 2009-04-03 06:28:17 UTC (rev 3880) +++ trunk/src/libopenvrml/openvrml/viewer.cpp 2009-04-03 07:15:23 UTC (rev 3881) @@ -106,12 +106,6 @@ */ /** - * @typedef openvrml::viewer::object_t - * - * @brief An object handle. - */ - -/** * @brief Construct. */ openvrml::viewer::viewer() OPENVRML_NOTHROW: @@ -200,24 +194,19 @@ * @param[in] retain whether the object should be retained for reuse. * * This function delegates to @c viewer::do_begin_object. - * - * @return the display object identifier. */ -openvrml::viewer::object_t openvrml::viewer::begin_object(const char * id, - bool retain) +void openvrml::viewer::begin_object(const char * id, bool retain) { return this->do_begin_object(id, retain); } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_begin_object(const char * id, bool retain) + * @fn void openvrml::viewer::do_begin_object(const char * id, bool retain) * * @brief Begin a display list. * * @param[in] id object identifier. * @param[in] retain whether the object should be retained for reuse. - * - * @return the display object identifier. */ /** @@ -251,10 +240,8 @@ * @param[in] right right texture. * @param[in] top top texture. * @param[in] bottom bottom texture. - * - * @return display object identifier. */ -openvrml::viewer::object_t +void openvrml::viewer::insert_background(const std::vector<float> & ground_angle, const std::vector<color> & ground_color, const std::vector<float> & sky_angle, @@ -272,7 +259,7 @@ } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_background(const std::vector<float> & ground_angle, const std::vector<color> & ground_color, const std::vector<float> & sky_angle, const std::vector<color> & sky_color, const texture_node & front, const texture_node & back, const texture_node & left, const texture_node & right, const texture_node & top, const texture_node & bottom) + * @fn void openvrml::viewer::do_insert_background(const std::vector<float> & ground_angle, const std::vector<color> & ground_color, const std::vector<float> & sky_angle, const std::vector<color> & sky_color, const texture_node & front, const texture_node & back, const texture_node & left, const texture_node & right, const texture_node & top, const texture_node & bottom) * * @brief Insert a background into a display list. * @@ -286,8 +273,6 @@ * @param[in] right right texture. * @param[in] top top texture. * @param[in] bottom bottom texture. - * - * @return display object identifier. */ /** @@ -620,14 +605,11 @@ * @param[in] intensity intensity. * @param[in] color color. * @param[in] direction direction. - * - * @return display object identifier. */ -openvrml::viewer::object_t -openvrml::viewer::insert_dir_light(const float ambient_intensity, - const float intensity, - const color & color, - const vec3f & direction) +void openvrml::viewer::insert_dir_light(const float ambient_intensity, + const float intensity, + const color & color, + const vec3f & direction) { return this->do_insert_dir_light(ambient_intensity, intensity, @@ -636,7 +618,7 @@ } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_dir_light(float ambient_intensity, float intensity , const color & color, const vec3f & direction) + * @fn void openvrml::viewer::do_insert_dir_light(float ambient_intensity, float intensity , const color & color, const vec3f & direction) * * @brief Insert a directional light into a display list. * @@ -644,8 +626,6 @@ * @param[in] intensity intensity. * @param[in] color color. * @param[in] direction direction. - * - * @return display object identifier. */ /** @@ -659,16 +639,13 @@ * @param[in] intensity intensity. * @param[in] location location. * @param[in] radius radius. - * - * @return display object identifier. */ -openvrml::viewer::object_t -openvrml::viewer::insert_point_light(const float ambient_intensity, - const vec3f & attenuation, - const color & color, - const float intensity, - const vec3f & location, - const float radius) +void openvrml::viewer::insert_point_light(const float ambient_intensity, + const vec3f & attenuation, + const color & color, + const float intensity, + const vec3f & location, + const float radius) { return this->do_insert_point_light(ambient_intensity, attenuation, @@ -679,7 +656,7 @@ } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_point_light(float ambient_intensity, const vec3f & attenuation, const color & color, float intensity, const vec3f & location, float radius) + * @fn void openvrml::viewer::do_insert_point_light(float ambient_intensity, const vec3f & attenuation, const color & color, float intensity, const vec3f & location, float radius) * * @brief Insert a point light into a display list. * @@ -689,8 +666,6 @@ * @param[in] intensity intensity. * @param[in] location location. * @param[in] radius radius. - * - * @return display object identifier. */ /** @@ -707,19 +682,16 @@ * @param[in] intensity intensity. * @param[in] location location. * @param[in] radius radius. - * - * @return display object identifier. */ -openvrml::viewer::object_t -openvrml::viewer::insert_spot_light(const float ambient_intensity, - const vec3f & attenuation, - const float beam_width, - const color & color, - const float cut_off_angle, - const vec3f & direction, - const float intensity, - const vec3f & location, - const float radius) +void openvrml::viewer::insert_spot_light(const float ambient_intensity, + const vec3f & attenuation, + const float beam_width, + const color & color, + const float cut_off_angle, + const vec3f & direction, + const float intensity, + const vec3f & location, + const float radius) { return this->do_insert_spot_light(ambient_intensity, attenuation, @@ -733,7 +705,7 @@ } /** - * @fn openvrml::viewer::object_t openvrml::viewer::do_insert_spot_light(float ambient_intensity, const vec3f & attenuation, float beam_width, const color & color, float cut_off_angle, const vec3f & direction, float intensity, const vec3f & location, float radius) + * @fn void openvrml::viewer::do_insert_spot_light(float ambient_intensity, const vec3f & attenuation, float beam_width, const color & color, float cut_off_angle, const vec3f & direction, float intensity, const vec3f & location, float radius) * * @brief Insert a point light into a display list. * @@ -746,8 +718,6 @@ * @param[in] intensity intensity. * @param[in] location location. * @param[in] radius radius. - * - * @return display object identifier. */ /** @@ -938,7 +908,7 @@ } /** - * @fn openvrml::viewer::texture_object_t openvrml::viewer::do_insert_texture(const texture_node & n, bool retainHint) + * @fn void openvrml::viewer::do_insert_texture(const texture_node & n, bool retainHint) * * @brief Create a texture object. * Modified: trunk/src/libopenvrml/openvrml/viewer.h =================================================================== --- trunk/src/libopenvrml/openvrml/viewer.h 2009-04-03 06:28:17 UTC (rev 3880) +++ trunk/src/libopenvrml/openvrml/viewer.h 2009-04-03 07:15:23 UTC (rev 3881) @@ -59,8 +59,6 @@ pick_mode }; - typedef long object_t; - virtual ~viewer() OPENVRML_NOTHROW = 0; openvrml::browser * browser() const OPENVRML_NOTHROW; @@ -69,19 +67,19 @@ double frame_rate(); void reset_user_navigation(); - object_t begin_object(const char * id, bool retain = false); + void begin_object(const char * id, bool retain = false); void end_object(); - object_t insert_background(const std::vector<float> & ground_angle, - const std::vector<color> & ground_color, - const std::vector<float> & sky_angle, - const std::vector<color> & sky_color, - const texture_node & front, - const texture_node & back, - const texture_node & left, - const texture_node & right, - const texture_node & top, - const texture_node & bottom); + void insert_background(const std::vector<float> & ground_angle, + const std::vector<color> & ground_color, + const std::vector<float> & sky_angle, + const std::vector<color> & sky_color, + const texture_node & front, + const texture_node & back, + const texture_node & left, + const texture_node & right, + const texture_node & top, + const texture_node & bottom); void insert_box(const geometry_node & n, const vec3f & size); void insert_cone(const geometry_node & n, @@ -124,25 +122,25 @@ const std::vector<vec2f> & tex_coord, const std::vector<int32> & tex_coord_index); void insert_sphere(const geometry_node & n, float radius); - object_t insert_dir_light(float ambient_intensity, - float intensity, - const color & color, - const vec3f & direction); - object_t insert_point_light(float ambient_intensity, - const vec3f & attenuation, - const color & color, - float intensity, - const vec3f & location, - float radius); - object_t insert_spot_light(float ambient_intensity, - const vec3f & attenuation, - float beam_width, - const color & color, - float cut_off_angle, - const vec3f & direction, - float intensity, - const vec3f & location, - float radius); + void insert_dir_light(float ambient_intensity, + float intensity, + const color & color, + const vec3f & direction); + void insert_point_light(float ambient_intensity, + const vec3f & attenuation, + const color & color, + float intensity, + const vec3f & location, + float radius); + void insert_spot_light(float ambient_intensity, + const vec3f & attenuation, + float beam_width, + const color & color, + float cut_off_angle, + const vec3f & direction, + float intensity, + const vec3f & location, + float radius); void remove_object(const node & n); @@ -213,12 +211,11 @@ virtual double do_frame_rate() = 0; virtual void do_reset_user_navigation() = 0; - virtual object_t do_begin_object(const char * id, - bool retain = false) = 0; + virtual void do_begin_object(const char * id, bool retain = false) = 0; virtual void do_end_object() = 0; virtual - object_t + void do_insert_background(const std::vector<float> & ground_angle, const std::vector<color> & ground_color, const std::vector<float> & sky_angle, @@ -279,26 +276,27 @@ const std::vector<int32> & tex_coord_index) = 0; virtual void do_insert_sphere(const geometry_node & n, float radius) = 0; - virtual object_t do_insert_dir_light(float ambient_intensity, - float intensity, - const color & color, - const vec3f & direction) = 0; - virtual object_t do_insert_point_light(float ambient_intensity, - const vec3f & attenuation, - const color & color, - float intensity, - const vec3f & location, - float radius) = 0; - virtual object_t do_insert_spot_light(float ambient_intensity, - const vec3f & attenuation, - float beam_width, - const color & color, - float cut_off_angle, - const vec3f & direction, - float intensity, - const vec3f & location, - float radius) = 0; + virtual void do_insert_dir_light(float ambient_intensity, + float intensity, + const color & color, + const vec3f & direction) = 0; + virtual void do_insert_point_light(float ambient_intensity, + const vec3f & attenuation, + const color & color, + float intensity, + const vec3f & location, + float radius) = 0; + virtual void do_insert_spot_light(float ambient_intensity, + const vec3f & attenuation, + float beam_width, + const color & color, + float cut_off_angle, + const vec3f & direction, + float intensity, + const vec3f & location, + float radius) = 0; + virtual void do_remove_object(const node & ref) = 0; virtual void do_enable_lighting(bool val) = 0; Modified: trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp =================================================================== --- trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp 2009-04-03 06:28:17 UTC (rev 3880) +++ trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp 2009-04-03 07:15:23 UTC (rev 3881) @@ -1004,11 +1004,8 @@ * * @param[in] id not used. * @param[in] retain not used. - * - * @return 0. */ -openvrml::gl::viewer::object_t -openvrml::gl::viewer::do_begin_object(const char *, bool) +void openvrml::gl::viewer::do_begin_object(const char *, bool) { // Finish setup stuff before first object if (1 == ++this->objects) { @@ -1026,7 +1023,6 @@ } } this->modelview_matrix_stack_.push(); - return 0; } /** @@ -1133,10 +1129,8 @@ * @param[in] right right texture. * @param[in] top top texture. * @param[in] bottom bottom texture. - * - * @return display object identifier. */ -openvrml::gl::viewer::object_t +void openvrml::gl::viewer:: do_insert_background(const std::vector<float> & groundAngle, const std::vector<color> & groundColor, @@ -1399,8 +1393,6 @@ this->background.r(r); this->background.g(g); this->background.b(b); - - return object_t(glid); } /** @@ -3292,14 +3284,11 @@ * @param[in] intensity intensity. * @param[in] color color. * @param[in] direction direction. - * - * @return display object identifier. */ -openvrml::gl::viewer::object_t -openvrml::gl::viewer::do_insert_dir_light(const float ambientIntensity, - const float intensity, - const color & color, - const vec3f & direction) +void openvrml::gl::viewer::do_insert_dir_light(const float ambientIntensity, + const float intensity, + const color & color, + const vec3f & direction) { float amb[4] = { ambientIntensity * color.r(), ambientIntensity * color.g(), @@ -3316,7 +3305,7 @@ for (i = 0; i < max_lights; ++i) { if (this->light_info_[i].type == viewer::light_unused) { break; } } - if (i == max_lights) { return 0; } + if (i == max_lights) { return; } this->light_info_[i].type = viewer::light_directional; this->light_info_[i].nesting_level = 0; @@ -3334,8 +3323,6 @@ glLightf(light, GL_SPOT_CUTOFF, 180.0); glLightf(light, GL_SPOT_EXPONENT, 0.0); - - return 0; } /** @@ -3348,20 +3335,17 @@ * @param[in] location location. * @param[in] radius radius. * - * @return display object identifier. - * * @todo Only objects within radius should be lit by each PointLight. * Test each object drawn against each point light and enable * the lights accordingly? Get light and geometry into consistent * coordinates first. */ -openvrml::gl::viewer::object_t -openvrml::gl::viewer::do_insert_point_light(const float ambientIntensity, - const vec3f & attenuation, - const color & color, - const float intensity, - const vec3f & location, - const float radius) +void openvrml::gl::viewer::do_insert_point_light(const float ambientIntensity, + const vec3f & attenuation, + const color & color, + const float intensity, + const vec3f & location, + const float radius) { float amb[4] = { ambientIntensity * color.r(), ambientIntensity * color.g(), @@ -3378,7 +3362,7 @@ for (i = 0; i < max_lights; ++i) { if (this->light_info_[i].type == viewer::light_unused) { break; } } - if (i == max_lights) { return 0; } + if (i == max_lights) { return; } this->light_info_[i].type = viewer::light_positional; this->light_info_[i].location = location; @@ -3399,8 +3383,6 @@ // Disable old spot settings glLightf(light, GL_SPOT_CUTOFF, 180.0); glLightf(light, GL_SPOT_EXPONENT, 0.0); - - return 0; } /** @@ -3416,20 +3398,17 @@ * @param[in] location location. * @param[in] radius radius. * - * @return 0. - * * @todo Same comments as for PointLight apply here. */ -openvrml::gl::viewer::object_t -openvrml::gl::viewer::do_insert_spot_light(const float ambientIntensity, - const vec3f & attenuation, - const float beamWidth, - const color & color, - const float cutOffAngle, - const vec3f & direction, - const float intensity, - const vec3f & location, - const float radius) +void openvrml::gl::viewer::do_insert_spot_light(const float ambientIntensity, + const vec3f & attenuation, + const float beamWidth, + const color & color, + const float cutOffAngle, + const vec3f & direction, + const float intensity, + const vec3f & location, + const float radius) { float amb[4] = { ambientIntensity * color.r(), ambientIntensity * color.g(), @@ -3447,7 +3426,7 @@ for (i = 0; i < max_lights; ++i) { if (this->light_info_[i].type == viewer::light_unused) { break; } } - if (i == max_lights) { return 0; } + if (i == max_lights) { return; } this->light_info_[i].type = viewer::light_positional; this->light_info_[i].location = location; @@ -3469,8 +3448,6 @@ glLightf(light, GL_SPOT_CUTOFF, GLfloat(cutOffAngle * 180.0 / pi)); // The exponential dropoff is not right/spec compliant... glLightf(light, GL_SPOT_EXPONENT, beamWidth < cutOffAngle ? 1.0f : 0.0f); - - return 0; } /** Modified: trunk/src/libopenvrml-gl/openvrml/gl/viewer.h =================================================================== --- trunk/src/libopenvrml-gl/openvrml/gl/viewer.h 2009-04-03 06:28:17 UTC (rev 3880) +++ trunk/src/libopenvrml-gl/openvrml/gl/viewer.h 2009-04-03 07:15:23 UTC (rev 3881) @@ -188,12 +188,12 @@ virtual void do_reset_user_navigation(); // Scope dirlights, open/close display lists - virtual object_t do_begin_object(const char * id, bool retain); + virtual void do_begin_object(const char * id, bool retain); virtual void do_end_object(); // Insert objects into the display list virtual - object_t + void do_insert_background(const std::vector<float> & groundAngle, const std::vector<color> & groundColor, const std::vector<float> & skyAngle, @@ -266,25 +266,25 @@ float radius); // Lights - virtual object_t do_insert_dir_light(float ambientIntensity, - float intensity, - const color & color, - const vec3f & direction); - virtual object_t do_insert_point_light(float ambientIntensity, - const vec3f & attenuation, - const color & color, - float intensity, - const vec3f & location, - float radius); - virtual object_t do_insert_spot_light(float ambientIntensity, - const vec3f & attenuation, - float beamWidth, - const color & color, - float cutOffAngle, - const vec3f & direction, - float intensity, - const vec3f & location, - float radius); + virtual void do_insert_dir_light(float ambientIntensity, + float intensity, + const color & color, + const vec3f & direction); + virtual void do_insert_point_light(float ambientIntensity, + const vec3f & attenuation, + const color & color, + float intensity, + const vec3f & location, + float radius); + virtual void do_insert_spot_light(float ambientIntensity, + const vec3f & attenuation, + float beamWidth, + const color & color, + float cutOffAngle, + const vec3f & direction, + float intensity, + const vec3f & location, + float radius); virtual void do_remove_object(const node & ref); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-04-05 01:07:43
|
Revision: 3882 http://openvrml.svn.sourceforge.net/openvrml/?rev=3882&view=rev Author: braden Date: 2009-04-05 01:07:30 +0000 (Sun, 05 Apr 2009) Log Message: ----------- Apply the nonvirtual interface pattern to openvrml::gl::viewer's pure virtual functions. Modified Paths: -------------- trunk/ChangeLog trunk/examples/sdl_viewer.cpp trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp trunk/src/libopenvrml-gl/openvrml/gl/viewer.h trunk/src/openvrml-xembed/browser.cpp Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-04-03 07:15:23 UTC (rev 3881) +++ trunk/ChangeLog 2009-04-05 01:07:30 UTC (rev 3882) @@ -1,3 +1,35 @@ +2009-04-04 Braden McDaniel <br...@en...> + + Apply the nonvirtual interface pattern to openvrml::gl::viewer's + pure virtual functions. + + * examples/sdl_viewer.cpp (sdl_viewer): Override do_post_redraw, + do_set_cursor, do_swap_buffers, and do_set_timer. + * src/libopenvrml-gl/openvrml/gl/viewer.cpp + (openvrml::gl::viewer::post_redraw()): Delegate to do_post_redraw. + (openvrml::gl::viewer::do_post_redraw()): Moved the logic that was + in post_redraw to here. + (openvrml::gl::viewer::set_cursor(cursor_style)): Delegate to + do_set_cursor. + (openvrml::gl::viewer::do_set_cursor(cursor_style)): Moved the + logic that was in set_cursor to here. + (openvrml::gl::viewer::swap_buffers()): Delegate to + do_swap_buffers. + (openvrml::gl::viewer::do_swap_buffers()): Moved the logic that + was in swap_buffers to here. + (openvrml::gl::viewer::set_timer(double)): Delegate to + do_set_timer. + (openvrml::gl::viewer::do_set_timer(double)): Moved the logic that + was in set_timer to here. + * src/libopenvrml-gl/openvrml/gl/viewer.h + (openvrml::gl::viewer): Made post_redraw, set_cursor, + swap_buffers, and set_timer nonvirtual (and protected); added + private virtual functions do_post_redraw, do_set_cursor, + do_swap_buffers, and do_set_timer. + * src/openvrml-xembed/browser.cpp + (GtkGLViewer): Override do_post_redraw, do_set_cursor, + do_swap_buffers, and do_set_timer. + 2009-04-03 Braden McDaniel <br...@en...> Get rid of the last vestiges of openvrml::viewer::object_t. Modified: trunk/examples/sdl_viewer.cpp =================================================================== --- trunk/examples/sdl_viewer.cpp 2009-04-03 07:15:23 UTC (rev 3881) +++ trunk/examples/sdl_viewer.cpp 2009-04-05 01:07:30 UTC (rev 3882) @@ -70,10 +70,10 @@ // // Window system specific methods // - virtual void post_redraw(); - virtual void set_cursor(cursor_style c); - virtual void swap_buffers(); - virtual void set_timer(double); + virtual void do_post_redraw(); + virtual void do_set_cursor(cursor_style c); + virtual void do_swap_buffers(); + virtual void do_set_timer(double); }; } @@ -384,7 +384,7 @@ } while (!done); } - void sdl_viewer::post_redraw() + void sdl_viewer::do_post_redraw() { SDL_Event redraw_event; redraw_event.type = SDL_USEREVENT; @@ -394,10 +394,10 @@ SDL_PushEvent(&redraw_event); } - void sdl_viewer::set_cursor(cursor_style) + void sdl_viewer::do_set_cursor(cursor_style) {} - void sdl_viewer::swap_buffers() + void sdl_viewer::do_swap_buffers() { SDL_GL_SwapBuffers(); } @@ -416,7 +416,7 @@ return 0; } - void sdl_viewer::set_timer(const double t) + void sdl_viewer::do_set_timer(const double t) { if (!this->update_timer_id) { const Uint32 interval = Uint32(1000.0 * t + 20); // milliseconds. Modified: trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp =================================================================== --- trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp 2009-04-03 07:15:23 UTC (rev 3881) +++ trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp 2009-04-05 01:07:30 UTC (rev 3882) @@ -4659,30 +4659,68 @@ } /** - * @fn void openvrml::gl::viewer::post_redraw() + * @brief Called to indicate to the windowing system that a redraw is + * necessary. + */ +void openvrml::gl::viewer::post_redraw() +{ + this->do_post_redraw(); +} + +/** + * @fn void openvrml::gl::viewer::do_post_redraw() * * @brief Called to indicate to the windowing system that a redraw is * necessary. */ /** - * @fn void openvrml::gl::viewer::set_cursor(cursor_style c) + * @brief Called to set the cursor style. * + * @param[in] c cursor style identifier. + */ +void openvrml::gl::viewer::set_cursor(const cursor_style c) +{ + this->do_set_cursor(c); +} + +/** + * @fn void openvrml::gl::viewer::do_set_cursor(cursor_style c) + * * @brief Called to set the cursor style. * * @param[in] c cursor style identifier. */ /** - * @fn void openvrml::gl::viewer::swap_buffers() + * @brief Called to indicate to the windowing system that the front and back + * buffers should be swapped. + */ +void openvrml::gl::viewer::swap_buffers() +{ + this->do_swap_buffers(); +} + +/** + * @fn void openvrml::gl::viewer::do_swap_buffers() * * @brief Called to indicate to the windowing system that the front and back * buffers should be swapped. */ /** - * @fn void openvrml::gl::viewer::set_timer(double interval) + * @brief Set a delay. * + * @param[in] interval milliseconds to delay. + */ +void openvrml::gl::viewer::set_timer(const double interval) +{ + this->do_set_timer(interval); +} + +/** + * @fn void openvrml::gl::viewer::do_set_timer(double interval) + * * @brief Set a delay. * * @param[in] interval milliseconds to delay. Modified: trunk/src/libopenvrml-gl/openvrml/gl/viewer.h =================================================================== --- trunk/src/libopenvrml-gl/openvrml/gl/viewer.h 2009-04-03 07:15:23 UTC (rev 3881) +++ trunk/src/libopenvrml-gl/openvrml/gl/viewer.h 2009-04-05 01:07:30 UTC (rev 3882) @@ -163,6 +163,11 @@ // Check for pickable entity selection bool checkSensitive(int x, int y, event_type event); + void post_redraw(); + void set_cursor(cursor_style c); + void swap_buffers(); + void set_timer(double interval); + public: viewer(); virtual ~viewer() OPENVRML_NOTHROW; @@ -340,10 +345,10 @@ // Window system specific methods - virtual void post_redraw() = 0; - virtual void set_cursor(cursor_style c) = 0; - virtual void swap_buffers() = 0; - virtual void set_timer(double interval) = 0; + virtual void do_post_redraw() = 0; + virtual void do_set_cursor(cursor_style c) = 0; + virtual void do_swap_buffers() = 0; + virtual void do_set_timer(double interval) = 0; }; } } Modified: trunk/src/openvrml-xembed/browser.cpp =================================================================== --- trunk/src/openvrml-xembed/browser.cpp 2009-04-03 07:15:23 UTC (rev 3881) +++ trunk/src/openvrml-xembed/browser.cpp 2009-04-05 01:07:30 UTC (rev 3882) @@ -617,10 +617,10 @@ // // Implement pure virtual methods from openvrml::gl::viewer. // - virtual void post_redraw(); - virtual void set_cursor(openvrml::gl::viewer::cursor_style); - virtual void swap_buffers(); - virtual void set_timer(double); + virtual void do_post_redraw(); + virtual void do_set_cursor(openvrml::gl::viewer::cursor_style); + virtual void do_swap_buffers(); + virtual void do_set_timer(double); }; } @@ -1121,7 +1121,7 @@ if (this->timer) { g_source_remove(timer); } } - void GtkGLViewer::post_redraw() + void GtkGLViewer::do_post_redraw() { if (!this->browser_plug_.priv->redraw_needed) { this->browser_plug_.priv->redraw_needed = true; @@ -1130,7 +1130,7 @@ } } - void GtkGLViewer::set_cursor(cursor_style style) + void GtkGLViewer::do_set_cursor(cursor_style style) { GdkCursor * cursor(0); @@ -1170,7 +1170,7 @@ gdk_cursor_destroy(cursor); } - void GtkGLViewer::swap_buffers() + void GtkGLViewer::do_swap_buffers() { GdkGLDrawable * const gl_drawable = gtk_widget_get_gl_drawable( @@ -1178,7 +1178,7 @@ gdk_gl_drawable_swap_buffers(gl_drawable); } - void GtkGLViewer::set_timer(const double t) + void GtkGLViewer::do_set_timer(const double t) { if (!this->timer) { this->timer = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-04-05 05:13:11
|
Revision: 3883 http://openvrml.svn.sourceforge.net/openvrml/?rev=3883&view=rev Author: braden Date: 2009-04-05 05:12:57 +0000 (Sun, 05 Apr 2009) Log Message: ----------- Override openvrml::geometry_node::do_color instead of openvrml::geometry_node::color (which is now nonvirtual). Modified Paths: -------------- trunk/ChangeLog trunk/src/node/vrml97/abstract_indexed_set.h Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-04-05 01:07:30 UTC (rev 3882) +++ trunk/ChangeLog 2009-04-05 05:12:57 UTC (rev 3883) @@ -1,3 +1,10 @@ +2009-04-05 Braden McDaniel <br...@en...> + + * src/node/vrml97/abstract_indexed_set.h + (openvrml_node_vrml97::abstract_indexed_set_node<Derived>::do_color() + const): Override openvrml::geometry_node::do_color instead of + openvrml::geometry_node::color (which is now nonvirtual). + 2009-04-04 Braden McDaniel <br...@en...> Apply the nonvirtual interface pattern to openvrml::gl::viewer's Modified: trunk/src/node/vrml97/abstract_indexed_set.h =================================================================== --- trunk/src/node/vrml97/abstract_indexed_set.h 2009-04-05 01:07:30 UTC (rev 3882) +++ trunk/src/node/vrml97/abstract_indexed_set.h 2009-04-05 05:12:57 UTC (rev 3883) @@ -80,7 +80,7 @@ virtual bool modified() const; - virtual const openvrml::color_node * color() const OPENVRML_NOTHROW; + virtual const openvrml::color_node * do_color() const OPENVRML_NOTHROW; protected: abstract_indexed_set_node( @@ -283,7 +283,7 @@ */ template <typename Derived> const openvrml::color_node * - abstract_indexed_set_node<Derived>::color() const OPENVRML_NOTHROW + abstract_indexed_set_node<Derived>::do_color() const OPENVRML_NOTHROW { using openvrml::sfnode; return openvrml::node_cast<openvrml::color_node *>( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-04-05 05:33:04
|
Revision: 3884 http://openvrml.svn.sourceforge.net/openvrml/?rev=3884&view=rev Author: braden Date: 2009-04-05 05:32:54 +0000 (Sun, 05 Apr 2009) Log Message: ----------- Clean up allocated GL resources on window resize so that the viewer can be reinitialized. Some platforms and bindings (notably SDL on Windows) destroy the GL context on resize. Modified Paths: -------------- trunk/ChangeLog trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp trunk/src/libopenvrml-gl/openvrml/gl/viewer.h Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-04-05 05:12:57 UTC (rev 3883) +++ trunk/ChangeLog 2009-04-05 05:32:54 UTC (rev 3884) @@ -1,5 +1,29 @@ 2009-04-05 Braden McDaniel <br...@en...> + Clean up allocated GL resources on window resize so that the + viewer can be reinitialized. Some platforms and bindings (notably + SDL on Windows) destroy the GL context on resize. + + * src/libopenvrml-gl/openvrml/gl/viewer.cpp + (openvrml::gl::viewer::viewer()): Initialize the tesselator to 0; + allocate the tesselator in openvrml::gl::viewer::initialize + instead. + (openvrml::gl::viewer::~viewer()): Call shutdown. + (openvrml::gl::viewer::initialize()): Allocate the GLU tesselator + here. + (openvrml::gl::viewer::delete_list): Function object to call + glDeleteLists. + (openvrml::gl::viewer::delete_texture): Function object to call + glDeleteTextures. + (openvrml::gl::viewer::shutdown()): Clean up display lists, + textures objects, and the GLU tesselator. + (openvrml::gl::viewer::resize(size_t, size_t)): Call shutdown. + * src/libopenvrml-gl/openvrml/gl/viewer.h + (openvrml::gl::viewer): Declare structs delete_list and + delete_texture; added shutdown member function. + +2009-04-05 Braden McDaniel <br...@en...> + * src/node/vrml97/abstract_indexed_set.h (openvrml_node_vrml97::abstract_indexed_set_node<Derived>::do_color() const): Override openvrml::geometry_node::do_color instead of Modified: trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp =================================================================== --- trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp 2009-04-05 05:12:57 UTC (rev 3883) +++ trunk/src/libopenvrml-gl/openvrml/gl/viewer.cpp 2009-04-05 05:32:54 UTC (rev 3884) @@ -911,7 +911,7 @@ win_height(1), objects(0), nested_objects(0), - tesselator(gluNewTess()), + tesselator(0), sensitive(0), active_sensitive(0), over_sensitive(0), @@ -936,7 +936,7 @@ */ openvrml::gl::viewer::~viewer() OPENVRML_NOTHROW { - gluDeleteTess(this->tesselator); + this->shutdown(); } /** @@ -944,6 +944,9 @@ */ void openvrml::gl::viewer::initialize() { + assert(!this->tesselator); + this->tesselator = gluNewTess(); + glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); @@ -966,6 +969,39 @@ this->gl_initialized = true; } +struct OPENVRML_LOCAL openvrml::gl::viewer::delete_list { + void operator()(const list_map_t::value_type & value) const + { + glDeleteLists(value.second, 1); + } +}; + +struct OPENVRML_LOCAL openvrml::gl::viewer::delete_texture { + void operator()(const texture_map_t::value_type & value) const + { + glDeleteTextures(1, &value.second); + } +}; + +/** + * @brief Shut down. + */ +void openvrml::gl::viewer::shutdown() +{ + std::for_each(this->list_map_.begin(), this->list_map_.end(), + delete_list()); + this->list_map_.clear(); + + std::for_each(this->texture_map_.begin(), this->texture_map_.end(), + delete_texture()); + this->texture_map_.clear(); + + if (this->tesselator) { gluDeleteTess(this->tesselator); } + this->tesselator = 0; + + this->gl_initialized = false; +} + namespace { // Call this after each frame for debugging... @@ -3989,9 +4025,18 @@ */ void openvrml::gl::viewer::resize(size_t width, size_t height) { + // + // Some platforms/bindings may destroy the GL context when resizing the + // window. Go ahead and clean up display lists and texture maps. They'll + // get recreated as needed. + // + this->shutdown(); + if (width < 2) { width = 2; } if (height < 2) { height = 2; } - glViewport(0, 0, GLsizei(width), GLsizei(height)); + glViewport(0, 0, + static_cast<GLsizei>(width), + static_cast<GLsizei>(height)); this->win_width = width; this->win_height = height; } Modified: trunk/src/libopenvrml-gl/openvrml/gl/viewer.h =================================================================== --- trunk/src/libopenvrml-gl/openvrml/gl/viewer.h 2009-04-05 05:12:57 UTC (rev 3883) +++ trunk/src/libopenvrml-gl/openvrml/gl/viewer.h 2009-04-05 05:32:54 UTC (rev 3884) @@ -45,9 +45,11 @@ class OPENVRML_GL_API viewer : public openvrml::viewer { typedef std::map<const node *, GLuint> list_map_t; + struct delete_list; list_map_t list_map_; typedef std::map<const texture_node *, GLuint> texture_map_t; + struct delete_texture; texture_map_t texture_map_; public: @@ -146,8 +148,8 @@ double render_time; double render_time1; - // Initialize OpenGL state void initialize(); + void shutdown(); void begin_geometry(); void end_geometry(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-04-06 07:05:20
|
Revision: 3885 http://openvrml.svn.sourceforge.net/openvrml/?rev=3885&view=rev Author: braden Date: 2009-04-06 07:05:11 +0000 (Mon, 06 Apr 2009) Log Message: ----------- Removed cruft. Modified Paths: -------------- trunk/ChangeLog trunk/src/node/vrml97/background.cpp Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-04-05 05:32:54 UTC (rev 3884) +++ trunk/ChangeLog 2009-04-06 07:05:11 UTC (rev 3885) @@ -1,5 +1,12 @@ 2009-04-05 Braden McDaniel <br...@en...> + * src/node/vrml97/background.cpp + (update_texture(openvrml_node_vrml97::background_node &, + openvrml::read_write_mutex &, const openvrml::mfstring &, + openvrml::image &)): Removed (cruft). + +2009-04-05 Braden McDaniel <br...@en...> + Clean up allocated GL resources on window resize so that the viewer can be reinitialized. Some platforms and bindings (notably SDL on Windows) destroy the GL context on resize. Modified: trunk/src/node/vrml97/background.cpp =================================================================== --- trunk/src/node/vrml97/background.cpp 2009-04-05 05:32:54 UTC (rev 3884) +++ trunk/src/node/vrml97/background.cpp 2009-04-06 07:05:11 UTC (rev 3885) @@ -793,37 +793,6 @@ namespace { - OPENVRML_LOCAL void - update_texture(openvrml_node_vrml97::background_node & node, - openvrml::read_write_mutex & img_mutex, - const openvrml::mfstring & url, - openvrml::image & img) - OPENVRML_THROW1(std::bad_alloc) - { - try { - using openvrml::image; - using openvrml_node_vrml97::image_stream_listener; - - if (url.value().empty()) { - img = image(); - } else { - using std::auto_ptr; - - auto_ptr<openvrml::resource_istream> in( - node.scene()->get_resource(url.value())); - auto_ptr<openvrml::stream_listener> listener( - new image_stream_listener(in->url(), - img, - node, - img_mutex)); - node.scene()->read_stream(in, listener); - } - } catch (const openvrml::no_alternative_url &) {} - } -} - -namespace { - const boost::shared_ptr<openvrml::scope> null_scope_ptr; null_texture_node::null_texture_node(const openvrml::null_node_type & type) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |