|
From: <br...@us...> - 2008-10-03 22:36:54
|
Revision: 3712
http://openvrml.svn.sourceforge.net/openvrml/?rev=3712&view=rev
Author: braden
Date: 2008-10-03 22:36:49 +0000 (Fri, 03 Oct 2008)
Log Message:
-----------
Can't safely use builddir for relative paths; and we don't need it anyway.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/src/Makefile.am
Property Changed:
----------------
branches/0.17/
Property changes on: branches/0.17
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk:3596,3612,3707
+ /trunk:3596,3612,3707,3710
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-03 22:28:24 UTC (rev 3711)
+++ branches/0.17/ChangeLog 2008-10-03 22:36:49 UTC (rev 3712)
@@ -1,5 +1,11 @@
2008-10-03 Braden McDaniel <br...@en...>
+ * src/Makefile.am
+ (openvrml_player_openvrml_player_CPPFLAGS): Can't safely use
+ builddir for relative paths; and we don't need it anyway.
+
+2008-10-03 Braden McDaniel <br...@en...>
+
Revert to using libglade rather than GtkBuilder in openvrml-player.
* configure.ac: Don't require Gtk+ 2.12; check for libglade.
Modified: branches/0.17/src/Makefile.am
===================================================================
--- branches/0.17/src/Makefile.am 2008-10-03 22:28:24 UTC (rev 3711)
+++ branches/0.17/src/Makefile.am 2008-10-03 22:36:49 UTC (rev 3712)
@@ -231,8 +231,8 @@
-DGNOME_DISABLE_DEPRECATED \
-DOPENVRML_PLAYER_PKGDATADIR_=\"$(datadir)/openvrml-player\" \
-DOPENVRML_LIBEXECDIR_=\"$(libexecdir)\" \
- -I$(builddir)/openvrml-player \
- -I$(builddir)/libopenvrml \
+ -Iopenvrml-player \
+ -Ilibopenvrml \
-I$(srcdir)/libopenvrml
openvrml_player_openvrml_player_CXXFLAGS = \
$(DBUS_G_CFLAGS) \
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-04 04:44:36
|
Revision: 3713
http://openvrml.svn.sourceforge.net/openvrml/?rev=3713&view=rev
Author: braden
Date: 2008-10-04 04:43:41 +0000 (Sat, 04 Oct 2008)
Log Message:
-----------
If we set the absolute path of session_bus_servicesdir, the resulting Automake code is not DESTDIR-aware. While we could take care of this in install-local, it's probably safe to hard-code a relative path for this.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/configure.ac
branches/0.17/src/Makefile.am
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-03 22:36:49 UTC (rev 3712)
+++ branches/0.17/ChangeLog 2008-10-04 04:43:41 UTC (rev 3713)
@@ -1,3 +1,14 @@
+2008-10-04 Braden McDaniel <br...@en...>
+
+ If we set the absolute path of session_bus_servicesdir, the
+ resulting Automake code is not DESTDIR-aware. While we could take
+ care of this in install-local, it's probably safe to hard-code a
+ relative path for this.
+
+ * configure.ac: Don't AC_SUBST session_bus_servicesdir.
+ * src/Makefile.am: Hard code the relative path of
+ session_bus_servicesdir.
+
2008-10-03 Braden McDaniel <br...@en...>
* src/Makefile.am
Modified: branches/0.17/configure.ac
===================================================================
--- branches/0.17/configure.ac 2008-10-03 22:36:49 UTC (rev 3712)
+++ branches/0.17/configure.ac 2008-10-04 04:43:41 UTC (rev 3713)
@@ -144,8 +144,6 @@
PKG_CHECK_MODULES([DBUS_G], [dbus-glib-1 glib-2.0 >= 2.6], ,
[have_dbus_glib=no])
AC_PATH_PROG([DBUS_BINDING_TOOL], [dbus-binding-tool])
-session_bus_servicesdir=`$PKG_CONFIG --variable=session_bus_services_dir dbus-1`
-AC_SUBST([session_bus_servicesdir])
PKG_CHECK_MODULES([GTK], [gtk+-2.0 gthread-2.0 glib-2.0 >= 2.6], ,
[have_gtk=no])
Modified: branches/0.17/src/Makefile.am
===================================================================
--- branches/0.17/src/Makefile.am 2008-10-03 22:36:49 UTC (rev 3712)
+++ branches/0.17/src/Makefile.am 2008-10-04 04:43:41 UTC (rev 3713)
@@ -5,6 +5,7 @@
if ENABLE_XEMBED
libexec_PROGRAMS = openvrml-xembed/openvrml-xembed
+session_bus_servicesdir = $(datadir)/dbus-1/services
session_bus_services_DATA = openvrml-xembed/org.openvrml.BrowserControl.service
endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-02 07:05:15
|
Revision: 3708
http://openvrml.svn.sourceforge.net/openvrml/?rev=3708&view=rev
Author: braden
Date: 2008-10-02 07:05:06 +0000 (Thu, 02 Oct 2008)
Log Message:
-----------
Keep track of host instances in openvrml-xembed and shut down when the last one terminates.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/src/openvrml-xembed/browser-factory.xml
branches/0.17/src/openvrml-xembed/browserfactory.cpp
branches/0.17/src/openvrml-xembed/browserfactory.h
branches/0.17/src/openvrml-xembed/main.cpp
Property Changed:
----------------
branches/0.17/
Property changes on: branches/0.17
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk:3596,3612
+ /trunk:3596,3612,3707
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-02 07:02:02 UTC (rev 3707)
+++ branches/0.17/ChangeLog 2008-10-02 07:05:06 UTC (rev 3708)
@@ -1,3 +1,65 @@
+2008-10-02 Braden McDaniel <br...@en...>
+
+ Keep track of host instances in openvrml-xembed and shut down when
+ the last one terminates.
+
+ * src/openvrml-xembed/browser-factory.xml: Added
+ "org.freedesktop.DBus.GLib.Async" annotation to CreateControl
+ method. This allows us to use DBusGMethodInvocation in the method
+ implementation.
+ * src/openvrml-xembed/browserfactory.cpp
+ (openvrml_xembed_error_quark()): GQuark for the GErrors we
+ generate.
+ (OpenvrmlXembedError): GError codes.
+ (intrusive_ptr_add_ref(GObject *)): Added so that
+ boost::intrusive_ptr can be used with GObject.
+ (intrusive_ptr_release(GObject *)): Added so that
+ boost::intrusive_ptr can be used with GObject.
+ (OpenvrmlXembedBrowserFactoryPrivate_): Moved
+ OpenvrmlXembedBrowserFactory data members to a private struct.
+ hosts is a map of the unique bus identifiers of hosts to a map of
+ the controls instantiated by the host.
+ (openvrml_xembed_browser_factory_constructor(GType, guint,
+ GObjectConstructParam *)): Instantiate the hosts map in the
+ constructor function.
+ (openvrml_xembed_browser_factory_finalize(GObject *)): Destroy the
+ hosts map and unref the DBus proxy.
+ (openvrml_xembed_browser_factory_init(OpenvrmlXembedBrowserFactory *)):
+ Use the DBus proxy associated with the
+ OpenvrmlXembedBrowserFactory instance; connect to the
+ org.freedesktop.DBus.NameOwnerChanged signal.
+ (openvrml_xembed_browser_factory_class_init(OpenvrmlXembedBrowserFactoryClass *)):
+ Set constructor and finalize functions; set up private data.
+ (on_host_shutdown_data): Added host_name to hold the unique bus
+ identifier of the host.
+ (delete_on_host_shutdown_data): on_host_shutdown_data now owns the
+ control_obj_path and host_name strings; free them.
+ (openvrml_xembed_browser_factory_create_control(OpenvrmlXembedBrowserFactory *,
+ const char *, const char *, guint, gboolean,
+ DBusGMethodInvocation *)): Get the host's unique bus identifier
+ and track it in the hosts map.
+ (openvrml_xembed_browser_factory_on_host_shutdown_event(DBusGProxy *,
+ gpointer)): Erase the shut down control from the hosts map. The
+ intrusive_ptr will unref it.
+ (openvrml_xembed_browser_factory_name_owner_changed(DBusGProxy *,
+ const gchar *, const gchar *, const gchar *, gpointer)): Erase the
+ host leaving the bus from the hosts map; this cleans up resources
+ associated with the host. Quit when the last host leaves.
+ * src/openvrml-xembed/browserfactory.h
+ (OPENVRML_XEMBED_BROWSER_FACTORY_CLASS): Fixed missing third
+ parameter to G_TYPE_CHECK_CLASS_CAST.
+ (OpenvrmlXembedBrowserFactory_): Moved data members to private
+ struct.
+ (openvrml_xembed_browser_factory_create_control(OpenvrmlXembedBrowserFactory *,
+ const char *, const char *, guint, gboolean,
+ DBusGMethodInvocation *)): Changed signature per
+ "org.freedesktop.DBus.GLib.Async" annotation.
+ * src/openvrml-xembed/main.cpp
+ (main(int, char *[])): Removed redundant name request; this is
+ taken care of in the OpenvrmlXembedBrowserFactory implementation.
+ Don't unref the browser_factory; this seems not to play well with
+ dbus_g_connection_register_g_object.
+
2008-09-11 Braden McDaniel <br...@en...>
Added a Visual C++ project file for the pretty-print example.
Modified: branches/0.17/src/openvrml-xembed/browser-factory.xml
===================================================================
--- branches/0.17/src/openvrml-xembed/browser-factory.xml 2008-10-02 07:02:02 UTC (rev 3707)
+++ branches/0.17/src/openvrml-xembed/browser-factory.xml 2008-10-02 07:05:06 UTC (rev 3708)
@@ -3,6 +3,7 @@
<node name="/org/openvrml/BrowserFactory">
<interface name="org.openvrml.BrowserFactory">
<method name="CreateControl">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value="true" />
<arg type="s" name="host_name" direction="in" />
<arg type="o" name="host_object_path" direction="in" />
<arg type="t" name="host_id" direction="in" />
Modified: branches/0.17/src/openvrml-xembed/browserfactory.cpp
===================================================================
--- branches/0.17/src/openvrml-xembed/browserfactory.cpp 2008-10-02 07:02:02 UTC (rev 3707)
+++ branches/0.17/src/openvrml-xembed/browserfactory.cpp 2008-10-02 07:05:06 UTC (rev 3708)
@@ -19,9 +19,15 @@
//
# include <boost/concept_check.hpp>
+# include <boost/intrusive_ptr.hpp>
# include <boost/multi_index/detail/scope_guard.hpp>
# include <boost/ref.hpp>
+# include <gtk/gtk.h>
# include <dbus/dbus-glib-bindings.h>
+# include <dbus/dbus-glib-lowlevel.h>
+# include <map>
+# include <memory>
+# include <cstring>
# include <cstdlib>
# include "browserfactory.h"
@@ -30,33 +36,132 @@
using namespace boost::multi_index::detail; // for scope_guard
+# define OPENVRML_XEMBED_ERROR openvrml_xembed_error_quark()
+GQuark openvrml_xembed_error_quark()
+{
+ return g_quark_from_static_string("openvrml-xembed-error-quark");
+}
+
+enum OpenvrmlXembedError {
+ OPENVRML_XEMBED_ERROR_FAILED,
+ OPENVRML_XEMBED_ERROR_NO_MEMORY
+};
+
G_DEFINE_TYPE(OpenvrmlXembedBrowserFactory,
openvrml_xembed_browser_factory,
G_TYPE_OBJECT);
+namespace {
+ G_GNUC_INTERNAL void intrusive_ptr_add_ref(GObject * const obj)
+ {
+ g_object_ref(obj);
+ }
+
+ G_GNUC_INTERNAL void intrusive_ptr_release(GObject * const obj)
+ {
+ g_object_unref(obj);
+ }
+}
+
+//
+// hosts maps the unique bus identifiers of hosts to a controls_map_t; a
+// controls_map_t maps an object path to an OpenvrmlXembedBrowser instance.
+//
+
+typedef std::map<std::string, boost::intrusive_ptr<GObject> > controls_map_t;
+typedef std::map<std::string, controls_map_t > hosts_map_t;
+
+struct OpenvrmlXembedBrowserFactoryPrivate_ {
+ DBusGProxy * driver_proxy;
+ hosts_map_t * hosts;
+};
+
+# define OPENVRML_XEMBED_BROWSER_FACTORY_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), OPENVRML_XEMBED_TYPE_BROWSER_FACTORY, OpenvrmlXembedBrowserFactoryPrivate))
+
+extern "C"
+G_GNUC_INTERNAL
+GObject *
+openvrml_xembed_browser_factory_constructor(
+ const GType type,
+ const guint n_construct_properties,
+ GObjectConstructParam * const construct_properties)
+{
+ GObject * obj;
+ {
+ OpenvrmlXembedBrowserFactoryClass * const klass =
+ OPENVRML_XEMBED_BROWSER_FACTORY_CLASS(
+ g_type_class_peek(OPENVRML_XEMBED_TYPE_BROWSER_FACTORY));
+ GObjectClass * const parent_class =
+ G_OBJECT_CLASS(g_type_class_peek_parent(klass));
+ obj = parent_class->constructor(type,
+ n_construct_properties,
+ construct_properties);
+ }
+
+ try {
+ using std::auto_ptr;
+ OpenvrmlXembedBrowserFactory * const browser_factory =
+ OPENVRML_XEMBED_BROWSER_FACTORY(obj);
+ auto_ptr<hosts_map_t> hosts(new hosts_map_t);
+ browser_factory->priv->hosts = hosts.release();
+ } catch (std::bad_alloc &) {
+ return 0;
+ }
+
+ return obj;
+}
+
+extern "C"
+G_GNUC_INTERNAL
void
+openvrml_xembed_browser_factory_finalize(GObject * const obj)
+{
+ OpenvrmlXembedBrowserFactory * browser_factory =
+ OPENVRML_XEMBED_BROWSER_FACTORY(obj);
+ delete browser_factory->priv->hosts;
+ g_object_unref(browser_factory->priv->driver_proxy);
+
+ OpenvrmlXembedBrowserFactoryClass * const klass =
+ OPENVRML_XEMBED_BROWSER_FACTORY_CLASS(
+ g_type_class_peek(OPENVRML_XEMBED_TYPE_BROWSER_FACTORY));
+ GObjectClass * const parent_class =
+ G_OBJECT_CLASS(g_type_class_peek_parent(klass));
+ parent_class->finalize(obj);
+}
+
+
+extern "C"
+G_GNUC_INTERNAL
+gboolean
+openvrml_xembed_browser_factory_name_owner_changed(DBusGProxy * proxy,
+ const gchar * name,
+ const gchar * old_owner,
+ const gchar * new_owner,
+ gpointer user_data);
+void
openvrml_xembed_browser_factory_init(
- OpenvrmlXembedBrowserFactory * control_factory)
+ OpenvrmlXembedBrowserFactory * const browser_factory)
{
+ browser_factory->priv =
+ OPENVRML_XEMBED_BROWSER_FACTORY_GET_PRIVATE(browser_factory);
+
GError * error = 0;
scope_guard error_guard = make_guard(g_error_free, boost::ref(error));
- OpenvrmlXembedBrowserFactoryClass * control_factory_class =
- OPENVRML_XEMBED_BROWSER_FACTORY_GET_CLASS(control_factory);
+ OpenvrmlXembedBrowserFactoryClass * browser_factory_class =
+ OPENVRML_XEMBED_BROWSER_FACTORY_GET_CLASS(browser_factory);
- dbus_g_connection_register_g_object(control_factory_class->connection,
+ dbus_g_connection_register_g_object(browser_factory_class->connection,
"/org/openvrml/BrowserFactory",
- G_OBJECT(control_factory));
+ G_OBJECT(browser_factory));
- DBusGProxy * driver_proxy =
- dbus_g_proxy_new_for_name(control_factory_class->connection,
+ browser_factory->priv->driver_proxy =
+ dbus_g_proxy_new_for_name(browser_factory_class->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,
+ if (!org_freedesktop_DBus_request_name(browser_factory->priv->driver_proxy,
"org.openvrml.BrowserControl",
0, &request_ret,
&error)) {
@@ -65,9 +170,18 @@
return;
}
- control_factory->controls =
- g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_object_unref);
+ dbus_g_proxy_add_signal(browser_factory->priv->driver_proxy,
+ "NameOwnerChanged",
+ G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
+ G_TYPE_INVALID);
+ dbus_g_proxy_connect_signal(
+ browser_factory->priv->driver_proxy,
+ "NameOwnerChanged",
+ G_CALLBACK(openvrml_xembed_browser_factory_name_owner_changed),
+ browser_factory,
+ 0);
+
error_guard.dismiss();
}
@@ -75,6 +189,11 @@
openvrml_xembed_browser_factory_class_init(
OpenvrmlXembedBrowserFactoryClass * klass)
{
+ G_OBJECT_CLASS(klass)->constructor =
+ openvrml_xembed_browser_factory_constructor;
+ G_OBJECT_CLASS(klass)->finalize =
+ openvrml_xembed_browser_factory_finalize;
+
GError * error = 0;
scope_guard error_guard = make_guard(g_error_free, boost::ref(error));
@@ -84,6 +203,10 @@
return;
}
+
+ g_type_class_add_private(G_OBJECT_CLASS(klass),
+ sizeof (OpenvrmlXembedBrowserFactoryPrivate));
+
dbus_g_object_type_install_info(
OPENVRML_XEMBED_TYPE_BROWSER_FACTORY,
&dbus_glib_openvrml_xembed_browser_factory_object_info);
@@ -100,6 +223,7 @@
namespace {
struct on_host_shutdown_data {
OpenvrmlXembedBrowserFactory * factory;
+ gchar * host_name;
gchar * control_obj_path;
};
}
@@ -108,18 +232,25 @@
G_GNUC_INTERNAL
void delete_on_host_shutdown_data(gpointer data, GClosure * /* closure */)
{
- delete static_cast<on_host_shutdown_data *>(data);
+ on_host_shutdown_data * const d =
+ static_cast<on_host_shutdown_data *>(data);
+ g_free(d->control_obj_path);
+ g_free(d->host_name);
+ delete d;
}
-char *
+gboolean
openvrml_xembed_browser_factory_create_control(
OpenvrmlXembedBrowserFactory * const control_factory,
const char * const host_name,
const char * const host_obj_path,
const guint host_id,
const gboolean expect_initial_stream,
- GError ** const error)
+ DBusGMethodInvocation * const context)
{
+ GError * error = 0;
+ scope_guard error_guard = make_guard(g_error_free, boost::ref(error));
+
DBusGProxy * host =
dbus_g_proxy_new_for_name_owner(
OPENVRML_XEMBED_BROWSER_FACTORY_GET_CLASS(
@@ -127,15 +258,24 @@
host_name,
host_obj_path,
"org.openvrml.BrowserHost",
- error);
- if (!host) { return 0; }
+ &error);
+ if (!host) {
+ dbus_g_method_return_error(context, error);
+ return false;
+ }
OpenvrmlXembedBrowser * const browser =
OPENVRML_XEMBED_BROWSER(
openvrml_xembed_browser_new(host,
host_id,
expect_initial_stream));
- g_return_val_if_fail(browser, 0);
+ if (!browser) {
+ error = g_error_new(OPENVRML_XEMBED_ERROR,
+ OPENVRML_XEMBED_ERROR_NO_MEMORY,
+ "out of memory");
+ dbus_g_method_return_error(context, error);
+ return false;
+ }
static size_t control_count = 0;
char * control_obj_path = g_strdup_printf("/org/openvrml/Browser/%lu",
@@ -145,12 +285,35 @@
control_obj_path,
G_OBJECT(browser));
+ char * const sender = dbus_g_method_get_sender(context);
+ scope_guard sender_guard = make_guard(g_free, sender);
+ boost::ignore_unused_variable_warning(sender_guard);
+ bool succeeded;
+ try {
+ using std::make_pair;
+ succeeded =
+ (*control_factory->priv->hosts)[sender].insert(
+ make_pair(control_obj_path,
+ boost::intrusive_ptr<GObject>(G_OBJECT(browser))))
+ .second;
+ g_debug("inserted reference to %s", sender);
+ } catch (std::bad_alloc & ex) {
+ error = g_error_new(OPENVRML_XEMBED_ERROR,
+ OPENVRML_XEMBED_ERROR_NO_MEMORY,
+ "out of memory");
+ dbus_g_method_return_error(context, error);
+ return false;
+ }
+
+ g_return_val_if_fail(succeeded, false);
+
on_host_shutdown_data * const data = new on_host_shutdown_data;
data->factory = control_factory;
//
- // Note that D-Bus frees the return value; so we need to strdup the one
- // in the hash map.
+ // Note that D-Bus frees the return value; so we need to strdup one to
+ // keep.
//
+ data->host_name = g_strdup(sender);
data->control_obj_path = g_strdup(control_obj_path);
dbus_g_proxy_add_signal(host, "Shutdown", G_TYPE_INVALID);
@@ -162,10 +325,6 @@
data,
delete_on_host_shutdown_data);
- g_hash_table_insert(control_factory->controls,
- data->control_obj_path, // was strdup'd above
- g_object_ref(browser));
-
//
// The plug needs to be realized before it gets shown. Explicitly
// realizing here seems like the most convenient way to ensure this
@@ -174,7 +333,11 @@
gtk_widget_realize(GTK_WIDGET(browser));
gtk_widget_show_all(GTK_WIDGET(browser));
- return control_obj_path;
+ dbus_g_method_return(context, control_obj_path);
+
+ error_guard.dismiss();
+
+ return true;
}
gboolean
@@ -184,9 +347,41 @@
on_host_shutdown_data * const data =
static_cast<on_host_shutdown_data *>(user_data);
- gboolean removed = g_hash_table_remove(data->factory->controls,
- data->control_obj_path);
- g_assert(removed);
+ const hosts_map_t::iterator pos =
+ data->factory->priv->hosts->find(data->host_name);
+ g_return_val_if_fail(pos != data->factory->priv->hosts->end(), false);
+ const size_t erased = pos->second.erase(data->control_obj_path);
+ g_return_val_if_fail(erased > 0, false);
+
return false;
}
+
+gboolean
+openvrml_xembed_browser_factory_name_owner_changed(
+ DBusGProxy * /* proxy */,
+ const gchar * /* name */,
+ const gchar * const old_owner,
+ const gchar * const new_owner,
+ const gpointer user_data)
+{
+ OpenvrmlXembedBrowserFactory * const browser_factory =
+ OPENVRML_XEMBED_BROWSER_FACTORY(user_data);
+
+ //
+ // If there's no new owner, the existing owner is simply leaving (i.e.,
+ // terminating. Clean up resources associated with that host. If that
+ // was the last host, quit.
+ //
+ size_t erased = 0;
+ if (strlen(new_owner) == 0) {
+ erased = browser_factory->priv->hosts->erase(old_owner);
+ g_debug("erased references to %s", old_owner);
+ }
+
+ if (erased > 0 && browser_factory->priv->hosts->empty()) {
+ gtk_main_quit();
+ }
+
+ return false;
+}
Modified: branches/0.17/src/openvrml-xembed/browserfactory.h
===================================================================
--- branches/0.17/src/openvrml-xembed/browserfactory.h 2008-10-02 07:02:02 UTC (rev 3707)
+++ branches/0.17/src/openvrml-xembed/browserfactory.h 2008-10-02 07:05:06 UTC (rev 3708)
@@ -25,7 +25,7 @@
# define OPENVRML_XEMBED_TYPE_BROWSER_FACTORY (openvrml_xembed_browser_factory_get_type())
# define OPENVRML_XEMBED_BROWSER_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), OPENVRML_XEMBED_TYPE_BROWSER_FACTORY, OpenvrmlXembedBrowserFactory))
-# define OPENVRML_XEMBED_BROWSER_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), OPENVRML_XEMBED_TYPE_BROWSER_FACTORY))
+# define OPENVRML_XEMBED_BROWSER_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), OPENVRML_XEMBED_TYPE_BROWSER_FACTORY, OpenvrmlXembedBrowserFactoryClass))
# define OPENVRML_XEMBED_IS_BROWSER_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), OPENVRML_XEMBED_TYPE_BROWSER_FACTORY))
# define OPENVRML_XEMBED_IS_BROWSER_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), OPENVRML_XEMBED_TYPE_BROWSER_FACTORY))
# define OPENVRML_XEMBED_BROWSER_FACTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), OPENVRML_XEMBED_TYPE_BROWSER_FACTORY, OpenvrmlXembedBrowserFactoryClass))
@@ -33,13 +33,14 @@
G_BEGIN_DECLS
typedef struct OpenvrmlXembedBrowserFactory_ OpenvrmlXembedBrowserFactory;
+typedef struct OpenvrmlXembedBrowserFactoryPrivate_ OpenvrmlXembedBrowserFactoryPrivate;
typedef struct OpenvrmlXembedBrowserFactoryClass_ OpenvrmlXembedBrowserFactoryClass;
GType openvrml_xembed_browser_factory_get_type();
struct OpenvrmlXembedBrowserFactory_ {
GObject parent;
- GHashTable * controls;
+ OpenvrmlXembedBrowserFactoryPrivate * priv;
};
struct OpenvrmlXembedBrowserFactoryClass_ {
@@ -47,14 +48,14 @@
DBusGConnection * connection;
};
-char *
+gboolean
openvrml_xembed_browser_factory_create_control(
OpenvrmlXembedBrowserFactory * factory,
const char * host_name,
const char * host_obj_path,
guint host_id,
gboolean expect_initial_stream,
- GError ** error);
+ DBusGMethodInvocation * context);
G_END_DECLS
Modified: branches/0.17/src/openvrml-xembed/main.cpp
===================================================================
--- branches/0.17/src/openvrml-xembed/main.cpp 2008-10-02 07:02:02 UTC (rev 3707)
+++ branches/0.17/src/openvrml-xembed/main.cpp 2008-10-02 07:05:06 UTC (rev 3708)
@@ -95,32 +95,16 @@
return EXIT_FAILURE;
}
- DBusGProxy * bus_proxy = dbus_g_proxy_new_for_name(bus,
- "org.freedesktop.DBus",
- "/org/freedesktop/DBus",
- "org.freedesktop.DBus");
-
- guint request_name_result;
- if (!dbus_g_proxy_call(bus_proxy, "RequestName", &error,
- G_TYPE_STRING, "org.openvrml.VrmlControlFactory",
- G_TYPE_UINT, 0,
- G_TYPE_INVALID,
- G_TYPE_UINT, &request_name_result,
- G_TYPE_INVALID)) {
- g_printerr(error->message);
- return EXIT_FAILURE;
- }
-
- OpenvrmlXembedBrowserFactory * control_factory =
+ OpenvrmlXembedBrowserFactory * browser_factory =
OPENVRML_XEMBED_BROWSER_FACTORY(
g_object_new(OPENVRML_XEMBED_TYPE_BROWSER_FACTORY, 0));
- scope_guard control_factory_guard =
- make_guard(g_object_unref, G_OBJECT(control_factory));
- boost::ignore_unused_variable_warning(control_factory_guard);
+// scope_guard browser_factory_guard =
+// make_guard(g_object_unref, G_OBJECT(browser_factory));
+// boost::ignore_unused_variable_warning(browser_factory_guard);
dbus_g_connection_register_g_object(bus,
"/BrowserFactory",
- G_OBJECT(control_factory));
+ G_OBJECT(browser_factory));
gdk_threads_enter();
gtk_main();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-05 04:39:33
|
Revision: 3715
http://openvrml.svn.sourceforge.net/openvrml/?rev=3715&view=rev
Author: braden
Date: 2008-10-05 04:39:25 +0000 (Sun, 05 Oct 2008)
Log Message:
-----------
Made contents of BUILT_SOURCES conditional based on ENABLE_XEMBED and ENABLE_PLAYER.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/NEWS
branches/0.17/src/Makefile.am
Property Changed:
----------------
branches/0.17/
Property changes on: branches/0.17
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk:3596,3612,3707,3710
+ /trunk:3596,3612,3625,3707,3710
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-05 04:27:46 UTC (rev 3714)
+++ branches/0.17/ChangeLog 2008-10-05 04:39:25 UTC (rev 3715)
@@ -1,3 +1,8 @@
+2008-10-05 Braden McDaniel <br...@en...>
+
+ * src/Makefile.am: Made contents of BUILT_SOURCES conditional
+ based on ENABLE_XEMBED and ENABLE_PLAYER.
+
2008-10-04 Braden McDaniel <br...@en...>
If we set the absolute path of session_bus_servicesdir, the
Modified: branches/0.17/NEWS
===================================================================
--- branches/0.17/NEWS 2008-10-05 04:27:46 UTC (rev 3714)
+++ branches/0.17/NEWS 2008-10-05 04:39:25 UTC (rev 3715)
@@ -1,3 +1,9 @@
+Changes new in version 0.17.9, ?? October, 2008
+========================================================================
+
+- Use D-Bus for communication with the OpenVRML XEmbed control.
+
+
Changes new in version 0.17.8, 13 August, 2008
========================================================================
Modified: branches/0.17/src/Makefile.am
===================================================================
--- branches/0.17/src/Makefile.am 2008-10-05 04:27:46 UTC (rev 3714)
+++ branches/0.17/src/Makefile.am 2008-10-05 04:39:25 UTC (rev 3715)
@@ -1,3 +1,5 @@
+BUILT_SOURCES =
+
lib_LTLIBRARIES = libopenvrml/libopenvrml.la
if ENABLE_GL_RENDERER
lib_LTLIBRARIES += libopenvrml-gl/libopenvrml-gl.la
@@ -3,14 +5,4 @@
endif
-if ENABLE_XEMBED
-libexec_PROGRAMS = openvrml-xembed/openvrml-xembed
-session_bus_servicesdir = $(datadir)/dbus-1/services
-session_bus_services_DATA = openvrml-xembed/org.openvrml.BrowserControl.service
-endif
-
-if ENABLE_PLAYER
-bin_PROGRAMS = openvrml-player/openvrml-player
-endif
-
pkginclude_HEADERS = \
libopenvrml/openvrml-config.h \
@@ -165,6 +157,14 @@
$(GLU_LIBS)
libopenvrml_gl_libopenvrml_gl_la_LIBADD = libopenvrml/libopenvrml.la
+if ENABLE_XEMBED
+libexec_PROGRAMS = openvrml-xembed/openvrml-xembed
+session_bus_servicesdir = $(datadir)/dbus-1/services
+session_bus_services_DATA = openvrml-xembed/org.openvrml.BrowserControl.service
+BUILT_SOURCES += \
+ openvrml-xembed/browser-server-glue.h \
+ openvrml-xembed/browser-factory-server-glue.h
+endif
openvrml_xembed_openvrml_xembed_CPPFLAGS = \
-I$(top_builddir)/src/openvrml-xembed \
-I$(top_srcdir)/lib/gtkglext \
@@ -207,11 +207,6 @@
openvrml-xembed/browser-factory.xml \
openvrml-xembed/browser-host.xml
-BUILT_SOURCES = \
- openvrml-xembed/browser-server-glue.h \
- openvrml-xembed/browser-factory-server-glue.h \
- openvrml-player/browser-host-server-glue.h
-
openvrml-xembed/browser-server-glue.h: $(srcdir)/openvrml-xembed/browser.xml
$(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \
--prefix=openvrml_xembed_browser \
@@ -226,6 +221,12 @@
--output=$@ \
$?
+if ENABLE_PLAYER
+bin_PROGRAMS = openvrml-player/openvrml-player
+BUILT_SOURCES += \
+ openvrml-player/browser-host-server-glue.h
+endif
+
openvrml_player_openvrml_player_CPPFLAGS = \
-DG_DISABLE_DEPRECATED \
-DGTK_DISABLE_DEPRECATED \
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-05 06:55:14
|
Revision: 3717
http://openvrml.svn.sourceforge.net/openvrml/?rev=3717&view=rev
Author: braden
Date: 2008-10-05 06:50:53 +0000 (Sun, 05 Oct 2008)
Log Message:
-----------
Need to use dbus_g_proxy_new_for_name rather than _new_for_name_owner in order for activation to work.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/mozilla-plugin/src/openvrml.cpp
branches/0.17/src/openvrml-player/curlbrowserhost.cpp
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-05 04:41:35 UTC (rev 3716)
+++ branches/0.17/ChangeLog 2008-10-05 06:50:53 UTC (rev 3717)
@@ -1,5 +1,19 @@
2008-10-05 Braden McDaniel <br...@en...>
+ Need to use dbus_g_proxy_new_for_name rather than
+ _new_for_name_owner in order for activation to work.
+
+ * mozilla-plugin/src/openvrml.cpp
+ (get_browser(DBusGConnection *, const char *, const char *,
+ guint64, GError **)): Use dbus_g_proxy_new_for_name to get the
+ org.openvrml.BrowserFactory proxy.
+ * src/openvrml-player/curlbrowserhost.cpp
+ (get_browser(DBusGConnection *, const char *, const char *,
+ guint64, GError **)): Use dbus_g_proxy_new_for_name to get the
+ org.openvrml.BrowserFactory proxy.
+
+2008-10-05 Braden McDaniel <br...@en...>
+
* src/Makefile.am: Made contents of BUILT_SOURCES conditional
based on ENABLE_XEMBED and ENABLE_PLAYER.
Modified: branches/0.17/mozilla-plugin/src/openvrml.cpp
===================================================================
--- branches/0.17/mozilla-plugin/src/openvrml.cpp 2008-10-05 04:41:35 UTC (rev 3716)
+++ branches/0.17/mozilla-plugin/src/openvrml.cpp 2008-10-05 06:50:53 UTC (rev 3717)
@@ -1160,11 +1160,10 @@
throw ()
{
DBusGProxy * browser_factory =
- dbus_g_proxy_new_for_name_owner(connection,
- "org.openvrml.BrowserControl",
- "/BrowserFactory",
- "org.openvrml.BrowserFactory",
- error);
+ dbus_g_proxy_new_for_name(connection,
+ "org.openvrml.BrowserControl",
+ "/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));
Modified: branches/0.17/src/openvrml-player/curlbrowserhost.cpp
===================================================================
--- branches/0.17/src/openvrml-player/curlbrowserhost.cpp 2008-10-05 04:41:35 UTC (rev 3716)
+++ branches/0.17/src/openvrml-player/curlbrowserhost.cpp 2008-10-05 06:50:53 UTC (rev 3717)
@@ -853,11 +853,10 @@
throw ()
{
DBusGProxy * browser_factory =
- dbus_g_proxy_new_for_name_owner(connection,
- "org.openvrml.BrowserControl",
- "/BrowserFactory",
- "org.openvrml.BrowserFactory",
- error);
+ dbus_g_proxy_new_for_name(connection,
+ "org.openvrml.BrowserControl",
+ "/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));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-05 18:27:26
|
Revision: 3719
http://openvrml.svn.sourceforge.net/openvrml/?rev=3719&view=rev
Author: braden
Date: 2008-10-05 17:37:50 +0000 (Sun, 05 Oct 2008)
Log Message:
-----------
Updated to 20081005 release of Autoconf GL Macros.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/m4/acx_pthread.m4
branches/0.17/m4/ax_check_gl.m4
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-05 06:57:26 UTC (rev 3718)
+++ branches/0.17/ChangeLog 2008-10-05 17:37:50 UTC (rev 3719)
@@ -1,5 +1,12 @@
2008-10-05 Braden McDaniel <br...@en...>
+ Updated to 20081005 release of Autoconf GL Macros.
+
+ * m4/acx_pthread.m4
+ * m4/ax_check_gl.m4
+
+2008-10-05 Braden McDaniel <br...@en...>
+
Need to use dbus_g_proxy_new_for_name rather than
_new_for_name_owner in order for activation to work.
Modified: branches/0.17/m4/acx_pthread.m4
===================================================================
--- branches/0.17/m4/acx_pthread.m4 2008-10-05 06:57:26 UTC (rev 3718)
+++ branches/0.17/m4/acx_pthread.m4 2008-10-05 17:37:50 UTC (rev 3719)
@@ -1,4 +1,6 @@
-##### http://autoconf-archive.cryp.to/acx_pthread.html
+# ===========================================================================
+# http://autoconf-archive.cryp.to/acx_pthread.html
+# ===========================================================================
#
# SYNOPSIS
#
@@ -6,82 +8,76 @@
#
# DESCRIPTION
#
-# This macro figures out how to build C programs using POSIX threads.
-# It sets the PTHREAD_LIBS output variable to the threads library and
-# linker flags, and the PTHREAD_CFLAGS output variable to any special
-# C compiler flags that are needed. (The user can also force certain
-# compiler flags/libs to be tested by setting these environment
-# variables.)
+# This macro figures out how to build C programs using POSIX threads. It
+# sets the PTHREAD_LIBS output variable to the threads library and linker
+# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
+# flags that are needed. (The user can also force certain compiler
+# flags/libs to be tested by setting these environment variables.)
#
# Also sets PTHREAD_CC to any special C compiler that is needed for
-# multi-threaded programs (defaults to the value of CC otherwise).
-# (This is necessary on AIX to use the special cc_r compiler alias.)
+# multi-threaded programs (defaults to the value of CC otherwise). (This
+# is necessary on AIX to use the special cc_r compiler alias.)
#
-# NOTE: You are assumed to not only compile your program with these
-# flags, but also link it with them as well. e.g. you should link
-# with $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS
-# $LIBS
+# NOTE: You are assumed to not only compile your program with these flags,
+# but also link it with them as well. e.g. you should link with
+# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
#
-# If you are only building threads programs, you may wish to use
-# these variables in your default LIBS, CFLAGS, and CC:
+# If you are only building threads programs, you may wish to use these
+# variables in your default LIBS, CFLAGS, and CC:
#
# LIBS="$PTHREAD_LIBS $LIBS"
# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
# CC="$PTHREAD_CC"
#
-# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute
-# constant has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to
-# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
+# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
+# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
+# (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
#
-# ACTION-IF-FOUND is a list of shell commands to run if a threads
-# library is found, and ACTION-IF-NOT-FOUND is a list of commands to
-# run it if it is not found. If ACTION-IF-FOUND is not specified, the
-# default action will define HAVE_PTHREAD.
+# ACTION-IF-FOUND is a list of shell commands to run if a threads library
+# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
+# is not found. If ACTION-IF-FOUND is not specified, the default action
+# will define HAVE_PTHREAD.
#
-# Please let the authors know if this macro fails on any platform, or
-# if you have any other suggestions or comments. This macro was based
-# on work by SGJ on autoconf scripts for FFTW (http://www.fftw.org/)
-# (with help from M. Frigo), as well as ac_pthread and hb_pthread
-# macros posted by Alejandro Forero Cuervo to the autoconf macro
-# repository. We are also grateful for the helpful feedback of
-# numerous users.
+# Please let the authors know if this macro fails on any platform, or if
+# you have any other suggestions or comments. This macro was based on work
+# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
+# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
+# Alejandro Forero Cuervo to the autoconf macro repository. We are also
+# grateful for the helpful feedback of numerous users.
#
# LAST MODIFICATION
#
-# 2007-07-29
+# 2008-04-12
#
# COPYLEFT
#
-# Copyright (c) 2007 Steven G. Johnson <st...@al...>
+# Copyright (c) 2008 Steven G. Johnson <st...@al...>
#
-# 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 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.
+# 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 program. If not, see
-# <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License along
+# with this program. If not, see <http://www.gnu.org/licenses/>.
#
-# As a special exception, the respective Autoconf Macro's copyright
-# owner gives unlimited permission to copy, distribute and modify the
-# configure scripts that are the output of Autoconf when processing
-# the Macro. You need not follow the terms of the GNU General Public
-# License when using or distributing such scripts, even though
-# portions of the text of the Macro appear in them. The GNU General
-# Public License (GPL) does govern all other use of the material that
-# constitutes the Autoconf Macro.
+# As a special exception, the respective Autoconf Macro's copyright owner
+# gives unlimited permission to copy, distribute and modify the configure
+# scripts that are the output of Autoconf when processing the Macro. You
+# need not follow the terms of the GNU General Public License when using
+# or distributing such scripts, even though portions of the text of the
+# Macro appear in them. The GNU General Public License (GPL) does govern
+# all other use of the material that constitutes the Autoconf Macro.
#
-# This special exception to the GPL applies to versions of the
-# Autoconf Macro released by the Autoconf Macro Archive. When you
-# make and distribute a modified version of the Autoconf Macro, you
-# may extend this special exception to the GPL to apply to your
-# modified version as well.
+# This special exception to the GPL applies to versions of the Autoconf
+# Macro released by the Autoconf Macro Archive. When you make and
+# distribute a modified version of the Autoconf Macro, you may extend this
+# special exception to the GPL to apply to your modified version as well.
AC_DEFUN([ACX_PTHREAD], [
AC_REQUIRE([AC_CANONICAL_HOST])
Modified: branches/0.17/m4/ax_check_gl.m4
===================================================================
--- branches/0.17/m4/ax_check_gl.m4 2008-10-05 06:57:26 UTC (rev 3718)
+++ branches/0.17/m4/ax_check_gl.m4 2008-10-05 17:37:50 UTC (rev 3719)
@@ -10,7 +10,7 @@
dnl "OpenGL/gl.h" is found, HAVE_OPENGL_GL_H is defined. These preprocessor
dnl definitions may not be mutually exclusive.
dnl
-dnl version: 2.0
+dnl version: 2.1
dnl author: Braden McDaniel <br...@en...>
dnl
dnl This program is free software; you can redistribute it and/or modify
@@ -34,7 +34,8 @@
dnl License when using or distributing such scripts.
dnl
AC_DEFUN([AX_CHECK_GL],
-[AC_REQUIRE([AC_PATH_X])dnl
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PATH_X])dnl
AC_REQUIRE([ACX_PTHREAD])dnl
AC_LANG_PUSH([C])
@@ -75,6 +76,10 @@
AC_CACHE_CHECK([for OpenGL library], [ax_cv_check_gl_libgl],
[ax_cv_check_gl_libgl="no"
+case $host_cpu in
+ x86_64) ax_check_gl_libdir=lib64 ;;
+ *) ax_check_gl_libdir=lib ;;
+esac
ax_save_CPPFLAGS="${CPPFLAGS}"
CPPFLAGS="${GL_CFLAGS} ${CPPFLAGS}"
ax_save_LIBS="${LIBS}"
@@ -85,13 +90,14 @@
[ax_try_lib=`echo $ax_lib | sed -e 's/^-l//' -e 's/$/.lib/'`],
[ax_try_lib="${ax_lib}"])
LIBS="${ax_try_lib} ${GL_LIBS} ${ax_save_LIBS}"
- AC_LINK_IFELSE(
-[AX_CHECK_GL_PROGRAM],
-[ax_cv_check_gl_libgl="${ax_try_lib}"; break],
-[ax_check_gl_dylib_flag='-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib'
-LIBS="${ax_try_lib} ${ax_check_gl_dylib_flag} ${GL_LIBS} ${ax_save_LIBS}"
AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
- [ax_cv_check_gl_libgl="${ax_try_lib} ${ax_check_gl_dylib_flag}"; break])])
+ [ax_cv_check_gl_libgl="${ax_try_lib}"; break],
+ [ax_check_gl_nvidia_flags="-L/usr/${ax_check_gl_libdir}/nvidia -lGLcore" LIBS="${ax_try_lib} ${ax_check_gl_nvidia_flags} ${GL_LIBS} ${ax_save_LIBS}"
+AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
+ [ax_cv_check_gl_libgl="${ax_try_lib} ${ax_check_gl_nvidia_flags}"; break],
+ [ax_check_gl_dylib_flag='-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib' LIBS="${ax_try_lib} ${ax_check_gl_dylib_flag} ${GL_LIBS} ${ax_save_LIBS}"
+AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
+ [ax_cv_check_gl_libgl="${ax_try_lib} ${ax_check_gl_dylib_flag}"; break])])])
done
AS_IF([test "X$ax_cv_check_gl_libgl" = Xno -a "X$no_x" = Xyes],
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-06 06:30:23
|
Revision: 3721
http://openvrml.svn.sourceforge.net/openvrml/?rev=3721&view=rev
Author: braden
Date: 2008-10-06 06:27:42 +0000 (Mon, 06 Oct 2008)
Log Message:
-----------
Updated to 20081006 release of Autoconf GL Macros.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/m4/ax_check_gl.m4
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-05 17:47:12 UTC (rev 3720)
+++ branches/0.17/ChangeLog 2008-10-06 06:27:42 UTC (rev 3721)
@@ -1,3 +1,9 @@
+2008-10-06 Braden McDaniel <br...@en...>
+
+ Updated to 20081006 release of Autoconf GL Macros.
+
+ * m4/ax_check_gl.m4
+
2008-10-05 Braden McDaniel <br...@en...>
Updated to 20081005 release of Autoconf GL Macros.
Modified: branches/0.17/m4/ax_check_gl.m4
===================================================================
--- branches/0.17/m4/ax_check_gl.m4 2008-10-05 17:47:12 UTC (rev 3720)
+++ branches/0.17/m4/ax_check_gl.m4 2008-10-06 06:27:42 UTC (rev 3721)
@@ -10,7 +10,7 @@
dnl "OpenGL/gl.h" is found, HAVE_OPENGL_GL_H is defined. These preprocessor
dnl definitions may not be mutually exclusive.
dnl
-dnl version: 2.1
+dnl version: 2.2
dnl author: Braden McDaniel <br...@en...>
dnl
dnl This program is free software; you can redistribute it and/or modify
@@ -92,7 +92,7 @@
LIBS="${ax_try_lib} ${GL_LIBS} ${ax_save_LIBS}"
AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
[ax_cv_check_gl_libgl="${ax_try_lib}"; break],
- [ax_check_gl_nvidia_flags="-L/usr/${ax_check_gl_libdir}/nvidia -lGLcore" LIBS="${ax_try_lib} ${ax_check_gl_nvidia_flags} ${GL_LIBS} ${ax_save_LIBS}"
+ [ax_check_gl_nvidia_flags="-L/usr/${ax_check_gl_libdir}/nvidia" LIBS="${ax_try_lib} ${ax_check_gl_nvidia_flags} ${GL_LIBS} ${ax_save_LIBS}"
AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
[ax_cv_check_gl_libgl="${ax_try_lib} ${ax_check_gl_nvidia_flags}"; break],
[ax_check_gl_dylib_flag='-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib' LIBS="${ax_try_lib} ${ax_check_gl_dylib_flag} ${GL_LIBS} ${ax_save_LIBS}"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-06 21:39:20
|
Revision: 3725
http://openvrml.svn.sourceforge.net/openvrml/?rev=3725&view=rev
Author: braden
Date: 2008-10-06 21:39:13 +0000 (Mon, 06 Oct 2008)
Log Message:
-----------
Process org.openvrml.BrowserControl.service.in with sed (rather than config.status) so that substitutions that expand to make macros get fully resolved.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/configure.ac
branches/0.17/src/Makefile.am
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-06 08:04:34 UTC (rev 3724)
+++ branches/0.17/ChangeLog 2008-10-06 21:39:13 UTC (rev 3725)
@@ -1,5 +1,18 @@
2008-10-06 Braden McDaniel <br...@en...>
+ Process org.openvrml.BrowserControl.service.in with sed (rather
+ than config.status) so that substitutions that expand to make
+ macros get fully resolved.
+
+ * configure.ac: Removed
+ src/openvrml-xembed/org.openvrml.BrowserControl.service from
+ AC_CONFIG_FILES.
+ * src/Makefile.am: Added rules to create
+ org.openvrml.BrowserControl.service from
+ org.openvrml.BrowserControl.service.in.
+
+2008-10-06 Braden McDaniel <br...@en...>
+
Updated to 20081006 release of Autoconf GL Macros.
* m4/ax_check_gl.m4
Modified: branches/0.17/configure.ac
===================================================================
--- branches/0.17/configure.ac 2008-10-06 08:04:34 UTC (rev 3724)
+++ branches/0.17/configure.ac 2008-10-06 21:39:13 UTC (rev 3725)
@@ -13,7 +13,6 @@
[java/vrml/node/Makefile]
[java/vrml/field/Makefile]
[src/Makefile]
- [src/openvrml-xembed/org.openvrml.BrowserControl.service]
[src/libopenvrml/openvrml-config.h]
[src/libopenvrml-gl/openvrml-gl-config.h]
[examples/Makefile]
Modified: branches/0.17/src/Makefile.am
===================================================================
--- branches/0.17/src/Makefile.am 2008-10-06 08:04:34 UTC (rev 3724)
+++ branches/0.17/src/Makefile.am 2008-10-06 21:39:13 UTC (rev 3725)
@@ -221,6 +221,16 @@
--output=$@ \
$?
+edit = sed -e 's|@libexecdir[@]|$(libexecdir)|g'
+
+openvrml-xembed/org.openvrml.BrowserControl.service: Makefile
+ rm -f $@ $@.tmp
+ $(edit) '$(srcdir)/$@.in' > $@.tmp
+ chmod a-w $@.tmp
+ mv $@.tmp $@
+
+openvrml-xembed/org.openvrml.BrowserControl.service: $(srcdir)/openvrml-xembed/org.openvrml.BrowserControl.service.in
+
if ENABLE_PLAYER
bin_PROGRAMS = openvrml-player/openvrml-player
BUILT_SOURCES += \
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-08 06:37:34
|
Revision: 3729
http://openvrml.svn.sourceforge.net/openvrml/?rev=3729&view=rev
Author: braden
Date: 2008-10-08 06:37:29 +0000 (Wed, 08 Oct 2008)
Log Message:
-----------
Fail if dbus-glib isn't found.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/configure.ac
Property Changed:
----------------
branches/0.17/
Property changes on: branches/0.17
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk:3596,3612,3625,3707,3710
+ /trunk:3596,3612,3625,3707,3710,3728
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-08 06:14:06 UTC (rev 3728)
+++ branches/0.17/ChangeLog 2008-10-08 06:37:29 UTC (rev 3729)
@@ -1,3 +1,7 @@
+2008-10-08 Braden McDaniel <br...@en...>
+
+ * configure.ac: Fail if dbus-glib isn't found.
+
2008-10-06 Braden McDaniel <br...@en...>
Process org.openvrml.BrowserControl.service.in with sed (rather
Modified: branches/0.17/configure.ac
===================================================================
--- branches/0.17/configure.ac 2008-10-08 06:14:06 UTC (rev 3728)
+++ branches/0.17/configure.ac 2008-10-08 06:37:29 UTC (rev 3729)
@@ -142,6 +142,7 @@
#
PKG_CHECK_MODULES([DBUS_G], [dbus-glib-1 glib-2.0 >= 2.6], ,
[have_dbus_glib=no])
+AC_ARG_VAR([DBUS_BINDING_TOOL], [Generate stub code for dbus-glib])
AC_PATH_PROG([DBUS_BINDING_TOOL], [dbus-binding-tool])
PKG_CHECK_MODULES([GTK], [gtk+-2.0 gthread-2.0 glib-2.0 >= 2.6], ,
@@ -332,7 +333,9 @@
[AC_HELP_STRING([--disable-xembed],
[do not build the XEmbed control])])
AS_IF([test X$enable_xembed != Xno],
- [AS_IF([test X$have_gtk = Xno],
+ [AS_IF([test X$have_dbus_glib = Xno],
+ [AC_MSG_FAILURE([D-Bus GLib bindings are required to build the XEmbed control])])
+ AS_IF([test X$have_gtk = Xno],
[AC_MSG_FAILURE([GTK+ is required to build the XEmbed control])])
AS_IF([test X$enable_gl_renderer = Xno],
[AC_MSG_FAILURE([the XEmbed control cannot be built without the GL renderer])])])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-09 05:42:48
|
Revision: 3730
http://openvrml.svn.sourceforge.net/openvrml/?rev=3730&view=rev
Author: braden
Date: 2008-10-09 05:42:42 +0000 (Thu, 09 Oct 2008)
Log Message:
-----------
Removed obsolete texinfo documentation for openvrml-xembed.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/doc/Makefile.am
Removed Paths:
-------------
branches/0.17/doc/fdl.texi
branches/0.17/doc/openvrml-xembed.texi
Property Changed:
----------------
branches/0.17/doc/
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-08 06:37:29 UTC (rev 3729)
+++ branches/0.17/ChangeLog 2008-10-09 05:42:42 UTC (rev 3730)
@@ -1,3 +1,11 @@
+2008-10-09 Braden McDaniel <br...@en...>
+
+ Removed obsolete texinfo documentation for openvrml-xembed.
+
+ * doc/Makefile.am
+ * doc/openvrml-xembed.texi: Removed.
+ * doc/fdl.texi: Removed.
+
2008-10-08 Braden McDaniel <br...@en...>
* configure.ac: Fail if dbus-glib isn't found.
Property changes on: branches/0.17/doc
___________________________________________________________________
Modified: svn:ignore
- *.info
Makefile
Makefile.in
mdate-sh
stamp-vti
texinfo.tex
version.texi
+ Makefile
Makefile.in
Modified: branches/0.17/doc/Makefile.am
===================================================================
--- branches/0.17/doc/Makefile.am 2008-10-08 06:37:29 UTC (rev 3729)
+++ branches/0.17/doc/Makefile.am 2008-10-09 05:42:42 UTC (rev 3730)
@@ -1,6 +1,3 @@
-info_TEXINFOS = openvrml-xembed.texi
-openvrml_xembed_TEXINFOS = fdl.texi
-
docdir = $(datadir)/doc/@PACKAGE_TARNAME@-@PACKAGE_VERSION@
DOCUMENTATION_FILES = \
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-09 06:13:40
|
Revision: 3732
http://openvrml.svn.sourceforge.net/openvrml/?rev=3732&view=rev
Author: braden
Date: 2008-10-09 06:13:34 +0000 (Thu, 09 Oct 2008)
Log Message:
-----------
Updates for 0.17.9 release.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/NEWS
branches/0.17/README
branches/0.17/configure.ac
branches/0.17/doc/Doxyfile
branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
branches/0.17/mozilla-plugin/configure.ac
branches/0.17/src/Makefile.am
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-09 05:53:43 UTC (rev 3731)
+++ branches/0.17/ChangeLog 2008-10-09 06:13:34 UTC (rev 3732)
@@ -1,5 +1,20 @@
2008-10-09 Braden McDaniel <br...@en...>
+ Updates for 0.17.9 release.
+
+ * NEWS
+ * README
+ * configure.ac
+ * doc/Doxyfile
+ * ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
+ * ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
+ * ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
+ * mozilla-plugin/configure.ac
+ * src/Makefile.am: Updated libopenvrml libtool library version to
+ 8:7:0; updated libopenvrml-gl libtool library version to 7:3:0.
+
+2008-10-09 Braden McDaniel <br...@en...>
+
Removed obsolete texinfo documentation for openvrml-xembed.
* doc/Makefile.am
Modified: branches/0.17/NEWS
===================================================================
--- branches/0.17/NEWS 2008-10-09 05:53:43 UTC (rev 3731)
+++ branches/0.17/NEWS 2008-10-09 06:13:34 UTC (rev 3732)
@@ -1,3 +1,9 @@
+Changes new in version 0.17.9, 9 October, 2008
+========================================================================
+
+- Use D-Bus for communication with the OpenVRML XEmbed control.
+
+
Changes new in version 0.17.8, 13 August, 2008
========================================================================
Modified: branches/0.17/README
===================================================================
--- branches/0.17/README 2008-10-09 05:53:43 UTC (rev 3731)
+++ branches/0.17/README 2008-10-09 06:13:34 UTC (rev 3732)
@@ -1,4 +1,4 @@
-OpenVRML library version 0.17.8
+OpenVRML library version 0.17.9
Copyright 1998, 1999, 2000 Chris Morley <cm...@ve...>
Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
Braden McDaniel <br...@en...>
Modified: branches/0.17/configure.ac
===================================================================
--- branches/0.17/configure.ac 2008-10-09 05:53:43 UTC (rev 3731)
+++ branches/0.17/configure.ac 2008-10-09 06:13:34 UTC (rev 3732)
@@ -1,4 +1,4 @@
-AC_INIT([OpenVRML], [0.17.8], [ope...@li...])
+AC_INIT([OpenVRML], [0.17.9], [ope...@li...])
AC_PREREQ([2.53])
AC_COPYRIGHT([Portions copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Braden McDaniel])
AC_CONFIG_FILES([Makefile]
Modified: branches/0.17/doc/Doxyfile
===================================================================
--- branches/0.17/doc/Doxyfile 2008-10-09 05:53:43 UTC (rev 3731)
+++ branches/0.17/doc/Doxyfile 2008-10-09 06:13:34 UTC (rev 3732)
@@ -5,7 +5,7 @@
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = OpenVRML
-PROJECT_NUMBER = 0.17.8
+PROJECT_NUMBER = 0.17.9
OUTPUT_DIRECTORY =
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
Modified: branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
===================================================================
--- branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc 2008-10-09 05:53:43 UTC (rev 3731)
+++ branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc 2008-10-09 06:13:34 UTC (rev 3732)
@@ -11,8 +11,8 @@
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 8,6,0,0
- PRODUCTVERSION 0,17,8,0
+ FILEVERSION 8,7,0,0
+ PRODUCTVERSION 0,17,9,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -28,12 +28,12 @@
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "OpenVRML Library"
- VALUE "FileVersion", "8, 6, 0, 0"
+ VALUE "FileVersion", "8, 7, 0, 0"
VALUE "InternalName", "openvrml"
VALUE "LegalCopyright", "Copyright (C) 2008"
VALUE "OriginalFilename", "openvrml.dll"
VALUE "ProductName", "OpenVRML Library"
- VALUE "ProductVersion", "0.17.8"
+ VALUE "ProductVersion", "0.17.9"
END
END
BLOCK "VarFileInfo"
Modified: branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
===================================================================
--- branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj 2008-10-09 05:53:43 UTC (rev 3731)
+++ branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj 2008-10-09 06:13:34 UTC (rev 3732)
@@ -42,7 +42,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".;..\..\..\..\..\src\libopenvrml"
- PreprocessorDefinitions="NOMINMAX;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;BOOST_SPIRIT_THREADSAFE;BOOST_SPIRIT_CLOSURE_LIMIT=6;PHOENIX_LIMIT=6;PACKAGE_VERSION=\"0.17.8\";BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS;BOOST_MPL_LIMIT_VECTOR_SIZE=30;OPENVRML_BUILD_DLL;OPENVRML_ENABLE_PNG_TEXTURES;OPENVRML_ENABLE_RENDER_TEXT_NODE;OPENVRML_FT_CONST="const""
+ PreprocessorDefinitions="NOMINMAX;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;BOOST_SPIRIT_THREADSAFE;BOOST_SPIRIT_CLOSURE_LIMIT=6;PHOENIX_LIMIT=6;PACKAGE_VERSION=\"0.17.9\";BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS;BOOST_MPL_LIMIT_VECTOR_SIZE=30;OPENVRML_BUILD_DLL;OPENVRML_ENABLE_PNG_TEXTURES;OPENVRML_ENABLE_RENDER_TEXT_NODE;OPENVRML_FT_CONST="const""
MinimalRebuild="false"
BasicRuntimeChecks="0"
RuntimeLibrary="3"
@@ -127,7 +127,7 @@
InlineFunctionExpansion="1"
OmitFramePointers="true"
AdditionalIncludeDirectories=".;..\..\..\..\..\src\libopenvrml"
- PreprocessorDefinitions="NOMINMAX;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;BOOST_SPIRIT_THREADSAFE;PACKAGE_VERSION=\"0.17.8\";BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS;BOOST_MPL_LIMIT_VECTOR_SIZE=30;BOOST_SPIRIT_CLOSURE_LIMIT=6;PHOENIX_LIMIT=6;OPENVRML_BUILD_DLL;OPENVRML_ENABLE_PNG_TEXTURES;OPENVRML_ENABLE_RENDER_TEXT_NODE;OPENVRML_FT_CONST="const";NDEBUG"
+ PreprocessorDefinitions="NOMINMAX;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;BOOST_SPIRIT_THREADSAFE;PACKAGE_VERSION=\"0.17.9\";BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS;BOOST_MPL_LIMIT_VECTOR_SIZE=30;BOOST_SPIRIT_CLOSURE_LIMIT=6;PHOENIX_LIMIT=6;OPENVRML_BUILD_DLL;OPENVRML_ENABLE_PNG_TEXTURES;OPENVRML_ENABLE_RENDER_TEXT_NODE;OPENVRML_FT_CONST="const";NDEBUG"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
Modified: branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
===================================================================
--- branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc 2008-10-09 05:53:43 UTC (rev 3731)
+++ branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc 2008-10-09 06:13:34 UTC (rev 3732)
@@ -11,8 +11,8 @@
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 7,2,0,0
- PRODUCTVERSION 0,17,8,0
+ FILEVERSION 7,3,0,0
+ PRODUCTVERSION 0,17,9,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -28,12 +28,12 @@
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "OpenVRML OpenGL Renderer Library"
- VALUE "FileVersion", "7, 2, 0, 0"
+ VALUE "FileVersion", "7, 3, 0, 0"
VALUE "InternalName", "openvrml-gl"
VALUE "LegalCopyright", "Copyright (C) 2008"
VALUE "OriginalFilename", "openvrml-gl.dll"
VALUE "ProductName", "OpenVRML Library"
- VALUE "ProductVersion", "0.17.8"
+ VALUE "ProductVersion", "0.17.9"
END
END
BLOCK "VarFileInfo"
Modified: branches/0.17/mozilla-plugin/configure.ac
===================================================================
--- branches/0.17/mozilla-plugin/configure.ac 2008-10-09 05:53:43 UTC (rev 3731)
+++ branches/0.17/mozilla-plugin/configure.ac 2008-10-09 06:13:34 UTC (rev 3732)
@@ -1,5 +1,5 @@
AC_PREREQ([2.53])
-AC_INIT([OpenVRML Mozilla Plugin], [0.17.8],
+AC_INIT([OpenVRML Mozilla Plugin], [0.17.9],
[ope...@li...])
AC_COPYRIGHT([Portions copyright 2004, 2005, 2006, 2007, 2008 Braden McDaniel])
AC_CONFIG_FILES([Makefile]
Modified: branches/0.17/src/Makefile.am
===================================================================
--- branches/0.17/src/Makefile.am 2008-10-09 05:53:43 UTC (rev 3731)
+++ branches/0.17/src/Makefile.am 2008-10-09 06:13:34 UTC (rev 3732)
@@ -63,8 +63,8 @@
openvrml-xembed/plugin_streambuf.h \
openvrml-player/filechooserdialog.h
-LIBOPENVRML_LIBRARY_VERSION = 8:6:0
-LIBOPENVRML_GL_LIBRARY_VERSION = 7:2:0
+LIBOPENVRML_LIBRARY_VERSION = 8:7:0
+LIBOPENVRML_GL_LIBRARY_VERSION = 7:3:0
# | | |
# +------+ | +---+
# | | |
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-23 06:09:20
|
Revision: 3743
http://openvrml.svn.sourceforge.net/openvrml/?rev=3743&view=rev
Author: braden
Date: 2008-10-23 06:09:07 +0000 (Thu, 23 Oct 2008)
Log Message:
-----------
Removed redundant registration of the OpenvrmlXembedBrowserFactory instance.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/mozilla-plugin/src/openvrml.cpp
branches/0.17/src/openvrml-player/curlbrowserhost.cpp
branches/0.17/src/openvrml-xembed/main.cpp
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-16 21:49:59 UTC (rev 3742)
+++ branches/0.17/ChangeLog 2008-10-23 06:09:07 UTC (rev 3743)
@@ -1,3 +1,20 @@
+2008-10-23 Braden McDaniel <br...@en...>
+
+ Removed redundant registration of the OpenvrmlXembedBrowserFactory
+ instance.
+
+ * src/openvrml-xembed/main.cpp
+ (main(int, char *[])): Removed redundant registration of the
+ OpenvrmlXembedBrowserFactory instance.
+ * src/openvrml-player/curlbrowserhost.cpp
+ (get_browser(DBusGConnection *, const char *, const char *,
+ guint64, GError **)): Proper factory object path is
+ "org/openvrml/BrowserFactory".
+ * mozilla-plugin/src/openvrml.cpp
+ (get_browser(DBusGConnection *, const char *, const char *,
+ guint64, GError **)): Proper factory object path is
+ "org/openvrml/BrowserFactory".
+
2008-10-09 Braden McDaniel <br...@en...>
Updates for 0.17.9 release.
Modified: branches/0.17/mozilla-plugin/src/openvrml.cpp
===================================================================
--- branches/0.17/mozilla-plugin/src/openvrml.cpp 2008-10-16 21:49:59 UTC (rev 3742)
+++ branches/0.17/mozilla-plugin/src/openvrml.cpp 2008-10-23 06:09:07 UTC (rev 3743)
@@ -1162,7 +1162,7 @@
DBusGProxy * browser_factory =
dbus_g_proxy_new_for_name(connection,
"org.openvrml.BrowserControl",
- "/BrowserFactory",
+ "/org/openvrml/BrowserFactory",
"org.openvrml.BrowserFactory");
g_return_val_if_fail(browser_factory, 0);
scope_guard browser_factory_guard =
Modified: branches/0.17/src/openvrml-player/curlbrowserhost.cpp
===================================================================
--- branches/0.17/src/openvrml-player/curlbrowserhost.cpp 2008-10-16 21:49:59 UTC (rev 3742)
+++ branches/0.17/src/openvrml-player/curlbrowserhost.cpp 2008-10-23 06:09:07 UTC (rev 3743)
@@ -855,7 +855,7 @@
DBusGProxy * browser_factory =
dbus_g_proxy_new_for_name(connection,
"org.openvrml.BrowserControl",
- "/BrowserFactory",
+ "/org/openvrml/BrowserFactory",
"org.openvrml.BrowserFactory");
g_return_val_if_fail(browser_factory, 0);
scope_guard browser_factory_guard =
Modified: branches/0.17/src/openvrml-xembed/main.cpp
===================================================================
--- branches/0.17/src/openvrml-xembed/main.cpp 2008-10-16 21:49:59 UTC (rev 3742)
+++ branches/0.17/src/openvrml-xembed/main.cpp 2008-10-23 06:09:07 UTC (rev 3743)
@@ -102,10 +102,6 @@
// make_guard(g_object_unref, G_OBJECT(browser_factory));
// boost::ignore_unused_variable_warning(browser_factory_guard);
- dbus_g_connection_register_g_object(bus,
- "/BrowserFactory",
- G_OBJECT(browser_factory));
-
gdk_threads_enter();
gtk_main();
gdk_threads_leave();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-25 04:29:16
|
Revision: 3746
http://openvrml.svn.sourceforge.net/openvrml/?rev=3746&view=rev
Author: braden
Date: 2008-10-25 04:29:02 +0000 (Sat, 25 Oct 2008)
Log Message:
-----------
Fixed signature of openvrml_xembed_browser_factory_create_control to use guint64 for the host_id.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/src/openvrml-xembed/browserfactory.cpp
branches/0.17/src/openvrml-xembed/browserfactory.h
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-23 06:34:43 UTC (rev 3745)
+++ branches/0.17/ChangeLog 2008-10-25 04:29:02 UTC (rev 3746)
@@ -1,3 +1,11 @@
+2008-10-25 Braden McDaniel <br...@en...>
+
+ Fixed signature of openvrml_xembed_browser_factory_create_control
+ to use guint64 for the host_id.
+
+ * src/openvrml-xembed/browserfactory.cpp
+ * src/openvrml-xembed/browserfactory.h
+
2008-10-23 Braden McDaniel <br...@en...>
Removed redundant registration of the OpenvrmlXembedBrowserFactory
Modified: branches/0.17/src/openvrml-xembed/browserfactory.cpp
===================================================================
--- branches/0.17/src/openvrml-xembed/browserfactory.cpp 2008-10-23 06:34:43 UTC (rev 3745)
+++ branches/0.17/src/openvrml-xembed/browserfactory.cpp 2008-10-25 04:29:02 UTC (rev 3746)
@@ -244,7 +244,7 @@
OpenvrmlXembedBrowserFactory * const control_factory,
const char * const host_name,
const char * const host_obj_path,
- const guint host_id,
+ const guint64 host_id,
const gboolean expect_initial_stream,
DBusGMethodInvocation * const context)
{
Modified: branches/0.17/src/openvrml-xembed/browserfactory.h
===================================================================
--- branches/0.17/src/openvrml-xembed/browserfactory.h 2008-10-23 06:34:43 UTC (rev 3745)
+++ branches/0.17/src/openvrml-xembed/browserfactory.h 2008-10-25 04:29:02 UTC (rev 3746)
@@ -53,7 +53,7 @@
OpenvrmlXembedBrowserFactory * factory,
const char * host_name,
const char * host_obj_path,
- guint host_id,
+ guint64 host_id,
gboolean expect_initial_stream,
DBusGMethodInvocation * context);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-25 06:59:48
|
Revision: 3748
http://openvrml.svn.sourceforge.net/openvrml/?rev=3748&view=rev
Author: braden
Date: 2008-10-25 06:59:43 +0000 (Sat, 25 Oct 2008)
Log Message:
-----------
Ensure the XEmbed control host identifier is consistently treated as a 64-bit type.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/mozilla-plugin/src/Makefile.am
branches/0.17/mozilla-plugin/src/openvrml.cpp
branches/0.17/src/Makefile.am
branches/0.17/src/openvrml-player/curlbrowserhost.cpp
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-25 04:32:33 UTC (rev 3747)
+++ branches/0.17/ChangeLog 2008-10-25 06:59:43 UTC (rev 3748)
@@ -1,5 +1,37 @@
2008-10-25 Braden McDaniel <br...@en...>
+ Ensure the XEmbed control host identifier is consistently treated
+ as a 64-bit type.
+
+ * mozilla-plugin/src/Makefile.am: Generate client code for
+ org.openvrml.Browser and org.openvrml.BrowserFactory.
+ * mozilla-plugin/src/openvrml.cpp
+ (get_browser(DBusGConnection *, const char *, const char *,
+ guint64, GError **)): Use the generated function
+ org_openvrml_BrowserFactory_create_control.
+ (plugin_instance::new_stream(NPMIMEType, NPStream *)): Use the
+ generated function org_openvrml_Browser_new_stream.
+ (plugin_instance::destroy_stream(NPStream *)): Cast the stream
+ identifier to guint64.
+ (plugin_instance::write(NPStream *, int32, void *)): Cast the
+ stream identifier to guint64.
+ * src/Makefile.am: Generate client code for org.openvrml.Browser
+ and org.openvrml.BrowserFactory.
+ * src/openvrml-player/curlbrowserhost.cpp
+ (openvrml_player_curl_browser_host_realize(GtkWidget *)): Use the
+ generated function org_openvrml_Browser_get_id.
+ (openvrml_player_curl_browser_host_curl_source_callback(gpointer)):
+ Cast the stream identifier to guint64.
+ (openvrml_player_curl_browser_host_curl_write(void *, size_t,
+ size_t, void *)): Use the generated function
+ org_openvrml_Browser_new_stream; cast the stream identifier to
+ guint64.
+ (get_browser(DBusGConnection *, const char *, const char *,
+ guint64, GError **)): Use the generated function
+ org_openvrml_BrowserFactory_create_control.
+
+2008-10-25 Braden McDaniel <br...@en...>
+
Fixed signature of openvrml_xembed_browser_factory_create_control
to use guint64 for the host_id.
Modified: branches/0.17/mozilla-plugin/src/Makefile.am
===================================================================
--- branches/0.17/mozilla-plugin/src/Makefile.am 2008-10-25 04:32:33 UTC (rev 3747)
+++ branches/0.17/mozilla-plugin/src/Makefile.am 2008-10-25 06:59:43 UTC (rev 3748)
@@ -7,7 +7,10 @@
if ENABLE_MOZILLA_PLUGIN
mozplugins_LTLIBRARIES = openvrml.la
-BUILT_SOURCES = browser-host-server-glue.h
+BUILT_SOURCES = \
+ browser-host-server-glue.h \
+ browser-factory-client-glue.h \
+ browser-client-glue.h
endif
openvrml_la_SOURCES = openvrml.cpp
@@ -23,6 +26,18 @@
--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)
Modified: branches/0.17/mozilla-plugin/src/openvrml.cpp
===================================================================
--- branches/0.17/mozilla-plugin/src/openvrml.cpp 2008-10-25 04:32:33 UTC (rev 3747)
+++ branches/0.17/mozilla-plugin/src/openvrml.cpp 2008-10-25 06:59:43 UTC (rev 3748)
@@ -70,6 +70,8 @@
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
@@ -135,7 +137,7 @@
void openvrml_np_browser_host_init(OpenvrmlNpBrowserHost * const host)
{
- static size_t count = 0;
+ static unsigned long count = 0;
host->path = g_strdup_printf("/org/openvrml/BrowserHost/%u/%lu",
getpid(), count++);
dbus_g_connection_register_g_object(
@@ -1170,16 +1172,13 @@
boost::ignore_unused_variable_warning(browser_factory_guard);
char * browser_path = 0;
- if (!dbus_g_proxy_call(browser_factory,
- "CreateControl",
- error,
- G_TYPE_STRING, host_name,
- DBUS_TYPE_G_OBJECT_PATH, host_path,
- G_TYPE_UINT64, host_id,
- G_TYPE_BOOLEAN, true,
- G_TYPE_INVALID,
- DBUS_TYPE_G_OBJECT_PATH, &browser_path,
- G_TYPE_INVALID)) {
+ if (!org_openvrml_BrowserFactory_create_control(browser_factory,
+ host_name,
+ host_path,
+ host_id,
+ true,
+ &browser_path,
+ error)) {
return 0;
}
@@ -1235,14 +1234,11 @@
GError * error = 0;
scope_guard error_guard = make_guard(g_error_free, boost::ref(error));
- gboolean result = dbus_g_proxy_call(this->browser,
- "NewStream",
- &error,
- G_TYPE_UINT64, stream,
- G_TYPE_STRING, type,
- G_TYPE_STRING, stream->url,
- G_TYPE_INVALID,
- G_TYPE_INVALID);
+ 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);
@@ -1258,7 +1254,7 @@
dbus_g_proxy_call_no_reply(this->browser,
"DestroyStream",
- G_TYPE_UINT64, stream,
+ G_TYPE_UINT64, guint64(stream),
G_TYPE_INVALID);
return NPERR_NO_ERROR;
}
@@ -1275,7 +1271,7 @@
dbus_g_proxy_call_no_reply(this->browser,
"Write",
- G_TYPE_UINT64, stream,
+ G_TYPE_UINT64, guint64(stream),
DBUS_TYPE_G_UCHAR_ARRAY, &array,
G_TYPE_INVALID);
return len;
Modified: branches/0.17/src/Makefile.am
===================================================================
--- branches/0.17/src/Makefile.am 2008-10-25 04:32:33 UTC (rev 3747)
+++ branches/0.17/src/Makefile.am 2008-10-25 06:59:43 UTC (rev 3748)
@@ -234,7 +234,9 @@
if ENABLE_PLAYER
bin_PROGRAMS = openvrml-player/openvrml-player
BUILT_SOURCES += \
- openvrml-player/browser-host-server-glue.h
+ openvrml-player/browser-host-server-glue.h \
+ openvrml-player/browser-factory-client-glue.h \
+ openvrml-player/browser-client-glue.h
endif
openvrml_player_openvrml_player_CPPFLAGS = \
@@ -274,6 +276,18 @@
--output=$@ \
$?
+openvrml-player/browser-factory-client-glue.h: $(srcdir)/openvrml-xembed/browser-factory.xml
+ $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \
+ --mode=glib-client \
+ --output=$@ \
+ $?
+
+openvrml-player/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 \
Modified: branches/0.17/src/openvrml-player/curlbrowserhost.cpp
===================================================================
--- branches/0.17/src/openvrml-player/curlbrowserhost.cpp 2008-10-25 04:32:33 UTC (rev 3747)
+++ branches/0.17/src/openvrml-player/curlbrowserhost.cpp 2008-10-25 06:59:43 UTC (rev 3748)
@@ -21,6 +21,8 @@
# include <curl/curl.h>
# include <libgnomevfs/gnome-vfs.h>
# include <browser-host-server-glue.h>
+# include <browser-factory-client-glue.h>
+# include <browser-client-glue.h>
# include <dbus/dbus-glib-bindings.h>
# include <dbus/dbus-protocol.h>
# include <boost/concept_check.hpp>
@@ -90,7 +92,7 @@
browser_host->priv =
OPENVRML_PLAYER_CURL_BROWSER_HOST_GET_PRIVATE(browser_host);
- static size_t count = 0;
+ static unsigned long count = 0;
browser_host->priv->path =
g_strdup_printf("/org/openvrml/BrowserHost/%u/%lu",
getpid(), count++);
@@ -255,12 +257,8 @@
}
guint64 plug_id = 0;
- if (!dbus_g_proxy_call(browser_host->priv->browser,
- "GetId",
- &error,
- G_TYPE_INVALID,
- G_TYPE_UINT64, &plug_id,
- G_TYPE_INVALID)) {
+ if (!org_openvrml_Browser_get_id(browser_host->priv->browser, &plug_id,
+ &error)) {
g_critical("Call to org.openvrml.Browser.GetId failed: %s",
error->message);
return;
@@ -726,7 +724,7 @@
dbus_g_proxy_call_no_reply(
browser_host->priv->browser,
"DestroyStream",
- G_TYPE_UINT64, msg->easy_handle,
+ G_TYPE_UINT64, guint64(msg->easy_handle),
G_TYPE_INVALID);
}
@@ -795,15 +793,12 @@
GError * error = 0;
scope_guard error_guard = make_guard(g_error_free, boost::ref(error));
gboolean new_stream_result =
- dbus_g_proxy_call(
+ org_openvrml_Browser_new_stream(
stream_data.browser(),
- "NewStream",
- &error,
- G_TYPE_UINT64, stream_data.handle(),
- G_TYPE_STRING, (type ? type : "application/octet-stream"),
- G_TYPE_STRING, stream_data.url(),
- G_TYPE_INVALID,
- G_TYPE_INVALID);
+ guint64(stream_data.handle()),
+ (type ? type : "application/octet-stream"),
+ stream_data.url(),
+ &error);
if (!new_stream_result) {
g_critical("Call to org.openvrml.Browser.NewStream failed: %s",
error->message);
@@ -832,7 +827,7 @@
dbus_g_proxy_call_no_reply(stream_data.browser(),
"Write",
- G_TYPE_UINT64, stream_data.handle(),
+ G_TYPE_UINT64, guint64(stream_data.handle()),
DBUS_TYPE_G_UCHAR_ARRAY, &array,
G_TYPE_INVALID);
g_assert(size == 1);
@@ -863,16 +858,14 @@
boost::ignore_unused_variable_warning(browser_factory_guard);
char * browser_path = 0;
- if (!dbus_g_proxy_call(browser_factory,
- "CreateControl",
- error,
- G_TYPE_STRING, host_name,
- DBUS_TYPE_G_OBJECT_PATH, host_path,
- G_TYPE_UINT64, host_id,
- G_TYPE_BOOLEAN, false,
- G_TYPE_INVALID,
- DBUS_TYPE_G_OBJECT_PATH, &browser_path,
- G_TYPE_INVALID)) {
+ if (!org_openvrml_BrowserFactory_create_control(
+ browser_factory,
+ host_name,
+ host_path,
+ host_id,
+ false,
+ &browser_path,
+ error)) {
return 0;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-26 07:30:40
|
Revision: 3750
http://openvrml.svn.sourceforge.net/openvrml/?rev=3750&view=rev
Author: braden
Date: 2008-10-26 07:30:36 +0000 (Sun, 26 Oct 2008)
Log Message:
-----------
Set GErrors on failure of the XEmbed browser control's stream handling functions.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/src/openvrml-xembed/browser.cpp
branches/0.17/src/openvrml-xembed/browser.h
branches/0.17/src/openvrml-xembed/browserfactory.cpp
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-25 07:06:37 UTC (rev 3749)
+++ branches/0.17/ChangeLog 2008-10-26 07:30:36 UTC (rev 3750)
@@ -1,3 +1,28 @@
+2008-10-26 Braden McDaniel <br...@en...>
+
+ Set GErrors on failure of the XEmbed browser control's stream
+ handling functions.
+
+ * src/openvrml-xembed/browser.cpp
+ (openvrml_xembed_error_quark()): Moved from browserfactory.cpp.
+ (openvrml_xembed_browser_new_stream(OpenvrmlXembedStreamClient *,
+ guint64, const char *, const char *, GError **)): Set an
+ OPENVRML_XEMBED_ERROR_UNKNOWN_STREAM GError if the new stream URI
+ is not recognized.
+ (openvrml_xembed_browser_destroy_stream(OpenvrmlXembedStreamClient *,
+ guint64, GError **)): Set an OPENVRML_XEMBED_ERROR_UNKNOWN_STREAM
+ GError if the stream id is not recognized.
+ (openvrml_xembed_browser_write(OpenvrmlXembedStreamClient *,
+ guint64, const GArray *, GError **)): Set an
+ OPENVRML_XEMBED_ERROR_UNKNOWN_STREAM GError if the stream id is
+ not recognized.
+ * src/openvrml-xembed/browser.h
+ (OpenvrmlXembedError): Moved from browserfactory.cpp; added
+ OPENVRML_XEMBED_ERROR_UNKNOWN_STREAM.
+ * src/openvrml-xembed/browserfactory.cpp
+ (openvrml_xembed_error_quark()): Moved to browser.cpp.
+ (OpenvrmlXembedError): Moved to browser.h.
+
2008-10-25 Braden McDaniel <br...@en...>
Ensure the XEmbed control host identifier is consistently treated
Modified: branches/0.17/src/openvrml-xembed/browser.cpp
===================================================================
--- branches/0.17/src/openvrml-xembed/browser.cpp 2008-10-25 07:06:37 UTC (rev 3749)
+++ branches/0.17/src/openvrml-xembed/browser.cpp 2008-10-26 07:30:36 UTC (rev 3750)
@@ -37,6 +37,11 @@
using namespace boost::multi_index::detail; // for scope_guard
+GQuark openvrml_xembed_error_quark()
+{
+ return g_quark_from_static_string("openvrml-xembed-error-quark");
+}
+
extern "C" {
//
// GObject overrides
@@ -558,16 +563,13 @@
return browser;
}
-/**
- * @todo We need to do something with the GError here.
- */
gboolean
openvrml_xembed_browser_new_stream(
OpenvrmlXembedStreamClient * const stream_client,
const guint64 stream_id,
- const char * type,
+ const char * const type,
const char * const url,
- GError ** /* error */)
+ GError ** const error)
{
using namespace openvrml_xembed;
using boost::shared_ptr;
@@ -587,7 +589,12 @@
browser->priv->uninitialized_streambuf_map->front();
got_initial_stream = true;
} else {
- g_warning("Attempt to create an unrequested stream");
+ g_set_error(
+ error,
+ OPENVRML_XEMBED_ERROR,
+ OPENVRML_XEMBED_ERROR_UNKNOWN_STREAM,
+ "Attempt to create a stream that has not been requested: %s",
+ url);
return false;
}
}
@@ -596,14 +603,11 @@
return true;
}
-/**
- * @todo We need to do something with the GError here.
- */
gboolean
openvrml_xembed_browser_destroy_stream(
OpenvrmlXembedStreamClient * const stream_client,
const guint64 stream_id,
- GError ** /* error */)
+ GError ** const error)
{
using namespace openvrml_xembed;
using boost::shared_ptr;
@@ -614,8 +618,12 @@
const shared_ptr<plugin_streambuf> streambuf =
browser->priv->streambuf_map->find(stream_id);
if (!streambuf) {
- g_warning("Attempt to destroy a nonexistent stream (with stream ID "
- "%lu)", stream_id);
+ g_set_error(
+ error,
+ OPENVRML_XEMBED_ERROR,
+ OPENVRML_XEMBED_ERROR_UNKNOWN_STREAM,
+ "Attempt to destroy a nonexistent stream: %lu",
+ stream_id);
return false;
}
streambuf->buf_.set_eof();
@@ -623,14 +631,11 @@
return true;
}
-/**
- * @todo We need to do something with the GError here.
- */
gboolean
openvrml_xembed_browser_write(OpenvrmlXembedStreamClient * const stream_client,
const guint64 stream_id,
const GArray * const data,
- GError ** /* error */)
+ GError ** const error)
{
using namespace openvrml_xembed;
using boost::shared_ptr;
@@ -641,7 +646,12 @@
const shared_ptr<plugin_streambuf> streambuf =
browser->priv->streambuf_map->find(stream_id);
if (!streambuf) {
- g_warning("Attempt to write to a nonexistent stream");
+ g_set_error(
+ error,
+ OPENVRML_XEMBED_ERROR,
+ OPENVRML_XEMBED_ERROR_UNKNOWN_STREAM,
+ "Attempt to write to a nonexistent stream: %lu",
+ stream_id);
return false;
}
for (size_t i = 0; i < data->len; ++i) {
Modified: branches/0.17/src/openvrml-xembed/browser.h
===================================================================
--- branches/0.17/src/openvrml-xembed/browser.h 2008-10-25 07:06:37 UTC (rev 3749)
+++ branches/0.17/src/openvrml-xembed/browser.h 2008-10-26 07:30:36 UTC (rev 3750)
@@ -27,6 +27,16 @@
G_BEGIN_DECLS
+# define OPENVRML_XEMBED_ERROR openvrml_xembed_error_quark()
+
+GQuark openvrml_xembed_error_quark(void);
+
+typedef enum {
+ OPENVRML_XEMBED_ERROR_FAILED,
+ OPENVRML_XEMBED_ERROR_NO_MEMORY,
+ OPENVRML_XEMBED_ERROR_UNKNOWN_STREAM
+} OpenvrmlXembedError;
+
# define OPENVRML_XEMBED_TYPE_BROWSER (openvrml_xembed_browser_get_type ())
# define OPENVRML_XEMBED_BROWSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OPENVRML_XEMBED_TYPE_BROWSER, OpenvrmlXembedBrowser))
# define OPENVRML_XEMBED_BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OPENVRML_XEMBED_TYPE_BROWSER, OpenvrmlXembedBrowserClass))
Modified: branches/0.17/src/openvrml-xembed/browserfactory.cpp
===================================================================
--- branches/0.17/src/openvrml-xembed/browserfactory.cpp 2008-10-25 07:06:37 UTC (rev 3749)
+++ branches/0.17/src/openvrml-xembed/browserfactory.cpp 2008-10-26 07:30:36 UTC (rev 3750)
@@ -36,17 +36,6 @@
using namespace boost::multi_index::detail; // for scope_guard
-# define OPENVRML_XEMBED_ERROR openvrml_xembed_error_quark()
-GQuark openvrml_xembed_error_quark()
-{
- return g_quark_from_static_string("openvrml-xembed-error-quark");
-}
-
-enum OpenvrmlXembedError {
- OPENVRML_XEMBED_ERROR_FAILED,
- OPENVRML_XEMBED_ERROR_NO_MEMORY
-};
-
G_DEFINE_TYPE(OpenvrmlXembedBrowserFactory,
openvrml_xembed_browser_factory,
G_TYPE_OBJECT);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-26 07:48:19
|
Revision: 3752
http://openvrml.svn.sourceforge.net/openvrml/?rev=3752&view=rev
Author: braden
Date: 2008-10-26 07:48:14 +0000 (Sun, 26 Oct 2008)
Log Message:
-----------
"got_initial_stream" flag needs to be per-XEmbed browser instance.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/src/openvrml-xembed/browser.cpp
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-26 07:36:50 UTC (rev 3751)
+++ branches/0.17/ChangeLog 2008-10-26 07:48:14 UTC (rev 3752)
@@ -1,5 +1,15 @@
2008-10-26 Braden McDaniel <br...@en...>
+ "got_initial_stream" flag needs to be per-XEmbed browser instance.
+
+ * src/openvrml-xembed/browser.cpp
+ (OpenvrmlXembedBrowserPrivate_): Added member got_initial_stream.
+ (openvrml_xembed_browser_new_stream(OpenvrmlXembedStreamClient *,
+ guint64, const char *, const char *, GError **)): Use the
+ got_initial_stream private member instead of a static variable.
+
+2008-10-26 Braden McDaniel <br...@en...>
+
Set GErrors on failure of the XEmbed browser control's stream
handling functions.
Modified: branches/0.17/src/openvrml-xembed/browser.cpp
===================================================================
--- branches/0.17/src/openvrml-xembed/browser.cpp 2008-10-26 07:36:50 UTC (rev 3751)
+++ branches/0.17/src/openvrml-xembed/browser.cpp 2008-10-26 07:48:14 UTC (rev 3752)
@@ -209,6 +209,7 @@
openvrml_xembed::plugin_streambuf_map * streambuf_map;
boost::thread * initial_stream_reader_thread;
bool expect_initial_stream;
+ bool got_initial_stream;
};
# define OPENVRML_XEMBED_BROWSER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), OPENVRML_XEMBED_TYPE_BROWSER, OpenvrmlXembedBrowserPrivate))
@@ -216,7 +217,6 @@
void openvrml_xembed_browser_init(OpenvrmlXembedBrowser * const vrml_browser)
{
vrml_browser->priv = OPENVRML_XEMBED_BROWSER_GET_PRIVATE(vrml_browser);
-
}
namespace {
@@ -580,14 +580,13 @@
shared_ptr<plugin_streambuf> streambuf =
browser->priv->uninitialized_streambuf_map->find(url);
- static bool got_initial_stream = false;
if (!streambuf) {
- if (!got_initial_stream) {
+ if (!browser->priv->got_initial_stream) {
g_assert(
browser->priv->uninitialized_streambuf_map->size() == 1);
streambuf =
browser->priv->uninitialized_streambuf_map->front();
- got_initial_stream = true;
+ browser->priv->got_initial_stream = true;
} else {
g_set_error(
error,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-10-26 16:55:55
|
Revision: 3754
http://openvrml.svn.sourceforge.net/openvrml/?rev=3754&view=rev
Author: braden
Date: 2008-10-26 16:55:51 +0000 (Sun, 26 Oct 2008)
Log Message:
-----------
Updates for 0.17.10 release.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/NEWS
branches/0.17/README
branches/0.17/configure.ac
branches/0.17/doc/Doxyfile
branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
branches/0.17/mozilla-plugin/configure.ac
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-26 07:50:46 UTC (rev 3753)
+++ branches/0.17/ChangeLog 2008-10-26 16:55:51 UTC (rev 3754)
@@ -1,5 +1,18 @@
2008-10-26 Braden McDaniel <br...@en...>
+ Updates for 0.17.10 release.
+
+ * NEWS
+ * README
+ * configure.ac
+ * doc/Doxyfile
+ * ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
+ * ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
+ * ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
+ * mozilla-plugin/configure.ac
+
+2008-10-26 Braden McDaniel <br...@en...>
+
"got_initial_stream" flag needs to be per-XEmbed browser instance.
* src/openvrml-xembed/browser.cpp
Modified: branches/0.17/NEWS
===================================================================
--- branches/0.17/NEWS 2008-10-26 07:50:46 UTC (rev 3753)
+++ branches/0.17/NEWS 2008-10-26 16:55:51 UTC (rev 3754)
@@ -1,3 +1,9 @@
+Changes new in version 0.17.10, 26 October, 2008
+========================================================================
+
+- Fixed 32-/64-bit parity and stream handling bugs in openvrml-xembed.
+
+
Changes new in version 0.17.9, 9 October, 2008
========================================================================
Modified: branches/0.17/README
===================================================================
--- branches/0.17/README 2008-10-26 07:50:46 UTC (rev 3753)
+++ branches/0.17/README 2008-10-26 16:55:51 UTC (rev 3754)
@@ -1,4 +1,4 @@
-OpenVRML library version 0.17.9
+OpenVRML library version 0.17.10
Copyright 1998, 1999, 2000 Chris Morley <cm...@ve...>
Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
Braden McDaniel <br...@en...>
Modified: branches/0.17/configure.ac
===================================================================
--- branches/0.17/configure.ac 2008-10-26 07:50:46 UTC (rev 3753)
+++ branches/0.17/configure.ac 2008-10-26 16:55:51 UTC (rev 3754)
@@ -1,4 +1,4 @@
-AC_INIT([OpenVRML], [0.17.9], [ope...@li...])
+AC_INIT([OpenVRML], [0.17.10], [ope...@li...])
AC_PREREQ([2.53])
AC_COPYRIGHT([Portions copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Braden McDaniel])
AC_CONFIG_FILES([Makefile]
Modified: branches/0.17/doc/Doxyfile
===================================================================
--- branches/0.17/doc/Doxyfile 2008-10-26 07:50:46 UTC (rev 3753)
+++ branches/0.17/doc/Doxyfile 2008-10-26 16:55:51 UTC (rev 3754)
@@ -5,7 +5,7 @@
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = OpenVRML
-PROJECT_NUMBER = 0.17.9
+PROJECT_NUMBER = 0.17.10
OUTPUT_DIRECTORY =
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
Modified: branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
===================================================================
--- branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc 2008-10-26 07:50:46 UTC (rev 3753)
+++ branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc 2008-10-26 16:55:51 UTC (rev 3754)
@@ -12,7 +12,7 @@
VS_VERSION_INFO VERSIONINFO
FILEVERSION 8,7,0,0
- PRODUCTVERSION 0,17,9,0
+ PRODUCTVERSION 0,17,10,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -33,7 +33,7 @@
VALUE "LegalCopyright", "Copyright (C) 2008"
VALUE "OriginalFilename", "openvrml.dll"
VALUE "ProductName", "OpenVRML Library"
- VALUE "ProductVersion", "0.17.9"
+ VALUE "ProductVersion", "0.17.10"
END
END
BLOCK "VarFileInfo"
Modified: branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
===================================================================
--- branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj 2008-10-26 07:50:46 UTC (rev 3753)
+++ branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj 2008-10-26 16:55:51 UTC (rev 3754)
@@ -42,7 +42,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".;..\..\..\..\..\src\libopenvrml"
- PreprocessorDefinitions="NOMINMAX;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;BOOST_SPIRIT_THREADSAFE;BOOST_SPIRIT_CLOSURE_LIMIT=6;PHOENIX_LIMIT=6;PACKAGE_VERSION=\"0.17.9\";BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS;BOOST_MPL_LIMIT_VECTOR_SIZE=30;OPENVRML_BUILD_DLL;OPENVRML_ENABLE_PNG_TEXTURES;OPENVRML_ENABLE_RENDER_TEXT_NODE;OPENVRML_FT_CONST="const""
+ PreprocessorDefinitions="NOMINMAX;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;BOOST_SPIRIT_THREADSAFE;BOOST_SPIRIT_CLOSURE_LIMIT=6;PHOENIX_LIMIT=6;PACKAGE_VERSION=\"0.17.10\";BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS;BOOST_MPL_LIMIT_VECTOR_SIZE=30;OPENVRML_BUILD_DLL;OPENVRML_ENABLE_PNG_TEXTURES;OPENVRML_ENABLE_RENDER_TEXT_NODE;OPENVRML_FT_CONST="const""
MinimalRebuild="false"
BasicRuntimeChecks="0"
RuntimeLibrary="3"
@@ -127,7 +127,7 @@
InlineFunctionExpansion="1"
OmitFramePointers="true"
AdditionalIncludeDirectories=".;..\..\..\..\..\src\libopenvrml"
- PreprocessorDefinitions="NOMINMAX;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;BOOST_SPIRIT_THREADSAFE;PACKAGE_VERSION=\"0.17.9\";BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS;BOOST_MPL_LIMIT_VECTOR_SIZE=30;BOOST_SPIRIT_CLOSURE_LIMIT=6;PHOENIX_LIMIT=6;OPENVRML_BUILD_DLL;OPENVRML_ENABLE_PNG_TEXTURES;OPENVRML_ENABLE_RENDER_TEXT_NODE;OPENVRML_FT_CONST="const";NDEBUG"
+ PreprocessorDefinitions="NOMINMAX;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;BOOST_SPIRIT_THREADSAFE;PACKAGE_VERSION=\"0.17.10\";BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS;BOOST_MPL_LIMIT_VECTOR_SIZE=30;BOOST_SPIRIT_CLOSURE_LIMIT=6;PHOENIX_LIMIT=6;OPENVRML_BUILD_DLL;OPENVRML_ENABLE_PNG_TEXTURES;OPENVRML_ENABLE_RENDER_TEXT_NODE;OPENVRML_FT_CONST="const";NDEBUG"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
Modified: branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
===================================================================
--- branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc 2008-10-26 07:50:46 UTC (rev 3753)
+++ branches/0.17/ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc 2008-10-26 16:55:51 UTC (rev 3754)
@@ -12,7 +12,7 @@
VS_VERSION_INFO VERSIONINFO
FILEVERSION 7,3,0,0
- PRODUCTVERSION 0,17,9,0
+ PRODUCTVERSION 0,17,10,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -33,7 +33,7 @@
VALUE "LegalCopyright", "Copyright (C) 2008"
VALUE "OriginalFilename", "openvrml-gl.dll"
VALUE "ProductName", "OpenVRML Library"
- VALUE "ProductVersion", "0.17.9"
+ VALUE "ProductVersion", "0.17.10"
END
END
BLOCK "VarFileInfo"
Modified: branches/0.17/mozilla-plugin/configure.ac
===================================================================
--- branches/0.17/mozilla-plugin/configure.ac 2008-10-26 07:50:46 UTC (rev 3753)
+++ branches/0.17/mozilla-plugin/configure.ac 2008-10-26 16:55:51 UTC (rev 3754)
@@ -1,5 +1,5 @@
AC_PREREQ([2.53])
-AC_INIT([OpenVRML Mozilla Plugin], [0.17.9],
+AC_INIT([OpenVRML Mozilla Plugin], [0.17.10],
[ope...@li...])
AC_COPYRIGHT([Portions copyright 2004, 2005, 2006, 2007, 2008 Braden McDaniel])
AC_CONFIG_FILES([Makefile]
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-11-03 07:49:45
|
Revision: 3757
http://openvrml.svn.sourceforge.net/openvrml/?rev=3757&view=rev
Author: braden
Date: 2008-11-03 07:49:36 +0000 (Mon, 03 Nov 2008)
Log Message:
-----------
Doc-comment fix.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/src/libopenvrml/openvrml/browser.cpp
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-10-26 17:17:54 UTC (rev 3756)
+++ branches/0.17/ChangeLog 2008-11-03 07:49:36 UTC (rev 3757)
@@ -1,3 +1,8 @@
+2008-11-03 Braden McDaniel <br...@en...>
+
+ * src/libopenvrml/openvrml/browser.cpp
+ (proto_node::do_shutdown(double)): Doc-comment fix.
+
2008-10-26 Braden McDaniel <br...@en...>
Updates for 0.17.10 release.
Modified: branches/0.17/src/libopenvrml/openvrml/browser.cpp
===================================================================
--- branches/0.17/src/libopenvrml/openvrml/browser.cpp 2008-10-26 17:17:54 UTC (rev 3756)
+++ branches/0.17/src/libopenvrml/openvrml/browser.cpp 2008-11-03 07:49:36 UTC (rev 3757)
@@ -1959,7 +1959,7 @@
}
/**
- * @brief Initialize.
+ * @brief Shutdown.
*
* @param[in] timestamp the current time.
*/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-11-03 07:58:02
|
Revision: 3759
http://openvrml.svn.sourceforge.net/openvrml/?rev=3759&view=rev
Author: braden
Date: 2008-11-03 07:57:59 +0000 (Mon, 03 Nov 2008)
Log Message:
-----------
Assert that the scene pointer is nonnull (i.e., the node has been initialized).
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/src/libopenvrml/openvrml/vrml97node.cpp
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-11-03 07:55:53 UTC (rev 3758)
+++ branches/0.17/ChangeLog 2008-11-03 07:57:59 UTC (rev 3759)
@@ -1,5 +1,11 @@
2008-11-03 Braden McDaniel <br...@en...>
+ * src/libopenvrml/openvrml/vrml97node.cpp
+ (image_texture_node::update_texture()): Assert that the scene
+ pointer is nonnull (i.e., the node has been initialized).
+
+2008-11-03 Braden McDaniel <br...@en...>
+
* src/libopenvrml/openvrml/browser.cpp
(proto_node::do_shutdown(double)): Doc-comment fix.
Modified: branches/0.17/src/libopenvrml/openvrml/vrml97node.cpp
===================================================================
--- branches/0.17/src/libopenvrml/openvrml/vrml97node.cpp 2008-11-03 07:55:53 UTC (rev 3758)
+++ branches/0.17/src/libopenvrml/openvrml/vrml97node.cpp 2008-11-03 07:57:59 UTC (rev 3759)
@@ -12615,6 +12615,7 @@
*/
void image_texture_node::update_texture()
{
+ assert(this->scene());
if (this->texture_needs_update) {
try {
if (!this->url_.mfstring::value().empty()) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-11-03 08:12:24
|
Revision: 3760
http://openvrml.svn.sourceforge.net/openvrml/?rev=3760&view=rev
Author: braden
Date: 2008-11-03 08:12:19 +0000 (Mon, 03 Nov 2008)
Log Message:
-----------
Only render a node if the scene pointer is nonnull (i.e., the node has been initialized).
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/src/libopenvrml/openvrml/node.cpp
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-11-03 07:57:59 UTC (rev 3759)
+++ branches/0.17/ChangeLog 2008-11-03 08:12:19 UTC (rev 3760)
@@ -1,5 +1,24 @@
2008-11-03 Braden McDaniel <br...@en...>
+ Only render a node if the scene pointer is nonnull (i.e., the node
+ has been initialized).
+
+ * src/libopenvrml/openvrml/node.cpp
+ (openvrml::appearance_node::render_appearance(viewer &,
+ rendering_context)): Check that the scene pointer is nonnull.
+ (openvrml::child_node::render_child(viewer &, rendering_context)):
+ Check that the scene pointer is nonnull.
+ (openvrml::geometry_node::render_geometry(viewer &,
+ rendering_context)): Check that the scene pointer is nonnull.
+ (openvrml::scoped_light_node::render_scoped_light(viewer &)):
+ Check that the scene pointer is nonnull.
+ (openvrml::texture_node::render_texture(viewer &)): Check that the
+ scene pointer is nonnull.
+ (openvrml::texture_transform_node::render_texture_transform(viewer&)):
+ Check that the scene pointer is nonnull.
+
+2008-11-03 Braden McDaniel <br...@en...>
+
* src/libopenvrml/openvrml/vrml97node.cpp
(image_texture_node::update_texture()): Assert that the scene
pointer is nonnull (i.e., the node has been initialized).
Modified: branches/0.17/src/libopenvrml/openvrml/node.cpp
===================================================================
--- branches/0.17/src/libopenvrml/openvrml/node.cpp 2008-11-03 07:57:59 UTC (rev 3759)
+++ branches/0.17/src/libopenvrml/openvrml/node.cpp 2008-11-03 08:12:19 UTC (rev 3760)
@@ -3091,8 +3091,10 @@
void openvrml::appearance_node::render_appearance(viewer & v,
rendering_context context)
{
- this->do_render_appearance(v, context);
- this->modified(false);
+ if (this->scene()) {
+ this->do_render_appearance(v, context);
+ this->modified(false);
+ }
}
/**
@@ -3356,8 +3358,10 @@
void openvrml::child_node::render_child(viewer & v,
const rendering_context context)
{
- this->do_render_child(v, context);
- this->modified(false);
+ if (this->scene()) {
+ this->do_render_child(v, context);
+ this->modified(false);
+ }
}
/**
@@ -3716,20 +3720,23 @@
openvrml::geometry_node::render_geometry(viewer & v,
rendering_context context)
{
- boost::mutex::scoped_lock lock(this->geometry_reference_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->geometry_reference != 0 && this->modified()) {
+ v.remove_object(this->geometry_reference);
+ this->geometry_reference = 0;
+ }
- if (this->geometry_reference != 0) {
- v.insert_reference(this->geometry_reference);
- } else {
- this->geometry_reference = this->do_render_geometry(v, context);
- this->modified(false);
+ 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 this->geometry_reference;
+ return 0;
}
/**
@@ -4323,7 +4330,9 @@
*/
void openvrml::scoped_light_node::render_scoped_light(viewer & v)
{
- this->do_render_scoped_light(v);
+ if (this->scene()) {
+ this->do_render_scoped_light(v);
+ }
}
/**
@@ -4439,21 +4448,24 @@
openvrml::viewer::texture_object_t
openvrml::texture_node::render_texture(viewer & v)
{
- boost::mutex::scoped_lock lock(this->texture_reference_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->texture_reference != 0 && this->modified()) {
+ v.remove_texture_object(this->texture_reference);
+ this->texture_reference = 0;
+ }
- 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);
+ 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 this->texture_reference;
+ return 0;
}
/**
@@ -4586,8 +4598,10 @@
*/
void openvrml::texture_transform_node::render_texture_transform(viewer & v)
{
- this->do_render_texture_transform(v);
- this->modified(false);
+ if (this->scene()) {
+ this->do_render_texture_transform(v);
+ this->modified(false);
+ }
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-11-09 05:27:27
|
Revision: 3764
http://openvrml.svn.sourceforge.net/openvrml/?rev=3764&view=rev
Author: braden
Date: 2008-11-09 05:27:20 +0000 (Sun, 09 Nov 2008)
Log Message:
-----------
Updated to 20081109 release of Autoconf GL Macros. This addresses issues with the test for the varargs GLU tesselator callback signature on Mac OS X 10.4.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/m4/ax_check_gl.m4
branches/0.17/m4/ax_check_glu.m4
branches/0.17/m4/ax_lang_compiler_ms.m4
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-11-09 05:24:53 UTC (rev 3763)
+++ branches/0.17/ChangeLog 2008-11-09 05:27:20 UTC (rev 3764)
@@ -1,3 +1,13 @@
+2008-11-09 Braden McDaniel <br...@en...>
+
+ Updated to 20081109 release of Autoconf GL Macros. This addresses
+ issues with the test for the varargs GLU tesselator callback
+ signature on Mac OS X 10.4.
+
+ * m4/ax_check_gl.m4
+ * m4/ax_check_glu.m4
+ * m4/ax_lang_compiler_ms.m4
+
2008-11-03 Braden McDaniel <br...@en...>
Only render a node if the scene pointer is nonnull (i.e., the node
Modified: branches/0.17/m4/ax_check_gl.m4
===================================================================
--- branches/0.17/m4/ax_check_gl.m4 2008-11-09 05:24:53 UTC (rev 3763)
+++ branches/0.17/m4/ax_check_gl.m4 2008-11-09 05:27:20 UTC (rev 3764)
@@ -1,41 +1,43 @@
-dnl
-dnl AX_CHECK_GL
-dnl
-dnl Check for an OpenGL implementation. If GL is found, the required compiler
-dnl and linker flags are included in the output variables "GL_CFLAGS" and
-dnl "GL_LIBS", respectively. If no usable GL implementation is found, "no_gl"
-dnl is set to "yes".
-dnl
-dnl If the header "GL/gl.h" is found, "HAVE_GL_GL_H" is defined. If the header
-dnl "OpenGL/gl.h" is found, HAVE_OPENGL_GL_H is defined. These preprocessor
-dnl definitions may not be mutually exclusive.
-dnl
-dnl version: 2.2
-dnl author: Braden McDaniel <br...@en...>
-dnl
-dnl This program is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2, or (at your option)
-dnl any later version.
-dnl
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-dnl GNU General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-dnl 02110-1301, USA.
-dnl
-dnl As a special exception, the you may copy, distribute and modify the
-dnl configure scripts that are the output of Autoconf when processing
-dnl the Macro. You need not follow the terms of the GNU General Public
-dnl License when using or distributing such scripts.
-dnl
+# -*- mode: autoconf -*-
+#
+# AX_CHECK_GL
+#
+# Check for an OpenGL implementation. If GL is found, the required compiler
+# and linker flags are included in the output variables "GL_CFLAGS" and
+# "GL_LIBS", respectively. If no usable GL implementation is found, "no_gl"
+# is set to "yes".
+#
+# If the header "GL/gl.h" is found, "HAVE_GL_GL_H" is defined. If the header
+# "OpenGL/gl.h" is found, HAVE_OPENGL_GL_H is defined. These preprocessor
+# definitions may not be mutually exclusive.
+#
+# version: 2.3
+# author: Braden McDaniel <br...@en...>
+#
+# 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 2, 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 program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception, the you may copy, distribute and modify the
+# configure scripts that are the output of Autoconf when processing
+# the Macro. You need not follow the terms of the GNU General Public
+# License when using or distributing such scripts.
+#
AC_DEFUN([AX_CHECK_GL],
-[AC_REQUIRE([AC_CANONICAL_HOST])
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_REQUIRE([AC_PATH_X])dnl
+AC_REQUIRE([AC_PROG_SED])dnl
AC_REQUIRE([ACX_PTHREAD])dnl
AC_LANG_PUSH([C])
@@ -47,16 +49,16 @@
# Use x_includes and x_libraries if they have been set (presumably by
# AC_PATH_X).
#
-AS_IF([test "X$no_x" != "Xyes"],
- [AS_IF([test -n "$x_includes"],
- [GL_CFLAGS="-I${x_includes} ${GL_CFLAGS}"])]
- AS_IF([test -n "$x_libraries"],
- [GL_LIBS="-L${x_libraries} -lX11 ${GL_LIBS}"]))
+AS_IF([test X$no_x != Xyes],
+ [AS_IF([test -n $x_includes],
+ [GL_CFLAGS="-I$x_includes $GL_CFLAGS"])]
+ AS_IF([test -n $x_libraries],
+ [GL_LIBS="-L$x_libraries -lX11 $GL_LIBS"]))
-ax_save_CPPFLAGS="${CPPFLAGS}"
-CPPFLAGS="${GL_CFLAGS} ${CPPFLAGS}"
+ax_save_CPPFLAGS=$CPPFLAGS
+CPPFLAGS="$GL_CFLAGS $CPPFLAGS"
AC_CHECK_HEADERS([GL/gl.h OpenGL/gl.h])
-CPPFLAGS="${ax_save_CPPFLAGS}"
+CPPFLAGS=$ax_save_CPPFLAGS
AC_CHECK_HEADERS([windows.h])
@@ -75,42 +77,42 @@
[[glBegin(0)]])])
AC_CACHE_CHECK([for OpenGL library], [ax_cv_check_gl_libgl],
-[ax_cv_check_gl_libgl="no"
+[ax_cv_check_gl_libgl=no
case $host_cpu in
x86_64) ax_check_gl_libdir=lib64 ;;
*) ax_check_gl_libdir=lib ;;
esac
-ax_save_CPPFLAGS="${CPPFLAGS}"
-CPPFLAGS="${GL_CFLAGS} ${CPPFLAGS}"
-ax_save_LIBS="${LIBS}"
+ax_save_CPPFLAGS=$CPPFLAGS
+CPPFLAGS="$GL_CFLAGS $CPPFLAGS"
+ax_save_LIBS=$LIBS
LIBS=""
ax_check_libs="-lopengl32 -lGL"
for ax_lib in ${ax_check_libs}; do
AS_IF([test X$ax_compiler_ms = Xyes],
- [ax_try_lib=`echo $ax_lib | sed -e 's/^-l//' -e 's/$/.lib/'`],
- [ax_try_lib="${ax_lib}"])
- LIBS="${ax_try_lib} ${GL_LIBS} ${ax_save_LIBS}"
+ [ax_try_lib=`echo $ax_lib | $SED -e 's/^-l//' -e 's/$/.lib/'`],
+ [ax_try_lib=$ax_lib])
+ LIBS="$ax_try_lib $GL_LIBS $ax_save_LIBS"
AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
- [ax_cv_check_gl_libgl="${ax_try_lib}"; break],
- [ax_check_gl_nvidia_flags="-L/usr/${ax_check_gl_libdir}/nvidia" LIBS="${ax_try_lib} ${ax_check_gl_nvidia_flags} ${GL_LIBS} ${ax_save_LIBS}"
-AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
- [ax_cv_check_gl_libgl="${ax_try_lib} ${ax_check_gl_nvidia_flags}"; break],
- [ax_check_gl_dylib_flag='-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib' LIBS="${ax_try_lib} ${ax_check_gl_dylib_flag} ${GL_LIBS} ${ax_save_LIBS}"
-AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
- [ax_cv_check_gl_libgl="${ax_try_lib} ${ax_check_gl_dylib_flag}"; break])])])
+ [ax_cv_check_gl_libgl=$ax_try_lib; break],
+ [ax_check_gl_nvidia_flags="-L/usr/$ax_check_gl_libdir/nvidia" LIBS="$ax_try_lib $ax_check_gl_nvidia_flags $GL_LIBS $ax_save_LIBS"
+ AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
+ [ax_cv_check_gl_libgl="$ax_try_lib $ax_check_gl_nvidia_flags"; break],
+ [ax_check_gl_dylib_flag='-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib' LIBS="$ax_try_lib $ax_check_gl_dylib_flag $GL_LIBS $ax_save_LIBS"
+ AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
+ [ax_cv_check_gl_libgl="$ax_try_lib $ax_check_gl_dylib_flag"; break])])])
done
-AS_IF([test "X$ax_cv_check_gl_libgl" = Xno -a "X$no_x" = Xyes],
-[LIBS='-framework OpenGL'
-AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
- [ax_cv_check_gl_libgl="$LIBS"])])
+AS_IF([test "X$ax_cv_check_gl_libgl" = Xno -a X$no_x = Xyes],
+ [LIBS='-framework OpenGL'
+ AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
+ [ax_cv_check_gl_libgl=$LIBS])])
-LIBS=${ax_save_LIBS}
-CPPFLAGS=${ax_save_CPPFLAGS}])
+LIBS=$ax_save_LIBS
+CPPFLAGS=$ax_save_CPPFLAGS])
AS_IF([test "X$ax_cv_check_gl_libgl" = Xno],
[no_gl=yes; GL_CFLAGS=""; GL_LIBS=""],
- [GL_LIBS="${ax_cv_check_gl_libgl} ${GL_LIBS}"])
+ [GL_LIBS="$ax_cv_check_gl_libgl $GL_LIBS"])
AC_LANG_POP([C])
AC_SUBST([GL_CFLAGS])
Modified: branches/0.17/m4/ax_check_glu.m4
===================================================================
--- branches/0.17/m4/ax_check_glu.m4 2008-11-09 05:24:53 UTC (rev 3763)
+++ branches/0.17/m4/ax_check_glu.m4 2008-11-09 05:27:20 UTC (rev 3764)
@@ -1,51 +1,52 @@
-dnl
-dnl AX_CHECK_GLU
-dnl
-dnl Check for GLU. If GLU is found, the required preprocessor and linker flags
-dnl are included in the output variables "GLU_CFLAGS" and "GLU_LIBS",
-dnl respectively. If no GLU implementation is found, "no_glu" is set to "yes".
-dnl
-dnl If the header "GL/glu.h" is found, "HAVE_GL_GLU_H" is defined. If the
-dnl header "OpenGL/glu.h" is found, HAVE_OPENGL_GLU_H is defined. These
-dnl preprocessor definitions may not be mutually exclusive.
-dnl
-dnl Some implementations (in particular, some versions of Mac OS X) are known
-dnl to treat the GLU tesselator callback function type as "GLvoid (*)(...)"
-dnl rather than the standard "GLvoid (*)()". If the former condition is
-dnl detected, this macro defines "HAVE_VARARGS_GLU_TESSCB".
-dnl
-dnl version: 2.1
-dnl author: Braden McDaniel <br...@en...>
-dnl
-dnl This program is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2, or (at your option)
-dnl any later version.
-dnl
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-dnl GNU General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-dnl 02110-1301, USA.
-dnl
-dnl As a special exception, the you may copy, distribute and modify the
-dnl configure scripts that are the output of Autoconf when processing
-dnl the Macro. You need not follow the terms of the GNU General Public
-dnl License when using or distributing such scripts.
-dnl
+# -*- mode: autoconf -*-
+#
+# AX_CHECK_GLU
+#
+# Check for GLU. If GLU is found, the required preprocessor and linker flags
+# are included in the output variables "GLU_CFLAGS" and "GLU_LIBS",
+# respectively. If no GLU implementation is found, "no_glu" is set to "yes".
+#
+# If the header "GL/glu.h" is found, "HAVE_GL_GLU_H" is defined. If the
+# header "OpenGL/glu.h" is found, HAVE_OPENGL_GLU_H is defined. These
+# preprocessor definitions may not be mutually exclusive.
+#
+# Some implementations (in particular, some versions of Mac OS X) are known
+# to treat the GLU tesselator callback function type as "GLvoid (*)(...)"
+# rather than the standard "GLvoid (*)()". If the former condition is
+# detected, this macro defines "HAVE_VARARGS_GLU_TESSCB".
+#
+# version: 2.2
+# author: Braden McDaniel <br...@en...>
+#
+# 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 2, 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 program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception, the you may copy, distribute and modify the
+# configure scripts that are the output of Autoconf when processing
+# the Macro. You need not follow the terms of the GNU General Public
+# License when using or distributing such scripts.
+#
AC_DEFUN([AX_CHECK_GLU],
[AC_REQUIRE([AX_CHECK_GL])dnl
AC_REQUIRE([AC_PROG_CXX])dnl
-GLU_CFLAGS="${GL_CFLAGS}"
+GLU_CFLAGS=$GL_CFLAGS
-ax_save_CPPFLAGS="${CPPFLAGS}"
-CPPFLAGS="${GL_CFLAGS} ${CPPFLAGS}"
+ax_save_CPPFLAGS=$CPPFLAGS
+CPPFLAGS="$GL_CFLAGS $CPPFLAGS"
AC_CHECK_HEADERS([GL/glu.h OpenGL/glu.h])
-CPPFLAGS="${ax_save_CPPFLAGS}"
+CPPFLAGS=$ax_save_CPPFLAGS
m4_define([AX_CHECK_GLU_PROGRAM],
[AC_LANG_PROGRAM([[
@@ -62,16 +63,16 @@
[[gluBeginCurve(0)]])])
AC_CACHE_CHECK([for OpenGL Utility library], [ax_cv_check_glu_libglu],
-[ax_cv_check_glu_libglu="no"
-ax_save_CPPFLAGS="${CPPFLAGS}"
-CPPFLAGS="${GL_CFLAGS} ${CPPFLAGS}"
-ax_save_LIBS="${LIBS}"
+[ax_cv_check_glu_libglu=no
+ax_save_CPPFLAGS=$CPPFLAGS
+CPPFLAGS="$GL_CFLAGS $CPPFLAGS"
+ax_save_LIBS=$LIBS
#
# First, check for the possibility that everything we need is already in
# GL_LIBS.
#
-LIBS="${GL_LIBS} ${ax_save_LIBS}"
+LIBS="$GL_LIBS $ax_save_LIBS"
#
# libGLU typically links with libstdc++ on POSIX platforms.
# However, setting the language to C++ means that test program
@@ -81,55 +82,54 @@
AC_LANG_PUSH([C++])
AS_IF([test X$ax_compiler_ms = Xyes],
[AC_LANG_PUSH([C])])
-AC_LINK_IFELSE(
-[AX_CHECK_GLU_PROGRAM],
-[ax_cv_check_glu_libglu=yes],
-[LIBS=""
-ax_check_libs="-lglu32 -lGLU"
-for ax_lib in ${ax_check_libs}; do
- AS_IF([test X$ax_compiler_ms = Xyes],
- [ax_try_lib=`echo $ax_lib | sed -e 's/^-l//' -e 's/$/.lib/'`],
- [ax_try_lib="${ax_lib}"])
- LIBS="${ax_try_lib} ${GL_LIBS} ${ax_save_LIBS}"
- AC_LINK_IFELSE([AX_CHECK_GLU_PROGRAM],
- [ax_cv_check_glu_libglu="${ax_try_lib}"; break])
-done
-])
+AC_LINK_IFELSE([AX_CHECK_GLU_PROGRAM],
+ [ax_cv_check_glu_libglu=yes],
+ [LIBS=""
+ ax_check_libs="-lglu32 -lGLU"
+ for ax_lib in ${ax_check_libs}; do
+ AS_IF([test X$ax_compiler_ms = Xyes],
+ [ax_try_lib=`echo $ax_lib | $SED -e 's/^-l//' -e 's/$/.lib/'`],
+ [ax_try_lib=$ax_lib])
+ LIBS="$ax_try_lib $GL_LIBS $ax_save_LIBS"
+ AC_LINK_IFELSE([AX_CHECK_GLU_PROGRAM],
+ [ax_cv_check_glu_libglu=$ax_try_lib; break])
+ done])
AS_IF([test X$ax_compiler_ms = Xyes],
[AC_LANG_POP([C])])
AC_LANG_POP([C++])
-LIBS=${ax_save_LIBS}
-CPPFLAGS=${ax_save_CPPFLAGS}])
+LIBS=$ax_save_LIBS
+CPPFLAGS=$ax_save_CPPFLAGS])
AS_IF([test "X$ax_cv_check_glu_libglu" = Xno],
[no_glu=yes; GLU_CFLAGS=""; GLU_LIBS=""],
[AS_IF([test "X$ax_cv_check_glu_libglu" = Xyes],
- [GLU_LIBS="$GL_LIBS"],
- [GLU_LIBS="${ax_cv_check_glu_libglu} ${GL_LIBS}"])])
+ [GLU_LIBS=$GL_LIBS],
+ [GLU_LIBS="$ax_cv_check_glu_libglu $GL_LIBS"])])
AC_SUBST([GLU_CFLAGS])
AC_SUBST([GLU_LIBS])
#
# Some versions of Mac OS X include a broken interpretation of the GLU
-# tesselation callback function signature.
+# tesselation callback function signature when using the C++ compiler.
#
AS_IF([test "X$ax_cv_check_glu_libglu" != Xno],
-[AC_CACHE_CHECK([for varargs GLU tesselator callback function type],
- [ax_cv_varargs_glu_tesscb],
-[ax_cv_varargs_glu_tesscb=no
-ax_save_CFLAGS="$CFLAGS"
-CFLAGS="$GL_CFLAGS $CFLAGS"
-AC_COMPILE_IFELSE(
-[AC_LANG_PROGRAM([[
+ [AC_CACHE_CHECK([for varargs GLU tesselator callback function type],
+ [ax_cv_varargs_glu_tesscb],
+ [AC_LANG_PUSH([C++])
+ ax_cv_varargs_glu_tesscb=no
+ ax_save_CXXFLAGS=$CXXFLAGS
+ CXXFLAGS="$GL_CFLAGS $CXXFLAGS"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
# ifdef HAVE_GL_GLU_H
# include <GL/glu.h>
# else
# include <OpenGL/glu.h>
# endif]],
- [[GLvoid (*func)(...); gluTessCallback(0, 0, func)]])],
-[ax_cv_varargs_glu_tesscb=yes])
-CFLAGS="$ax_save_CFLAGS"])
-AS_IF([test X$ax_cv_varargs_glu_tesscb = Xyes],
- [AC_DEFINE([HAVE_VARARGS_GLU_TESSCB], [1],
- [Use nonstandard varargs form for the GLU tesselator callback])])])
+ [[GLvoid (*func)(...); gluTessCallback(0, 0, func)]])],
+ [ax_cv_varargs_glu_tesscb=yes])
+ CXXFLAGS=$ax_save_CXXFLAGS
+ AC_LANG_POP([C++])])
+ AS_IF([test X$ax_cv_varargs_glu_tesscb = Xyes],
+ [AC_DEFINE([HAVE_VARARGS_GLU_TESSCB], [1],
+ [Use nonstandard varargs form for the GLU tesselator callback])])])
])
Modified: branches/0.17/m4/ax_lang_compiler_ms.m4
===================================================================
--- branches/0.17/m4/ax_lang_compiler_ms.m4 2008-11-09 05:24:53 UTC (rev 3763)
+++ branches/0.17/m4/ax_lang_compiler_ms.m4 2008-11-09 05:27:20 UTC (rev 3764)
@@ -1,32 +1,33 @@
-dnl
-dnl Check whether the compiler for the current language is Microsoft.
-dnl
-dnl This macro is modeled after _AC_LANG_COMPILER_GNU in the GNU Autoconf
-dnl implementation.
-dnl
-dnl version: 1.0
-dnl author: Braden McDaniel <br...@en...>
-dnl
-dnl This program is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2, or (at your option)
-dnl any later version.
-dnl
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-dnl GNU General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-dnl 02110-1301, USA.
-dnl
-dnl As a special exception, the you may copy, distribute and modify the
-dnl configure scripts that are the output of Autoconf when processing
-dnl the Macro. You need not follow the terms of the GNU General Public
-dnl License when using or distributing such scripts.
-dnl
+# -*- mode: autoconf -*-
+#
+# Check whether the compiler for the current language is Microsoft.
+#
+# This macro is modeled after _AC_LANG_COMPILER_GNU in the GNU Autoconf
+# implementation.
+#
+# version: 1.0
+# author: Braden McDaniel <br...@en...>
+#
+# 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 2, 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 program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception, the you may copy, distribute and modify the
+# configure scripts that are the output of Autoconf when processing
+# the Macro. You need not follow the terms of the GNU General Public
+# License when using or distributing such scripts.
+#
AC_DEFUN([AX_LANG_COMPILER_MS],
[AC_CACHE_CHECK([whether we are using the Microsoft _AC_LANG compiler],
[ax_cv_[]_AC_LANG_ABBREV[]_compiler_ms],
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2008-11-10 05:21:26
|
Revision: 3766
http://openvrml.svn.sourceforge.net/openvrml/?rev=3766&view=rev
Author: braden
Date: 2008-11-10 05:21:20 +0000 (Mon, 10 Nov 2008)
Log Message:
-----------
Updated to 20081110 release of Autoconf GL Macros. This addresses some quoting issues in the AX_CHECK_GL macro.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/m4/ax_check_gl.m4
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2008-11-09 05:31:48 UTC (rev 3765)
+++ branches/0.17/ChangeLog 2008-11-10 05:21:20 UTC (rev 3766)
@@ -1,3 +1,10 @@
+2008-11-10 Braden McDaniel <br...@en...>
+
+ Updated to 20081110 release of Autoconf GL Macros. This addresses
+ some quoting issues in the AX_CHECK_GL macro.
+
+ * m4/ax_check_gl.m4
+
2008-11-09 Braden McDaniel <br...@en...>
Updated to 20081109 release of Autoconf GL Macros. This addresses
Modified: branches/0.17/m4/ax_check_gl.m4
===================================================================
--- branches/0.17/m4/ax_check_gl.m4 2008-11-09 05:31:48 UTC (rev 3765)
+++ branches/0.17/m4/ax_check_gl.m4 2008-11-10 05:21:20 UTC (rev 3766)
@@ -11,7 +11,7 @@
# "OpenGL/gl.h" is found, HAVE_OPENGL_GL_H is defined. These preprocessor
# definitions may not be mutually exclusive.
#
-# version: 2.3
+# version: 2.4
# author: Braden McDaniel <br...@en...>
#
# This program is free software; you can redistribute it and/or modify
@@ -50,9 +50,9 @@
# AC_PATH_X).
#
AS_IF([test X$no_x != Xyes],
- [AS_IF([test -n $x_includes],
+ [AS_IF([test -n "$x_includes"],
[GL_CFLAGS="-I$x_includes $GL_CFLAGS"])]
- AS_IF([test -n $x_libraries],
+ AS_IF([test -n "$x_libraries"],
[GL_LIBS="-L$x_libraries -lX11 $GL_LIBS"]))
ax_save_CPPFLAGS=$CPPFLAGS
@@ -87,7 +87,7 @@
ax_save_LIBS=$LIBS
LIBS=""
ax_check_libs="-lopengl32 -lGL"
-for ax_lib in ${ax_check_libs}; do
+for ax_lib in $ax_check_libs; do
AS_IF([test X$ax_compiler_ms = Xyes],
[ax_try_lib=`echo $ax_lib | $SED -e 's/^-l//' -e 's/$/.lib/'`],
[ax_try_lib=$ax_lib])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2009-03-01 05:15:23
|
Revision: 3816
http://openvrml.svn.sourceforge.net/openvrml/?rev=3816&view=rev
Author: braden
Date: 2009-03-01 05:15:08 +0000 (Sun, 01 Mar 2009)
Log Message:
-----------
Moved D-Bus interaction out of the main (GTK+) thread and into its own background thread. This avoids a deadlock when a resource fetch comes from the rendering thread and waits on feedback that will happen via D-Bus.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/src/openvrml-xembed/browser.cpp
branches/0.17/src/openvrml-xembed/browser.h
branches/0.17/src/openvrml-xembed/browserfactory.cpp
branches/0.17/src/openvrml-xembed/browserfactory.h
branches/0.17/src/openvrml-xembed/main.cpp
branches/0.17/src/openvrml-xembed/plugin_streambuf.cpp
branches/0.17/src/openvrml-xembed/plugin_streambuf.h
Property Changed:
----------------
branches/0.17/
Property changes on: branches/0.17
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk:3596,3612,3625,3707,3710,3728
+ /trunk:3596,3612,3625,3707,3710,3728,3815
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2009-03-01 05:11:00 UTC (rev 3815)
+++ branches/0.17/ChangeLog 2009-03-01 05:15:08 UTC (rev 3816)
@@ -1,3 +1,224 @@
+2009-03-01 Braden McDaniel <br...@en...>
+
+ Moved D-Bus interaction out of the main (GTK+) thread and into its
+ own background thread. This avoids a deadlock when a resource
+ fetch comes from the rendering thread and waits on feedback that
+ will happen via D-Bus.
+
+ openvrml-xembed's "browser" now exists in two parts:
+ OpenvrmlXembedBrowser is primarily responsible for interaction
+ with the host (via D-Bus) and OpenvrmlXembedBrowserPlug is a GTK+
+ widget that is responsible for rendering and interaction with
+ GTK+.
+
+ * src/openvrml-xembed/browser.cpp
+ (browser_listener): Contain a reference to the
+ OpenvrmlXembedBrowser (instead of the GtkGLViewer).
+ (OpenvrmlXembedBrowserPrivate_): Removed drawing_area and viewer
+ members; those have moved to OpenvrmlXembedBrowserPlugPrivate_.
+ Added listener, browser_plug, browser_plug_mutex,
+ browser_plug_set_cond, browser_initialized_mutex, and
+ browser_initialized.
+ (openvrml_xembed_browser_class_init(OpenvrmlXembedBrowserClass *)):
+ Set constructor and finalize function pointers; use
+ g_param_spec_object to define the control-host-proxy property.
+ (openvrml_xembed_browser_constructor(GType, guint,
+ GObjectConstructParam *)): Since OpenvrmlXembedBrowser isn't a
+ widget anymore, moved the initialization code that was in _realize
+ here.
+ (openvrml_xembed_browser_finalize(GObject *)): Destroy the stuff
+ that was created in _constructor.
+ (openvrml_xembed_browser_set_property(GObject *, guint, const
+ GValue *, GParamSpec *)): Use g_value_get_object to get the value
+ for control-host-property
+ (openvrml_xembed_browser_get_property(GObject *, guint, GValue *,
+ GParamSpec *)): Use g_value_set_object to set the value for
+ control-host-proxy property.
+ (openvrml_xembed_browser_new(DBusGProxy *, gboolean,
+ GMainContext *, GdkNativeWindow)): Create an OpenvrmlXembedBrowser
+ and send an event to the GTK+ thread to create an
+ OpenvrmlXembedBrowserPlug.
+ (openvrml_xembed_browser_new_for_display(DBusGProxy *,
+ GdkDisplay *, GdkNativeWindow, gboolean)): Removed.
+ (load_url): Moved out of GtkGLViewer; lock the
+ OpenvrmlXembedBrowser's browser_initialized_mutex.
+ (openvrml_xembed_browser_load_url(OpenvrmlXembedBrowser *, const
+ gchar **, const gchar **, GError **)): Handle exceptions by
+ setting the GError.
+ (openvrml_xembed_browser_get_id(OpenvrmlXembedBrowser *)): We
+ don't have the plug's ID until the OpenvrmlXembedBrowserPlug has
+ been created; wait for browser_plug_set_cond.
+ (openvrml_xembed_browser_initialized(OpenvrmlXembedBrowser *)):
+ Indicate whether the underlying openvrml::browser has emitted an
+ "initialized" event.
+ (GtkGLViewer): Removed friendship declarations for
+ openvrml_xembed_browser_load_url,
+ openvrml_xembed_browser_get_world_url,
+ openvrml_xembed_browser_timeout_callback, and
+ openvrml_xembed_browser_motion_notify_event. Changed friendship
+ declaration for openvrml_xembed_browser_expose_event to
+ openvrml_xembed_browser_plug_expose_event. Grant friendship to
+ openvrml_xembed_browser_plug_realize and browser_initialized.
+ Removed browser_listener_, browser_initialized_, and
+ browser_initialized_mutex_ members; these were moved to
+ OpenvrmlXembedBrowser.
+ (OpenvrmlXembedBrowserPlugPrivate_): Private data for
+ OpenvrmlXembedBrowserPlug.
+ (openvrml_xembed_browser_plug_init(OpenvrmlXembedBrowserPlug *)):
+ Initialize the OpenvrmlXembedBrowserPlug instance.
+ (openvrml_xembed_browser_plug_class_init(OpenvrmlXembedBrowserPlugClass *)):
+ Initialized the OpenvrmlXembedBrowserPlug class object.
+ (openvrml_xembed_browser_plug_set_property(GObject *, gint, const
+ GValue *, GParamSpec *)): OpenvrmlXembedBrowserPlug property
+ mutator.
+ (openvrml_xembed_browser_plug_get_property(GObject *, gint,
+ GValue *, GParamSpec *)): OpenvrmlXembedBrowserPlug property
+ accessor.
+ (openvrml_xembed_browser_plug_new(OpenvrmlXembedBrowser *,
+ GdkNativeWindow)): Create an OpenvrmlXembedBrowserPlug.
+ (browser_initialized(OpenvrmlXembedBrowser *,
+ OpenvrmlXembedBrowserPlug *)): Callback called once the underlying
+ openvrml::browser emits an "initialized" event.
+ (openvrml_xembed_browser_plug_realize(GtkWidget *)): Instantiate
+ the GtkGLViewer, set up the GtkDrawingArea, and attach the various
+ signal handlers.
+ (openvrml_xembed_browser_plug_unrealize(GtkWidget *)): Destroy the
+ GtkGLViewer and the GtkDrawingArea.
+ (openvrml_xembed_drawing_area_expose_event(GtkWidget *,
+ GdkEventExpose *, OpenvrmlXembedBrowserPlug *)): Moved from
+ openvrml_xembed_browser_expose_event.
+ (openvrml_xembed_drawing_area_configure_event(GtkWidget *,
+ GdkEventConfigure *, OpenvrmlXembedBrowserPlug *)): Moved from
+ openvrml_xembed_browser_configure_event.
+ (openvrml_xembed_drawing_area_key_press_event(GtkWidget *,
+ GdkEventKey *, OpenvrmlXembedBrowserPlug *)): Moved from
+ openvrml_xembed_browser_key_press_event.
+ (openvrml_xembed_drawing_area_button_press_event(GtkWidget *,
+ GdkEventButton *, OpenvrmlXembedBrowserPlug *)): Moved from
+ openvrml_xembed_browser_button_press_event.
+ (openvrml_xembed_drawing_area_button_release_event(GtkWidget *,
+ GdkEventButton *, OpenvrmlXembedBrowserPlug *)): Moved from
+ openvrml_xembed_browser_button_release_event.
+ (openvrml_xembed_drawing_area_motion_notify_event(GtkWidget *,
+ GdkEventMotion *, OpenvrmlXembedBrowserPlug *)): Moved from
+ openvrml_xembed_browser_motion_notify_event.
+ (openvrml_xembed_browser_plug_timeout_callback(gpointer)): Moved
+ from openvrml_xembed_browser_timeout_callback.
+ (browser_listener::browser_listener(OpenvrmlXembedBrowser &)):
+ Hold a reference to the OpenvrmlXembedBrowser instead of the
+ GtkGLViewer.
+ (browser_listener::do_browser_changed(const
+ openvrml::browser_event &)): For "initialized", just emit the
+ signal and set browser_initialized on the OpenvrmlXembedBrowser.
+ Anything we need to do in the OpenvrmlXembedBrowserPlug can be
+ handled with a GObject signal handler.
+ (GtkGLViewer::GtkGLViewer(OpenvrmlXembedBrowserPlug &)): Take a
+ reference to the OpenvrmlXembedBrowserPlug instead of the
+ OpenvrmlXembedBrowser. We no longer handle the listener here.
+ (GtkGLViewer::~GtkGLViewer()): We no longer handle the listener
+ here.
+ (OpenvrmlXembedBrowserReadySource): The event source used to
+ trigger creation of the OpenvrmlXembedBrowserPlug in the GTK+ main
+ thread.
+ (openvrml_xembed_browser_ready_source_new(OpenvrmlXembedBrowser *,
+ guint64)): Create an OpenvrmlXembedBrowserReadySource.
+ (openvrml_xembed_browser_ready_prepare(GSource *, gint *)): Set
+ timeout to 0 and return true;
+ (openvrml_xembed_browser_ready_check(GSource *)): Return true.
+ (openvrml_xembed_browser_ready_dispatch(GSource *, GSourceFunc,
+ gpointer)): Create, realize, and show the
+ OpenvrmlXembedBrowserPlug.
+ (openvrml_xembed_browser_ready_finalize(GSource *)): Do nothing.
+ * src/openvrml-xembed/browser.h
+ (OpenvrmlXembedBrowser_): Inherit GObject instead of GtkPlug.
+ (OpenvrmlXembedBrowserClass_): Inherit GObjectClass instead of
+ GtkPlugClass.
+ (openvrml_xembed_browser_new(DBusGProxy *, gboolean,
+ GMainContext *, GdkNativeWindow)): Take the GMainContext
+ associated with the GTK+ main thread as an argument.
+ (openvrml_xembed_browser_constructor(GType, guint,
+ GObjectConstructParam *)): plugin_streambuf needs to grant
+ friendship to this.
+ (OpenvrmlXembedBrowserPlug): A GTK+ widget to handle rendering.
+ (OpenvrmlXembedBrowserPlugClass): Class object for
+ OpenvrmlXembedBrowserPlug.
+ (openvrml_xembed_browser_plug_new(OpenvrmlXembedBrowser *,
+ GtkNativeWindow)): Create a new OpenvrmlXembedBrowserPlug.
+ (openvrml_xembed_browser_plug_get_type(void)): Get the GType for
+ OpenvrmlXembedBrowserPlug.
+ * src/openvrml-xembed/browserfactory.cpp
+ (OpenvrmlXembedBrowserFactoryPrivate_): Removed driver_proxy
+ member; added connection and main_thread_context members.
+ (openvrml_xembed_browser_factory_constructor(GType, guint,
+ GObjectConstructParam *)): Register the D-Bus object
+ "/org/openvrml/BrowserFactory" and request the
+ "org.openvrml.BrowserControl" name.
+ (openvrml_xembed_browser_factory_class_init(OpenvrmlXembedBrowserFactory *)):
+ Set the property accessor and mutator functions; add the
+ "connection" and "main-thread-context" properties.
+ (openvrml_xembed_browser_factory_set_property(GObject *, guint,
+ const GValue *, GParamSpec *)): Property mutator.
+ (openvrml_xembed_browser_factory_get_property(GObject *, guint,
+ GValue *, GParamSpec *)): Property accessor.
+ (openvrml_xembed_browser_factory_create_control(OpenvrmlXembedBrowserFactory *,
+ const char *, const char *, guint64, gboolean,
+ DBusGMethodInvocation *)): Don't realize/show the widget here;
+ that's now taken care of by
+ openvrml_xembed_browser_ready_dispatch.
+ (openvrml_xembed_browser_factory_remove_hosts_for_owner(OpenvrmlXembedBrowserFactory *,
+ const char *)): Remove references to hosts for the named owner.
+ (openvrml_xembed_browser_factory_has_hosts(OpenvrmlXembedBrowserFactory *)):
+ Indicate whether any hosts are associated with the factory.
+ (openvrml_xembed_browser_factory_name_owner_changed(DBusGProxy *,
+ const gchar *, const gchar *, const gchar *, gpointer)): Moved to
+ main.cpp.
+ * src/openvrml-xembed/browserfactory.h
+ (OpenvrmlXembedBrowserFactoryClass_): Removed connection member.
+ Establishing the bus connection is no longer the responsibility of
+ OpenvrmlXembedBrowserFactory.
+ (openvrml_xembed_browser_factory_remove_hosts_for_owner(OpenvrmlXembedBrowserFactory *,
+ const gchar *)): Added public function.
+ (openvrml_xembed_browser_factory_has_hosts(OpenvrmlXembedBrowserFactory *)):
+ Added public function.
+ * src/openvrml-xembed/main.cpp
+ (bus_get(GMainContext *, DBusBusType, GError **)): Get a
+ DBusGConnection using a particular GMainContext.
+ (name_owner_changed_callback_data): Data propagated to
+ openvrml_xembed_name_owner_changed.
+ (dbus_thread_loop): Function object for the D-Bus thread main
+ loop.
+ (main(int, char *[])): Start, and ultimately join, a thread for
+ D-Bus interactions.
+ (openvrml_xembed_name_owner_changed(DBusGProxy *, const gchar *,
+ const gchar *, const gchar *, gpointer)): Callback to clean up the
+ browser(s) associated with a host (and exit if there are no more
+ hosts).
+ * src/openvrml-xembed/plugin_streambuf.cpp
+ (openvrml_xembed::plugin_streambuf::plugin_streambuf(const
+ std::string &, uninitialized_plugin_streambuf_map &,
+ plugin_streambuf_map &)): Removed initialization of member
+ "initialized_".
+ (openvrml_xembed::plugin_streambuf::set_get_url_result(int)): Only
+ notify waiting threads if the "GetUrl" result indicates success;
+ the only reason anyone should be waiting on this is if the fetch
+ operation has (at least partially) succeeded.
+ (openvrml_xembed::plugin_streambuf::get_url_result() const):
+ Removed.
+ (openvrml_xembed::plugin_streambuf::init(size_t, const
+ std::string&, const std::string &)): Wait for set_get_url_result
+ to be called.
+ (openvrml_xembed::plugin_streambuf::url() const): Check state_
+ instead of initialized_.
+ (openvrml_xembed::plugin_streambuf::type() const): Check state_
+ instead of initialized_.
+ (openvrml_xembed::plugin_streambuf::underflow()): Check state_
+ instead of initialized_.
+ * src/openvrml-xembed/plugin_streambuf.h
+ (openvrml_xembed::plugin_streambuf): Removed friend declaration
+ for openvrml_xembed_browser_realize; grant friendship to
+ openvrml_xembed_browser_constructor. Removed member
+ "initialized_". Removed "get_url_result" member function.
+
2008-11-10 Braden McDaniel <br...@en...>
Updated to 20081110 release of Autoconf GL Macros. This addresses
Modified: branches/0.17/src/openvrml-xembed/browser.cpp
===================================================================
--- branches/0.17/src/openvrml-xembed/browser.cpp 2009-03-01 05:11:00 UTC (rev 3815)
+++ branches/0.17/src/openvrml-xembed/browser.cpp 2009-03-01 05:15:08 UTC (rev 3816)
@@ -31,6 +31,7 @@
# include <openvrml/gl/viewer.h>
# include "browser.h"
# include "browser-server-glue.h"
+# include "browser-host-client-glue.h"
# include "plugin_streambuf.h"
# include <gtk/gtkgl.h>
# include <gtk/gtkdrawingarea.h>
@@ -56,60 +57,22 @@
GParamSpec * pspec);
//
- // GtkWidget overrides
- //
- G_GNUC_INTERNAL void openvrml_xembed_browser_realize(GtkWidget * widget);
- G_GNUC_INTERNAL void openvrml_xembed_browser_unrealize(GtkWidget * widget);
-
- //
// OpenvrmlXembedStreamClient implementation
//
G_GNUC_INTERNAL
void
openvrml_xembed_browser_stream_client_interface_init(gpointer g_iface,
gpointer iface_data);
-
- //
- // Signal handlers
- //
- G_GNUC_INTERNAL
- gboolean openvrml_xembed_browser_expose_event(GtkWidget * widget,
- GdkEventExpose * event,
- gpointer data);
- G_GNUC_INTERNAL
- gboolean openvrml_xembed_browser_configure_event(GtkWidget * widget,
- GdkEventConfigure * event,
- gpointer data);
- G_GNUC_INTERNAL
- gboolean openvrml_xembed_browser_key_press_event(GtkWidget * widget,
- GdkEventKey * event,
- gpointer data);
- G_GNUC_INTERNAL
- gboolean openvrml_xembed_browser_button_press_event(GtkWidget * widget,
- GdkEventButton * event,
- gpointer data);
- G_GNUC_INTERNAL
- gboolean openvrml_xembed_browser_button_release_event(GtkWidget * widget,
- GdkEventButton * event,
- gpointer data);
- G_GNUC_INTERNAL
- gboolean openvrml_xembed_browser_motion_notify_event(GtkWidget * widget,
- GdkEventMotion * event,
- gpointer data);
-
- G_GNUC_INTERNAL gint openvrml_xembed_browser_timeout_callback(gpointer ptr);
}
G_DEFINE_TYPE_WITH_CODE(OpenvrmlXembedBrowser,
openvrml_xembed_browser,
- GTK_TYPE_PLUG,
+ G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE(
OPENVRML_XEMBED_TYPE_STREAM_CLIENT,
openvrml_xembed_browser_stream_client_interface_init))
namespace {
- G_GNUC_INTERNAL GdkGLConfig * gl_config;
-
class G_GNUC_INTERNAL resource_fetcher : public openvrml::resource_fetcher {
DBusGProxy & control_host_;
openvrml_xembed::uninitialized_plugin_streambuf_map &
@@ -132,84 +95,32 @@
do_get_resource(const std::string & uri);
};
+ class G_GNUC_INTERNAL browser_listener : public openvrml::browser_listener {
+ OpenvrmlXembedBrowser & browser_;
- class GtkGLViewer;
-
- class G_GNUC_INTERNAL browser_listener :
- public openvrml::browser_listener {
-
- GtkGLViewer & viewer_;
-
public:
- explicit browser_listener(GtkGLViewer & viewer);
+ explicit browser_listener(OpenvrmlXembedBrowser & browser);
private:
virtual void do_browser_changed(const openvrml::browser_event & event);
};
-
-
- class G_GNUC_INTERNAL GtkGLViewer : public openvrml::gl::viewer {
- friend class browser_listener;
-
- friend gboolean
- (::openvrml_xembed_browser_load_url)(OpenvrmlXembedBrowser * browser,
- const gchar ** url,
- const gchar ** parameter,
- GError **);
-
- friend gchar *
- (::openvrml_xembed_browser_get_world_url)(
- OpenvrmlXembedBrowser * vrml_browser,
- GError ** error);
-
- friend gint (::openvrml_xembed_browser_timeout_callback)(gpointer ptr);
- friend gboolean (::openvrml_xembed_browser_expose_event)(
- GtkWidget *,
- GdkEventExpose *,
- gpointer);
- friend gboolean
- (::openvrml_xembed_browser_motion_notify_event)(GtkWidget *,
- GdkEventMotion *,
- gpointer);
-
- struct load_url;
-
- ::browser_listener browser_listener_;
- bool browser_initialized_;
- openvrml::read_write_mutex browser_initialized_mutex_;
- OpenvrmlXembedBrowser & vrml_browser_;
- guint timer;
-
- public:
- bool redrawNeeded;
-
- explicit GtkGLViewer(OpenvrmlXembedBrowser & vrml_browser);
- virtual ~GtkGLViewer() throw ();
-
- void timer_update();
-
- protected:
- //
- // 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);
- };
}
struct OpenvrmlXembedBrowserPrivate_ {
DBusGProxy * control_host;
::resource_fetcher * resource_fetcher;
openvrml::browser * browser;
- GtkDrawingArea * drawing_area;
- GtkGLViewer * viewer;
+ browser_listener * listener;
+ OpenvrmlXembedBrowserPlug * browser_plug;
+ GMutex * browser_plug_mutex;
+ GCond * browser_plug_set_cond;
+ GMutex * browser_initialized_mutex;
openvrml_xembed::uninitialized_plugin_streambuf_map * uninitialized_streambuf_map;
openvrml_xembed::plugin_streambuf_map * streambuf_map;
boost::thread * initial_stream_reader_thread;
bool expect_initial_stream;
bool got_initial_stream;
+ bool browser_initialized;
};
# define OPENVRML_XEMBED_BROWSER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), OPENVRML_XEMBED_TYPE_BROWSER, OpenvrmlXembedBrowserPrivate))
@@ -234,14 +145,20 @@
G_GNUC_INTERNAL guint signals[last_signal_id];
}
+extern "C" {
+ G_GNUC_INTERNAL void openvrml_xembed_browser_finalize(GObject * obj);
+}
+
void
openvrml_xembed_browser_class_init(OpenvrmlXembedBrowserClass * const klass)
{
- G_OBJECT_CLASS(klass)->set_property = openvrml_xembed_browser_set_property;
- G_OBJECT_CLASS(klass)->get_property = openvrml_xembed_browser_get_property;
- GTK_WIDGET_CLASS(klass)->realize = openvrml_xembed_browser_realize;
- GTK_WIDGET_CLASS(klass)->unrealize = openvrml_xembed_browser_unrealize;
+ GObjectClass * const g_object_class = G_OBJECT_CLASS(klass);
+ g_object_class->constructor = openvrml_xembed_browser_constructor;
+ g_object_class->finalize = openvrml_xembed_browser_finalize;
+ g_object_class->set_property = openvrml_xembed_browser_set_property;
+ g_object_class->get_property = openvrml_xembed_browser_get_property;
+
signals[initialized_id] =
g_signal_new("initialized",
G_OBJECT_CLASS_TYPE(klass),
@@ -261,12 +178,13 @@
G_TYPE_NONE, 0);
GParamSpec * pspec =
- g_param_spec_pointer(
+ g_param_spec_object(
"control-host-proxy",
"BrowserHost proxy",
"DBusGProxy for a BrowserHost",
+ DBUS_TYPE_G_PROXY,
GParamFlags(G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
- g_object_class_install_property(G_OBJECT_CLASS(klass),
+ g_object_class_install_property(g_object_class,
control_host_proxy_id,
pspec);
@@ -281,47 +199,14 @@
expect_initial_stream_id,
pspec);
- g_type_class_add_private(G_OBJECT_CLASS(klass),
+ g_type_class_add_private(g_object_class,
sizeof (OpenvrmlXembedBrowserPrivate));
- dbus_g_object_type_install_info(OPENVRML_XEMBED_TYPE_BROWSER,
- &dbus_glib_openvrml_xembed_browser_object_info);
+ dbus_g_object_type_install_info(
+ OPENVRML_XEMBED_TYPE_BROWSER,
+ &dbus_glib_openvrml_xembed_browser_object_info);
}
-void openvrml_xembed_browser_set_property(GObject * const obj,
- const guint property_id,
- const GValue * const value,
- GParamSpec * const pspec)
-{
- OpenvrmlXembedBrowser * const browser = OPENVRML_XEMBED_BROWSER(obj);
- switch (property_id) {
- case control_host_proxy_id:
- browser->priv->control_host =
- static_cast<DBusGProxy *>(g_value_get_pointer(value));
- break;
- case expect_initial_stream_id:
- browser->priv->expect_initial_stream = g_value_get_boolean(value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, property_id, pspec);
- }
-}
-
-void openvrml_xembed_browser_get_property(GObject * const obj,
- const guint property_id,
- GValue * const value,
- GParamSpec * const pspec)
-{
- OpenvrmlXembedBrowser * const browser = OPENVRML_XEMBED_BROWSER(obj);
- switch (property_id) {
- case control_host_proxy_id:
- g_value_set_pointer(value, browser->priv->control_host);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, property_id, pspec);
- }
-}
-
namespace {
//
// We don't already know what the URI of the initial stream is until we
@@ -384,17 +269,26 @@
};
}
-void openvrml_xembed_browser_realize(GtkWidget * const widget)
+GObject *
+openvrml_xembed_browser_constructor(
+ GType type,
+ guint n_construct_properties,
+ GObjectConstructParam * construct_properties)
{
- GtkWidgetClass * klass =
- GTK_WIDGET_CLASS(g_type_class_peek(OPENVRML_XEMBED_TYPE_BROWSER));
- GtkWidgetClass * parent_class =
- GTK_WIDGET_CLASS(g_type_class_peek_parent(klass));
- parent_class->realize(widget);
+ GObject * obj;
+ {
+ OpenvrmlXembedBrowserClass * const klass =
+ OPENVRML_XEMBED_BROWSER_CLASS(
+ g_type_class_peek(OPENVRML_XEMBED_TYPE_BROWSER));
+ GObjectClass * const parent_class =
+ G_OBJECT_CLASS(g_type_class_peek_parent(klass));
+ obj = parent_class->constructor(type,
+ n_construct_properties,
+ construct_properties);
+ }
- OpenvrmlXembedBrowser * const browser = OPENVRML_XEMBED_BROWSER(widget);
-
try {
+ OpenvrmlXembedBrowser * const browser = OPENVRML_XEMBED_BROWSER(obj);
browser->priv->uninitialized_streambuf_map =
new openvrml_xembed::uninitialized_plugin_streambuf_map;
browser->priv->streambuf_map =
@@ -407,10 +301,16 @@
new openvrml::browser(*browser->priv->resource_fetcher,
std::cout,
std::cerr);
- browser->priv->drawing_area =
- GTK_DRAWING_AREA(g_object_new(GTK_TYPE_DRAWING_AREA, 0));
- browser->priv->viewer = new GtkGLViewer(*browser);
+ browser->priv->listener = new browser_listener(*browser);
+ browser->priv->browser->add_listener(*browser->priv->listener);
+ browser->priv->browser_plug = 0;
+ browser->priv->browser_plug_mutex = g_mutex_new();
+ browser->priv->browser_plug_set_cond = g_cond_new();
+
+ browser->priv->browser_initialized = false;
+ browser->priv->browser_initialized_mutex = g_mutex_new();
+
//
// If necessary, create the initial stream.
//
@@ -439,92 +339,64 @@
// ex is most likely std::bad_alloc or boost::thread_resource_error.
//
g_critical("%s", ex.what());
- return;
+ return 0;
}
-
- if (!::gl_config) {
- static const int attrib_list[] = {
- // GDK_GL_ALPHA_SIZE, 1,
- GDK_GL_DOUBLEBUFFER,
- GDK_GL_DEPTH_SIZE, 1,
- GDK_GL_RGBA,
- GDK_GL_RED_SIZE, 1,
- GDK_GL_ATTRIB_LIST_NONE
- };
- ::gl_config = gdk_gl_config_new(attrib_list);
- }
-
- static GdkGLContext * const share_list = 0;
- static const gboolean direct = false;
- static const int render_type = GDK_GL_RGBA_TYPE;
- gtk_widget_set_gl_capability(GTK_WIDGET(browser->priv->drawing_area),
- ::gl_config,
- share_list,
- direct,
- render_type);
-
- gtk_widget_add_events(GTK_WIDGET(browser->priv->drawing_area),
- GDK_EXPOSURE_MASK
- | GDK_POINTER_MOTION_MASK
- | GDK_BUTTON_PRESS_MASK
- | GDK_BUTTON_RELEASE_MASK
- | GDK_KEY_PRESS_MASK
- | GDK_FOCUS_CHANGE_MASK);
-
- g_object_set(G_OBJECT(browser->priv->drawing_area),
- "can-focus", true,
- NULL);
-
- g_object_connect(
- G_OBJECT(browser->priv->drawing_area),
-
- "signal::expose_event",
- G_CALLBACK(openvrml_xembed_browser_expose_event),
- browser->priv->viewer,
-
- "signal::configure_event",
- G_CALLBACK(openvrml_xembed_browser_configure_event),
- browser->priv->viewer,
-
- "signal::key_press_event",
- G_CALLBACK(openvrml_xembed_browser_key_press_event),
- browser->priv->viewer,
-
- "signal::button_press_event",
- G_CALLBACK(openvrml_xembed_browser_button_press_event),
- browser->priv->viewer,
-
- "signal::button_release_event",
- G_CALLBACK(openvrml_xembed_browser_button_release_event),
- browser->priv->viewer,
-
- "signal::motion_notify_event",
- G_CALLBACK(openvrml_xembed_browser_motion_notify_event),
- browser->priv->viewer,
- NULL);
-
- gtk_container_add(GTK_CONTAINER(widget),
- GTK_WIDGET(browser->priv->drawing_area));
+ return obj;
}
-void openvrml_xembed_browser_unrealize(GtkWidget * const widget)
+void openvrml_xembed_browser_finalize(GObject * const obj)
{
- OpenvrmlXembedBrowser * const browser = OPENVRML_XEMBED_BROWSER(widget);
+ OpenvrmlXembedBrowser * const browser = OPENVRML_XEMBED_BROWSER(obj);
if (browser->priv->expect_initial_stream) {
browser->priv->initial_stream_reader_thread->join();
delete browser->priv->initial_stream_reader_thread;
}
- delete browser->priv->viewer;
+ g_mutex_free(browser->priv->browser_initialized_mutex);
+ g_cond_free(browser->priv->browser_plug_set_cond);
+ g_mutex_free(browser->priv->browser_plug_mutex);
+ browser->priv->browser->remove_listener(*browser->priv->listener);
+ delete browser->priv->listener;
+ delete browser->priv->browser;
+ delete browser->priv->resource_fetcher;
+ delete browser->priv->streambuf_map;
+ delete browser->priv->uninitialized_streambuf_map;
+}
- GtkWidgetClass * klass =
- GTK_WIDGET_CLASS(g_type_class_peek(OPENVRML_XEMBED_TYPE_BROWSER));
- GtkWidgetClass * parent_class =
- GTK_WIDGET_CLASS(g_type_class_peek_parent(klass));
- parent_class->unrealize(widget);
+void openvrml_xembed_browser_set_property(GObject * const obj,
+ const guint property_id,
+ const GValue * const value,
+ GParamSpec * const pspec)
+{
+ OpenvrmlXembedBrowser * const browser = OPENVRML_XEMBED_BROWSER(obj);
+ switch (property_id) {
+ case control_host_proxy_id:
+ browser->priv->control_host = DBUS_G_PROXY(g_value_get_object(value));
+ break;
+ case expect_initial_stream_id:
+ browser->priv->expect_initial_stream = g_value_get_boolean(value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, property_id, pspec);
+ }
}
+void openvrml_xembed_browser_get_property(GObject * const obj,
+ const guint property_id,
+ GValue * const value,
+ GParamSpec * const pspec)
+{
+ OpenvrmlXembedBrowser * const browser = OPENVRML_XEMBED_BROWSER(obj);
+ switch (property_id) {
+ case control_host_proxy_id:
+ g_value_set_object(value, browser->priv->control_host);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, property_id, pspec)...
[truncated message content] |
|
From: <br...@us...> - 2009-03-01 20:19:20
|
Revision: 3818
http://openvrml.svn.sourceforge.net/openvrml/?rev=3818&view=rev
Author: braden
Date: 2009-03-01 20:19:15 +0000 (Sun, 01 Mar 2009)
Log Message:
-----------
Generate openvrml-xembed/browser-host-client-glue.h.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/src/Makefile.am
Property Changed:
----------------
branches/0.17/
Property changes on: branches/0.17
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk:3596,3612,3625,3707,3710,3728,3815
+ /trunk:3596,3612,3625,3707,3710,3728,3815,3817
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2009-03-01 20:17:21 UTC (rev 3817)
+++ branches/0.17/ChangeLog 2009-03-01 20:19:15 UTC (rev 3818)
@@ -1,5 +1,10 @@
2009-03-01 Braden McDaniel <br...@en...>
+ * src/Makefile.am: Generate
+ openvrml-xembed/browser-host-client-glue.h.
+
+2009-03-01 Braden McDaniel <br...@en...>
+
Moved D-Bus interaction out of the main (GTK+) thread and into its
own background thread. This avoids a deadlock when a resource
fetch comes from the rendering thread and waits on feedback that
Modified: branches/0.17/src/Makefile.am
===================================================================
--- branches/0.17/src/Makefile.am 2009-03-01 20:17:21 UTC (rev 3817)
+++ branches/0.17/src/Makefile.am 2009-03-01 20:19:15 UTC (rev 3818)
@@ -163,7 +163,8 @@
session_bus_services_DATA = openvrml-xembed/org.openvrml.BrowserControl.service
BUILT_SOURCES += \
openvrml-xembed/browser-server-glue.h \
- openvrml-xembed/browser-factory-server-glue.h
+ openvrml-xembed/browser-factory-server-glue.h \
+ openvrml-xembed/browser-host-client-glue.h
endif
openvrml_xembed_openvrml_xembed_CPPFLAGS = \
-I$(top_builddir)/src/openvrml-xembed \
@@ -221,6 +222,13 @@
--output=$@ \
$?
+openvrml-xembed/browser-host-client-glue.h: $(srcdir)/openvrml-xembed/browser-host.xml
+ $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) \
+ --prefix=openvrml_xembed_browser_host \
+ --mode=glib-client \
+ --output=$@ \
+ $?
+
edit = sed -e 's|@libexecdir[@]|$(libexecdir)|g'
openvrml-xembed/org.openvrml.BrowserControl.service: Makefile
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <br...@us...> - 2009-03-02 01:19:36
|
Revision: 3821
http://openvrml.svn.sourceforge.net/openvrml/?rev=3821&view=rev
Author: braden
Date: 2009-03-02 01:19:28 +0000 (Mon, 02 Mar 2009)
Log Message:
-----------
Changed "model/x3d+vrml" to "model/x3d-vrml" in accordance with the pending media type registration.
Modified Paths:
--------------
branches/0.17/ChangeLog
branches/0.17/README
branches/0.17/src/libopenvrml/openvrml/browser.cpp
branches/0.17/src/openvrml-player/filechooserdialog.cpp
Property Changed:
----------------
branches/0.17/
Property changes on: branches/0.17
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk:3596,3612,3625,3707,3710,3728,3815,3817
+ /trunk:3596,3612,3625,3707,3710,3728,3815,3817,3819-3820
Modified: branches/0.17/ChangeLog
===================================================================
--- branches/0.17/ChangeLog 2009-03-02 01:17:23 UTC (rev 3820)
+++ branches/0.17/ChangeLog 2009-03-02 01:19:28 UTC (rev 3821)
@@ -1,5 +1,15 @@
2009-03-01 Braden McDaniel <br...@en...>
+ Changed "model/x3d+vrml" to "model/x3d-vrml" in accordance with
+ the pending media type registration.
+
+ * README
+ * src/libopenvrml/openvrml/browser.cpp
+ * src/libopenvrml/openvrml/scene.cpp
+ * src/openvrml-player/filechooserdialog.cpp
+
+2009-03-01 Braden McDaniel <br...@en...>
+
* src/Makefile.am: Generate
openvrml-xembed/browser-host-client-glue.h.
Modified: branches/0.17/README
===================================================================
--- branches/0.17/README 2009-03-02 01:17:23 UTC (rev 3820)
+++ branches/0.17/README 2009-03-02 01:19:28 UTC (rev 3821)
@@ -275,10 +275,10 @@
If OpenVRML is configured to be installed to the same prefix as a
Mozilla-based browser is installed on the system, "make install" will
install the Mozilla plug-in to the browser's plug-in directory. This
-should be sufficient to enable support for the "model/vrml" media type
-in the browser. Entering "about:plugins" in the URL entry bar of a
-Mozilla-based browser will show a listing of successfully installed
-plug-ins.
+should be sufficient to enable support for the "model/vrml" and
+"model/x3d-vrml" media types in the browser. Entering "about:plugins"
+in the URL entry bar of a Mozilla-based browser will show a listing of
+successfully installed plug-ins.
To run openvrml-player or the Mozilla plug-in from the build
directories, you must first start an openvrml-xembed process. Once
Modified: branches/0.17/src/libopenvrml/openvrml/browser.cpp
===================================================================
--- branches/0.17/src/libopenvrml/openvrml/browser.cpp 2009-03-02 01:17:23 UTC (rev 3820)
+++ branches/0.17/src/libopenvrml/openvrml/browser.cpp 2009-03-02 01:19:28 UTC (rev 3821)
@@ -6229,7 +6229,7 @@
/**
* @brief X3D VRML MIME media type.
*/
-const char openvrml::x3d_vrml_media_type[15] = "model/x3d+vrml";
+const char openvrml::x3d_vrml_media_type[15] = "model/x3d-vrml";
/**
* @class openvrml::resource_istream openvrml/browser.h
@@ -7839,7 +7839,7 @@
* @param[in,out] in an input stream.
*
* @exception bad_media_type if @p in.type() is not @c model/vrml,
- * @c x-world/x-vrml, or @c model/x3d+vrml.
+ * @c x-world/x-vrml, or @c model/x3d-vrml.
* @exception invalid_vrml if @p in has invalid syntax.
*/
void openvrml::browser::set_world(resource_istream & in)
Modified: branches/0.17/src/openvrml-player/filechooserdialog.cpp
===================================================================
--- branches/0.17/src/openvrml-player/filechooserdialog.cpp 2009-03-02 01:17:23 UTC (rev 3820)
+++ branches/0.17/src/openvrml-player/filechooserdialog.cpp 2009-03-02 01:19:28 UTC (rev 3821)
@@ -73,7 +73,7 @@
gtk_file_filter_set_name(world_filter, "VRML/X3D worlds");
gtk_file_filter_add_mime_type(world_filter, "x-world/x-vrml");
gtk_file_filter_add_mime_type(world_filter, "model/vrml");
- gtk_file_filter_add_mime_type(world_filter, "model/x3d+vrml");
+ gtk_file_filter_add_mime_type(world_filter, "model/x3d-vrml");
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(obj), world_filter);
world_filter_guard.dismiss();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|