diff options
author | Monroe Linden <monroe@lindenlab.com> | 2010-03-16 16:42:31 -0700 |
---|---|---|
committer | Monroe Linden <monroe@lindenlab.com> | 2010-03-16 16:42:31 -0700 |
commit | ce242821dcf83bde15b49895c24019347b266d97 (patch) | |
tree | d45de7f5a67a3e9e54f9d9d00470112d50c52070 /indra/media_plugins/example | |
parent | ec0a2b984976d6b5c0df56624120cddca77c77a9 (diff) |
Added an "init" message in LLPLUGIN_MESSAGE_CLASS_MEDIA, and made LLPluginClassMedia queue it up before initializing its LLPluginProcessParent.
Made all existing plugins send their texture_params message from this init message instead of the LLPLUGIN_MESSAGE_CLASS_BASE "init" message. (This ensures that they won't start to receive 'size_change' messages until after the init has happened.)
Added "set_user_data_path" and "set_language_code" messages to LLPluginClassMedia.
Made webkit plugin deal with the new messages, when they're sent before it receives the media "init".
Removed the user_data_path and language_code arguments from the init function calls throughout the hierarchy.
Made LLViewerMediaImpl queue up the language code and user data path messages before initializing the media.
Reviewed by Callum at http://codereview.lindenlab.com/687006 .
Diffstat (limited to 'indra/media_plugins/example')
-rw-r--r-- | indra/media_plugins/example/media_plugin_example.cpp | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/indra/media_plugins/example/media_plugin_example.cpp b/indra/media_plugins/example/media_plugin_example.cpp index f5b077fea0..8d79bb27f1 100644 --- a/indra/media_plugins/example/media_plugin_example.cpp +++ b/indra/media_plugins/example/media_plugin_example.cpp @@ -119,17 +119,6 @@ void MediaPluginExample::receiveMessage( const char* message_string ) std::string plugin_version = "Example media plugin, Example Version 1.0.0.0"; message.setValue( "plugin_version", plugin_version ); sendMessage( message ); - - // Plugin gets to decide the texture parameters to use. - message.setMessage( LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params" ); - message.setValueS32( "default_width", mWidth ); - message.setValueS32( "default_height", mHeight ); - message.setValueS32( "depth", mDepth ); - message.setValueU32( "internalformat", GL_RGBA ); - message.setValueU32( "format", GL_RGBA ); - message.setValueU32( "type", GL_UNSIGNED_BYTE ); - message.setValueBoolean( "coords_opengl", false ); - sendMessage( message ); } else if ( message_name == "idle" ) @@ -191,7 +180,20 @@ void MediaPluginExample::receiveMessage( const char* message_string ) else if ( message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA ) { - if ( message_name == "size_change" ) + if ( message_name == "init" ) + { + // Plugin gets to decide the texture parameters to use. + message.setMessage( LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params" ); + message.setValueS32( "default_width", mWidth ); + message.setValueS32( "default_height", mHeight ); + message.setValueS32( "depth", mDepth ); + message.setValueU32( "internalformat", GL_RGBA ); + message.setValueU32( "format", GL_RGBA ); + message.setValueU32( "type", GL_UNSIGNED_BYTE ); + message.setValueBoolean( "coords_opengl", false ); + sendMessage( message ); + } + else if ( message_name == "size_change" ) { std::string name = message_in.getValue( "name" ); S32 width = message_in.getValueS32( "width" ); |