hdrflow-svn Mailing List for HDRFlow (Page 15)
Status: Pre-Alpha
Brought to you by:
glslang
You can subscribe to this list here.
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
(30) |
May
(38) |
Jun
(22) |
Jul
(53) |
Aug
(66) |
Sep
(56) |
Oct
(29) |
Nov
(13) |
Dec
(6) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
(16) |
Feb
(22) |
Mar
(12) |
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(6) |
Oct
|
Nov
|
Dec
|
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
(12) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <gl...@us...> - 2007-05-03 23:00:02
|
Revision: 112
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=112&view=rev
Author: glslang
Date: 2007-05-03 16:00:00 -0700 (Thu, 03 May 2007)
Log Message:
-----------
+ OFX bindings continued
Modified Paths:
--------------
lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp
lib/openlibraries/src/openpluginlib/pl/pcos/property.cpp
lib/openlibraries/src/openpluginlib/pl/pcos/property.hpp
Modified: lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp
===================================================================
--- lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp 2007-05-01 22:40:09 UTC (rev 111)
+++ lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp 2007-05-03 23:00:00 UTC (rev 112)
@@ -38,8 +38,6 @@
namespace
{
- typedef pcos::property_container* property_container_ptr;
-
void set_property_suite( OfxPropertySuiteV1& );
void set_image_effect_suite( OfxImageEffectSuiteV1& );
void set_parameter_suite( OfxParameterSuiteV1& );
@@ -48,6 +46,14 @@
void set_interact_suite( OfxInteractSuiteV1& );
void set_message_suite( OfxMessageSuiteV1& );
+ // typedefs
+ typedef pcos::property_container* property_container_ptr;
+
+ // forward declaration
+ class param;
+ class param_set;
+ class clip_instance;
+
struct Ofx_base
{
virtual ~Ofx_base( ) { }
@@ -75,8 +81,8 @@
set_param_descriptor_properties( );
}
- virtual property_container_ptr get_property_set( )
- { return ¶m_descriptor_props_; }
+ virtual property_container_ptr get_property_set( ) { return ¶m_descriptor_props_; }
+ virtual param* create_instance( ) = 0;
private:
void set_param_descriptor_properties( )
@@ -162,6 +168,8 @@
{
set_string_param_descriptor_properties( );
}
+
+ virtual param* create_instance( );
private:
void set_string_param_descriptor_properties( )
@@ -192,6 +200,8 @@
set_int_param_descriptor_properties( );
}
+ virtual param* create_instance( );
+
private:
void set_int_param_descriptor_properties( )
{
@@ -225,6 +235,8 @@
{
set_int2D_param_descriptor_properties( );
}
+
+ virtual param* create_instance( );
private:
void set_int2D_param_descriptor_properties( )
@@ -261,6 +273,8 @@
{
set_int3D_param_descriptor_properties( );
}
+
+ virtual param* create_instance( );
private:
void set_int3D_param_descriptor_properties( )
@@ -326,6 +340,8 @@
{
set_double_param_descriptor_properties( );
}
+
+ virtual param* create_instance( );
private:
void set_double_param_descriptor_properties( )
@@ -369,6 +385,8 @@
param_props_->append( double2D_param_descriptor_param_prop_display_max_ = pcos::double_vec( 2, ( std::numeric_limits<double>::max )( ) ) );
param_props_->append( double2D_param_descriptor_param_prop_dimension_label_ = pl::string_vec( 2 ) );
}
+
+ virtual param* create_instance( );
private:
pcos::property double2D_param_descriptor_param_prop_min_;
@@ -390,6 +408,8 @@
{
set_double3D_param_descriptor_properties( );
}
+
+ virtual param* create_instance( );
private:
void set_double3D_param_descriptor_properties( )
@@ -416,6 +436,8 @@
public:
explicit rgb_param_descriptor( )
{ }
+
+ virtual param* create_instance( );
};
class rgba_param_descriptor : public value_param_descriptor
@@ -423,6 +445,8 @@
public:
explicit rgba_param_descriptor( )
{ }
+
+ virtual param* create_instance( );
};
class boolean_param_descriptor : public value_param_descriptor
@@ -433,6 +457,8 @@
{
set_boolean_param_descriptor_properties( );
}
+
+ virtual param* create_instance( );
private:
void set_boolean_param_descriptor_properties( )
@@ -451,6 +477,8 @@
public:
explicit choice_param_descriptor( )
{ }
+
+ virtual param* create_instance( );
};
class group_param_descriptor : public value_param_descriptor
@@ -458,13 +486,34 @@
public:
explicit group_param_descriptor( )
{ }
+
+ virtual param* create_instance( );
};
class page_param_descriptor : public value_param_descriptor
{
public:
explicit page_param_descriptor( )
- { }
+ : page_param_descriptor_param_prop_type_( pcos::key::from_string( kOfxParamPropType ) )
+ , page_param_descriptor_param_prop_child_( pcos::key::from_string( kOfxParamPropPageChild ) )
+ {
+ set_page_param_descriptor_properties( );
+ }
+
+ virtual param* create_instance( );
+
+ private:
+ void set_page_param_descriptor_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( page_param_descriptor_param_prop_type_ = pl::string( kOfxParamTypePage ) );
+ param_props_->append( page_param_descriptor_param_prop_child_ = pl::string_vec( ) );
+ }
+
+ private:
+ pcos::property page_param_descriptor_param_prop_type_;
+ pcos::property page_param_descriptor_param_prop_child_;
};
class push_button_param_descriptor : public value_param_descriptor
@@ -472,6 +521,8 @@
public:
explicit push_button_param_descriptor( )
{ }
+
+ virtual param* create_instance( );
};
class custom_param_descriptor : public value_param_descriptor
@@ -479,6 +530,8 @@
public:
explicit custom_param_descriptor( )
{ }
+
+ virtual param* create_instance( );
};
class param_set_base : public Ofx_base
@@ -498,108 +551,30 @@
#else
typedef std::map<key_type, param_descriptor_ptr> container;
#endif
+ typedef container::const_iterator const_iterator;
public:
explicit param_set_descriptor( )
{ }
- OfxStatus define( const pl::string& param_type, const pl::string& name )
- {
- typedef container::const_iterator const_iterator;
-
- const_iterator I;
- if( ( I = params_.find( name ) ) == params_.end( ) )
- {
- if( param_type == kOfxParamTypeInteger )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new int_param_descriptor( ) ) ) );
- }
- else if( param_type == kOfxParamTypeInteger2D )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new int2D_param_descriptor( ) ) ) );
- }
- else if( param_type == kOfxParamTypeInteger3D )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new int3D_param_descriptor( ) ) ) );
- }
- else if( param_type == kOfxParamTypeDouble )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new double_param_descriptor( ) ) ) );
- }
- else if( param_type == kOfxParamTypeDouble2D )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new double2D_param_descriptor( ) ) ) );
- }
- else if( param_type == kOfxParamTypeDouble3D )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new double3D_param_descriptor( ) ) ) );
- }
- else if( param_type == kOfxParamTypeRGB )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new rgb_param_descriptor( ) ) ) );
- }
- else if( param_type == kOfxParamTypeRGBA )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new rgba_param_descriptor( ) ) ) );
- }
- else if( param_type == kOfxParamTypeBoolean )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new boolean_param_descriptor( ) ) ) );
- }
- else if( param_type == kOfxParamTypeChoice )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new choice_param_descriptor( ) ) ) );
- }
- else if( param_type == kOfxParamTypeGroup )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new group_param_descriptor( ) ) ) );
- }
- else if( param_type == kOfxParamTypePage )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new page_param_descriptor( ) ) ) );
- }
- else if( param_type == kOfxParamTypeCustom )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new custom_param_descriptor( ) ) ) );
- }
- else if( param_type == kOfxParamTypePushButton )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new push_button_param_descriptor( ) ) ) );
- }
- else if( param_type == kOfxParamTypeString )
- {
- params_.insert( container::value_type( name, param_descriptor_ptr( new string_param_descriptor( ) ) ) );
- }
- }
- else
- {
- // parameter already exists. if the type is the same return success. otherwise flag as an error.
- }
-
- return kOfxStatOK;
- }
+ OfxStatus define( const pl::string& param_type, const pl::string& name );
property_container_ptr find_property_set( const pl::string& name )
{
- typedef container::const_iterator const_iterator;
-
const_iterator I;
if( ( I = params_.find( name ) ) != params_.end( ) )
return I->second->get_property_set( );
-
return 0;
}
- virtual property_container_ptr get_property_set( )
- {
- return ¶m_set_descriptor_props_;
- }
+ virtual property_container_ptr get_property_set( ) { return ¶m_set_descriptor_props_; }
+ virtual OfxParamSetHandle get_param_set( ) { return ( OfxParamSetHandle ) this; }
- virtual OfxParamSetHandle get_param_set( )
- {
- return ( OfxParamSetHandle ) this;
- }
+ const_iterator begin( ) const { return params_.begin( ); }
+ const_iterator end( ) const { return params_.end( ); }
+ virtual param_set* create_instance( );
+
private:
container params_;
pcos::property_container param_set_descriptor_props_;
@@ -608,13 +583,12 @@
class param : public Ofx_base
{
public:
- explicit param( )
+ explicit param( param_descriptor& vpd )
: param_prop_type_( pcos::key::from_string( kOfxPropType ) )
, param_prop_name_( pcos::key::from_string( kOfxPropName ) )
, param_prop_label_( pcos::key::from_string( kOfxPropLabel ) )
, param_prop_short_label_( pcos::key::from_string( kOfxPropShortLabel ) )
, param_prop_long_label_( pcos::key::from_string( kOfxPropLongLabel ) )
- , param_prop_param_prop_type_( pcos::key::from_string( kOfxParamPropType ) )
, param_prop_param_prop_secret_( pcos::key::from_string( kOfxParamPropSecret ) )
, param_prop_param_prop_can_undo_( pcos::key::from_string( kOfxParamPropCanUndo ) )
, param_prop_param_prop_hint_( pcos::key::from_string( kOfxParamPropHint ) )
@@ -623,31 +597,47 @@
, param_prop_param_prop_enabled_( pcos::key::from_string( kOfxParamPropEnabled ) )
, param_prop_param_prop_data_ptr_( pcos::key::from_string( kOfxParamPropDataPtr ) )
{
- set_param_properties( );
+ set_param_properties( vpd );
}
- virtual property_container_ptr get_property_set( )
- { return ¶m_props_; }
-
- virtual pcos::property get_value( ) = 0;
- virtual pl::string get_type( ) = 0;
+ virtual property_container_ptr get_property_set( ) { return ¶m_props_; }
+ virtual pcos::property get_value( ) = 0;
+ virtual pl::string get_type( ) = 0;
private:
- void set_param_properties( )
+ // assign the instance properties from the descriptor. do not assign properties since
+ // they have shallow copy semantics and clone will cause a leak.
+ // therefore extract all the values and assign those. descriptors and instances are
+ // meant to be separate entities and values should not be shared.
+ void set_param_properties( param_descriptor& vpd )
{
- param_props_.append( param_prop_type_ = pl::string( kOfxTypeParameter ) );
- param_props_.append( param_prop_name_ = pl::string( ) );
- param_props_.append( param_prop_label_ = pl::string( ) );
- param_props_.append( param_prop_short_label_ = pl::string( ) );
- param_props_.append( param_prop_long_label_ = pl::string( ) );
- param_props_.append( param_prop_name_ = pl::string( ) );
- param_props_.append( param_prop_param_prop_secret_ = 0 );
- param_props_.append( param_prop_param_prop_can_undo_ = 1 );
- param_props_.append( param_prop_param_prop_hint_ = pl::string( ) );
- param_props_.append( param_prop_param_prop_script_name_ = pl::string( ) );
- param_props_.append( param_prop_param_prop_parent_ = pl::string( ) );
- param_props_.append( param_prop_param_prop_enabled_ = 1 );
- param_props_.append( param_prop_param_prop_data_ptr_ = ( void* ) 0 );
+ property_container_ptr vpd_set = vpd.get_property_set( );
+
+ pl::string type = vpd_set->get_property_with_key( pcos::key::from_string( kOfxPropType ) ).value<pl::string>( );
+ pl::string name = vpd_set->get_property_with_key( pcos::key::from_string( kOfxPropName ) ).value<pl::string>( );
+ pl::string label = vpd_set->get_property_with_key( pcos::key::from_string( kOfxPropLabel ) ).value<pl::string>( );
+ pl::string short_label = vpd_set->get_property_with_key( pcos::key::from_string( kOfxPropShortLabel ) ).value<pl::string>( );
+ pl::string long_label = vpd_set->get_property_with_key( pcos::key::from_string( kOfxPropLongLabel ) ).value<pl::string>( );
+ int secret = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropSecret ) ).value<int>( );
+ int can_undo = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropCanUndo ) ).value<int>( );
+ pl::string hint = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropHint ) ).value<pl::string>( );
+ pl::string script_name = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropScriptName ) ).value<pl::string>( );
+ pl::string parent = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropParent ) ).value<pl::string>( );
+ int enabled = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropEnabled ) ).value<int>( );
+ void* data_ptr = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDataPtr ) ).value<void*>( );
+
+ param_props_.append( param_prop_type_ = type );
+ param_props_.append( param_prop_name_ = name );
+ param_props_.append( param_prop_label_ = label );
+ param_props_.append( param_prop_short_label_ = short_label );
+ param_props_.append( param_prop_long_label_ = long_label );
+ param_props_.append( param_prop_param_prop_secret_ = secret );
+ param_props_.append( param_prop_param_prop_can_undo_ = can_undo );
+ param_props_.append( param_prop_param_prop_hint_ = hint );
+ param_props_.append( param_prop_param_prop_script_name_ = script_name );
+ param_props_.append( param_prop_param_prop_parent_ = parent );
+ param_props_.append( param_prop_param_prop_enabled_ = enabled );
+ param_props_.append( param_prop_param_prop_data_ptr_ = data_ptr );
}
private:
@@ -657,7 +647,6 @@
pcos::property param_prop_label_;
pcos::property param_prop_short_label_;
pcos::property param_prop_long_label_;
- pcos::property param_prop_param_prop_type_;
pcos::property param_prop_param_prop_secret_;
pcos::property param_prop_param_prop_can_undo_;
pcos::property param_prop_param_prop_hint_;
@@ -670,8 +659,9 @@
class value_param : public param
{
public:
- explicit value_param( )
- : value_param_prop_animates_( pcos::key::from_string( kOfxParamPropAnimates ) )
+ explicit value_param( value_param_descriptor& vpd )
+ : param( vpd )
+ , value_param_prop_animates_( pcos::key::from_string( kOfxParamPropAnimates ) )
, value_param_prop_is_animating_( pcos::key::from_string( kOfxParamPropIsAnimating ) )
, value_param_prop_is_auto_keying_( pcos::key::from_string( kOfxParamPropIsAutoKeying ) )
, value_param_prop_persistant_( pcos::key::from_string( kOfxParamPropPersistant ) )
@@ -679,21 +669,35 @@
, value_param_prop_plugin_may_write_( pcos::key::from_string( kOfxParamPropPluginMayWrite ) )
, value_param_prop_cache_invalidation_( pcos::key::from_string( kOfxParamPropCacheInvalidation ) )
{
- set_value_param_properties( );
+ set_value_param_properties( vpd );
}
private:
- void set_value_param_properties( )
+ // assign the instance properties from the descriptor. do not assign properties since
+ // they have shallow copy semantics and clone will cause a leak.
+ // therefore extract all the values and assign those. descriptors and instances are
+ // meant to be separate entities and values should not be shared.
+ void set_value_param_properties( value_param_descriptor& vpd )
{
property_container_ptr param_props_ = get_property_set( );
+
+ property_container_ptr vpd_set = vpd.get_property_set( );
- param_props_->append( value_param_prop_animates_ = 1 );
- param_props_->append( value_param_prop_is_animating_ = 0 );
- param_props_->append( value_param_prop_is_auto_keying_ = 0 );
- param_props_->append( value_param_prop_persistant_ = 1 );
- param_props_->append( value_param_prop_evaluate_on_change_ = 1 );
- param_props_->append( value_param_prop_plugin_may_write_ = 0 );
- param_props_->append( value_param_prop_cache_invalidation_ = pl::string( kOfxParamInvalidateValueChange ) );
+ int animates = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropAnimates ) ).value<int>( );
+ int is_animating = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropIsAnimating ) ).value<int>( );
+ int is_auto_keying = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropIsAutoKeying ) ).value<int>( );
+ int persistant = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropPersistant ) ).value<int>( );
+ int evaluate_on_change = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropEvaluateOnChange ) ).value<int>( );
+ int may_write = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropPluginMayWrite ) ).value<int>( );
+ pl::string cache_invalidation = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropCacheInvalidation ) ).value<pl::string>( );
+
+ param_props_->append( value_param_prop_animates_ = animates );
+ param_props_->append( value_param_prop_is_animating_ = is_animating );
+ param_props_->append( value_param_prop_is_auto_keying_ = is_auto_keying );
+ param_props_->append( value_param_prop_persistant_ = persistant );
+ param_props_->append( value_param_prop_evaluate_on_change_ = evaluate_on_change );
+ param_props_->append( value_param_prop_plugin_may_write_ = may_write );
+ param_props_->append( value_param_prop_cache_invalidation_ = cache_invalidation );
}
private:
@@ -709,34 +713,38 @@
class string_param : public value_param
{
public:
- explicit string_param( )
- : string_param_value_( pcos::key::from_string( "value" ) )
+ explicit string_param( string_param_descriptor& vpd )
+ : value_param( vpd )
+ , string_param_value_( pcos::key::from_string( "value" ) )
, string_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
, string_param_prop_string_mode_( pcos::key::from_string( kOfxParamPropStringMode ) )
, string_param_prop_string_file_path_exists_( pcos::key::from_string( kOfxParamPropStringFilePathExists ) )
{
- set_string_param_properties( );
+ set_string_param_properties( vpd );
}
- virtual pcos::property get_value( )
- {
- return string_param_value_;
- }
-
- virtual pl::string get_type( )
- {
- return kOfxParamTypeString;
- }
+ virtual pcos::property get_value( ) { return string_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypeString; }
private:
- void set_string_param_properties( )
+ // assign the instance properties from the descriptor. do not assign properties since
+ // they have shallow copy semantics and clone will cause a leak.
+ // therefore extract all the values and assign those. descriptors and instances are
+ // meant to be separate entities and values should not be shared.
+ void set_string_param_properties( string_param_descriptor& vpd )
{
property_container_ptr param_props_ = get_property_set( );
+
+ property_container_ptr vpd_set = vpd.get_property_set( );
- param_props_->append( string_param_value_ = pl::string( ) );
- param_props_->append( string_param_prop_default_ = pl::string( ) );
- param_props_->append( string_param_prop_string_mode_ = pl::string( kOfxParamStringIsSingleLine ) );
- param_props_->append( string_param_prop_string_file_path_exists_ = 1 );
+ pl::string def = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDefault ) ).value<pl::string>( );
+ pl::string mode = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropStringMode ) ).value<pl::string>( );
+ int file_path_exists = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropStringFilePathExists ) ).value<int>( );
+
+ param_props_->append( string_param_value_ = def );
+ param_props_->append( string_param_prop_default_ = def );
+ param_props_->append( string_param_prop_string_mode_ = mode );
+ param_props_->append( string_param_prop_string_file_path_exists_ = file_path_exists );
}
private:
@@ -749,38 +757,44 @@
class int_param : public value_param
{
public:
- explicit int_param( )
- : int_param_value_( pcos::key::from_string( "value" ) )
+ explicit int_param( int_param_descriptor& vpd )
+ : value_param( vpd )
+ , int_param_value_( pcos::key::from_string( "value" ) )
, int_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
, int_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
, int_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
, int_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
, int_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
{
- set_int_param_properties( );
+ set_int_param_properties( vpd );
}
- virtual pcos::property get_value( )
- {
- return int_param_value_;
- }
+ virtual pcos::property get_value( ) { return int_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypeInteger; }
- virtual pl::string get_type( )
- {
- return kOfxParamTypeInteger;
- }
-
private:
- void set_int_param_properties( )
+ // assign the instance properties from the descriptor. do not assign properties since
+ // they have shallow copy semantics and clone will cause a leak.
+ // therefore extract all the values and assign those. descriptors and instances are
+ // meant to be separate entities and values should not be shared.
+ void set_int_param_properties( int_param_descriptor& vpd )
{
property_container_ptr param_props_ = get_property_set( );
+
+ property_container_ptr vpd_set = vpd.get_property_set( );
- param_props_->append( int_param_value_ = 0 );
- param_props_->append( int_param_prop_default_ = 0 );
- param_props_->append( int_param_prop_min_ = ( std::numeric_limits<int>::min )( ) );
- param_props_->append( int_param_prop_max_ = ( std::numeric_limits<int>::max )( ) );
- param_props_->append( int_param_prop_display_min_ = ( std::numeric_limits<int>::min )( ) );
- param_props_->append( int_param_prop_display_max_ = ( std::numeric_limits<int>::max )( ) );
+ int def = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDefault ) ).value<int>( );
+ int min = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropMin ) ).value<int>( );
+ int max = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropMax ) ).value<int>( );
+ int display_min = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDisplayMin ) ).value<int>( );
+ int display_max = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDisplayMax ) ).value<int>( );
+
+ param_props_->append( int_param_value_ = def );
+ param_props_->append( int_param_prop_default_ = def );
+ param_props_->append( int_param_prop_min_ = min );
+ param_props_->append( int_param_prop_max_ = max );
+ param_props_->append( int_param_prop_display_min_ = display_min );
+ param_props_->append( int_param_prop_display_max_ = display_max );
}
private:
@@ -795,8 +809,9 @@
class int2D_param : public value_param
{
public:
- explicit int2D_param( )
- : int2D_param_value_( pcos::key::from_string( "value" ) )
+ explicit int2D_param( int2D_param_descriptor& vpd )
+ : value_param( vpd )
+ , int2D_param_value_( pcos::key::from_string( "value" ) )
, int2D_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
, int2D_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
, int2D_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
@@ -804,31 +819,37 @@
, int2D_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
, int2D_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
{
- set_int2D_param_properties( );
+ set_int2D_param_properties( vpd );
}
- virtual pcos::property get_value( )
- {
- return int2D_param_value_;
- }
+ virtual pcos::property get_value( ) { return int2D_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypeInteger2D; }
- virtual pl::string get_type( )
- {
- return kOfxParamTypeInteger2D;
- }
-
private:
- void set_int2D_param_properties( )
+ // assign the instance properties from the descriptor. do not assign properties since
+ // they have shallow copy semantics and clone will cause a leak.
+ // therefore extract all the values and assign those. descriptors and instances are
+ // meant to be separate entities and values should not be shared.
+ void set_int2D_param_properties( int2D_param_descriptor& vpd )
{
property_container_ptr param_props_ = get_property_set( );
+
+ property_container_ptr vpd_set = vpd.get_property_set( );
- param_props_->append( int2D_param_value_ = pcos::int_vec( 2, 0 ) );
- param_props_->append( int2D_param_prop_default_ = pcos::int_vec( 2, 0 ) );
- param_props_->append( int2D_param_prop_min_ = pcos::int_vec( 2, ( std::numeric_limits<int>::min )( ) ) );
- param_props_->append( int2D_param_prop_max_ = pcos::int_vec( 2, ( std::numeric_limits<int>::max )( ) ) );
- param_props_->append( int2D_param_prop_display_min_ = pcos::int_vec( 2, ( std::numeric_limits<int>::min )( ) ) );
- param_props_->append( int2D_param_prop_display_max_ = pcos::int_vec( 2, ( std::numeric_limits<int>::max )( ) ) );
- param_props_->append( int2D_param_prop_dimension_label_ = pl::string_vec( 2 ) );
+ pcos::int_vec def = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDefault ) ).value<pcos::int_vec>( );
+ pcos::int_vec min = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropMin ) ).value<pcos::int_vec>( );
+ pcos::int_vec max = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropMax ) ).value<pcos::int_vec>( );
+ pcos::int_vec display_min = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDisplayMin ) ).value<pcos::int_vec>( );
+ pcos::int_vec display_max = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDisplayMax ) ).value<pcos::int_vec>( );
+ pl::string_vec dimension_label = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDimensionLabel ) ).value<pl::string_vec>( );
+
+ param_props_->append( int2D_param_value_ = def );
+ param_props_->append( int2D_param_prop_default_ = def );
+ param_props_->append( int2D_param_prop_min_ = min );
+ param_props_->append( int2D_param_prop_max_ = max );
+ param_props_->append( int2D_param_prop_display_min_ = display_min );
+ param_props_->append( int2D_param_prop_display_max_ = display_max );
+ param_props_->append( int2D_param_prop_dimension_label_ = dimension_label );
}
private:
@@ -844,8 +865,9 @@
class int3D_param : public value_param
{
public:
- explicit int3D_param( )
- : int3D_param_value_( pcos::key::from_string( "value" ) )
+ explicit int3D_param( int3D_param_descriptor& vpd )
+ : value_param( vpd )
+ , int3D_param_value_( pcos::key::from_string( "value" ) )
, int3D_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
, int3D_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
, int3D_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
@@ -853,31 +875,37 @@
, int3D_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
, int3D_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
{
- set_int3D_param_properties( );
+ set_int3D_param_properties( vpd );
}
- virtual pcos::property get_value( )
- {
- return int3D_param_value_;
- }
-
- virtual pl::string get_type( )
- {
- return kOfxParamTypeInteger3D;
- }
+ virtual pcos::property get_value( ) { return int3D_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypeInteger3D; }
private:
- void set_int3D_param_properties( )
+ // assign the instance properties from the descriptor. do not assign properties since
+ // they have shallow copy semantics and clone will cause a leak.
+ // therefore extract all the values and assign those. descriptors and instances are
+ // meant to be separate entities and values should not be shared.
+ void set_int3D_param_properties( int3D_param_descriptor& vpd )
{
property_container_ptr param_props_ = get_property_set( );
+
+ property_container_ptr vpd_set = vpd.get_property_set( );
- param_props_->append( int3D_param_value_ = pcos::int_vec( 3, 0 ) );
- param_props_->append( int3D_param_prop_default_ = pcos::int_vec( 3, 0 ) );
- param_props_->append( int3D_param_prop_min_ = pcos::int_vec( 3, ( std::numeric_limits<int>::min )( ) ) );
- param_props_->append( int3D_param_prop_max_ = pcos::int_vec( 3, ( std::numeric_limits<int>::max )( ) ) );
- param_props_->append( int3D_param_prop_display_min_ = pcos::int_vec( 3, ( std::numeric_limits<int>::min )( ) ) );
- param_props_->append( int3D_param_prop_display_max_ = pcos::int_vec( 3, ( std::numeric_limits<int>::max )( ) ) );
- param_props_->append( int3D_param_prop_dimension_label_ = pl::string_vec( 3 ) );
+ pcos::int_vec def = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDefault ) ).value<pcos::int_vec>( );
+ pcos::int_vec min = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropMin ) ).value<pcos::int_vec>( );
+ pcos::int_vec max = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropMax ) ).value<pcos::int_vec>( );
+ pcos::int_vec display_min = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDisplayMin ) ).value<pcos::int_vec>( );
+ pcos::int_vec display_max = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDisplayMax ) ).value<pcos::int_vec>( );
+ pl::string_vec dimension_label = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDimensionLabel ) ).value<pl::string_vec>( );
+
+ param_props_->append( int3D_param_value_ = def );
+ param_props_->append( int3D_param_prop_default_ = def );
+ param_props_->append( int3D_param_prop_min_ = min );
+ param_props_->append( int3D_param_prop_max_ = max );
+ param_props_->append( int3D_param_prop_display_min_ = display_min );
+ param_props_->append( int3D_param_prop_display_max_ = display_max );
+ param_props_->append( int3D_param_prop_dimension_label_ = dimension_label );
}
private:
@@ -893,28 +921,36 @@
class base_double_param : public value_param
{
public:
- explicit base_double_param( )
- : base_double_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
+ explicit base_double_param( base_double_param_descriptor& vpd )
+ : value_param( vpd )
, base_double_param_prop_increment_( pcos::key::from_string( kOfxParamPropIncrement ) )
, base_double_param_prop_digits_( pcos::key::from_string( kOfxParamPropDigits ) )
, base_double_param_prop_double_type_( pcos::key::from_string( kOfxParamPropDoubleType ) )
{
- set_base_double_param_properties( );
+ set_base_double_param_properties( vpd );
}
private:
- void set_base_double_param_properties( )
+ // assign the instance properties from the descriptor. do not assign properties since
+ // they have shallow copy semantics and clone will cause a leak.
+ // therefore extract all the values and assign those. descriptors and instances are
+ // meant to be separate entities and values should not be shared.
+ void set_base_double_param_properties( base_double_param_descriptor& vpd )
{
property_container_ptr param_props_ = get_property_set( );
+
+ property_container_ptr vpd_set = vpd.get_property_set( );
- param_props_->append( base_double_param_prop_default_ = 0.0 );
- param_props_->append( base_double_param_prop_increment_ = 1.0 );
- param_props_->append( base_double_param_prop_digits_ = 2 );
- param_props_->append( base_double_param_prop_double_type_ = pl::string( kOfxParamDoubleTypePlain ) );
+ double increment = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropIncrement ) ).value<double>( );
+ int digits = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDigits ) ).value<int>( );
+ pl::string double_type = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDoubleType ) ).value<pl::string>( );
+
+ param_props_->append( base_double_param_prop_increment_ = increment );
+ param_props_->append( base_double_param_prop_digits_ = digits );
+ param_props_->append( base_double_param_prop_double_type_ = double_type );
}
private:
- pcos::property base_double_param_prop_default_;
pcos::property base_double_param_prop_increment_;
pcos::property base_double_param_prop_digits_;
pcos::property base_double_param_prop_double_type_;
@@ -923,42 +959,52 @@
class double_param : public base_double_param
{
public:
- explicit double_param( )
- : double_param_value_( pcos::key::from_string( "value" ) )
+ explicit double_param( double_param_descriptor& vpd )
+ : base_double_param( vpd )
+ , double_param_value_( pcos::key::from_string( "value" ) )
+ , double_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
, double_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
, double_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
, double_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
, double_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
, double_param_prop_show_time_marker_( pcos::key::from_string( kOfxParamPropShowTimeMarker ) )
{
- set_double_param_properties( );
+ set_double_param_properties( vpd );
}
- virtual pcos::property get_value( )
- {
- return double_param_value_;
- }
-
- virtual pl::string get_type( )
- {
- return kOfxParamTypeDouble;
- }
+ virtual pcos::property get_value( ) { return double_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypeDouble; }
private:
- void set_double_param_properties( )
+ // assign the instance properties from the descriptor. do not assign properties since
+ // they have shallow copy semantics and clone will cause a leak.
+ // therefore extract all the values and assign those. descriptors and instances are
+ // meant to be separate entities and values should not be shared.
+ void set_double_param_properties( double_param_descriptor& vpd )
{
property_container_ptr param_props_ = get_property_set( );
+
+ property_container_ptr vpd_set = vpd.get_property_set( );
- param_props_->append( double_param_value_ = 0.0 );
- param_props_->append( double_param_prop_min_ = ( std::numeric_limits<double>::min )( ) );
- param_props_->append( double_param_prop_max_ = ( std::numeric_limits<double>::max )( ) );
- param_props_->append( double_param_prop_display_min_ = ( std::numeric_limits<double>::min )( ) );
- param_props_->append( double_param_prop_display_max_ = ( std::numeric_limits<double>::max )( ) );
- param_props_->append( double_param_prop_show_time_marker_ = 0 );
+ double def = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDefault ) ).value<double>( );
+ double min = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropMin ) ).value<double>( );
+ double max = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropMax ) ).value<double>( );
+ double display_min = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDisplayMin ) ).value<double>( );
+ double display_max = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDisplayMax ) ).value<double>( );
+ int time_marker = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropShowTimeMarker ) ).value<int>( );
+
+ param_props_->append( double_param_value_ = def );
+ param_props_->append( double_param_prop_default_ = def );
+ param_props_->append( double_param_prop_min_ = min );
+ param_props_->append( double_param_prop_max_ = max );
+ param_props_->append( double_param_prop_display_min_ = display_min );
+ param_props_->append( double_param_prop_display_max_ = display_max );
+ param_props_->append( double_param_prop_show_time_marker_ = time_marker );
}
private:
pcos::property double_param_value_;
+ pcos::property double_param_prop_default_;
pcos::property double_param_prop_min_;
pcos::property double_param_prop_max_;
pcos::property double_param_prop_display_min_;
@@ -969,42 +1015,52 @@
class double2D_param : public base_double_param
{
public:
- explicit double2D_param( )
- : double2D_param_value_( pcos::key::from_string( "value" ) )
+ explicit double2D_param( double2D_param_descriptor& vpd )
+ : base_double_param( vpd )
+ , double2D_param_value_( pcos::key::from_string( "value" ) )
+ , double2D_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
, double2D_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
, double2D_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
, double2D_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
, double2D_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
, double2D_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
{
- set_double2D_param_properties( );
+ set_double2D_param_properties( vpd );
}
- virtual pcos::property get_value( )
- {
- return double2D_param_value_;
- }
-
- virtual pl::string get_type( )
- {
- return kOfxParamTypeDouble2D;
- }
+ virtual pcos::property get_value( ) { return double2D_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypeDouble2D; }
private:
- void set_double2D_param_properties( )
+ // assign the instance properties from the descriptor. do not assign properties since
+ // they have shallow copy semantics and clone will cause a leak.
+ // therefore extract all the values and assign those. descriptors and instances are
+ // meant to be separate entities and values should not be shared.
+ void set_double2D_param_properties( base_double_param_descriptor& vpd )
{
property_container_ptr param_props_ = get_property_set( );
+
+ property_container_ptr vpd_set = vpd.get_property_set( );
- param_props_->append( double2D_param_value_ = pcos::double_vec( 2, 0.0 ) );
- param_props_->append( double2D_param_prop_min_ = pcos::double_vec( 2, ( std::numeric_limits<double>::min )( ) ) );
- param_props_->append( double2D_param_prop_max_ = pcos::double_vec( 2, ( std::numeric_limits<double>::max )( ) ) );
- param_props_->append( double2D_param_prop_display_min_ = pcos::double_vec( 2, ( std::numeric_limits<double>::min )( ) ) );
- param_props_->append( double2D_param_prop_display_max_ = pcos::double_vec( 2, ( std::numeric_limits<double>::max )( ) ) );
- param_props_->append( double2D_param_prop_dimension_label_ = pl::string_vec( 2 ) );
+ pcos::double_vec def = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDefault ) ).value<pcos::double_vec>( );
+ pcos::double_vec min = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropMin ) ).value<pcos::double_vec>( );
+ pcos::double_vec max = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropMax ) ).value<pcos::double_vec>( );
+ pcos::double_vec display_min = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDisplayMin ) ).value<pcos::double_vec>( );
+ pcos::double_vec display_max = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDisplayMax ) ).value<pcos::double_vec>( );
+ pl::string_vec dimension_label = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDisplayMax ) ).value<pl::string_vec>( );
+
+ param_props_->append( double2D_param_value_ = def );
+ param_props_->append( double2D_param_prop_default_ = def );
+ param_props_->append( double2D_param_prop_min_ = min );
+ param_props_->append( double2D_param_prop_max_ = max );
+ param_props_->append( double2D_param_prop_display_min_ = display_min );
+ param_props_->append( double2D_param_prop_display_max_ = display_max );
+ param_props_->append( double2D_param_prop_dimension_label_ = dimension_label );
}
private:
pcos::property double2D_param_value_;
+ pcos::property double2D_param_prop_default_;
pcos::property double2D_param_prop_min_;
pcos::property double2D_param_prop_max_;
pcos::property double2D_param_prop_display_min_;
@@ -1015,42 +1071,52 @@
class double3D_param : public base_double_param
{
public:
- explicit double3D_param( )
- : double3D_param_value_( pcos::key::from_string( "value" ) )
+ explicit double3D_param( double3D_param_descriptor& vpd )
+ : base_double_param( vpd )
+ , double3D_param_value_( pcos::key::from_string( "value" ) )
+ , double3D_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
, double3D_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
, double3D_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
, double3D_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
, double3D_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
, double3D_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
{
- set_double3D_param_properties( );
+ set_double3D_param_properties( vpd );
}
- virtual pcos::property get_value( )
- {
- return double3D_param_value_;
- }
-
- virtual pl::string get_type( )
- {
- return kOfxParamTypeDouble3D;
- }
+ virtual pcos::property get_value( ) { return double3D_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypeDouble3D; }
private:
- void set_double3D_param_properties( )
+ // assign the instance properties from the descriptor. do not assign properties since
+ // they have shallow copy semantics and clone will cause a leak.
+ // therefore extract all the values and assign those. descriptors and instances are
+ // meant to be separate entities and values should not be shared.
+ void set_double3D_param_properties( double3D_param_descriptor& vpd )
{
property_container_ptr param_props_ = get_property_set( );
+
+ property_container_ptr vpd_set = vpd.get_property_set( );
- param_props_->append( double3D_param_value_ = pcos::double_vec( 3, 0.0 ) );
- param_props_->append( double3D_param_prop_min_ = pcos::double_vec( 3, ( std::numeric_limits<double>::min )( ) ) );
- param_props_->append( double3D_param_prop_max_ = pcos::double_vec( 3, ( std::numeric_limits<double>::max )( ) ) );
- param_props_->append( double3D_param_prop_display_min_ = pcos::double_vec( 3, ( std::numeric_limits<double>::min )( ) ) );
- param_props_->append( double3D_param_prop_display_max_ = pcos::double_vec( 3, ( std::numeric_limits<double>::max )( ) ) );
- param_props_->append( double3D_param_prop_dimension_label_ = pl::string_vec( 3 ) );
+ pcos::double_vec def = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDefault ) ).value<pcos::double_vec>( );
+ pcos::double_vec min = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropMin ) ).value<pcos::double_vec>( );
+ pcos::double_vec max = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropMax ) ).value<pcos::double_vec>( );
+ pcos::double_vec display_min = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDisplayMin ) ).value<pcos::double_vec>( );
+ pcos::double_vec display_max = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDisplayMax ) ).value<pcos::double_vec>( );
+ pl::string_vec dimension_label = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDisplayMax ) ).value<pl::string_vec>( );
+
+ param_props_->append( double3D_param_value_ = def );
+ param_props_->append( double3D_param_prop_default_ = def );
+ param_props_->append( double3D_param_prop_min_ = min );
+ param_props_->append( double3D_param_prop_max_ = max );
+ param_props_->append( double3D_param_prop_display_min_ = display_min );
+ param_props_->append( double3D_param_prop_display_max_ = display_max );
+ param_props_->append( double3D_param_prop_dimension_label_ = dimension_label );
}
private:
pcos::property double3D_param_value_;
+ pcos::property double3D_param_prop_default_;
pcos::property double3D_param_prop_min_;
pcos::property double3D_param_prop_max_;
pcos::property double3D_param_prop_display_min_;
@@ -1061,20 +1127,14 @@
class rgb_param : public value_param
{
public:
- explicit rgb_param( )
- : rgb_param_value_( pcos::key::from_string( "value" ) )
+ explicit rgb_param( rgb_param_descriptor& vpd )
+ : value_param( vpd )
+ , rgb_param_value_( pcos::key::from_string( "value" ) )
{ }
- virtual pcos::property get_value( )
- {
- return rgb_param_value_;
- }
+ virtual pcos::property get_value( ) { return rgb_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypeRGB; }
- virtual pl::string get_type( )
- {
- return kOfxParamTypeRGB;
- }
-
private:
pcos::property rgb_param_value_;
};
@@ -1082,19 +1142,13 @@
class rgba_param : public value_param
{
public:
- explicit rgba_param( )
- : rgba_param_value_( pcos::key::from_string( "value" ) )
+ explicit rgba_param( rgba_param_descriptor& vpd )
+ : value_param( vpd )
+ , rgba_param_value_( pcos::key::from_string( "value" ) )
{ }
- virtual pcos::property get_value( )
- {
- return rgba_param_value_;
- }
-
- virtual pl::string get_type( )
- {
- return kOfxParamTypeRGBA;
- }
+ virtual pcos::property get_value( ) { return rgba_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypeRGBA; }
private:
pcos::property rgba_param_value_;
@@ -1103,30 +1157,32 @@
class boolean_param : public value_param
{
public:
- explicit boolean_param( )
- : boolean_param_value_( pcos::key::from_string( "value" ) )
+ explicit boolean_param( boolean_param_descriptor& vpd )
+ : value_param( vpd )
+ , boolean_param_value_( pcos::key::from_string( "value" ) )
, boolean_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
{
- set_boolean_param_properties( );
+ set_boolean_param_properties( vpd );
}
- virtual pcos::property get_value( )
- {
- return boolean_param_value_;
- }
-
- virtual pl::string get_type( )
- {
- return kOfxParamTypeBoolean;
- }
+ virtual pcos::property get_value( ) { return boolean_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypeBoolean; }
private:
- void set_boolean_param_properties( )
+ // assign the instance properties from the descriptor. do not assign properties since
+ // they have shallow copy semantics and clone will cause a leak.
+ // therefore extract all the values and assign those. descriptors and instances are
+ // meant to be separate entities and values should not be shared.
+ void set_boolean_param_properties( boolean_param_descriptor& vpd )
{
property_container_ptr param_props_ = get_property_set( );
+
+ property_container_ptr vpd_set = vpd.get_property_set( );
- param_props_->append( boolean_param_value_ = 0 );
- param_props_->append( boolean_param_prop_default_ = 0 );
+ int def = vpd_set->get_property_with_key( pcos::key::from_string( kOfxParamPropDefault ) ).value<int>( );
+
+ param_props_->append( boolean_param_value_ = def );
+ param_props_->append( boolean_param_prop_default_ = def );
}
private:
@@ -1137,19 +1193,13 @@
class choice_param : public value_param
{
public:
- explicit choice_param( )
- : choice_param_value_( pcos::key::from_string( "value" ) )
+ explicit choice_param( choice_param_descriptor& vpd )
+ : value_param( vpd )
+ , choice_param_value_( pcos::key::from_string( "value" ) )
{ }
- virtual pcos::property get_value( )
- {
- return choice_param_value_;
- }
-
- virtual pl::string get_type( )
- {
- return kOfxParamTypeChoice;
- }
+ virtual pcos::property get_value( ) { return choice_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypeChoice; }
private:
pcos::property choice_param_value_;
@@ -1158,20 +1208,14 @@
class group_param : public value_param
{
public:
- explicit group_param( )
- : group_param_value_( pcos::key::from_string( "value" ) )
+ explicit group_param( group_param_descriptor& vpd )
+ : value_param( vpd )
+ , group_param_value_( pcos::key::from_string( "value" ) )
{ }
- virtual pcos::property get_value( )
- {
- return group_param_value_;
- }
+ virtual pcos::property get_value( ) { return group_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypeGroup; }
- virtual pl::string get_type( )
- {
- return kOfxParamTypeGroup;
- }
-
private:
pcos::property group_param_value_;
};
@@ -1179,20 +1223,20 @@
class page_param : public value_param
{
public:
- explicit page_param( )
- : page_param_value_( pcos::key::from_string( "value" ) )
+ explicit page_param( page_param_descriptor& vpd )
+ : value_param( vpd )
+ , page_param_value_( pcos::key::from_string( "value" ) )
{ }
- virtual pcos::property get_value( )
- {
- return page_param_value_;
- }
+ virtual pcos::property get_value( ) { return page_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypePage; }
+
+ private:
+ // assign the instance properties from the descriptor. do not assign properties since
+ // they have shallow copy semantics and clone will cause a leak.
+ // therefore extract all the values and assign those. descriptors and instances are
+ // meant to be separate entities and values should not be shared.
- virtual pl::string get_type( )
- {
- return kOfxParamTypePage;
- }
-
private:
pcos::property page_param_value_;
};
@@ -1200,19 +1244,13 @@
class push_button_param : public value_param
{
public:
- explicit push_button_param( )
- : push_button_param_value_( pcos::key::from_string( "value" ) )
+ explicit push_button_param( push_button_param_descriptor& vpd )
+ : value_param( vpd )
+ , push_button_param_value_( pcos::key::from_string( "value" ) )
{ }
- virtual pcos::property get_value( )
- {
- return push_button_param_value_;
- }
-
- virtual pl::string get_type( )
- {
- return kOfxParamTypePushButton;
- }
+ virtual pcos::property get_value( ) { return push_button_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypePushButton; }
private:
pcos::property push_button_param_value_;
@@ -1221,19 +1259,13 @@
class custom_param : public value_param
{
public:
- explicit custom_param( )
- : custom_param_value_( pcos::key::from_string( "value" ) )
+ explicit custom_param( custom_param_descriptor& vpd )
+ : value_param( vpd )
+ , custom_param_value_( pcos::key::from_string( "value" ) )
{ }
- virtual pcos::property get_value( )
- {
- return custom_param_value_;
- }
-
- virtual pl::string get_type( )
- {
- return kOfxParamTypeCustom;
- }
+ virtual pcos::property get_value( ) { return custom_param_value_; }
+ virtual pl::string get_type( ) { return kOfxParamTypeCustom; }
private:
pcos::property custom_param_value_;
@@ -1250,109 +1282,33 @@
#else
typedef std::map<key_type, param_ptr> container;
#endif
+ typedef container::const_iterator const_iterator;
public:
- explicit param_set( )
- { }
-
- OfxStatus define( const pl::string& param_type, const pl::string& name )
+ explicit param_set( param_set_descriptor& psd )
{
- typedef container::const_iterator const_iterator;
-
- const_iterator I;
- if( ( I = params_.find( name ) ) == params_.end( ) )
- {
- if( param_type == kOfxParamTypeInteger )
- {
- params_.insert( container::value_type( name, param_ptr( new int_param( ) ) ) );
- }
- else if( param_type == kOfxParamTypeInteger2D )
- {
- params_.insert( container::value_type( name, param_ptr( new int2D_param( ) ) ) );
- }
- else if( param_type == kOfxParamTypeInteger3D )
- {
- params_.insert( container::value_type( name, param_ptr( new int3D_param( ) ) ) );
- }
- else if( param_type == kOfxParamTypeDouble )
- {
- params_.insert( container::value_type( name, param_ptr( new double_param( ) ) ) );
- }
- else if( param_type == kOfxParamTypeDouble2D )
- {
- params_.insert( container::value_type( name, param_ptr( new double2D_param( ) ) ) );
- }
- else if( param_type == kOfxParamTypeDouble3D )
- {
- params_.insert( container::value_type( name, param_ptr( new double3D_param( ) ) ) );
- }
- else if( param_type == kOfxParamTypeRGB )
- {
- params_.insert( container::value_type( name, param_ptr( new rgb_param( ) ) ) );
- }
- else if( param_type == kOfxParamTypeRGBA )
- {
- params_.insert( container::value_type( name, param_ptr( new rgba_param( ) ) ) );
- }
- else if( param_type == kOfxParamTypeBoolean )
- {
- params_.insert( container::value_type( name, param_ptr( new boolean_param( ) ) ) );
- }
- else if( param_type == kOfxParamTypeChoice )
- {
- params_.insert( container::value_type( name, param_ptr( new choice_param( ) ) ) );
- }
- else if( param_type == kOfxParamTypeGroup )
- {
- params_.insert( container::value_type( name, param_ptr( new group_param( ) ) ) );
- }
- else if( param_type == kOfxParamTypePage )
- {
- params_.insert( container::value_type( name, param_ptr( new page_param( ) ) ) );
- }
- else if( param_type == kOfxParamTypeCustom )
- {
- params_.insert( container::value_type( name, param_ptr( new custom_param( ) ) ) );
- }
- else if( param_type == kOfxParamTypePushButton )
- {
- params_.insert( container::value_type( name, param_ptr( new push_button_param( ) ) ) );
- }
- else if( param_type == kOfxParamTypeString )
- {
- params_.insert( container::value_type( name, param_ptr( new string_param( ) ) ) );
- }
- }
- else
- {
- // parameter already exists. if the type is the same return success. otherwise flag as an error.
- }
-
- return kOfxStatOK;
+ set_parameters( psd );
}
+
+ virtual property_container_ptr get_property_set( ) { return ¶m_set_props_; }
+ virtual OfxParamSetHandle get_param_set( ) { return ( OfxParamSetHandle ) this; }
- virtual property_container_ptr get_property_set( )
- {
- return ¶m_set_props_;
- }
-
- virtual OfxParamSetHandle get_param_set( )
- {
- return ( OfxParamSetHandle ) this;
- }
-
param* find_param( const pl::string& name )
{
- typedef container::const_iterator const_iterator;
-
const_iterator I;
if( ( I = params_.find( name ) ) != params_.end( ) )
return I->second.get( );
-
return 0;
}
private:
+ void set_parameters( const param_set_descriptor& psd )
+ {
+ for( param_set_descriptor::const_iterator I = psd.begin( ); I != psd.end( ); ++I )
+ params_.insert( container::value_type( I->first, param_ptr( I->second->create_instance( ) ) ) );
+ }
+
+ private:
container params_;
pcos::property_container param_set_props_;
};
@@ -1460,8 +1416,8 @@
set_clip_descriptor_properties( );
}
- virtual property_container_ptr get_property_set( )
- { return &clip_descriptor_props_; }
+ virtual property_container_ptr get_property_set( ) { return &clip_descriptor_props_; }
+ virtual clip_instance* create_instance( );
private:
void set_clip_descriptor_properties( )
@@ -1506,6 +1462,7 @@
#else
typedef std::map<key_type, clip_descriptor_ptr> container;
#endif
+ typedef container::const_iterator const_iterator;
public:
explicit image_effect_descriptor( )
@@ -1532,26 +1489,25 @@
set_image_effect_descriptor_properties( );
}
- virtual property_container_ptr get_property_set( )
- { return &effect_descriptor_props_; }
+ virtual property_container_ptr get_property_set( ) { return &effect_descriptor_props_; }
- void clip_define( const pl::string& name, OfxPropertySetHandle* props )
- {
- typedef container::const_iterator const_iterator;
-
+ clip_descriptor* clip_get_handle( const pl::string& name )
+ {
const_iterator I = clip_desc_.find( name );
if( I != clip_desc_.end( ) )
- {
- if( props )
- *props = ( OfxPropertySetHandle ) I->second->get_property_set( );
- }
-
- clip_descriptor_ptr new_clip_desc( new clip_descriptor( ) );
- clip_desc_.insert( container::value_type( name, new_clip_desc ) );
-
- if( props )
- *props = ( OfxPropertySetHandle ) new_clip_desc->get_property_set( );
+ return I->second.get( );
+ return 0;
}
+
+ clip_descriptor* append_clip( const pl::string& name )
+ {
+ clip_descriptor_ptr clip( new clip_descriptor( ) );
+ clip_desc_.insert( container::value_type( name, clip ) );
+ return clip.get( );
+ }
+
+ const_iterator clip_begin( ) const { return clip_desc_.begin( ); }
+ const_iterator clip_end( ) const { return clip_desc_.end( ); }
private:
void set_image_effect_descriptor_properties( )
@@ -1607,7 +1563,7 @@
container clip_desc_;
};
- struct image_effect_instance_base : public param_set
+ struct image_effect_instance_base
{
virtual il::image_type_ptr get_source( ) = 0;
virtual il::image_type_ptr get_output( ) = 0;
@@ -1616,7 +1572,7 @@
class clip_instance : public Ofx_base
{
public:
- explicit clip_instance( image_effect_instance_base* const image_instance, const pl::string& name )
+ explicit clip_instance( clip_descriptor& cd )
: clip_instance_prop_type_( pcos::key::from_string( kOfxPropType ) )
, clip_instance_prop_name_( pcos::key::from_string( kOfxPropName ) )
, clip_instance_prop_label_( pcos::key::from_string( kOfxPropLabel ) )
@@ -1641,27 +1597,17 @@
, clip_instance_prop_unmapped_frame_range_( pcos::key::from_string( kOfxImageEffectPropUnmappedFrameRange ) )
, clip_instance_prop_unmapped_frame_rate_( pcos::key::from_string( kOfxImageEffectPropUnmappedFrameRate ) )
, clip_instance_prop_continuous_samples_( pcos::key::from_string( kOfxImageClipPropContinuousSamples ) )
- , image_instance_( image_instance )
- , name_( name )
{
- set_clip_instance_properties( );
+ set_clip_instance_properties( cd );
}
- virtual property_container_ptr get_property_set( )
- { return &clip_instance_props_; }
+ virtual property_container_ptr get_property_set( ) { return &clip_instance_props_; }
- property_container_ptr get_image( )
- {
- if( name_ == "Source" )
- im_.set_image( image_instance_->get_source( ) );
- else if( name_ == "Output" )
- im_.set_image( image_instance_->get_output( ) );
-
- return im_.get_property_set( );
- }
-
+ void set_image( il::image_type_ptr im ) { im_.set_image( im ); }
+ property_container_ptr get_image( ) { return im_.get_property_set( ); }
+
private:
- void set_clip_instance_properties( )
+ void set_clip_instance_properties( clip_descriptor& cd )
{
clip_instance_props_.append( clip_instance_prop_type_ = pl::string( kOfxTypeClip ) );
clip_instance_props_.append( clip_instance_prop_name_ = pl::string( "" ) );
@@ -1719,10 +1665,6 @@
private:
image im_;
-
- private:
- image_effect_instance_base* const image_instance_;
- pl::string name_;
};
class image_effect_instance :...
[truncated message content] |
|
From: <gl...@us...> - 2007-05-01 22:40:11
|
Revision: 111
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=111&view=rev
Author: glslang
Date: 2007-05-01 15:40:09 -0700 (Tue, 01 May 2007)
Log Message:
-----------
+ build and warning fix
Modified Paths:
--------------
lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp
Modified: lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp
===================================================================
--- lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp 2007-05-01 22:26:13 UTC (rev 110)
+++ lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp 2007-05-01 22:40:09 UTC (rev 111)
@@ -304,7 +304,7 @@
param_props_->append( base_double_param_descriptor_param_prop_default_ = 0.0 );
param_props_->append( base_double_param_descriptor_param_prop_increment_ = 1.0 );
param_props_->append( base_double_param_descriptor_param_prop_digits_ = 2 );
- param_props_->append( base_double_param_descriptor_param_prop_double_type_ = kOfxParamDoubleTypePlain );
+ param_props_->append( base_double_param_descriptor_param_prop_double_type_ = pl::string( kOfxParamDoubleTypePlain ) );
}
private:
@@ -910,7 +910,7 @@
param_props_->append( base_double_param_prop_default_ = 0.0 );
param_props_->append( base_double_param_prop_increment_ = 1.0 );
param_props_->append( base_double_param_prop_digits_ = 2 );
- param_props_->append( base_double_param_prop_double_type_ = kOfxParamDoubleTypePlain );
+ param_props_->append( base_double_param_prop_double_type_ = pl::string( kOfxParamDoubleTypePlain ) );
}
private:
@@ -2302,7 +2302,7 @@
OfxStatus memory_free( void* allocated_data )
{
- delete[ ] allocated_data;
+ delete[ ] ( char* ) allocated_data;
return kOfxStatOK;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-05-01 22:26:14
|
Revision: 110
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=110&view=rev
Author: glslang
Date: 2007-05-01 15:26:13 -0700 (Tue, 01 May 2007)
Log Message:
-----------
+ more ofx bindings
Modified Paths:
--------------
lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp
lib/openlibraries/src/openpluginlib/pl/pcos/property.hpp
lib/openlibraries/src/openpluginlib/pl/string.hpp
Modified: lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp
===================================================================
--- lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp 2007-05-01 01:24:13 UTC (rev 109)
+++ lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp 2007-05-01 22:26:13 UTC (rev 110)
@@ -39,11 +39,6 @@
namespace
{
typedef pcos::property_container* property_container_ptr;
- typedef std::vector<int> int_vec;
- typedef std::vector<unsigned int> uint_vec;
- typedef std::vector<double> double_vec;
- typedef std::vector<pl::string> string_vec;
- typedef std::vector<pl::wstring> wstring_vec;
void set_property_suite( OfxPropertySuiteV1& );
void set_image_effect_suite( OfxImageEffectSuiteV1& );
@@ -76,12 +71,31 @@
, param_descriptor_prop_param_prop_parent_( pcos::key::from_string( kOfxParamPropParent ) )
, param_descriptor_prop_param_prop_enabled_( pcos::key::from_string( kOfxParamPropEnabled ) )
, param_descriptor_prop_param_prop_data_ptr_( pcos::key::from_string( kOfxParamPropDataPtr ) )
- { }
+ {
+ set_param_descriptor_properties( );
+ }
virtual property_container_ptr get_property_set( )
{ return ¶m_descriptor_props_; }
private:
+ void set_param_descriptor_properties( )
+ {
+ param_descriptor_props_.append( param_descriptor_prop_type_ = pl::string( kOfxTypeParameter ) );
+ param_descriptor_props_.append( param_descriptor_prop_name_ = pl::string( ) );
+ param_descriptor_props_.append( param_descriptor_prop_label_ = pl::string( ) );
+ param_descriptor_props_.append( param_descriptor_prop_short_label_ = pl::string( ) );
+ param_descriptor_props_.append( param_descriptor_prop_long_label_ = pl::string( ) );
+ param_descriptor_props_.append( param_descriptor_prop_param_prop_secret_ = 0 );
+ param_descriptor_props_.append( param_descriptor_prop_param_prop_can_undo_ = 1 );
+ param_descriptor_props_.append( param_descriptor_prop_param_prop_hint_ = pl::string( ) );
+ param_descriptor_props_.append( param_descriptor_prop_param_prop_script_name_ = pl::string( ) );
+ param_descriptor_props_.append( param_descriptor_prop_param_prop_parent_ = pl::string( ) );
+ param_descriptor_props_.append( param_descriptor_prop_param_prop_enabled_ = 1 );
+ param_descriptor_props_.append( param_descriptor_prop_param_prop_data_ptr_ = ( void* ) 0 );
+ }
+
+ private:
pcos::property_container param_descriptor_props_;
pcos::property param_descriptor_prop_type_;
pcos::property param_descriptor_prop_name_;
@@ -102,18 +116,33 @@
{
public:
explicit value_param_descriptor( )
- : value_param_descriptor_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
- , value_param_descriptor_param_prop_animates_( pcos::key::from_string( kOfxParamPropAnimates ) )
+ : value_param_descriptor_param_prop_animates_( pcos::key::from_string( kOfxParamPropAnimates ) )
, value_param_descriptor_param_prop_is_animating_( pcos::key::from_string( kOfxParamPropIsAnimating ) )
, value_param_descriptor_param_prop_is_auto_keying_( pcos::key::from_string( kOfxParamPropIsAutoKeying ) )
, value_param_descriptor_param_prop_persistant_( pcos::key::from_string( kOfxParamPropPersistant ) )
, value_param_descriptor_param_prop_evaluate_on_change_( pcos::key::from_string( kOfxParamPropEvaluateOnChange ) )
, value_param_descriptor_param_prop_plugin_may_write_( pcos::key::from_string( kOfxParamPropPluginMayWrite ) )
, value_param_descriptor_param_prop_cache_invalidation_( pcos::key::from_string( kOfxParamPropCacheInvalidation ) )
- { }
+ {
+ set_value_param_descriptor_properties( );
+ }
private:
- pcos::property value_param_descriptor_param_prop_default_;
+ void set_value_param_descriptor_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( value_param_descriptor_param_prop_animates_ = 1 );
+ param_props_->append( value_param_descriptor_param_prop_is_animating_ = 0 );
+ param_props_->append( value_param_descriptor_param_prop_is_auto_keying_ = 0 );
+ param_props_->append( value_param_descriptor_param_prop_persistant_ = 1 );
+ param_props_->append( value_param_descriptor_param_prop_evaluate_on_change_ = 1 );
+ param_props_->append( value_param_descriptor_param_prop_plugin_may_write_ = 0 );
+ param_props_->append( value_param_descriptor_param_prop_cache_invalidation_ = pl::string( kOfxParamInvalidateValueChange ) );
+ }
+
+ private:
+
pcos::property value_param_descriptor_param_prop_animates_;
pcos::property value_param_descriptor_param_prop_is_animating_;
pcos::property value_param_descriptor_param_prop_is_auto_keying_;
@@ -127,11 +156,25 @@
{
public:
explicit string_param_descriptor( )
- : string_param_descriptor_param_prop_string_mode_( pcos::key::from_string( kOfxParamPropStringMode ) )
+ : string_param_descriptor_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
+ , string_param_descriptor_param_prop_string_mode_( pcos::key::from_string( kOfxParamPropStringMode ) )
, string_param_descriptor_param_prop_string_file_path_exists_( pcos::key::from_string( kOfxParamPropStringFilePathExists ) )
- { }
+ {
+ set_string_param_descriptor_properties( );
+ }
+
+ private:
+ void set_string_param_descriptor_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( string_param_descriptor_param_prop_default_ = pl::string( ) );
+ param_props_->append( string_param_descriptor_param_prop_string_mode_ = pl::string( kOfxParamStringIsSingleLine ) );
+ param_props_->append( string_param_descriptor_param_prop_string_file_path_exists_ = 1 );
+ }
private:
+ pcos::property string_param_descriptor_param_prop_default_;
pcos::property string_param_descriptor_param_prop_string_mode_;
pcos::property string_param_descriptor_param_prop_string_file_path_exists_;
};
@@ -140,13 +183,29 @@
{
public:
explicit int_param_descriptor( )
- : int_param_descriptor_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ : int_param_descriptor_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
+ , int_param_descriptor_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
, int_param_descriptor_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
, int_param_descriptor_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
, int_param_descriptor_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
- { }
+ {
+ set_int_param_descriptor_properties( );
+ }
private:
+ void set_int_param_descriptor_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( int_param_descriptor_param_prop_default_ = 0 );
+ param_props_->append( int_param_descriptor_param_prop_min_ = ( std::numeric_limits<int>::min )( ) );
+ param_props_->append( int_param_descriptor_param_prop_max_ = ( std::numeric_limits<int>::max )( ) );
+ param_props_->append( int_param_descriptor_param_prop_display_min_ = ( std::numeric_limits<int>::min )( ) );
+ param_props_->append( int_param_descriptor_param_prop_display_max_ = ( std::numeric_limits<int>::max )( ) );
+ }
+
+ private:
+ pcos::property int_param_descriptor_param_prop_default_;
pcos::property int_param_descriptor_param_prop_min_;
pcos::property int_param_descriptor_param_prop_max_;
pcos::property int_param_descriptor_param_prop_display_min_;
@@ -157,14 +216,31 @@
{
public:
explicit int2D_param_descriptor( )
- : int2D_param_descriptor_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ : int2D_param_descriptor_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
+ , int2D_param_descriptor_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
, int2D_param_descriptor_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
, int2D_param_descriptor_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
, int2D_param_descriptor_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
, int2D_param_descriptor_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
- { }
+ {
+ set_int2D_param_descriptor_properties( );
+ }
private:
+ void set_int2D_param_descriptor_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( int2D_param_descriptor_param_prop_default_ = pcos::int_vec( 2, 0 ) );
+ param_props_->append( int2D_param_descriptor_param_prop_min_ = pcos::int_vec( 2, ( std::numeric_limits<int>::min )( ) ) );
+ param_props_->append( int2D_param_descriptor_param_prop_max_ = pcos::int_vec( 2, ( std::numeric_limits<int>::max )( ) ) );
+ param_props_->append( int2D_param_descriptor_param_prop_display_min_ = pcos::int_vec( 2, ( std::numeric_limits<int>::min )( ) ) );
+ param_props_->append( int2D_param_descriptor_param_prop_display_max_ = pcos::int_vec( 2, ( std::numeric_limits<int>::max )( ) ) );
+ param_props_->append( int2D_param_descriptor_param_prop_dimension_label_ = pl::string_vec( 2 ) );
+ }
+
+ private:
+ pcos::property int2D_param_descriptor_param_prop_default_;
pcos::property int2D_param_descriptor_param_prop_min_;
pcos::property int2D_param_descriptor_param_prop_max_;
pcos::property int2D_param_descriptor_param_prop_display_min_;
@@ -176,14 +252,31 @@
{
public:
explicit int3D_param_descriptor( )
- : int3D_param_descriptor_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ : int3D_param_descriptor_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
+ , int3D_param_descriptor_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
, int3D_param_descriptor_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
, int3D_param_descriptor_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
, int3D_param_descriptor_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
, int3D_param_descriptor_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
- { }
+ {
+ set_int3D_param_descriptor_properties( );
+ }
private:
+ void set_int3D_param_descriptor_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( int3D_param_descriptor_param_prop_default_ = pcos::int_vec( 3, 0 ) );
+ param_props_->append( int3D_param_descriptor_param_prop_min_ = pcos::int_vec( 3, ( std::numeric_limits<int>::min )( ) ) );
+ param_props_->append( int3D_param_descriptor_param_prop_max_ = pcos::int_vec( 3, ( std::numeric_limits<int>::max )( ) ) );
+ param_props_->append( int3D_param_descriptor_param_prop_display_min_ = pcos::int_vec( 3, ( std::numeric_limits<int>::min )( ) ) );
+ param_props_->append( int3D_param_descriptor_param_prop_display_max_ = pcos::int_vec( 3, ( std::numeric_limits<int>::max )( ) ) );
+ param_props_->append( int3D_param_descriptor_param_prop_dimension_label_ = pl::string_vec( 3 ) );
+ }
+
+ private:
+ pcos::property int3D_param_descriptor_param_prop_default_;
pcos::property int3D_param_descriptor_param_prop_min_;
pcos::property int3D_param_descriptor_param_prop_max_;
pcos::property int3D_param_descriptor_param_prop_display_min_;
@@ -195,16 +288,33 @@
{
public:
explicit base_double_param_descriptor( )
- : base_double_param_descriptor_param_prop_increment_( pcos::key::from_string( kOfxParamPropIncrement ) )
+ : base_double_param_descriptor_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
+ , base_double_param_descriptor_param_prop_increment_( pcos::key::from_string( kOfxParamPropIncrement ) )
, base_double_param_descriptor_param_prop_digits_( pcos::key::from_string( kOfxParamPropDigits ) )
- { }
+ , base_double_param_descriptor_param_prop_double_type_( pcos::key::from_string( kOfxParamPropDoubleType ) )
+ {
+ set_base_double_param_descriptor_properties( );
+ }
+
+ private:
+ void set_base_double_param_descriptor_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( base_double_param_descriptor_param_prop_default_ = 0.0 );
+ param_props_->append( base_double_param_descriptor_param_prop_increment_ = 1.0 );
+ param_props_->append( base_double_param_descriptor_param_prop_digits_ = 2 );
+ param_props_->append( base_double_param_descriptor_param_prop_double_type_ = kOfxParamDoubleTypePlain );
+ }
private:
+ pcos::property base_double_param_descriptor_param_prop_default_;
pcos::property base_double_param_descriptor_param_prop_increment_;
pcos::property base_double_param_descriptor_param_prop_digits_;
+ pcos::property base_double_param_descriptor_param_prop_double_type_;
};
- class double_param_descriptor : public value_param_descriptor
+ class double_param_descriptor : public base_double_param_descriptor
{
public:
explicit double_param_descriptor( )
@@ -213,7 +323,21 @@
, double_param_descriptor_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
, double_param_descriptor_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
, double_param_descriptor_param_prop_show_time_marker_( pcos::key::from_string( kOfxParamPropShowTimeMarker ) )
- { }
+ {
+ set_double_param_descriptor_properties( );
+ }
+
+ private:
+ void set_double_param_descriptor_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( double_param_descriptor_param_prop_min_ = ( std::numeric_limits<double>::min )( ) );
+ param_props_->append( double_param_descriptor_param_prop_max_ = ( std::numeric_limits<double>::max )( ) );
+ param_props_->append( double_param_descriptor_param_prop_display_min_ = ( std::numeric_limits<double>::min )( ) );
+ param_props_->append( double_param_descriptor_param_prop_display_max_ = ( std::numeric_limits<double>::max )( ) );
+ param_props_->append( double_param_descriptor_param_prop_show_time_marker_ = 0 );
+ }
private:
pcos::property double_param_descriptor_param_prop_min_;
@@ -223,7 +347,7 @@
pcos::property double_param_descriptor_param_prop_show_time_marker_;
};
- class double2D_param_descriptor : public value_param_descriptor
+ class double2D_param_descriptor : public base_double_param_descriptor
{
public:
explicit double2D_param_descriptor( )
@@ -233,6 +357,18 @@
, double2D_param_descriptor_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
, double2D_param_descriptor_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
{ }
+
+ private:
+ void set_double2D_param_descriptor_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( double2D_param_descriptor_param_prop_min_ = pcos::double_vec( 2, ( std::numeric_limits<double>::min )( ) ) );
+ param_props_->append( double2D_param_descriptor_param_prop_max_ = pcos::double_vec( 2, ( std::numeric_limits<double>::max )( ) ) );
+ param_props_->append( double2D_param_descriptor_param_prop_display_min_ = pcos::double_vec( 2, ( std::numeric_limits<double>::min )( ) ) );
+ param_props_->append( double2D_param_descriptor_param_prop_display_max_ = pcos::double_vec( 2, ( std::numeric_limits<double>::max )( ) ) );
+ param_props_->append( double2D_param_descriptor_param_prop_dimension_label_ = pl::string_vec( 2 ) );
+ }
private:
pcos::property double2D_param_descriptor_param_prop_min_;
@@ -242,7 +378,7 @@
pcos::property double2D_param_descriptor_param_prop_dimension_label_;
};
- class double3D_param_descriptor : public value_param_descriptor
+ class double3D_param_descriptor : public base_double_param_descriptor
{
public:
explicit double3D_param_descriptor( )
@@ -251,7 +387,21 @@
, double3D_param_descriptor_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
, double3D_param_descriptor_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
, double3D_param_descriptor_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
- { }
+ {
+ set_double3D_param_descriptor_properties( );
+ }
+
+ private:
+ void set_double3D_param_descriptor_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( double3D_param_descriptor_param_prop_min_ = pcos::double_vec( 3, ( std::numeric_limits<double>::min )( ) ) );
+ param_props_->append( double3D_param_descriptor_param_prop_max_ = pcos::double_vec( 3, ( std::numeric_limits<double>::max )( ) ) );
+ param_props_->append( double3D_param_descriptor_param_prop_display_min_ = pcos::double_vec( 3, ( std::numeric_limits<double>::min )( ) ) );
+ param_props_->append( double3D_param_descriptor_param_prop_display_max_ = pcos::double_vec( 3, ( std::numeric_limits<double>::max )( ) ) );
+ param_props_->append( double3D_param_descriptor_param_prop_dimension_label_ = pl::string_vec( 3 ) );
+ }
private:
pcos::property double3D_param_descriptor_param_prop_min_;
@@ -279,7 +429,21 @@
{
public:
explicit boolean_param_descriptor( )
- { }
+ : boolean_param_descriptor_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
+ {
+ set_boolean_param_descriptor_properties( );
+ }
+
+ private:
+ void set_boolean_param_descriptor_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( boolean_param_descriptor_param_prop_default_ = 0 );
+ }
+
+ private:
+ pcos::property boolean_param_descriptor_param_prop_default_;
};
class choice_param_descriptor : public value_param_descriptor
@@ -317,9 +481,15 @@
{ }
};
- class param_set_descriptor : public Ofx_base
+ class param_set_base : public Ofx_base
{
public:
+ virtual OfxParamSetHandle get_param_set( ) = 0;
+ };
+
+ class param_set_descriptor : public param_set_base
+ {
+ public:
typedef pl::string key_type;
typedef boost::shared_ptr<param_descriptor> param_descriptor_ptr;
@@ -421,7 +591,14 @@
}
virtual property_container_ptr get_property_set( )
- { return ¶m_set_descriptor_props_; }
+ {
+ return ¶m_set_descriptor_props_;
+ }
+
+ virtual OfxParamSetHandle get_param_set( )
+ {
+ return ( OfxParamSetHandle ) this;
+ }
private:
container params_;
@@ -445,7 +622,9 @@
, param_prop_param_prop_parent_( pcos::key::from_string( kOfxParamPropParent ) )
, param_prop_param_prop_enabled_( pcos::key::from_string( kOfxParamPropEnabled ) )
, param_prop_param_prop_data_ptr_( pcos::key::from_string( kOfxParamPropDataPtr ) )
- { }
+ {
+ set_param_properties( );
+ }
virtual property_container_ptr get_property_set( )
{ return ¶m_props_; }
@@ -454,6 +633,24 @@
virtual pl::string get_type( ) = 0;
private:
+ void set_param_properties( )
+ {
+ param_props_.append( param_prop_type_ = pl::string( kOfxTypeParameter ) );
+ param_props_.append( param_prop_name_ = pl::string( ) );
+ param_props_.append( param_prop_label_ = pl::string( ) );
+ param_props_.append( param_prop_short_label_ = pl::string( ) );
+ param_props_.append( param_prop_long_label_ = pl::string( ) );
+ param_props_.append( param_prop_name_ = pl::string( ) );
+ param_props_.append( param_prop_param_prop_secret_ = 0 );
+ param_props_.append( param_prop_param_prop_can_undo_ = 1 );
+ param_props_.append( param_prop_param_prop_hint_ = pl::string( ) );
+ param_props_.append( param_prop_param_prop_script_name_ = pl::string( ) );
+ param_props_.append( param_prop_param_prop_parent_ = pl::string( ) );
+ param_props_.append( param_prop_param_prop_enabled_ = 1 );
+ param_props_.append( param_prop_param_prop_data_ptr_ = ( void* ) 0 );
+ }
+
+ private:
pcos::property_container param_props_;
pcos::property param_prop_type_;
pcos::property param_prop_name_;
@@ -474,18 +671,32 @@
{
public:
explicit value_param( )
- : value_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
- , value_param_prop_animates_( pcos::key::from_string( kOfxParamPropAnimates ) )
+ : value_param_prop_animates_( pcos::key::from_string( kOfxParamPropAnimates ) )
, value_param_prop_is_animating_( pcos::key::from_string( kOfxParamPropIsAnimating ) )
, value_param_prop_is_auto_keying_( pcos::key::from_string( kOfxParamPropIsAutoKeying ) )
, value_param_prop_persistant_( pcos::key::from_string( kOfxParamPropPersistant ) )
, value_param_prop_evaluate_on_change_( pcos::key::from_string( kOfxParamPropEvaluateOnChange ) )
, value_param_prop_plugin_may_write_( pcos::key::from_string( kOfxParamPropPluginMayWrite ) )
, value_param_prop_cache_invalidation_( pcos::key::from_string( kOfxParamPropCacheInvalidation ) )
- { }
+ {
+ set_value_param_properties( );
+ }
private:
- pcos::property value_param_prop_default_;
+ void set_value_param_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( value_param_prop_animates_ = 1 );
+ param_props_->append( value_param_prop_is_animating_ = 0 );
+ param_props_->append( value_param_prop_is_auto_keying_ = 0 );
+ param_props_->append( value_param_prop_persistant_ = 1 );
+ param_props_->append( value_param_prop_evaluate_on_change_ = 1 );
+ param_props_->append( value_param_prop_plugin_may_write_ = 0 );
+ param_props_->append( value_param_prop_cache_invalidation_ = pl::string( kOfxParamInvalidateValueChange ) );
+ }
+
+ private:
pcos::property value_param_prop_animates_;
pcos::property value_param_prop_is_animating_;
pcos::property value_param_prop_is_auto_keying_;
@@ -500,9 +711,12 @@
public:
explicit string_param( )
: string_param_value_( pcos::key::from_string( "value" ) )
+ , string_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
, string_param_prop_string_mode_( pcos::key::from_string( kOfxParamPropStringMode ) )
, string_param_prop_string_file_path_exists_( pcos::key::from_string( kOfxParamPropStringFilePathExists ) )
- { }
+ {
+ set_string_param_properties( );
+ }
virtual pcos::property get_value( )
{
@@ -513,9 +727,21 @@
{
return kOfxParamTypeString;
}
-
+
private:
+ void set_string_param_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( string_param_value_ = pl::string( ) );
+ param_props_->append( string_param_prop_default_ = pl::string( ) );
+ param_props_->append( string_param_prop_string_mode_ = pl::string( kOfxParamStringIsSingleLine ) );
+ param_props_->append( string_param_prop_string_file_path_exists_ = 1 );
+ }
+
+ private:
pcos::property string_param_value_;
+ pcos::property string_param_prop_default_;
pcos::property string_param_prop_string_mode_;
pcos::property string_param_prop_string_file_path_exists_;
};
@@ -525,11 +751,14 @@
public:
explicit int_param( )
: int_param_value_( pcos::key::from_string( "value" ) )
+ , int_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
, int_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
, int_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
, int_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
, int_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
- { }
+ {
+ set_int_param_properties( );
+ }
virtual pcos::property get_value( )
{
@@ -540,9 +769,23 @@
{
return kOfxParamTypeInteger;
}
+
+ private:
+ void set_int_param_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( int_param_value_ = 0 );
+ param_props_->append( int_param_prop_default_ = 0 );
+ param_props_->append( int_param_prop_min_ = ( std::numeric_limits<int>::min )( ) );
+ param_props_->append( int_param_prop_max_ = ( std::numeric_limits<int>::max )( ) );
+ param_props_->append( int_param_prop_display_min_ = ( std::numeric_limits<int>::min )( ) );
+ param_props_->append( int_param_prop_display_max_ = ( std::numeric_limits<int>::max )( ) );
+ }
private:
pcos::property int_param_value_;
+ pcos::property int_param_prop_default_;
pcos::property int_param_prop_min_;
pcos::property int_param_prop_max_;
pcos::property int_param_prop_display_min_;
@@ -554,12 +797,15 @@
public:
explicit int2D_param( )
: int2D_param_value_( pcos::key::from_string( "value" ) )
+ , int2D_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
, int2D_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
, int2D_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
, int2D_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
, int2D_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
, int2D_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
- { }
+ {
+ set_int2D_param_properties( );
+ }
virtual pcos::property get_value( )
{
@@ -570,9 +816,24 @@
{
return kOfxParamTypeInteger2D;
}
+
+ private:
+ void set_int2D_param_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( int2D_param_value_ = pcos::int_vec( 2, 0 ) );
+ param_props_->append( int2D_param_prop_default_ = pcos::int_vec( 2, 0 ) );
+ param_props_->append( int2D_param_prop_min_ = pcos::int_vec( 2, ( std::numeric_limits<int>::min )( ) ) );
+ param_props_->append( int2D_param_prop_max_ = pcos::int_vec( 2, ( std::numeric_limits<int>::max )( ) ) );
+ param_props_->append( int2D_param_prop_display_min_ = pcos::int_vec( 2, ( std::numeric_limits<int>::min )( ) ) );
+ param_props_->append( int2D_param_prop_display_max_ = pcos::int_vec( 2, ( std::numeric_limits<int>::max )( ) ) );
+ param_props_->append( int2D_param_prop_dimension_label_ = pl::string_vec( 2 ) );
+ }
private:
pcos::property int2D_param_value_;
+ pcos::property int2D_param_prop_default_;
pcos::property int2D_param_prop_min_;
pcos::property int2D_param_prop_max_;
pcos::property int2D_param_prop_display_min_;
@@ -585,12 +846,15 @@
public:
explicit int3D_param( )
: int3D_param_value_( pcos::key::from_string( "value" ) )
- , int3D_param_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
- , int3D_param_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
- , int3D_param_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
- , int3D_param_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
- , int3D_param_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
- { }
+ , int3D_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
+ , int3D_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , int3D_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , int3D_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , int3D_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ , int3D_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
+ {
+ set_int3D_param_properties( );
+ }
virtual pcos::property get_value( )
{
@@ -603,38 +867,72 @@
}
private:
+ void set_int3D_param_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( int3D_param_value_ = pcos::int_vec( 3, 0 ) );
+ param_props_->append( int3D_param_prop_default_ = pcos::int_vec( 3, 0 ) );
+ param_props_->append( int3D_param_prop_min_ = pcos::int_vec( 3, ( std::numeric_limits<int>::min )( ) ) );
+ param_props_->append( int3D_param_prop_max_ = pcos::int_vec( 3, ( std::numeric_limits<int>::max )( ) ) );
+ param_props_->append( int3D_param_prop_display_min_ = pcos::int_vec( 3, ( std::numeric_limits<int>::min )( ) ) );
+ param_props_->append( int3D_param_prop_display_max_ = pcos::int_vec( 3, ( std::numeric_limits<int>::max )( ) ) );
+ param_props_->append( int3D_param_prop_dimension_label_ = pl::string_vec( 3 ) );
+ }
+
+ private:
pcos::property int3D_param_value_;
- pcos::property int3D_param_param_prop_min_;
- pcos::property int3D_param_param_prop_max_;
- pcos::property int3D_param_param_prop_display_min_;
- pcos::property int3D_param_param_prop_display_max_;
- pcos::property int3D_param_param_prop_dimension_label_;
+ pcos::property int3D_param_prop_default_;
+ pcos::property int3D_param_prop_min_;
+ pcos::property int3D_param_prop_max_;
+ pcos::property int3D_param_prop_display_min_;
+ pcos::property int3D_param_prop_display_max_;
+ pcos::property int3D_param_prop_dimension_label_;
};
class base_double_param : public value_param
{
public:
explicit base_double_param( )
- : base_double_param_prop_increment_( pcos::key::from_string( kOfxParamPropIncrement ) )
+ : base_double_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
+ , base_double_param_prop_increment_( pcos::key::from_string( kOfxParamPropIncrement ) )
, base_double_param_prop_digits_( pcos::key::from_string( kOfxParamPropDigits ) )
- { }
+ , base_double_param_prop_double_type_( pcos::key::from_string( kOfxParamPropDoubleType ) )
+ {
+ set_base_double_param_properties( );
+ }
private:
+ void set_base_double_param_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( base_double_param_prop_default_ = 0.0 );
+ param_props_->append( base_double_param_prop_increment_ = 1.0 );
+ param_props_->append( base_double_param_prop_digits_ = 2 );
+ param_props_->append( base_double_param_prop_double_type_ = kOfxParamDoubleTypePlain );
+ }
+
+ private:
+ pcos::property base_double_param_prop_default_;
pcos::property base_double_param_prop_increment_;
pcos::property base_double_param_prop_digits_;
+ pcos::property base_double_param_prop_double_type_;
};
- class double_param : public value_param
+ class double_param : public base_double_param
{
public:
explicit double_param( )
: double_param_value_( pcos::key::from_string( "value" ) )
- , double_param_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
- , double_param_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
- , double_param_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
- , double_param_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
- , double_param_param_prop_show_time_marker_( pcos::key::from_string( kOfxParamPropShowTimeMarker ) )
- { }
+ , double_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , double_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , double_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , double_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ , double_param_prop_show_time_marker_( pcos::key::from_string( kOfxParamPropShowTimeMarker ) )
+ {
+ set_double_param_properties( );
+ }
virtual pcos::property get_value( )
{
@@ -647,25 +945,40 @@
}
private:
+ void set_double_param_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( double_param_value_ = 0.0 );
+ param_props_->append( double_param_prop_min_ = ( std::numeric_limits<double>::min )( ) );
+ param_props_->append( double_param_prop_max_ = ( std::numeric_limits<double>::max )( ) );
+ param_props_->append( double_param_prop_display_min_ = ( std::numeric_limits<double>::min )( ) );
+ param_props_->append( double_param_prop_display_max_ = ( std::numeric_limits<double>::max )( ) );
+ param_props_->append( double_param_prop_show_time_marker_ = 0 );
+ }
+
+ private:
pcos::property double_param_value_;
- pcos::property double_param_param_prop_min_;
- pcos::property double_param_param_prop_max_;
- pcos::property double_param_param_prop_display_min_;
- pcos::property double_param_param_prop_display_max_;
- pcos::property double_param_param_prop_show_time_marker_;
+ pcos::property double_param_prop_min_;
+ pcos::property double_param_prop_max_;
+ pcos::property double_param_prop_display_min_;
+ pcos::property double_param_prop_display_max_;
+ pcos::property double_param_prop_show_time_marker_;
};
- class double2D_param : public value_param
+ class double2D_param : public base_double_param
{
public:
explicit double2D_param( )
: double2D_param_value_( pcos::key::from_string( "value" ) )
- , double2D_param_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
- , double2D_param_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
- , double2D_param_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
- , double2D_param_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
- , double2D_param_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
- { }
+ , double2D_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , double2D_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , double2D_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , double2D_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ , double2D_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
+ {
+ set_double2D_param_properties( );
+ }
virtual pcos::property get_value( )
{
@@ -678,25 +991,40 @@
}
private:
+ void set_double2D_param_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( double2D_param_value_ = pcos::double_vec( 2, 0.0 ) );
+ param_props_->append( double2D_param_prop_min_ = pcos::double_vec( 2, ( std::numeric_limits<double>::min )( ) ) );
+ param_props_->append( double2D_param_prop_max_ = pcos::double_vec( 2, ( std::numeric_limits<double>::max )( ) ) );
+ param_props_->append( double2D_param_prop_display_min_ = pcos::double_vec( 2, ( std::numeric_limits<double>::min )( ) ) );
+ param_props_->append( double2D_param_prop_display_max_ = pcos::double_vec( 2, ( std::numeric_limits<double>::max )( ) ) );
+ param_props_->append( double2D_param_prop_dimension_label_ = pl::string_vec( 2 ) );
+ }
+
+ private:
pcos::property double2D_param_value_;
- pcos::property double2D_param_param_prop_min_;
- pcos::property double2D_param_param_prop_max_;
- pcos::property double2D_param_param_prop_display_min_;
- pcos::property double2D_param_param_prop_display_max_;
- pcos::property double2D_param_param_prop_dimension_label_;
+ pcos::property double2D_param_prop_min_;
+ pcos::property double2D_param_prop_max_;
+ pcos::property double2D_param_prop_display_min_;
+ pcos::property double2D_param_prop_display_max_;
+ pcos::property double2D_param_prop_dimension_label_;
};
- class double3D_param : public value_param
+ class double3D_param : public base_double_param
{
public:
explicit double3D_param( )
: double3D_param_value_( pcos::key::from_string( "value" ) )
- , double3D_param_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
- , double3D_param_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
- , double3D_param_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
- , double3D_param_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
- , double3D_param_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
- { }
+ , double3D_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , double3D_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , double3D_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , double3D_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ , double3D_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
+ {
+ set_double3D_param_properties( );
+ }
virtual pcos::property get_value( )
{
@@ -707,14 +1035,27 @@
{
return kOfxParamTypeDouble3D;
}
+
+ private:
+ void set_double3D_param_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( double3D_param_value_ = pcos::double_vec( 3, 0.0 ) );
+ param_props_->append( double3D_param_prop_min_ = pcos::double_vec( 3, ( std::numeric_limits<double>::min )( ) ) );
+ param_props_->append( double3D_param_prop_max_ = pcos::double_vec( 3, ( std::numeric_limits<double>::max )( ) ) );
+ param_props_->append( double3D_param_prop_display_min_ = pcos::double_vec( 3, ( std::numeric_limits<double>::min )( ) ) );
+ param_props_->append( double3D_param_prop_display_max_ = pcos::double_vec( 3, ( std::numeric_limits<double>::max )( ) ) );
+ param_props_->append( double3D_param_prop_dimension_label_ = pl::string_vec( 3 ) );
+ }
private:
pcos::property double3D_param_value_;
- pcos::property double3D_param_param_prop_min_;
- pcos::property double3D_param_param_prop_max_;
- pcos::property double3D_param_param_prop_display_min_;
- pcos::property double3D_param_param_prop_display_max_;
- pcos::property double3D_param_param_prop_dimension_label_;
+ pcos::property double3D_param_prop_min_;
+ pcos::property double3D_param_prop_max_;
+ pcos::property double3D_param_prop_display_min_;
+ pcos::property double3D_param_prop_display_max_;
+ pcos::property double3D_param_prop_dimension_label_;
};
class rgb_param : public value_param
@@ -764,7 +1105,10 @@
public:
explicit boolean_param( )
: boolean_param_value_( pcos::key::from_string( "value" ) )
- { }
+ , boolean_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
+ {
+ set_boolean_param_properties( );
+ }
virtual pcos::property get_value( )
{
@@ -777,7 +1121,17 @@
}
private:
+ void set_boolean_param_properties( )
+ {
+ property_container_ptr param_props_ = get_property_set( );
+
+ param_props_->append( boolean_param_value_ = 0 );
+ param_props_->append( boolean_param_prop_default_ = 0 );
+ }
+
+ private:
pcos::property boolean_param_value_;
+ pcos::property boolean_param_prop_default_;
};
class choice_param : public value_param
@@ -885,7 +1239,7 @@
pcos::property custom_param_value_;
};
- class param_set : public Ofx_base
+ class param_set : public param_set_base
{
public:
typedef pl::string key_type;
@@ -978,8 +1332,15 @@
}
virtual property_container_ptr get_property_set( )
- { return ¶m_set_props_; }
-
+ {
+ return ¶m_set_props_;
+ }
+
+ virtual OfxParamSetHandle get_param_set( )
+ {
+ return ( OfxParamSetHandle ) this;
+ }
+
param* find_param( const pl::string& name )
{
typedef container::const_iterator const_iterator;
@@ -1029,7 +1390,7 @@
if( !dst_img )
return false;
- int_vec bounds_and_rod( 4 );
+ pcos::int_vec bounds_and_rod( 4 );
bounds_and_rod[ 0 ] = 0;
bounds_and_rod[ 1 ] = 0;
bounds_and_rod[ 2 ] = dst_img->width( );
@@ -1046,7 +1407,7 @@
private:
void set_image_properties( )
{
- double_vec render_scale( 2 );
+ pcos::double_vec render_scale( 2 );
render_scale[ 0 ] = 1.0;
render_scale[ 1 ] = 1.0;
@@ -1057,8 +1418,8 @@
image_props_.append( image_effect_prop_render_scale_ = render_scale );
image_props_.append( image_prop_pixel_aspect_ratio_ = 1.0 );
image_props_.append( image_prop_data_ = ( void* ) 0 );
- image_props_.append( image_prop_bounds_ = int_vec( 4 ) );
- image_props_.append( image_prop_region_of_definition_ = int_vec( 4 ) );
+ image_props_.append( image_prop_bounds_ = pcos::int_vec( 4 ) );
+ image_props_.append( image_prop_region_of_definition_ = pcos::int_vec( 4 ) );
image_props_.append( image_prop_row_bytes_ = 0 );
image_props_.append( image_prop_field_ = pl::string( kOfxImageFieldNone ) );
image_props_.append( image_prop_unique_identifier_ = pl::string( "No Unique Identifier" ) );
@@ -1110,7 +1471,7 @@
clip_descriptor_props_.append( clip_descriptor_prop_label_ = pl::string( "" ) );
clip_descriptor_props_.append( clip_descriptor_prop_short_label_ = pl::string( "" ) );
clip_descriptor_props_.append( clip_descriptor_prop_long_label_ = pl::string( "" ) );
- clip_descriptor_props_.append( clip_descriptor_prop_supported_components_ = string_vec( ) );
+ clip_descriptor_props_.append( clip_descriptor_prop_supported_components_ = pl::string_vec( ) );
clip_descriptor_props_.append( clip_descriptor_prop_temporal_clip_access_ = 0 );
clip_descriptor_props_.append( clip_descriptor_prop_optional_ = 0 );
clip_descriptor_props_.append( clip_descriptor_prop_field_extraction_ = pl::string( kOfxImageFieldDoubled ) );
@@ -1195,14 +1556,14 @@
private:
void set_image_effect_descriptor_properties( )
{
- string_vec pixel_depths;
+ pl::string_vec pixel_depths;
pixel_depths.push_back( kOfxBitDepthNone );
effect_descriptor_props_.append( image_effect_prop_type_ = pl::string( kOfxTypeImageEffect ) );
effect_descriptor_props_.append( image_effect_prop_label_ = pl::string( kOfxTypeImageEffect ) );
effect_descriptor_props_.append( image_effect_prop_short_label_ = pl::string( kOfxTypeImageEffect ) );
effect_descriptor_props_.append( image_effect_prop_long_label_ = pl::string( kOfxTypeImageEffect ) );
- effect_descriptor_props_.append( image_effect_prop_supported_contexts_ = string_vec( ) );
+ effect_descriptor_props_.append( image_effect_prop_supported_contexts_ = pl::string_vec( ) );
effect_descriptor_props_.append( image_effect_prop_grouping_ = pl::string( "" ) );
effect_descriptor_props_.append( image_effect_prop_single_instance_ = 0 );
effect_descriptor_props_.append( image_effect_render_thread_safety_ = pl::string( kOfxImageEffectRenderUnsafe ) );
@@ -1307,7 +1668,7 @@
clip_instance_props_.append( clip_instance_prop_label_ = pl::string( "" ) );
clip_instance_props_.append( clip_instance_prop_short_label_ = pl::string( "" ) );
clip_instance_props_.append( clip_instance_prop_long_label_ = pl::string( "" ) );
- clip_instance_props_.append( clip_instance_prop_supported_components_ = string_vec( ) );
+ clip_instance_props_.append( clip_instance_prop_supported_components_ = pl::string_vec( ) );
clip_instance_props_.append( clip_instance_prop_temporal_clip_access_ = 0 );
clip_instance_props_.append( clip_instance_prop_optional_ = 0 );
clip_instance_props_.append( clip_instance_prop_field_extraction_ = pl::string( kOfxImageFieldDoubled ) );
@@ -1320,10 +1681,10 @@
clip_instance_props_.append( clip_instance_prop_premultiplication_ = pl::string( kOfxImageOpaque ) );
clip_instance_props_.append( clip_instance_prop_pixel_aspect_ratio_ = 0.0 );
clip_instance_props_.append( clip_instance_prop_frame_rate_ = 0.0 );
- clip_instance_props_.append( clip_instance_prop_frame_range_ = double_vec( 2 ) );
+ clip_instance_props_.append( clip_instance_prop_frame_range_ = pcos::double_vec( 2 ) );
clip_instance_props_.append( clip_instance_prop_field_order_ = pl::string( kOfxImageFieldNone ) );
clip_instance_props_.append( clip_instance_prop_connected_ = 0 );
- clip_instance_props_.append( clip_instance_prop_unmapped_frame_range_ = double_vec( 2 ) );
+ clip_instance_props_.append( clip_instance_prop_unmapped_frame_range_ = pcos::double_vec( 2 ) );
clip_instance_props_.append( clip_instance_prop_unmapped_frame_rate_ = 0.0 );
clip_instance_props_.append( clip_instance_prop_continuous_samples_ = 0 );
}
@@ -1431,9 +1792,9 @@
effect_instance_props_.append( image_effect_instance_prop_type_ = pl::string( kOfxTypeImageEffectInstance ) );
effect_instance_props_.append( image_effect_instance_prop_context_ = pl::string( kOfxImageEffectContextFilter ) );
effect_instance_props_.append( image_effect_instance_prop_instance_data_ = static_cast<void*>( 0 ) );
- effect_instance_props_.append( image_effect_instance_prop_project_size_ = double_vec( 2 ) );
- effect_instance_props_.append( image_effect_instance_prop_project_offset_ = double_vec( 2 ) );
- effect_instance_props_.append( image_effect_instance_prop_project_extent_ = double_vec( 2 ) );
+ effect_instance_props_.append( image_effect_instance_prop_project_size_ = pcos::double_vec( 2 ) );
+ effect_instance_props_.append( image_effect_instance_prop_project_offset_ = pcos::double_vec( 2 ) );
+ effect_instance_props_.append( image_effect_instance_prop_project_extent_ = pcos::double_vec( 2 ) );
effect_instance_props_.append( image_effect_instance_prop_project_pixel_aspect_ratio_ = 0.0 );
effect_instance_props_.append( image_effect_instance_prop_effect_duration_ = 0.0 );
effect_instance_props_.append( image_effect_instance_prop_sequential_render_ = 0 );
@@ -1547,18 +1908,18 @@
image_effect_instance_.set_output( il::allocate( src->pf( ), src->width( ), src->height( ) ) );
pcos::property_container sequence_in_args;
- sequence_in_args.append( sequence_prop_frame_range_ = double_vec( 2 ) );
+ sequence_in_args.append( sequence_prop_frame_range_ = pcos::double_vec( 2 ) );
sequence_in_args.append( sequence_prop_frame_step_ = 1.0 );
sequence_in_args.append( sequence_prop_is_interactive_ = 0 );
- sequence_in_args.append( sequence_prop_render_scale_ = double_vec( 2 ) );
+ sequence_in_args.append( sequence_prop_render_scale_ = pcos::double_vec( 2 ) );
- int_vec render_win( 4 );
+ pcos::int_vec render_win( 4 );
render_win[ 0 ] = 0;
render_win[ 1 ] = 0;
render_win[ 2 ] = src->width( );
render_win[ 3 ] = src->height( );
- int_vec render_scale( 2 );
+ pcos::int_vec render_scale( 2 );
render_scale[ 0 ] = 1;
render_scale[ 1 ] = 1;
@@ -1638,7 +1999,7 @@
host_props_.append( host_prop_max_parameters_ = -1 );
host_props_.append( host_prop_max_pages_ = 0 );
host_props_.append( host_prop_page_row_column_count_ = 0 );
- host_props_.append( host_prop_this_pointer_ = this );
+ host_props_.append( host_prop_this_pointer_ = ( void* ) this );
}
void set_suites( )
@@ -1657,10 +2018,10 @@
{
// Introduce support for multiple contexts but
// constrain the actual executed code to filters.
- typedef string_vec::const_iterator const_iterator;
+ typedef pl::string_vec::const_iterator const_iterator;
property_container_ptr property_set = image_effect_descriptor_.get_property_set( );
- string_vec contexts = property_set->get_property_with_key( pcos::key::from_string( kOfxImageEffectPropSupportedContexts ) ).value<string_vec>( );
+ pl::string_vec contexts = property_set->get_property_with_key( pcos::key::from_string( kOfxImageEffectPropSupportedContexts ) ).value<pl::string_vec>( );
for( const_iterator I = contexts.begin( ); I != contexts.end( ); ++I )
{
@@ -1835,32 +2196,32 @@
// Property Suite.
OfxStatus prop_set_string( OfxPropertySetHandle properties, const char* property, int index, const char* value )
{
- return set_single_property<pl::string, string_vec>( properties, property, index, value );
+ return set_single_property<pl::string, pl::string_vec>( properties, property, index, value );
}
OfxStatus prop_set_double( OfxPropertySetHandle properties, const char* property, int index, double value )
{
- return set_single_property<double, double_vec>( properties, property, index, value );
+ return set_single_property<double, pcos::double_vec>( properties, property, index, value );
}
OfxStatus prop_set_int( OfxPropertySetHandle properties, const char* property, int index, int value )
{
- return set_single_property<int, int_vec>( properties, property, index, value );
+ return set_single_property<int, pcos::int_vec>( properties, property, index, value );
}
OfxStatus prop_set_stringN( OfxPropertySetHandle properties, const char* property, int count, const char** value )
{
- return set_multiple_property<const char*, string_vec>( properties, property, count, value );
+ return set_multiple_property<const char*, pl::string_vec>( properties, property, count, value );
}
OfxStatus prop_set_doubleN( OfxPropertySetHandle properties, const char* property, int count, double* value )
{
- return set_multiple_property<double, double_vec>( properties, property, count, value );
+ return set_multiple_property<double, pcos::double_vec>( properties, property, count, value );
}
OfxStatus prop_set_intN( OfxPropertySetHandle properties, const char* property, int count, int* value )
{
- return set_multiple_property<int, int_vec>( properties, property, count, value );
+ return set_multiple_property<int, pcos::int_vec>( properties, property, count, value );
}
OfxStatus prop_get_pointer( OfxPropertySetHandle properties, const char* property, int index, void** value )
@@ -1878,9 +2239,9 @@
pcos::property_container* prop_set = ( pcos::property_container* ) properties;
pcos::property src = prop_set->get_property_with_string( property );
- if( src.is_a<string_vec>( ) )
+ if( src.is_a<pl::string_vec>( ) )
{
- string_vec val = src.value<string_vec>( );
+ pl::string_vec val = src.value<pl::string_vec>( );
*value = const_cast<char*>( val[ index ].c_str( ) );
}
else
@@ -1893,12 +2254,12 @@
OfxStatus prop_get_double( OfxPropertySetHandle properties, const char* property, int index, double* value )
{
- return get_single_property<double, double_vec>( properties, property, index, value );
+ return get_single_property<double, pcos::double_vec>( properties, property, index, value );
}
OfxStatus prop_get_int( OfxPropertySetHandle properties, const char* property, int index, int* value )
{
- return get_single_property<int, int_vec>( properties, property, index, value );
+ return get_single_property<int, pcos::int_vec>( properties, property, index, value );
}
OfxStatus prop_get_stringN( OfxPropertySetHandle properties, const char* property, int count, char** value )
@@ -1906,9 +2267,9 @@
pcos::property_container* prop_set = ( pcos::property_container* ) properties;
pcos::property src = prop_set->get_property_with_string( property );
- if( src.is_a<string_vec>( ) )
+ if( src.is_a<pl::string_vec>( ) )
{
- string_vec val = src.value<string_vec>( );
+ pl::string_vec val = src.value<pl::string_vec>( );
for( int i = 0; i < count; ++i )
value[ i ] = const_cast<char*>( src.value<opl::string>( ).c_str( ) );
}
@@ -1918,12 +2279,12 @@
OfxStatus prop_get_doubleN( OfxPropertySetHandle properties, const char* property, int count, double* value )
{
- return get_multiple_property<double, double_vec>( properties, property, count, value );
+ return get_multiple_property<double, pcos::double_vec>( properties, property, count, value );
}
OfxStatus prop_get_intN( OfxPropertySetHandle properties, const char* property, int count, int* value )
{
- return get_multiple_property<int, int_vec>( properties, property, count, value );
+ return get_multiple_property<int, pcos::int_vec>( properties, property, count, value );
}
// Memory Suite.
@@ -2393,6 +2754,13 @@
OfxStatus get_param_set( OfxImageEffectHandle image_effect, OfxParamSetHandle* param_set )
{
+ param_set_base* pset = ( param_set_base* ) image_effect;
+ if( !pset )
+ return kOfxStatErrBadHandle;
+
+ if( param_set )
+ *param_set = pset->get_param_set( );
+
return kOfxStatOK;
}
@@ -2449,7 +2817,7 @@
return kOfxStatErrBadHandle;
property_container_ptr image = instance->get_image( );
- int_vec b = image->get_property_with_string( kOfxImagePropBounds ).value<int_vec>( );
+ pcos::int_vec b = image->get_property_with_string( kOfxImagePropBounds ).value<pcos::int_vec>( );
bounds->x1 = b[ 0 ];
bounds->y1 = b[ 1 ];
Modified: lib/openlibraries/src/openpluginlib/pl/pcos/property.hpp
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/pcos/property.hpp 2007-05-01 01:24:13 UTC (rev 109)
+++ lib/openlibraries/src/openpluginlib/pl/pcos/property.hpp 2007-05-01 22:26:13 UTC (rev 110)
@@ -32,6 +32,10 @@
typedef std::vector<string> string_list;
typedef std::vector<wstring> wstring_list;
+typedef std::vector<int> int_vec;
+typedef std::vector<unsigned int> uint_vec;
+typedef std::vector<double> double_vec;
+
typedef boost::variant<bool, int, unsigned int, float, double, string, wstring, int_list, uint_list, double_list, string_list, wstring_list, void*> any;
/// A property class i.e. a pairing of a key to a value.
Modified: lib/openlibraries/src/openpluginlib/pl/string.hpp
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/string.hpp 2007-05-01 01:24:13 UTC (rev 109)
+++ lib/openlibraries/src/openpluginlib/pl/string.hpp 2007-05-01 22:26:13 UTC (rev 110)
@@ -42,6 +42,9 @@
typedef std::vector<string> string_list;
typedef std::vector<wstring> wstring_list;
+
+ typedef std::vector<string> string_vec;
+ typedef std::vector<wstring> wstring_vec;
} }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-05-01 01:24:15
|
Revision: 109
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=109&view=rev
Author: glslang
Date: 2007-04-30 18:24:13 -0700 (Mon, 30 Apr 2007)
Log Message:
-----------
+ofx bindings build updates
Modified Paths:
--------------
lib/openlibraries/configure.ac
lib/openlibraries/src/openmedialib/plugins/Makefile.am
Added Paths:
-----------
lib/openlibraries/src/openmedialib/plugins/ofx/Makefile.am
Modified: lib/openlibraries/configure.ac
===================================================================
--- lib/openlibraries/configure.ac 2007-05-01 00:50:58 UTC (rev 108)
+++ lib/openlibraries/configure.ac 2007-05-01 01:24:13 UTC (rev 109)
@@ -377,6 +377,7 @@
src/openmedialib/plugins/glew/Makefile
src/openmedialib/plugins/openal/Makefile
src/openmedialib/plugins/gensys/Makefile
+src/openmedialib/plugins/ofx/Makefile
src/openmedialib/py/Makefile
src/openeffectslib/Makefile
src/openeffectslib/plugins/Makefile
Modified: lib/openlibraries/src/openmedialib/plugins/Makefile.am
===================================================================
--- lib/openlibraries/src/openmedialib/plugins/Makefile.am 2007-05-01 00:50:58 UTC (rev 108)
+++ lib/openlibraries/src/openmedialib/plugins/Makefile.am 2007-05-01 01:24:13 UTC (rev 109)
@@ -3,4 +3,4 @@
#
#
-SUBDIRS = template avformat oil caca glew openal gensys
+SUBDIRS = template avformat oil caca glew openal gensys ofx
Added: lib/openlibraries/src/openmedialib/plugins/ofx/Makefile.am
===================================================================
--- lib/openlibraries/src/openmedialib/plugins/ofx/Makefile.am (rev 0)
+++ lib/openlibraries/src/openmedialib/plugins/ofx/Makefile.am 2007-05-01 01:24:13 UTC (rev 109)
@@ -0,0 +1,36 @@
+
+#
+#
+#
+
+libdir = $(OPENMEDIALIB_PLUGINPATH)
+
+if HAVE_OFX
+
+lib_LTLIBRARIES = libopenmedialib_ofx.la
+
+libopenmedialib_ofx_la_SOURCES = \
+ ofx_plugin.cpp
+
+libopenmedialib_ofx_la_CXXFLAGS = \
+ $(OLIB_CXXFLAGS) \
+ $(BOOST_INCLUDE_PATH) \
+ $(OFX_INCLUDE_PATH)
+
+libopenmedialib_ofx_la_LIBADD = \
+ $(BOOST_FILESYSTEM_LIBS) \
+ $(top_builddir)/src/openmedialib/ml/libopenmedialib_ml.la \
+ $(top_builddir)/src/openimagelib/il/libopenimagelib_il.la \
+ $(top_builddir)/src/openpluginlib/pl/libopenpluginlib_pl.la
+
+libopenmedialib_ofx_la_LDFLAGS = \
+ $(OLIB_LDFLAGS) \
+ $(BOOST_LIB_PATH) \
+ -version-info $(OL_LT_CURRENT):$(OL_LT_REVISION):$(OL_LT_AGE)
+
+libopenmedialib_ofx_ladir = $(OPENMEDIALIB_PLUGINPATH)
+libopenmedialib_ofx_la_DATA = ofx_plugin.opl
+
+nobase_dist_libopenmedialib_ofx_la_DATA = ofx_plugin.opl
+
+endif
Property changes on: lib/openlibraries/src/openmedialib/plugins/ofx/Makefile.am
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-05-01 00:51:01
|
Revision: 108
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=108&view=rev
Author: glslang
Date: 2007-04-30 17:50:58 -0700 (Mon, 30 Apr 2007)
Log Message:
-----------
+ explicit initialisation of OFX string to pl::strings
Modified Paths:
--------------
lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp
Modified: lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp
===================================================================
--- lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp 2007-04-30 23:56:54 UTC (rev 107)
+++ lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp 2007-05-01 00:50:58 UTC (rev 108)
@@ -1050,18 +1050,18 @@
render_scale[ 0 ] = 1.0;
render_scale[ 1 ] = 1.0;
- image_props_.append( image_prop_type_ = kOfxTypeImage );
- image_props_.append( image_effect_prop_pixel_depth_ = kOfxBitDepthNone );
- image_props_.append( image_effect_prop_components_ = kOfxImageComponentNone );
- image_props_.append( image_effect_prop_pre_multiplication_ = kOfxImageUnPreMultiplied );
+ image_props_.append( image_prop_type_ = pl::string( kOfxTypeImage ) );
+ image_props_.append( image_effect_prop_pixel_depth_ = pl::string( kOfxBitDepthNone ) );
+ image_props_.append( image_effect_prop_components_ = pl::string( kOfxImageComponentNone ) );
+ image_props_.append( image_effect_prop_pre_multiplication_ = pl::string( kOfxImageUnPreMultiplied ) );
image_props_.append( image_effect_prop_render_scale_ = render_scale );
image_props_.append( image_prop_pixel_aspect_ratio_ = 1.0 );
image_props_.append( image_prop_data_ = ( void* ) 0 );
image_props_.append( image_prop_bounds_ = int_vec( 4 ) );
image_props_.append( image_prop_region_of_definition_ = int_vec( 4 ) );
image_props_.append( image_prop_row_bytes_ = 0 );
- image_props_.append( image_prop_field_ = kOfxImageFieldNone );
- image_props_.append( image_prop_unique_identifier_ = "No Unique Identifier" );
+ image_props_.append( image_prop_field_ = pl::string( kOfxImageFieldNone ) );
+ image_props_.append( image_prop_unique_identifier_ = pl::string( "No Unique Identifier" ) );
}
private:
@@ -1105,15 +1105,15 @@
private:
void set_clip_descriptor_properties( )
{
- clip_descriptor_props_.append( clip_descriptor_prop_type_ = kOfxTypeClip );
- clip_descriptor_props_.append( clip_descriptor_prop_name_ = "" );
- clip_descriptor_props_.append( clip_descriptor_prop_label_ = "" );
- clip_descriptor_props_.append( clip_descriptor_prop_short_label_ = "" );
- clip_descriptor_props_.append( clip_descriptor_prop_long_label_ = "" );
+ clip_descriptor_props_.append( clip_descriptor_prop_type_ = pl::string( kOfxTypeClip ) );
+ clip_descriptor_props_.append( clip_descriptor_prop_name_ = pl::string( "" ) );
+ clip_descriptor_props_.append( clip_descriptor_prop_label_ = pl::string( "" ) );
+ clip_descriptor_props_.append( clip_descriptor_prop_short_label_ = pl::string( "" ) );
+ clip_descriptor_props_.append( clip_descriptor_prop_long_label_ = pl::string( "" ) );
clip_descriptor_props_.append( clip_descriptor_prop_supported_components_ = string_vec( ) );
clip_descriptor_props_.append( clip_descriptor_prop_temporal_clip_access_ = 0 );
clip_descriptor_props_.append( clip_descriptor_prop_optional_ = 0 );
- clip_descriptor_props_.append( clip_descriptor_prop_field_extraction_ = kOfxImageFieldDoubled );
+ clip_descriptor_props_.append( clip_descriptor_prop_field_extraction_ = pl::string( kOfxImageFieldDoubled ) );
clip_descriptor_props_.append( clip_descriptor_prop_is_mask_ = 0 );
clip_descriptor_props_.append( clip_descriptor_prop_supports_tiles_ = 1 );
}
@@ -1198,14 +1198,14 @@
string_vec pixel_depths;
pixel_depths.push_back( kOfxBitDepthNone );
- effect_descriptor_props_.append( image_effect_prop_type_ = kOfxTypeImageEffect );
- effect_descriptor_props_.append( image_effect_prop_label_ = kOfxTypeImageEffect );
- effect_descriptor_props_.append( image_effect_prop_short_label_ = kOfxTypeImageEffect );
- effect_descriptor_props_.append( image_effect_prop_long_label_ = kOfxTypeImageEffect );
+ effect_descriptor_props_.append( image_effect_prop_type_ = pl::string( kOfxTypeImageEffect ) );
+ effect_descriptor_props_.append( image_effect_prop_label_ = pl::string( kOfxTypeImageEffect ) );
+ effect_descriptor_props_.append( image_effect_prop_short_label_ = pl::string( kOfxTypeImageEffect ) );
+ effect_descriptor_props_.append( image_effect_prop_long_label_ = pl::string( kOfxTypeImageEffect ) );
effect_descriptor_props_.append( image_effect_prop_supported_contexts_ = string_vec( ) );
- effect_descriptor_props_.append( image_effect_prop_grouping_ = "" );
+ effect_descriptor_props_.append( image_effect_prop_grouping_ = pl::string( "" ) );
effect_descriptor_props_.append( image_effect_prop_single_instance_ = 0 );
- effect_descriptor_props_.append( image_effect_render_thread_safety_ = kOfxImageEffectRenderUnsafe );
+ effect_descriptor_props_.append( image_effect_render_thread_safety_ = pl::string( kOfxImageEffectRenderUnsafe ) );
effect_descriptor_props_.append( image_effect_prop_host_frame_threading_ = 0 );
effect_descriptor_props_.append( image_effect_prop_overlay_interactV1_ = 0 );
effect_descriptor_props_.append( image_effect_prop_supports_multiresolution_ = 1 );
@@ -1215,8 +1215,8 @@
effect_descriptor_props_.append( image_effect_prop_field_render_twice_always_ = 0 );
effect_descriptor_props_.append( image_effect_prop_supports_multiple_clip_depths_ = 1 );
effect_descriptor_props_.append( image_effect_prop_supports_multiple_clip_pars_ = 1 );
- effect_descriptor_props_.append( image_effect_prop_clip_preferences_slave_param_ = "" );
- effect_descriptor_props_.append( image_effect_prop_file_path_ = "" );
+ effect_descriptor_props_.append( image_effect_prop_clip_preferences_slave_param_ = pl::string( "" ) );
+ effect_descriptor_props_.append( image_effect_prop_file_path_ = pl::string( "" ) );
}
// Effect descriptor properties.
@@ -1302,26 +1302,26 @@
private:
void set_clip_instance_properties( )
{
- clip_instance_props_.append( clip_instance_prop_type_ = kOfxTypeClip );
- clip_instance_props_.append( clip_instance_prop_name_ = "" );
- clip_instance_props_.append( clip_instance_prop_label_ = "" );
- clip_instance_props_.append( clip_instance_prop_short_label_ = "" );
- clip_instance_props_.append( clip_instance_prop_long_label_ = "" );
+ clip_instance_props_.append( clip_instance_prop_type_ = pl::string( kOfxTypeClip ) );
+ clip_instance_props_.append( clip_instance_prop_name_ = pl::string( "" ) );
+ clip_instance_props_.append( clip_instance_prop_label_ = pl::string( "" ) );
+ clip_instance_props_.append( clip_instance_prop_short_label_ = pl::string( "" ) );
+ clip_instance_props_.append( clip_instance_prop_long_label_ = pl::string( "" ) );
clip_instance_props_.append( clip_instance_prop_supported_components_ = string_vec( ) );
clip_instance_props_.append( clip_instance_prop_temporal_clip_access_ = 0 );
clip_instance_props_.append( clip_instance_prop_optional_ = 0 );
- clip_instance_props_.append( clip_instance_prop_field_extraction_ = kOfxImageFieldDoubled );
+ clip_instance_props_.append( clip_instance_prop_field_extraction_ = pl::string( kOfxImageFieldDoubled ) );
clip_instance_props_.append( clip_instance_prop_is_mask_ = 0 );
clip_instance_props_.append( clip_instance_prop_supports_tiles_ = 1 );
- clip_instance_props_.append( clip_instance_prop_pixel_depth_ = kOfxBitDepthNone );
- clip_instance_props_.append( clip_instance_prop_components_ = kOfxImageComponentNone );
- clip_instance_props_.append( clip_instance_prop_unmapped_pixel_depth_ = kOfxBitDepthNone );
- clip_instance_props_.append( clip_instance_prop_unmapped_components_ = kOfxImageComponentNone );
- clip_instance_props_.append( clip_instance_prop_premultiplication_ = kOfxImageOpaque );
+ clip_instance_props_.append( clip_instance_prop_pixel_depth_ = pl::string( kOfxBitDepthNone ) );
+ clip_instance_props_.append( clip_instance_prop_components_ = pl::string( kOfxImageComponentNone ) );
+ clip_instance_props_.append( clip_instance_prop_unmapped_pixel_depth_ = pl::string( kOfxBitDepthNone ) );
+ clip_instance_props_.append( clip_instance_prop_unmapped_components_ = pl::string( kOfxImageComponentNone ) );
+ clip_instance_props_.append( clip_instance_prop_premultiplication_ = pl::string( kOfxImageOpaque ) );
clip_instance_props_.append( clip_instance_prop_pixel_aspect_ratio_ = 0.0 );
clip_instance_props_.append( clip_instance_prop_frame_rate_ = 0.0 );
clip_instance_props_.append( clip_instance_prop_frame_range_ = double_vec( 2 ) );
- clip_instance_props_.append( clip_instance_prop_field_order_ = kOfxImageFieldNone );
+ clip_instance_props_.append( clip_instance_prop_field_order_ = pl::string( kOfxImageFieldNone ) );
clip_instance_props_.append( clip_instance_prop_connected_ = 0 );
clip_instance_props_.append( clip_instance_prop_unmapped_frame_range_ = double_vec( 2 ) );
clip_instance_props_.append( clip_instance_prop_unmapped_frame_rate_ = 0.0 );
@@ -1428,8 +1428,8 @@
private:
void set_image_effect_instance_properties( )
{
- effect_instance_props_.append( image_effect_instance_prop_type_ = kOfxTypeImageEffectInstance );
- effect_instance_props_.append( image_effect_instance_prop_context_ = kOfxImageEffectContextFilter );
+ effect_instance_props_.append( image_effect_instance_prop_type_ = pl::string( kOfxTypeImageEffectInstance ) );
+ effect_instance_props_.append( image_effect_instance_prop_context_ = pl::string( kOfxImageEffectContextFilter ) );
effect_instance_props_.append( image_effect_instance_prop_instance_data_ = static_cast<void*>( 0 ) );
effect_instance_props_.append( image_effect_instance_prop_project_size_ = double_vec( 2 ) );
effect_instance_props_.append( image_effect_instance_prop_project_offset_ = double_vec( 2 ) );
@@ -1564,7 +1564,7 @@
pcos::property_container render_in_args;
render_in_args.append( render_prop_time_ = 0.0 );
- render_in_args.append( render_prop_field_to_render_ = kOfxImageFieldNone );
+ render_in_args.append( render_prop_field_to_render_ = pl::string( kOfxImageFieldNone ) );
render_in_args.append( render_prop_render_window_ = render_win );
render_in_args.append( render_prop_render_scale_ = render_scale );
@@ -1616,16 +1616,16 @@
void set_host_parameters( )
{
- host_props_.append( host_prop_type_ = kOfxTypeImageEffectHost );
- host_props_.append( host_prop_name_ = "org.openlibraries.ofx_host" );
- host_props_.append( host_prop_label_ = "OpenLibraries OFX host" );
+ host_props_.append( host_prop_type_ = pl::string( kOfxTypeImageEffectHost ) );
+ host_props_.append( host_prop_name_ = pl::string( "org.openlibraries.ofx_host" ) );
+ host_props_.append( host_prop_label_ = pl::string( "OpenLibraries OFX host" ) );
host_props_.append( host_prop_is_background_ = 0 );
host_props_.append( host_prop_supports_overlays_ = 1 );
host_props_.append( host_prop_supports_multiresolution_ = 1 );
host_props_.append( host_prop_supports_tiles_ = 0 );
host_props_.append( host_prop_temporal_clip_access_ = 0 );
- host_props_.append( host_prop_supported_components_ = kOfxImageComponentRGBA );
- host_props_.append( host_prop_supported_contexts_ = kOfxImageEffectContextFilter );
+ host_props_.append( host_prop_supported_components_ = pl::string( kOfxImageComponentRGBA ) );
+ host_props_.append( host_prop_supported_contexts_ = pl::string( kOfxImageEffectContextFilter ) );
host_props_.append( host_prop_supports_multiple_clip_depths_ = 1 );
host_props_.append( host_prop_supports_multiple_clip_pars_ = 1 );
host_props_.append( host_prop_setable_frame_rate_ = 1 );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-30 23:57:04
|
Revision: 107
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=107&view=rev
Author: glslang
Date: 2007-04-30 16:56:54 -0700 (Mon, 30 Apr 2007)
Log Message:
-----------
+ ofx bindings M1 (milestone 1)
Modified Paths:
--------------
lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp
lib/openlibraries/src/openpluginlib/pl/pcos/property.cpp
Modified: lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp
===================================================================
--- lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp 2007-04-27 23:47:47 UTC (rev 106)
+++ lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp 2007-04-30 23:56:54 UTC (rev 107)
@@ -317,7 +317,7 @@
{ }
};
- class param_set_descriptor
+ class param_set_descriptor : public Ofx_base
{
public:
typedef pl::string key_type;
@@ -420,8 +420,12 @@
return 0;
}
+ virtual property_container_ptr get_property_set( )
+ { return ¶m_set_descriptor_props_; }
+
private:
container params_;
+ pcos::property_container param_set_descriptor_props_;
};
class param : public Ofx_base
@@ -1025,13 +1029,15 @@
if( !dst_img )
return false;
+ int_vec bounds_and_rod( 4 );
+ bounds_and_rod[ 0 ] = 0;
+ bounds_and_rod[ 1 ] = 0;
+ bounds_and_rod[ 2 ] = dst_img->width( );
+ bounds_and_rod[ 3 ] = dst_img->height( );
+
+ image_prop_bounds_ = bounds_and_rod;
+ image_prop_region_of_definition_ = bounds_and_rod;
image_prop_data_ = ( void* ) dst_img->data( );
-
- int_vec i_vec( 4 );
- i_vec[ 0 ] = 0; i_vec[ 1 ] = 0; i_vec[ 2 ] = dst_img->width( ); i_vec[ 3 ] = dst_img->height( );
- image_prop_bounds_ = i_vec;
- image_prop_region_of_definition_ = i_vec;
-
image_prop_row_bytes_ = dst_img->pitch( );
return true;
@@ -1040,21 +1046,19 @@
private:
void set_image_properties( )
{
- double_vec d_vec( 2 );
- d_vec[ 0 ] = 1.0; d_vec[ 1 ] = 1.0;
+ double_vec render_scale( 2 );
+ render_scale[ 0 ] = 1.0;
+ render_scale[ 1 ] = 1.0;
- int_vec i_vec( 4 );
- i_vec[ 0 ] = 0; i_vec[ 1 ] = 0; i_vec[ 2 ] = 0; i_vec[ 3 ] = 0;
-
image_props_.append( image_prop_type_ = kOfxTypeImage );
image_props_.append( image_effect_prop_pixel_depth_ = kOfxBitDepthNone );
image_props_.append( image_effect_prop_components_ = kOfxImageComponentNone );
image_props_.append( image_effect_prop_pre_multiplication_ = kOfxImageUnPreMultiplied );
- image_props_.append( image_effect_prop_render_scale_ = d_vec );
+ image_props_.append( image_effect_prop_render_scale_ = render_scale );
image_props_.append( image_prop_pixel_aspect_ratio_ = 1.0 );
image_props_.append( image_prop_data_ = ( void* ) 0 );
- image_props_.append( image_prop_bounds_ = i_vec );
- image_props_.append( image_prop_region_of_definition_ = i_vec );
+ image_props_.append( image_prop_bounds_ = int_vec( 4 ) );
+ image_props_.append( image_prop_region_of_definition_ = int_vec( 4 ) );
image_props_.append( image_prop_row_bytes_ = 0 );
image_props_.append( image_prop_field_ = kOfxImageFieldNone );
image_props_.append( image_prop_unique_identifier_ = "No Unique Identifier" );
@@ -1130,99 +1134,6 @@
pcos::property clip_descriptor_prop_supports_tiles_;
};
- class clip_instance : public Ofx_base
- {
- public:
- explicit clip_instance( )
- : clip_instance_prop_type_( pcos::key::from_string( kOfxPropType ) )
- , clip_instance_prop_name_( pcos::key::from_string( kOfxPropName ) )
- , clip_instance_prop_label_( pcos::key::from_string( kOfxPropLabel ) )
- , clip_instance_prop_short_label_( pcos::key::from_string( kOfxPropShortLabel ) )
- , clip_instance_prop_long_label_( pcos::key::from_string( kOfxPropLongLabel ) )
- , clip_instance_prop_supported_components_( pcos::key::from_string( kOfxImageEffectPropSupportedComponents ) )
- , clip_instance_prop_temporal_clip_access_( pcos::key::from_string( kOfxImageEffectPropTemporalClipAccess ) )
- , clip_instance_prop_optional_( pcos::key::from_string( kOfxImageClipPropOptional ) )
- , clip_instance_prop_field_extraction_( pcos::key::from_string( kOfxImageClipPropFieldExtraction ) )
- , clip_instance_prop_is_mask_( pcos::key::from_string( kOfxImageClipPropIsMask ) )
- , clip_instance_prop_supports_tiles_( pcos::key::from_string( kOfxImageEffectPropSupportsTiles ) )
- , clip_instance_prop_pixel_depth_( pcos::key::from_string( kOfxImageEffectPropPixelDepth ) )
- , clip_instance_prop_components_( pcos::key::from_string( kOfxImageEffectPropComponents ) )
- , clip_instance_prop_unmapped_pixel_depth_( pcos::key::from_string( kOfxImageClipPropUnmappedPixelDepth ) )
- , clip_instance_prop_unmapped_components_( pcos::key::from_string( kOfxImageClipPropUnmappedComponents ) )
- , clip_instance_prop_premultiplication_( pcos::key::from_string( kOfxImageEffectPropPreMultiplication ) )
- , clip_instance_prop_pixel_aspect_ratio_( pcos::key::from_string( kOfxImagePropPixelAspectRatio ) )
- , clip_instance_prop_frame_rate_( pcos::key::from_string( kOfxImageEffectPropFrameRate ) )
- , clip_instance_prop_frame_range_( pcos::key::from_string( kOfxImageEffectPropFrameRange ) )
- , clip_instance_prop_field_order_( pcos::key::from_string( kOfxImageClipPropFieldOrder ) )
- , clip_instance_prop_connected_( pcos::key::from_string( kOfxImageClipPropConnected ) )
- , clip_instance_prop_unmapped_frame_range_( pcos::key::from_string( kOfxImageEffectPropUnmappedFrameRange ) )
- , clip_instance_prop_unmapped_frame_rate_( pcos::key::from_string( kOfxImageEffectPropUnmappedFrameRate ) )
- , clip_instance_prop_continuous_samples_( pcos::key::from_string( kOfxImageClipPropContinuousSamples ) )
- {
- set_clip_instance_properties( );
- }
-
- virtual property_container_ptr get_property_set( )
- { return &clip_instance_props_; }
-
- private:
- void set_clip_instance_properties( )
- {
- clip_instance_props_.append( clip_instance_prop_type_ = kOfxTypeClip );
- clip_instance_props_.append( clip_instance_prop_name_ = "" );
- clip_instance_props_.append( clip_instance_prop_label_ = "" );
- clip_instance_props_.append( clip_instance_prop_short_label_ = "" );
- clip_instance_props_.append( clip_instance_prop_long_label_ = "" );
- clip_instance_props_.append( clip_instance_prop_supported_components_ = string_vec( ) );
- clip_instance_props_.append( clip_instance_prop_temporal_clip_access_ = 0 );
- clip_instance_props_.append( clip_instance_prop_optional_ = 0 );
- clip_instance_props_.append( clip_instance_prop_field_extraction_ = kOfxImageFieldDoubled );
- clip_instance_props_.append( clip_instance_prop_is_mask_ = 0 );
- clip_instance_props_.append( clip_instance_prop_supports_tiles_ = 1 );
- clip_instance_props_.append( clip_instance_prop_pixel_depth_ = kOfxBitDepthNone );
- clip_instance_props_.append( clip_instance_prop_components_ = kOfxImageComponentNone );
- clip_instance_props_.append( clip_instance_prop_unmapped_pixel_depth_ = kOfxBitDepthNone );
- clip_instance_props_.append( clip_instance_prop_unmapped_components_ = kOfxImageComponentNone );
- clip_instance_props_.append( clip_instance_prop_premultiplication_ = kOfxImageOpaque );
- clip_instance_props_.append( clip_instance_prop_pixel_aspect_ratio_ = 0.0 );
- clip_instance_props_.append( clip_instance_prop_frame_rate_ = 0.0 );
- clip_instance_props_.append( clip_instance_prop_frame_range_ = double_vec( 2 ) );
- clip_instance_props_.append( clip_instance_prop_field_order_ = kOfxImageFieldNone );
- clip_instance_props_.append( clip_instance_prop_connected_ = 0 );
- clip_instance_props_.append( clip_instance_prop_unmapped_frame_range_ = double_vec( 2 ) );
- clip_instance_props_.append( clip_instance_prop_unmapped_frame_rate_ = 0.0 );
- clip_instance_props_.append( clip_instance_prop_continuous_samples_ = 0 );
- }
-
- // Clip instance properties.
- private:
- pcos::property_container clip_instance_props_;
- pcos::property clip_instance_prop_type_;
- pcos::property clip_instance_prop_name_;
- pcos::property clip_instance_prop_label_;
- pcos::property clip_instance_prop_short_label_;
- pcos::property clip_instance_prop_long_label_;
- pcos::property clip_instance_prop_supported_components_;
- pcos::property clip_instance_prop_temporal_clip_access_;
- pcos::property clip_instance_prop_optional_;
- pcos::property clip_instance_prop_field_extraction_;
- pcos::property clip_instance_prop_is_mask_;
- pcos::property clip_instance_prop_supports_tiles_;
- pcos::property clip_instance_prop_pixel_depth_;
- pcos::property clip_instance_prop_components_;
- pcos::property clip_instance_prop_unmapped_pixel_depth_;
- pcos::property clip_instance_prop_unmapped_components_;
- pcos::property clip_instance_prop_premultiplication_;
- pcos::property clip_instance_prop_pixel_aspect_ratio_;
- pcos::property clip_instance_prop_frame_rate_;
- pcos::property clip_instance_prop_frame_range_;
- pcos::property clip_instance_prop_field_order_;
- pcos::property clip_instance_prop_connected_;
- pcos::property clip_instance_prop_unmapped_frame_range_;
- pcos::property clip_instance_prop_unmapped_frame_rate_;
- pcos::property clip_instance_prop_continuous_samples_;
- };
-
class image_effect_descriptor : public param_set_descriptor
{
public:
@@ -1334,8 +1245,126 @@
private:
container clip_desc_;
};
+
+ struct image_effect_instance_base : public param_set
+ {
+ virtual il::image_type_ptr get_source( ) = 0;
+ virtual il::image_type_ptr get_output( ) = 0;
+ };
+
+ class clip_instance : public Ofx_base
+ {
+ public:
+ explicit clip_instance( image_effect_instance_base* const image_instance, const pl::string& name )
+ : clip_instance_prop_type_( pcos::key::from_string( kOfxPropType ) )
+ , clip_instance_prop_name_( pcos::key::from_string( kOfxPropName ) )
+ , clip_instance_prop_label_( pcos::key::from_string( kOfxPropLabel ) )
+ , clip_instance_prop_short_label_( pcos::key::from_string( kOfxPropShortLabel ) )
+ , clip_instance_prop_long_label_( pcos::key::from_string( kOfxPropLongLabel ) )
+ , clip_instance_prop_supported_components_( pcos::key::from_string( kOfxImageEffectPropSupportedComponents ) )
+ , clip_instance_prop_temporal_clip_access_( pcos::key::from_string( kOfxImageEffectPropTemporalClipAccess ) )
+ , clip_instance_prop_optional_( pcos::key::from_string( kOfxImageClipPropOptional ) )
+ , clip_instance_prop_field_extraction_( pcos::key::from_string( kOfxImageClipPropFieldExtraction ) )
+ , clip_instance_prop_is_mask_( pcos::key::from_string( kOfxImageClipPropIsMask ) )
+ , clip_instance_prop_supports_tiles_( pcos::key::from_string( kOfxImageEffectPropSupportsTiles ) )
+ , clip_instance_prop_pixel_depth_( pcos::key::from_string( kOfxImageEffectPropPixelDepth ) )
+ , clip_instance_prop_components_( pcos::key::from_string( kOfxImageEffectPropComponents ) )
+ , clip_instance_prop_unmapped_pixel_depth_( pcos::key::from_string( kOfxImageClipPropUnmappedPixelDepth ) )
+ , clip_instance_prop_unmapped_components_( pcos::key::from_string( kOfxImageClipPropUnmappedComponents ) )
+ , clip_instance_prop_premultiplication_( pcos::key::from_string( kOfxImageEffectPropPreMultiplication ) )
+ , clip_instance_prop_pixel_aspect_ratio_( pcos::key::from_string( kOfxImagePropPixelAspectRatio ) )
+ , clip_instance_prop_frame_rate_( pcos::key::from_string( kOfxImageEffectPropFrameRate ) )
+ , clip_instance_prop_frame_range_( pcos::key::from_string( kOfxImageEffectPropFrameRange ) )
+ , clip_instance_prop_field_order_( pcos::key::from_string( kOfxImageClipPropFieldOrder ) )
+ , clip_instance_prop_connected_( pcos::key::from_string( kOfxImageClipPropConnected ) )
+ , clip_instance_prop_unmapped_frame_range_( pcos::key::from_string( kOfxImageEffectPropUnmappedFrameRange ) )
+ , clip_instance_prop_unmapped_frame_rate_( pcos::key::from_string( kOfxImageEffectPropUnmappedFrameRate ) )
+ , clip_instance_prop_continuous_samples_( pcos::key::from_string( kOfxImageClipPropContinuousSamples ) )
+ , image_instance_( image_instance )
+ , name_( name )
+ {
+ set_clip_instance_properties( );
+ }
+
+ virtual property_container_ptr get_property_set( )
+ { return &clip_instance_props_; }
+
+ property_container_ptr get_image( )
+ {
+ if( name_ == "Source" )
+ im_.set_image( image_instance_->get_source( ) );
+ else if( name_ == "Output" )
+ im_.set_image( image_instance_->get_output( ) );
+
+ return im_.get_property_set( );
+ }
+
+ private:
+ void set_clip_instance_properties( )
+ {
+ clip_instance_props_.append( clip_instance_prop_type_ = kOfxTypeClip );
+ clip_instance_props_.append( clip_instance_prop_name_ = "" );
+ clip_instance_props_.append( clip_instance_prop_label_ = "" );
+ clip_instance_props_.append( clip_instance_prop_short_label_ = "" );
+ clip_instance_props_.append( clip_instance_prop_long_label_ = "" );
+ clip_instance_props_.append( clip_instance_prop_supported_components_ = string_vec( ) );
+ clip_instance_props_.append( clip_instance_prop_temporal_clip_access_ = 0 );
+ clip_instance_props_.append( clip_instance_prop_optional_ = 0 );
+ clip_instance_props_.append( clip_instance_prop_field_extraction_ = kOfxImageFieldDoubled );
+ clip_instance_props_.append( clip_instance_prop_is_mask_ = 0 );
+ clip_instance_props_.append( clip_instance_prop_supports_tiles_ = 1 );
+ clip_instance_props_.append( clip_instance_prop_pixel_depth_ = kOfxBitDepthNone );
+ clip_instance_props_.append( clip_instance_prop_components_ = kOfxImageComponentNone );
+ clip_instance_props_.append( clip_instance_prop_unmapped_pixel_depth_ = kOfxBitDepthNone );
+ clip_instance_props_.append( clip_instance_prop_unmapped_components_ = kOfxImageComponentNone );
+ clip_instance_props_.append( clip_instance_prop_premultiplication_ = kOfxImageOpaque );
+ clip_instance_props_.append( clip_instance_prop_pixel_aspect_ratio_ = 0.0 );
+ clip_instance_props_.append( clip_instance_prop_frame_rate_ = 0.0 );
+ clip_instance_props_.append( clip_instance_prop_frame_range_ = double_vec( 2 ) );
+ clip_instance_props_.append( clip_instance_prop_field_order_ = kOfxImageFieldNone );
+ clip_instance_props_.append( clip_instance_prop_connected_ = 0 );
+ clip_instance_props_.append( clip_instance_prop_unmapped_frame_range_ = double_vec( 2 ) );
+ clip_instance_props_.append( clip_instance_prop_unmapped_frame_rate_ = 0.0 );
+ clip_instance_props_.append( clip_instance_prop_continuous_samples_ = 0 );
+ }
- class image_effect_instance : public param_set
+ // Clip instance properties.
+ private:
+ pcos::property_container clip_instance_props_;
+ pcos::property clip_instance_prop_type_;
+ pcos::property clip_instance_prop_name_;
+ pcos::property clip_instance_prop_label_;
+ pcos::property clip_instance_prop_short_label_;
+ pcos::property clip_instance_prop_long_label_;
+ pcos::property clip_instance_prop_supported_components_;
+ pcos::property clip_instance_prop_temporal_clip_access_;
+ pcos::property clip_instance_prop_optional_;
+ pcos::property clip_instance_prop_field_extraction_;
+ pcos::property clip_instance_prop_is_mask_;
+ pcos::property clip_instance_prop_supports_tiles_;
+ pcos::property clip_instance_prop_pixel_depth_;
+ pcos::property clip_instance_prop_components_;
+ pcos::property clip_instance_prop_unmapped_pixel_depth_;
+ pcos::property clip_instance_prop_unmapped_components_;
+ pcos::property clip_instance_prop_premultiplication_;
+ pcos::property clip_instance_prop_pixel_aspect_ratio_;
+ pcos::property clip_instance_prop_frame_rate_;
+ pcos::property clip_instance_prop_frame_range_;
+ pcos::property clip_instance_prop_field_order_;
+ pcos::property clip_instance_prop_connected_;
+ pcos::property clip_instance_prop_unmapped_frame_range_;
+ pcos::property clip_instance_prop_unmapped_frame_rate_;
+ pcos::property clip_instance_prop_continuous_samples_;
+
+ private:
+ image im_;
+
+ private:
+ image_effect_instance_base* const image_instance_;
+ pl::string name_;
+ };
+
+ class image_effect_instance : public image_effect_instance_base
{
public:
typedef pl::string key_type;
@@ -1375,12 +1404,27 @@
if( I != clip_instance_.end( ) )
return I->second.get( );
- clip_instance_ptr new_clip_instance( new clip_instance( ) );
- clip_instance_.insert( container::value_type( name, new_clip_instance ) );
-
- return new_clip_instance.get( );
+ return 0;
}
+
+ clip_instance* add_clip_instance( const pl::string& name )
+ {
+ clip_instance_ptr clip( new clip_instance( this, name ) );
+ clip_instance_.insert( container::value_type( name, clip ) );
+
+ return clip.get( );
+ }
+
+ il::image_type_ptr get_source( )
+ { return source_; }
+ il::image_type_ptr get_output( )
+ { return output_; }
+ void set_source( il::image_type_ptr im )
+ { source_ = im; }
+ void set_output( il::image_type_ptr im )
+ { output_ = im; }
+
private:
void set_image_effect_instance_properties( )
{
@@ -1414,7 +1458,11 @@
private:
container clip_instance_;
- };
+
+ private:
+ il::image_type_ptr source_;
+ il::image_type_ptr output_;
+ };
}
class ML_PLUGIN_DECLSPEC ofx_filter : public filter_type, public OfxHost
@@ -1491,25 +1539,40 @@
{
acquire_values( );
- frame_type_ptr result = frame_type::deep_copy( fetch_from_slot( ) );
-
+ frame_type_ptr result = fetch_from_slot( );
if( result && result->get_image( ) )
{
+ il::image_type_ptr src = result->get_image( );
+ image_effect_instance_.set_source( src );
+ image_effect_instance_.set_output( il::allocate( src->pf( ), src->width( ), src->height( ) ) );
+
pcos::property_container sequence_in_args;
sequence_in_args.append( sequence_prop_frame_range_ = double_vec( 2 ) );
sequence_in_args.append( sequence_prop_frame_step_ = 1.0 );
sequence_in_args.append( sequence_prop_is_interactive_ = 0 );
sequence_in_args.append( sequence_prop_render_scale_ = double_vec( 2 ) );
+ int_vec render_win( 4 );
+ render_win[ 0 ] = 0;
+ render_win[ 1 ] = 0;
+ render_win[ 2 ] = src->width( );
+ render_win[ 3 ] = src->height( );
+
+ int_vec render_scale( 2 );
+ render_scale[ 0 ] = 1;
+ render_scale[ 1 ] = 1;
+
pcos::property_container render_in_args;
render_in_args.append( render_prop_time_ = 0.0 );
render_in_args.append( render_prop_field_to_render_ = kOfxImageFieldNone );
- render_in_args.append( render_prop_render_window_ = int_vec( 4 ) );
- render_in_args.append( render_prop_render_scale_ = int_vec( 2 ) );
+ render_in_args.append( render_prop_render_window_ = render_win );
+ render_in_args.append( render_prop_render_scale_ = render_scale );
plug_->mainEntry( kOfxImageEffectActionBeginSequenceRender, &image_effect_instance_, ( OfxPropertySetHandle ) &sequence_in_args, 0 );
plug_->mainEntry( kOfxImageEffectActionRender, &image_effect_instance_, ( OfxPropertySetHandle ) &render_in_args, 0 );
plug_->mainEntry( kOfxImageEffectActionEndSequenceRender, &image_effect_instance_, ( OfxPropertySetHandle ) &sequence_in_args, 0 );
+
+ result->set_image( image_effect_instance_.get_output( ) );
}
return result;
@@ -1757,7 +1820,7 @@
template<typename T, typename U>
OfxStatus get_multiple_property( OfxPropertySetHandle properties, const char* property, int count, T* value )
{
- pcos::property_container* prop_set = ( pcos::property_container* ) properties;
+ property_container_ptr prop_set = ( property_container_ptr ) properties;
pcos::property src = prop_set->get_property_with_string( property );
if( src.is_a<U>( ) )
@@ -1799,6 +1862,16 @@
{
return set_multiple_property<int, int_vec>( properties, property, count, value );
}
+
+ OfxStatus prop_get_pointer( OfxPropertySetHandle properties, const char* property, int index, void** value )
+ {
+ pcos::property_container* prop_set = ( pcos::property_container* ) properties;
+
+ pcos::property src = prop_set->get_property_with_string( property );
+ *value = src.value<void*>( );
+
+ return kOfxStatOK;
+ }
OfxStatus prop_get_string( OfxPropertySetHandle properties, const char* property, int index, char** value )
{
@@ -2314,9 +2387,7 @@
OfxStatus get_property_set( OfxImageEffectHandle image_effect, OfxPropertySetHandle* prop_handle )
{
Ofx_base* plug = ( Ofx_base* ) image_effect;
-
*prop_handle = ( OfxPropertySetHandle ) plug->get_property_set( );
-
return kOfxStatOK;
}
@@ -2328,9 +2399,7 @@
OfxStatus clip_define( OfxImageEffectHandle image_effect, const char* name, OfxPropertySetHandle* property_set )
{
image_effect_descriptor* desc = ( image_effect_descriptor* ) image_effect;
-
desc->clip_define( name, property_set );
-
return kOfxStatOK;
}
@@ -2339,37 +2408,54 @@
image_effect_instance* instance = ( image_effect_instance* ) image_effect;
clip_instance* clip = instance->clip_get_handle( name );
+ if( !clip )
+ clip = instance->add_clip_instance( name );
- if( *handle )
+ if( handle )
*handle = ( OfxImageClipHandle ) clip;
+ if( property_set )
+ *property_set = ( OfxPropertySetHandle ) clip->get_property_set( );
- if( *property_set )
- *property_set = ( OfxPropertySetHandle ) clip;
-
return kOfxStatOK;
}
OfxStatus clip_get_property_set( OfxImageClipHandle clip, OfxPropertySetHandle* handle )
{
clip_instance* instance = ( clip_instance* ) clip;
-
*handle = ( OfxPropertySetHandle ) instance->get_property_set( );
-
return kOfxStatOK;
}
OfxStatus clip_get_image( OfxImageClipHandle clip, OfxTime time, OfxRectD* region, OfxPropertySetHandle* image_handle )
{
+ clip_instance* instance = ( clip_instance* ) clip;
+ if( !instance )
+ return kOfxStatErrBadHandle;
+
+ *image_handle = ( OfxPropertySetHandle ) instance->get_image( );
+
return kOfxStatOK;
}
- OfxStatus clip_release_image( OfxPropertySetHandle image_handle )
+ OfxStatus clip_release_image( OfxPropertySetHandle )
{
return kOfxStatOK;
}
-
+
OfxStatus clip_get_region_of_definition( OfxImageClipHandle clip, OfxTime time, OfxRectD* bounds )
{
+ clip_instance* instance = ( clip_instance* ) clip;
+ if( !instance )
+ return kOfxStatErrBadHandle;
+
+ property_container_ptr image = instance->get_image( );
+ int_vec b = image->get_property_with_string( kOfxImagePropBounds ).value<int_vec>( );
+
+ bounds->x1 = b[ 0 ];
+ bounds->y1 = b[ 1 ];
+ bounds->x2 = b[ 2 ];
+ bounds->y2 = b[ 3 ];
+
return kOfxStatOK;
}
@@ -2412,6 +2498,7 @@
property_suite.propSetStringN = prop_set_stringN;
property_suite.propSetDoubleN = prop_set_doubleN;
property_suite.propSetIntN = prop_set_intN;
+ property_suite.propGetPointer = prop_get_pointer;
property_suite.propGetString = prop_get_string;
property_suite.propGetDouble = prop_get_double;
property_suite.propGetInt = prop_get_int;
Modified: lib/openlibraries/src/openpluginlib/pl/pcos/property.cpp
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/pcos/property.cpp 2007-04-27 23:47:47 UTC (rev 106)
+++ lib/openlibraries/src/openpluginlib/pl/pcos/property.cpp 2007-04-30 23:56:54 UTC (rev 107)
@@ -122,6 +122,9 @@
template<typename U>
T operator( )( const U& ) const
{ return T( ); }
+
+ T operator( )( const T& t ) const
+ { return t; }
};
template<>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-27 23:47:48
|
Revision: 106
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=106&view=rev
Author: glslang
Date: 2007-04-27 16:47:47 -0700 (Fri, 27 Apr 2007)
Log Message:
-----------
+ more ofx bindings
Modified Paths:
--------------
lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp
Modified: lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp
===================================================================
--- lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp 2007-04-27 22:05:41 UTC (rev 105)
+++ lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp 2007-04-27 23:47:47 UTC (rev 106)
@@ -1001,15 +1001,15 @@
, image_effect_prop_components_( pcos::key::from_string( kOfxImageEffectPropComponents ) )
, image_effect_prop_pre_multiplication_( pcos::key::from_string( kOfxImageEffectPropPreMultiplication ) )
, image_effect_prop_render_scale_( pcos::key::from_string( kOfxImageEffectPropRenderScale ) )
- , image_effect_prop_pixel_aspect_ratio_( pcos::key::from_string( kOfxImagePropPixelAspectRatio ) )
- , image_effect_prop_data_( pcos::key::from_string( kOfxImagePropData ) )
- , image_effect_prop_bounds_( pcos::key::from_string( kOfxImagePropBounds ) )
- , image_effect_prop_region_of_definition_( pcos::key::from_string( kOfxImagePropRegionOfDefinition ) )
- , image_effect_prop_row_bytes_( pcos::key::from_string( kOfxImagePropRowBytes ) )
- , image_effect_prop_field_( pcos::key::from_string( kOfxImagePropField ) )
- , image_effect_prop_unique_identifier_( pcos::key::from_string( kOfxImagePropUniqueIdentifier ) )
+ , image_prop_pixel_aspect_ratio_( pcos::key::from_string( kOfxImagePropPixelAspectRatio ) )
+ , image_prop_data_( pcos::key::from_string( kOfxImagePropData ) )
+ , image_prop_bounds_( pcos::key::from_string( kOfxImagePropBounds ) )
+ , image_prop_region_of_definition_( pcos::key::from_string( kOfxImagePropRegionOfDefinition ) )
+ , image_prop_row_bytes_( pcos::key::from_string( kOfxImagePropRowBytes ) )
+ , image_prop_field_( pcos::key::from_string( kOfxImagePropField ) )
+ , image_prop_unique_identifier_( pcos::key::from_string( kOfxImagePropUniqueIdentifier ) )
{
- image_props_.append( image_prop_type_ = kOfxTypeImage );
+ set_image_properties( );
}
virtual property_container_ptr get_property_set( )
@@ -1017,15 +1017,47 @@
bool set_image( il::image_type_ptr im )
{
+ if( !im )
+ return false;
+
+ // TODO: handle bit depths properly.
il::image_type_ptr dst_img = il::convert( im, L"r8g8b8a8" );
- if( dst_img )
- {
-
-
- return true;
- }
+ if( !dst_img )
+ return false;
+
+ image_prop_data_ = ( void* ) dst_img->data( );
+
+ int_vec i_vec( 4 );
+ i_vec[ 0 ] = 0; i_vec[ 1 ] = 0; i_vec[ 2 ] = dst_img->width( ); i_vec[ 3 ] = dst_img->height( );
+ image_prop_bounds_ = i_vec;
+ image_prop_region_of_definition_ = i_vec;
+
+ image_prop_row_bytes_ = dst_img->pitch( );
+
+ return true;
+ }
+
+ private:
+ void set_image_properties( )
+ {
+ double_vec d_vec( 2 );
+ d_vec[ 0 ] = 1.0; d_vec[ 1 ] = 1.0;
- return false;
+ int_vec i_vec( 4 );
+ i_vec[ 0 ] = 0; i_vec[ 1 ] = 0; i_vec[ 2 ] = 0; i_vec[ 3 ] = 0;
+
+ image_props_.append( image_prop_type_ = kOfxTypeImage );
+ image_props_.append( image_effect_prop_pixel_depth_ = kOfxBitDepthNone );
+ image_props_.append( image_effect_prop_components_ = kOfxImageComponentNone );
+ image_props_.append( image_effect_prop_pre_multiplication_ = kOfxImageUnPreMultiplied );
+ image_props_.append( image_effect_prop_render_scale_ = d_vec );
+ image_props_.append( image_prop_pixel_aspect_ratio_ = 1.0 );
+ image_props_.append( image_prop_data_ = ( void* ) 0 );
+ image_props_.append( image_prop_bounds_ = i_vec );
+ image_props_.append( image_prop_region_of_definition_ = i_vec );
+ image_props_.append( image_prop_row_bytes_ = 0 );
+ image_props_.append( image_prop_field_ = kOfxImageFieldNone );
+ image_props_.append( image_prop_unique_identifier_ = "No Unique Identifier" );
}
private:
@@ -1035,13 +1067,13 @@
pcos::property image_effect_prop_components_;
pcos::property image_effect_prop_pre_multiplication_;
pcos::property image_effect_prop_render_scale_;
- pcos::property image_effect_prop_pixel_aspect_ratio_;
- pcos::property image_effect_prop_data_;
- pcos::property image_effect_prop_bounds_;
- pcos::property image_effect_prop_region_of_definition_;
- pcos::property image_effect_prop_row_bytes_;
- pcos::property image_effect_prop_field_;
- pcos::property image_effect_prop_unique_identifier_;
+ pcos::property image_prop_pixel_aspect_ratio_;
+ pcos::property image_prop_data_;
+ pcos::property image_prop_bounds_;
+ pcos::property image_prop_region_of_definition_;
+ pcos::property image_prop_row_bytes_;
+ pcos::property image_prop_field_;
+ pcos::property image_prop_unique_identifier_;
};
class clip_descriptor : public Ofx_base
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-27 22:05:42
|
Revision: 105
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=105&view=rev
Author: glslang
Date: 2007-04-27 15:05:41 -0700 (Fri, 27 Apr 2007)
Log Message:
-----------
+ rgbe native colour space
+ greg ward's hdr store
+ colour conversion for rgbe
+ more ofx implementation (very far from complete)
Modified Paths:
--------------
lib/openlibraries/src/openeffectslib/plugins/tonemap/tonemap_plugin.cpp
lib/openlibraries/src/openimagelib/il/float_traits.hpp
lib/openlibraries/src/openimagelib/il/utility.cpp
lib/openlibraries/src/openimagelib/plugins/hdr/hdr_plugin.cpp
lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.opl
lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp
lib/openlibraries/src/openpluginlib/pl/openpluginlib.cpp
Modified: lib/openlibraries/src/openeffectslib/plugins/tonemap/tonemap_plugin.cpp
===================================================================
--- lib/openlibraries/src/openeffectslib/plugins/tonemap/tonemap_plugin.cpp 2007-04-24 22:56:51 UTC (rev 104)
+++ lib/openlibraries/src/openeffectslib/plugins/tonemap/tonemap_plugin.cpp 2007-04-27 22:05:41 UTC (rev 105)
@@ -173,11 +173,12 @@
image_type_ptr tm_ilm_exr( const image_type_ptr& im, float exposure, float defog, float kneeLow, float kneeHigh )
{
- image_type_ptr dst_img = im;
+ image_type_ptr src_img = convert( im, L"r32g32b32f" );
+ image_type_ptr dst_img = src_img;
- if( im->pf( ) == L"r16g16b16f" || im->pf( ) == L"r32g32b32f" )
+ if( src_img->pf( ) == L"r16g16b16f" || src_img->pf( ) == L"r32g32b32f" )
{
- image_type_ptr half_im = convert_to_half( im );
+ image_type_ptr half_im = convert_to_half( src_img );
float fog_r, fog_g, fog_b;
compute_fog_color( half_im, fog_r, fog_g, fog_b );
@@ -186,8 +187,8 @@
halfFunction<float> g_gamma( gamma( exposure, defog * fog_g, kneeLow, kneeHigh ), -HALF_MAX, HALF_MAX );
halfFunction<float> b_gamma( gamma( exposure, defog * fog_b, kneeLow, kneeHigh ), -HALF_MAX, HALF_MAX );
- size_type width = im->width( );
- size_type height = im->height( );
+ size_type width = src_img->width( );
+ size_type height = src_img->height( );
dst_img = il::allocate( L"b8g8r8a8", width, height );
@@ -245,98 +246,94 @@
image_type_ptr tm_ferwerda( image_type_ptr im, float factor, float Ldmax )
{
- image_type_ptr dst_img = im;
+ image_type_ptr src_img = convert( im, L"r32g32b32f" );
+ image_type_ptr dst_img = il::allocate( L"r32g32b32f", im->width( ), im->height( ) );
- if( im->pf( ) == L"r32g32b32f" )
- {
- dst_img = il::allocate( im->pf( ), im->width( ), im->height( ) );
+ size_type width = src_img->width( );
+ size_type height = src_img->height( );
- size_type width = im->width( );
- size_type height = im->height( );
+ const float* src = ( const float* ) src_img->data( );
+ size_type src_pitch = src_img->pitch( );
- const float* src = ( const float* ) im->data( );
- size_type src_pitch = im->pitch( );
+ float* dst = ( float* ) dst_img->data( );
+ size_type dst_pitch = dst_img->pitch( );
- float* dst = ( float* ) dst_img->data( );
- size_type dst_pitch = dst_img->pitch( );
+ const float* sptr = src;
+ float* dptr = dst;
- const float* sptr = src;
- float* dptr = dst;
-
- // apply linear scaling factor.
- for( int i = 0; i < height; ++i )
+ // apply linear scaling factor.
+ for( int i = 0; i < height; ++i )
+ {
+ for( int j = 0; j < width; ++j )
{
- for( int j = 0; j < width; ++j )
- {
- *dst++ = *src++ * factor;
- *dst++ = *src++ * factor;
- *dst++ = *src++ * factor;
- }
-
- dst = dptr += dst_pitch;
- src = sptr += src_pitch;
+ *dst++ = *src++ * factor;
+ *dst++ = *src++ * factor;
+ *dst++ = *src++ * factor;
}
+
+ dst = dptr += dst_pitch;
+ src = sptr += src_pitch;
+ }
- // reset the pointer.
- dst = ( float* ) dst_img->data( );
- dptr = dst;
+ // reset the pointer.
+ dst = ( float* ) dst_img->data( );
+ dptr = dst;
- float Lmax = 0.0f;
+ float Lmax = 0.0f;
- // calculate maximum luminance value.
- for( int i = 0; i < height; ++i )
+ // calculate maximum luminance value.
+ for( int i = 0; i < height; ++i )
+ {
+ for( int j = 0; j < width; ++j )
{
- for( int j = 0; j < width; ++j )
- {
- float r = *dst++;
- float g = *dst++;
- float b = *dst++;
+ float r = *dst++;
+ float g = *dst++;
+ float b = *dst++;
- float lum = r * 0.2125f + g * 0.7154f + b * 0.0721f;
+ float lum = r * 0.2125f + g * 0.7154f + b * 0.0721f;
- if( lum > Lmax )
- Lmax = lum;
- }
-
- dst = dptr += dst_pitch;
+ if( lum > Lmax )
+ Lmax = lum;
}
+
+ dst = dptr += dst_pitch;
+ }
- float Lwa = Lmax * 0.5f;
- float log_Lwa = log10f( Lwa );
- float log_Lda = log10f( Ldmax * 0.5f );
+ float Lwa = Lmax * 0.5f;
+ float log_Lwa = log10f( Lwa );
+ float log_Lda = log10f( Ldmax * 0.5f );
- // calculate photopic and scotopic factors.
- float mp = powf( 10.0f, tp( log_Lda ) - tp( log_Lwa ) );
- float ms = powf( 10.0f, ts( log_Lda ) - ts( log_Lwa ) );
- float df = Lmax / Ldmax;
+ // calculate photopic and scotopic factors.
+ float mp = powf( 10.0f, tp( log_Lda ) - tp( log_Lwa ) );
+ float ms = powf( 10.0f, ts( log_Lda ) - ts( log_Lwa ) );
+ float df = Lmax / Ldmax;
- // reset the dst pointer.
- dst = ( float* ) dst_img->data( );
- dptr = dst;
+ // reset the dst pointer.
+ dst = ( float* ) dst_img->data( );
+ dptr = dst;
- // tonemap
- for( int i = 0; i < height; ++i )
+ // tonemap
+ for( int i = 0; i < height; ++i )
+ {
+ for( int j = 0; j < width; ++j )
{
- for( int j = 0; j < width; ++j )
- {
- float r = *( dst + 0 );
- float g = *( dst + 1 );
- float b = *( dst + 2 );
+ float r = *( dst + 0 );
+ float g = *( dst + 1 );
+ float b = *( dst + 2 );
- float lum = r * 0.2125f + g * 0.7154f + b * 0.0721f;
- float sf = ms * lum;
+ float lum = r * 0.2125f + g * 0.7154f + b * 0.0721f;
+ float sf = ms * lum;
- float dr = df * ( mp * r + sf );
- float dg = df * ( mp * g + sf );
- float db = df * ( mp * b + sf );
+ float dr = df * ( mp * r + sf );
+ float dg = df * ( mp * g + sf );
+ float db = df * ( mp * b + sf );
- *dst++ = dr > Ldmax ? Ldmax : dr;
- *dst++ = dg > Ldmax ? Ldmax : dg;
- *dst++ = db > Ldmax ? Ldmax : db;
- }
-
- dst = dptr += dst_pitch;
+ *dst++ = dr > Ldmax ? Ldmax : dr;
+ *dst++ = dg > Ldmax ? Ldmax : dg;
+ *dst++ = db > Ldmax ? Ldmax : db;
}
+
+ dst = dptr += dst_pitch;
}
return dst_img;
Modified: lib/openlibraries/src/openimagelib/il/float_traits.hpp
===================================================================
--- lib/openlibraries/src/openimagelib/il/float_traits.hpp 2007-04-24 22:56:51 UTC (rev 104)
+++ lib/openlibraries/src/openimagelib/il/float_traits.hpp 2007-04-27 22:05:41 UTC (rev 105)
@@ -22,7 +22,7 @@
typedef typename surface_format<T, storage>::size_type size_type;
private:
- static const size_type bs = 3;
+ static const size_type bs = 4;
public:
explicit rgbe( size_type width,
@@ -42,7 +42,7 @@
public:
virtual size_type allocsize( size_type width, size_type height, size_type depth ) const
- { return sizeof( float ) * detail::rgb_Allocate_size<T>( )( bs, width, height, depth ); }
+ { return detail::rgb_Allocate_size<T>( )( bs, width, height, depth ); }
virtual rgbe* clone( size_type w, size_type h )
{ return new rgbe( *this, w, h ); }
Modified: lib/openlibraries/src/openimagelib/il/utility.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/il/utility.cpp 2007-04-24 22:56:51 UTC (rev 104)
+++ lib/openlibraries/src/openimagelib/il/utility.cpp 2007-04-27 22:05:41 UTC (rev 105)
@@ -73,6 +73,44 @@
lut[ i ] = static_cast<unsigned short>( floorf( val + 0.5f ) );
}
}
+
+ void float2rgbe( float red, float green, float blue, unsigned char rgbe[ 4 ] )
+ {
+ float v = red;
+ if( v < green ) v = green;
+ if( v < blue ) v = blue;
+
+ if( v < ( std::numeric_limits<float>::min )( ) )
+ {
+ rgbe[ 0 ] = rgbe[ 1 ] = rgbe[ 2 ] = rgbe[ 3 ] = 0;
+ }
+ else
+ {
+ int exponent;
+ v = frexp( v, &exponent ) * 256.0f / v;
+
+ rgbe[ 0 ] = static_cast<unsigned char>( red * v );
+ rgbe[ 1 ] = static_cast<unsigned char>( green * v );
+ rgbe[ 2 ] = static_cast<unsigned char>( blue * v );
+ rgbe[ 3 ] = static_cast<unsigned char>( exponent + 128 );
+ }
+ }
+
+ void rgbe2float( unsigned char rgbe[ 4 ], float& red, float& green, float& blue )
+ {
+ if( rgbe[ 3 ] )
+ {
+ float f = ldexp( 1.0f, rgbe[ 3 ] - ( 128 + 8 ) );
+
+ red = rgbe[ 0 ] * f;
+ green = rgbe[ 1 ] * f;
+ blue = rgbe[ 2 ] * f;
+ }
+ else
+ {
+ red = green = blue = 0.0f;
+ }
+ }
}
// The following private functions are a bit rough and shouldn't be exposed publicly
@@ -115,6 +153,7 @@
typedef image< unsigned char, r16g16b16a16log > r16g16b16a16log_image_type;
typedef image< unsigned char, r32g32b32f > r32g32b32f_image_type;
typedef image< unsigned char, r32g32b32a32f > r32g32b32a32f_image_type;
+typedef image< unsigned char, rgbe > rgbe_image_type;
typedef image< unsigned char, yuv444 > yuv444_image_type;
typedef image< unsigned char, yuv422 > yuv422_image_type;
typedef image< unsigned char, yuv422p > yuv422p_image_type;
@@ -194,6 +233,8 @@
dst_img = image_type_ptr( new image_type( r32g32b32f_image_type( width, height, 1 ) ) );
else if( pf == L"r32g32b32a32f" )
dst_img = image_type_ptr( new image_type( r32g32b32a32f_image_type( width, height, 1 ) ) );
+ else if( pf == L"rgbe" )
+ dst_img = image_type_ptr( new image_type( rgbe_image_type( width, height, 1 ) ) );
else if ( pf == L"yuv444" )
dst_img = image_type_ptr( new image_type( yuv444_image_type( width, height, 1 ) ) );
else if ( pf == L"yuv422" )
@@ -914,7 +955,6 @@
size_type src_pitch0 = 2 * src_img->pitch( 0 ) - src_img->linesize( 0 );
size_type src_pitch1 = src_img->pitch( 1 ) - src_img->linesize( 1 );
size_type src_pitch2 = src_img->pitch( 2 ) - src_img->linesize( 2 );
- size_type chroma_pitch = src_img->pitch( 1 );
pointer dst0 = dst_img->data( );
pointer dst1 = dst_img->data( ) + dst_img->pitch( );
@@ -1890,7 +1930,6 @@
*( dst + 2 ) = static_cast<unsigned char>( opl::fast_floorf( *src++ ) );
*( dst + 1 ) = static_cast<unsigned char>( opl::fast_floorf( *src++ ) );
*( dst + 0 ) = static_cast<unsigned char>( opl::fast_floorf( *src++ ) );
-
*( dst + 3 ) = 255;
dst += 4;
@@ -1905,6 +1944,80 @@
return dst_img;
}
+static image_type_ptr rgbe_to_r32g32b32f( image_type_ptr src_img, const std::wstring &format )
+{
+ size_type width = src_img->width( );
+ size_type height = src_img->height( );
+
+ image_type_ptr dst_img = allocate( src_img, format );
+ if( dst_img != 0 )
+ {
+ pointer src = src_img->data( );
+ size_type src_pitch = src_img->pitch( );
+ float* dst = ( float* ) dst_img->data( );
+ size_type dst_pitch = dst_img->pitch( );
+
+ pointer sptr = src;
+ float* dptr = dst;
+
+ size_type orig_width = width;
+
+ while( height-- )
+ {
+ while( width-- )
+ {
+ rgbe2float( src, *( dst + 0 ), *( dst + 1 ), *( dst + 2 ) );
+
+ dst += 3;
+ src += 4;
+ }
+
+ dst = dptr += dst_pitch;
+ src = sptr += src_pitch;
+ width = orig_width;
+ }
+ }
+
+ return dst_img;
+}
+
+static image_type_ptr r32g32b32f_to_rgbe( image_type_ptr src_img, const std::wstring &format )
+{
+ size_type width = src_img->width( );
+ size_type height = src_img->height( );
+
+ image_type_ptr dst_img = allocate( src_img, format );
+ if( dst_img != 0 )
+ {
+ float* src = ( float* )src_img->data( );
+ size_type src_pitch = src_img->pitch( );
+ pointer dst = dst_img->data( );
+ size_type dst_pitch = dst_img->pitch( );
+
+ float* sptr = src;
+ pointer dptr = dst;
+
+ size_type orig_width = width;
+
+ while( height-- )
+ {
+ while( width-- )
+ {
+ float2rgbe( *( src + 0 ), *( src + 1 ), *( src + 2 ), dst );
+
+ dst += 4;
+ src += 3;
+ }
+
+ dst = dptr += dst_pitch;
+ src = sptr += src_pitch;
+ width = orig_width;
+ }
+ }
+
+ return dst_img;
+}
+
static image_type_ptr yuv420p_to_yuv411p( const image_type_ptr &src_img, const std::wstring &format )
{
size_type width = src_img->width( );
@@ -2488,9 +2601,18 @@
{
if( dst_pf == L"b8g8r8a8" )
return tm_linear( src );
+ else if( dst_pf == L"rgbe" )
+ return r32g32b32f_to_rgbe( src, L"rgbe" );
else if( dst_pf == L"ldr8" ) // stub colour space for straight truncation to LDR data.
return r32g32b32f_to_b8g8r8a8( src, L"b8g8r8a8" );
}
+ else if( src_pf == L"rgbe" )
+ {
+ if( dst_pf == L"b8g8r8a8" )
+ return tm_linear( rgbe_to_r32g32b32f( src, L"r32g32b32f" ) );
+ else if( dst_pf == L"r32g32b32f" )
+ return rgbe_to_r32g32b32f( src, L"r32g32b32f" );
+ }
else if ( src_pf == L"yuv444" )
{
if ( dst_pf == L"r8g8b8" )
Modified: lib/openlibraries/src/openimagelib/plugins/hdr/hdr_plugin.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/hdr/hdr_plugin.cpp 2007-04-24 22:56:51 UTC (rev 104)
+++ lib/openlibraries/src/openimagelib/plugins/hdr/hdr_plugin.cpp 2007-04-27 22:05:41 UTC (rev 105)
@@ -7,19 +7,11 @@
#ifdef WIN32
#include <windows.h>
-#include <gdiplus.h>
-
-#ifdef min
-# undef min
#endif
-#endif // WIN32
#include <cmath>
-#include <cstdio>
-#include <cstdlib>
#include <limits>
#include <vector>
-#include <string>
#include <boost/filesystem/fstream.hpp>
@@ -45,9 +37,6 @@
char format[ 16 ];
};
- void destroy( il::image_type* im )
- { delete im; }
-
bool Read_s( fs::ifstream& file, char* s, std::streamsize size, std::streamsize max )
{
#if _MSC_VER >= 1400
@@ -59,57 +48,15 @@
return !file.fail( );
}
- void float2rgbe( float red, float green, float blue, unsigned char rgbe[ 4 ] )
+ bool read_rgbe_pixels_raw( fs::ifstream& file, unsigned char* data, int width, int height )
{
- float v = red;
- if( v < green ) v = green;
- if( v < blue ) v = blue;
-
- if( v < std::numeric_limits<float>::min( ) )
- {
- rgbe[ 0 ] = rgbe[ 1 ] = rgbe[ 2 ] = rgbe[ 3 ] = 0;
- }
- else
- {
- int exponent;
- v = frexp( v, &exponent );
-
- rgbe[ 0 ] = static_cast<unsigned char>( red * v );
- rgbe[ 1 ] = static_cast<unsigned char>( green * v );
- rgbe[ 2 ] = static_cast<unsigned char>( blue * v );
- rgbe[ 3 ] = exponent + 128;
- }
- }
-
- void rgbe2float( unsigned char rgbe[ 4 ], float& red, float& green, float& blue )
- {
- if( rgbe[ 3 ] )
- {
- float f = ldexp( 1.0f, rgbe[ 3 ] - ( 128 + 8 ) );
-
- red = rgbe[ 0 ] * f;
- green = rgbe[ 1 ] * f;
- blue = rgbe[ 2 ] * f;
- }
- else
- {
- red = green = blue = 0.0f;
- }
- }
-
- bool read_rgbe_pixels_raw( fs::ifstream& file, float* data, int width, int height )
- {
- char rgbe[ 4 ];
-
int numpixels = width * height;
while( numpixels-- )
{
- if( !Read_s( file, rgbe, sizeof( rgbe ), sizeof( rgbe ) ) )
+ if( !Read_s( file, ( char* ) data, 4, 4 ) )
return false;
- rgbe2float( ( unsigned char* ) rgbe, data[ 0 ], data[ 1 ], data[ 2 ] );
-
- data += 3;
+ data += 4;
}
return true;
@@ -117,13 +64,13 @@
bool read_rgbe_pixels( fs::ifstream& file, il::image_type_ptr im, int width, int height )
{
- float* data = reinterpret_cast<float*>( im->data( ) );
+ il::image_type::pointer data = im->data( );
if( width < 8 || width > 0x7FFF )
return read_rgbe_pixels_raw( file, data, width, height );
std::vector<unsigned char> line;
- line.resize( width * 4 * sizeof( float ) );
+ line.resize( width * 4 * 4 );
unsigned char rgbe[ 4 ];
for( int i = 0; i < height; ++i )
@@ -133,9 +80,12 @@
if( ( rgbe[ 0 ] != 2 ) || ( rgbe[ 1 ] != 2 ) || ( rgbe[ 2 ] & 0x80 ) )
{
- rgbe2float( rgbe, data[ 0 ], data[ 1 ], data[ 2 ] );
+ data[ 0 ] = rgbe[ 0 ];
+ data[ 1 ] = rgbe[ 1 ];
+ data[ 2 ] = rgbe[ 2 ];
+ data[ 3 ] = rgbe[ 3 ];
- data += 3;
+ data += 4;
return read_rgbe_pixels_raw( file, data, width, height );
}
@@ -186,14 +136,12 @@
for( int k = 0; k < width; ++k )
{
- rgbe[ 0 ] = line[ k + 0 * width ];
- rgbe[ 1 ] = line[ k + 1 * width ];
- rgbe[ 2 ] = line[ k + 2 * width ];
- rgbe[ 3 ] = line[ k + 3 * width ];
-
- rgbe2float( rgbe, data[ 0 ], data[ 1 ], data[ 2 ] );
-
- data += 3;
+ data[ 0 ] = line[ k + 0 * width ];
+ data[ 1 ] = line[ k + 1 * width ];
+ data[ 2 ] = line[ k + 2 * width ];
+ data[ 3 ] = line[ k + 3 * width ];
+
+ data += 4;
}
data += im->pitch( ) - im->linesize( );
@@ -202,13 +150,6 @@
return true;
}
- il::image_type_ptr rgbe_to_image_type( int width, int height )
- {
- typedef il::image<unsigned char, il::r32g32b32f> r32g32b32f_image_type;
-
- return il::image_type_ptr( new il::image_type( r32g32b32f_image_type( width, height, 1 ) ), destroy );
- }
-
bool read_hdr_header( fs::ifstream& file, RgbeInfo& info, int& width, int& height )
{
info.valid = 0;
@@ -297,7 +238,7 @@
if( !read_hdr_header( file, rgbe_info, width, height ) )
return il::image_type_ptr( );
- il::image_type_ptr image = rgbe_to_image_type( width, height );
+ il::image_type_ptr image = il::allocate( L"rgbe", width, height );
if( !image )
return il::image_type_ptr( );
@@ -306,12 +247,41 @@
return image;
}
-}
+
+ bool store_hdr( const fs::path& path, const il::image_type_ptr& im )
+ {
+ fs::ofstream file( path, std::ios::out | std::ios::binary );
+ if( !file.is_open( ) )
+ return false;
+
+ il::image_type_ptr dst = il::convert( im, L"rgbe" );
+ if( dst )
+ {
+ il::image_type::size_type width = dst->width( );
+ il::image_type::size_type height = dst->height( );
+
+ // write header.
+ file << "#?RGBE\nGAMMA=1.0\nEXPOSURE=1.0\nFORMAT=32-bit_rle_rgbe\n\n";
+ file << "-Y " << height << "+X " << width << "\n";
+ il::image_type::const_pointer data = dst->data( );
+ il::image_type::size_type pitch = dst->pitch( );
+
+ while( height-- )
+ {
+ file.write( ( char* ) data, dst->linesize( ) );
+ data += pitch;
+ }
+ }
+
+ return true;
+ }
+}
+
il::image_type_ptr HDR_plugin::load( const fs::path& path )
-{ return il::image_type_ptr( load_hdr( path ) ); }
+{ return load_hdr( path ); }
-bool HDR_plugin::store( const fs::path&, const il::image_type_ptr& )
-{ return false; }
+bool HDR_plugin::store( const fs::path& path, const il::image_type_ptr& im )
+{ return store_hdr( path, im ); }
} } } }
Modified: lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.opl
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.opl 2007-04-24 22:56:51 UTC (rev 104)
+++ lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.opl 2007-04-27 22:05:41 UTC (rev 105)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<openlibraries version="1.0">
- <!-- plugins go here -->
- <openimagelib name="oil" version="0.2.0">
- <plugin name="OpenLibraries JPG plugin" type="input" extension='".*\.jpg"' merit="80" filename='"libopenimagelib_jpg.so", "openimagelib_jpg-vc80-d-0_4_0.dll" "openimagelib_jpg-vc80-r-0_4_0.dll"'/>
- <plugin name="OpenLibraries JPG plugin" type="output" extension='".*\.jpg"' merit="80" filename='"libopenimagelib_jpg.so", "libopenimagelib_jpg.dylib", "openimagelib_jpg-vc80-d-0_4_0.dll" "openimagelib_jpg-vc80-r-0_4_0.dll"'/>
- </openimagelib>
+ <!-- plugins go here -->
+ <openimagelib name="oil" version="0.2.0">
+ <plugin name="OpenLibraries JPG plugin" type="input" in_filter="*.jpg" extension='".*\.jpg"' merit="80" filename='"libopenimagelib_jpg.so", "libopenimagelib_jpg.dylib", "openimagelib_jpg-vc80-d-0_4_0.dll", "openimagelib_jpg-vc80-r-0_4_0.dll"'/>
+ <plugin name="OpenLibraries JPG plugin" type="output" in_filter="*.jpg" extension='".*\.jpg"' merit="80" filename='"libopenimagelib_jpg.so", "libopenimagelib_jpg.dylib", "openimagelib_jpg-vc80-d-0_4_0.dll", "openimagelib_jpg-vc80-r-0_4_0.dll"'/>
+ </openimagelib>
</openlibraries>
Modified: lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp
===================================================================
--- lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp 2007-04-24 22:56:51 UTC (rev 104)
+++ lib/openlibraries/src/openmedialib/plugins/ofx/ofx_plugin.cpp 2007-04-27 22:05:41 UTC (rev 105)
@@ -5,6 +5,13 @@
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
+#if _MSC_VER >= 1400
+#include <hash_map>
+#else
+#include <map>
+#endif
+
+#include <cstdarg>
#include <cstring>
#include <new>
#include <vector>
@@ -52,52 +59,995 @@
virtual property_container_ptr get_property_set( ) = 0;
};
- class image_instance : public Ofx_base
+ class param_descriptor : public Ofx_base
{
public:
- explicit image_instance( )
- : image_instance_prop_type_( pcos::key::from_string( kOfxPropType ) )
- , image_instance_prop_pixel_depth_( pcos::key::from_string( kOfxImageEffectPropPixelDepth ) )
- , image_instance_prop_components_( pcos::key::from_string( kOfxImageEffectPropComponents ) )
- , image_instance_prop_premultiplication_( pcos::key::from_string( kOfxImageEffectPropPreMultiplication ) )
- , image_instance_prop_render_scale_( pcos::key::from_string( kOfxImageEffectPropRenderScale ) )
- , image_instance_prop_pixel_aspect_ratio_( pcos::key::from_string( kOfxImagePropPixelAspectRatio ) )
- , image_instance_prop_data_( pcos::key::from_string( kOfxImagePropData ) )
- , image_instance_prop_bounds_( pcos::key::from_string( kOfxImagePropBounds ) )
- , image_instance_prop_region_of_definition_( pcos::key::from_string( kOfxImagePropRegionOfDefinition ) )
- , image_instance_prop_row_bytes_( pcos::key::from_string( kOfxImagePropRowBytes ) )
- , image_instance_prop_field_( pcos::key::from_string( kOfxImagePropField ) )
- , image_instance_prop_unique_identifier_( pcos::key::from_string( kOfxImagePropUniqueIdentifier ) )
+ explicit param_descriptor( )
+ : param_descriptor_prop_type_( pcos::key::from_string( kOfxPropType ) )
+ , param_descriptor_prop_name_( pcos::key::from_string( kOfxPropName ) )
+ , param_descriptor_prop_label_( pcos::key::from_string( kOfxPropLabel ) )
+ , param_descriptor_prop_short_label_( pcos::key::from_string( kOfxPropShortLabel ) )
+ , param_descriptor_prop_long_label_( pcos::key::from_string( kOfxPropLongLabel ) )
+ , param_descriptor_prop_param_prop_type_( pcos::key::from_string( kOfxParamPropType ) )
+ , param_descriptor_prop_param_prop_secret_( pcos::key::from_string( kOfxParamPropSecret ) )
+ , param_descriptor_prop_param_prop_can_undo_( pcos::key::from_string( kOfxParamPropCanUndo ) )
+ , param_descriptor_prop_param_prop_hint_( pcos::key::from_string( kOfxParamPropHint ) )
+ , param_descriptor_prop_param_prop_script_name_( pcos::key::from_string( kOfxParamPropScriptName ) )
+ , param_descriptor_prop_param_prop_parent_( pcos::key::from_string( kOfxParamPropParent ) )
+ , param_descriptor_prop_param_prop_enabled_( pcos::key::from_string( kOfxParamPropEnabled ) )
+ , param_descriptor_prop_param_prop_data_ptr_( pcos::key::from_string( kOfxParamPropDataPtr ) )
{ }
virtual property_container_ptr get_property_set( )
- { return &image_instance_props_; }
+ { return ¶m_descriptor_props_; }
+
+ private:
+ pcos::property_container param_descriptor_props_;
+ pcos::property param_descriptor_prop_type_;
+ pcos::property param_descriptor_prop_name_;
+ pcos::property param_descriptor_prop_label_;
+ pcos::property param_descriptor_prop_short_label_;
+ pcos::property param_descriptor_prop_long_label_;
+ pcos::property param_descriptor_prop_param_prop_type_;
+ pcos::property param_descriptor_prop_param_prop_secret_;
+ pcos::property param_descriptor_prop_param_prop_can_undo_;
+ pcos::property param_descriptor_prop_param_prop_hint_;
+ pcos::property param_descriptor_prop_param_prop_script_name_;
+ pcos::property param_descriptor_prop_param_prop_parent_;
+ pcos::property param_descriptor_prop_param_prop_enabled_;
+ pcos::property param_descriptor_prop_param_prop_data_ptr_;
+ };
+
+ class value_param_descriptor : public param_descriptor
+ {
+ public:
+ explicit value_param_descriptor( )
+ : value_param_descriptor_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
+ , value_param_descriptor_param_prop_animates_( pcos::key::from_string( kOfxParamPropAnimates ) )
+ , value_param_descriptor_param_prop_is_animating_( pcos::key::from_string( kOfxParamPropIsAnimating ) )
+ , value_param_descriptor_param_prop_is_auto_keying_( pcos::key::from_string( kOfxParamPropIsAutoKeying ) )
+ , value_param_descriptor_param_prop_persistant_( pcos::key::from_string( kOfxParamPropPersistant ) )
+ , value_param_descriptor_param_prop_evaluate_on_change_( pcos::key::from_string( kOfxParamPropEvaluateOnChange ) )
+ , value_param_descriptor_param_prop_plugin_may_write_( pcos::key::from_string( kOfxParamPropPluginMayWrite ) )
+ , value_param_descriptor_param_prop_cache_invalidation_( pcos::key::from_string( kOfxParamPropCacheInvalidation ) )
+ { }
- void set_image_ptr( image_type_ptr im )
+ private:
+ pcos::property value_param_descriptor_param_prop_default_;
+ pcos::property value_param_descriptor_param_prop_animates_;
+ pcos::property value_param_descriptor_param_prop_is_animating_;
+ pcos::property value_param_descriptor_param_prop_is_auto_keying_;
+ pcos::property value_param_descriptor_param_prop_persistant_;
+ pcos::property value_param_descriptor_param_prop_evaluate_on_change_;
+ pcos::property value_param_descriptor_param_prop_plugin_may_write_;
+ pcos::property value_param_descriptor_param_prop_cache_invalidation_;
+ };
+
+ class string_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit string_param_descriptor( )
+ : string_param_descriptor_param_prop_string_mode_( pcos::key::from_string( kOfxParamPropStringMode ) )
+ , string_param_descriptor_param_prop_string_file_path_exists_( pcos::key::from_string( kOfxParamPropStringFilePathExists ) )
+ { }
+
+ private:
+ pcos::property string_param_descriptor_param_prop_string_mode_;
+ pcos::property string_param_descriptor_param_prop_string_file_path_exists_;
+ };
+
+ class int_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit int_param_descriptor( )
+ : int_param_descriptor_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , int_param_descriptor_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , int_param_descriptor_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , int_param_descriptor_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ { }
+
+ private:
+ pcos::property int_param_descriptor_param_prop_min_;
+ pcos::property int_param_descriptor_param_prop_max_;
+ pcos::property int_param_descriptor_param_prop_display_min_;
+ pcos::property int_param_descriptor_param_prop_display_max_;
+ };
+
+ class int2D_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit int2D_param_descriptor( )
+ : int2D_param_descriptor_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , int2D_param_descriptor_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , int2D_param_descriptor_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , int2D_param_descriptor_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ , int2D_param_descriptor_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
+ { }
+
+ private:
+ pcos::property int2D_param_descriptor_param_prop_min_;
+ pcos::property int2D_param_descriptor_param_prop_max_;
+ pcos::property int2D_param_descriptor_param_prop_display_min_;
+ pcos::property int2D_param_descriptor_param_prop_display_max_;
+ pcos::property int2D_param_descriptor_param_prop_dimension_label_;
+ };
+
+ class int3D_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit int3D_param_descriptor( )
+ : int3D_param_descriptor_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , int3D_param_descriptor_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , int3D_param_descriptor_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , int3D_param_descriptor_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ , int3D_param_descriptor_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
+ { }
+
+ private:
+ pcos::property int3D_param_descriptor_param_prop_min_;
+ pcos::property int3D_param_descriptor_param_prop_max_;
+ pcos::property int3D_param_descriptor_param_prop_display_min_;
+ pcos::property int3D_param_descriptor_param_prop_display_max_;
+ pcos::property int3D_param_descriptor_param_prop_dimension_label_;
+ };
+
+ class base_double_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit base_double_param_descriptor( )
+ : base_double_param_descriptor_param_prop_increment_( pcos::key::from_string( kOfxParamPropIncrement ) )
+ , base_double_param_descriptor_param_prop_digits_( pcos::key::from_string( kOfxParamPropDigits ) )
+ { }
+
+ private:
+ pcos::property base_double_param_descriptor_param_prop_increment_;
+ pcos::property base_double_param_descriptor_param_prop_digits_;
+ };
+
+ class double_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit double_param_descriptor( )
+ : double_param_descriptor_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , double_param_descriptor_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , double_param_descriptor_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , double_param_descriptor_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ , double_param_descriptor_param_prop_show_time_marker_( pcos::key::from_string( kOfxParamPropShowTimeMarker ) )
+ { }
+
+ private:
+ pcos::property double_param_descriptor_param_prop_min_;
+ pcos::property double_param_descriptor_param_prop_max_;
+ pcos::property double_param_descriptor_param_prop_display_min_;
+ pcos::property double_param_descriptor_param_prop_display_max_;
+ pcos::property double_param_descriptor_param_prop_show_time_marker_;
+ };
+
+ class double2D_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit double2D_param_descriptor( )
+ : double2D_param_descriptor_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , double2D_param_descriptor_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , double2D_param_descriptor_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , double2D_param_descriptor_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ , double2D_param_descriptor_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
+ { }
+
+ private:
+ pcos::property double2D_param_descriptor_param_prop_min_;
+ pcos::property double2D_param_descriptor_param_prop_max_;
+ pcos::property double2D_param_descriptor_param_prop_display_min_;
+ pcos::property double2D_param_descriptor_param_prop_display_max_;
+ pcos::property double2D_param_descriptor_param_prop_dimension_label_;
+ };
+
+ class double3D_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit double3D_param_descriptor( )
+ : double3D_param_descriptor_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , double3D_param_descriptor_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , double3D_param_descriptor_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , double3D_param_descriptor_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ , double3D_param_descriptor_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
+ { }
+
+ private:
+ pcos::property double3D_param_descriptor_param_prop_min_;
+ pcos::property double3D_param_descriptor_param_prop_max_;
+ pcos::property double3D_param_descriptor_param_prop_display_min_;
+ pcos::property double3D_param_descriptor_param_prop_display_max_;
+ pcos::property double3D_param_descriptor_param_prop_dimension_label_;
+ };
+
+ class rgb_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit rgb_param_descriptor( )
+ { }
+ };
+
+ class rgba_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit rgba_param_descriptor( )
+ { }
+ };
+
+ class boolean_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit boolean_param_descriptor( )
+ { }
+ };
+
+ class choice_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit choice_param_descriptor( )
+ { }
+ };
+
+ class group_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit group_param_descriptor( )
+ { }
+ };
+
+ class page_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit page_param_descriptor( )
+ { }
+ };
+
+ class push_button_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit push_button_param_descriptor( )
+ { }
+ };
+
+ class custom_param_descriptor : public value_param_descriptor
+ {
+ public:
+ explicit custom_param_descriptor( )
+ { }
+ };
+
+ class param_set_descriptor
+ {
+ public:
+ typedef pl::string key_type;
+ typedef boost::shared_ptr<param_descriptor> param_descriptor_ptr;
+
+#if _MSC_VER >= 1400
+ typedef stdext::hash_map<key_type, param_descriptor_ptr> container;
+#else
+ typedef std::map<key_type, param_descriptor_ptr> container;
+#endif
+
+ public:
+ explicit param_set_descriptor( )
+ { }
+
+ OfxStatus define( const pl::string& param_type, const pl::string& name )
{
+ typedef container::const_iterator const_iterator;
+
+ const_iterator I;
+ if( ( I = params_.find( name ) ) == params_.end( ) )
+ {
+ if( param_type == kOfxParamTypeInteger )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new int_param_descriptor( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeInteger2D )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new int2D_param_descriptor( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeInteger3D )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new int3D_param_descriptor( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeDouble )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new double_param_descriptor( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeDouble2D )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new double2D_param_descriptor( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeDouble3D )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new double3D_param_descriptor( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeRGB )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new rgb_param_descriptor( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeRGBA )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new rgba_param_descriptor( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeBoolean )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new boolean_param_descriptor( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeChoice )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new choice_param_descriptor( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeGroup )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new group_param_descriptor( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypePage )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new page_param_descriptor( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeCustom )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new custom_param_descriptor( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypePushButton )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new push_button_param_descriptor( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeString )
+ {
+ params_.insert( container::value_type( name, param_descriptor_ptr( new string_param_descriptor( ) ) ) );
+ }
+ }
+ else
+ {
+ // parameter already exists. if the type is the same return success. otherwise flag as an error.
+ }
+
+ return kOfxStatOK;
}
+
+ property_container_ptr find_property_set( const pl::string& name )
+ {
+ typedef container::const_iterator const_iterator;
+
+ const_iterator I;
+ if( ( I = params_.find( name ) ) != params_.end( ) )
+ return I->second->get_property_set( );
+
+ return 0;
+ }
- // Image instance properties.
private:
- pcos::property_container image_instance_props_;
- pcos::property image_instance_prop_type_;
- pcos::property image_instance_prop_pixel_depth_;
- pcos::property image_instance_prop_components_;
- pcos::property image_instance_prop_premultiplication_;
- pcos::property image_instance_prop_render_scale_;
- pcos::property image_instance_prop_pixel_aspect_ratio_;
- pcos::property image_instance_prop_data_;
- pcos::property image_instance_prop_bounds_;
- pcos::property image_instance_prop_region_of_definition_;
- pcos::property image_instance_prop_row_bytes_;
- pcos::property image_instance_prop_field_;
- pcos::property image_instance_prop_unique_identifier_;
+ container params_;
};
+ class param : public Ofx_base
+ {
+ public:
+ explicit param( )
+ : param_prop_type_( pcos::key::from_string( kOfxPropType ) )
+ , param_prop_name_( pcos::key::from_string( kOfxPropName ) )
+ , param_prop_label_( pcos::key::from_string( kOfxPropLabel ) )
+ , param_prop_short_label_( pcos::key::from_string( kOfxPropShortLabel ) )
+ , param_prop_long_label_( pcos::key::from_string( kOfxPropLongLabel ) )
+ , param_prop_param_prop_type_( pcos::key::from_string( kOfxParamPropType ) )
+ , param_prop_param_prop_secret_( pcos::key::from_string( kOfxParamPropSecret ) )
+ , param_prop_param_prop_can_undo_( pcos::key::from_string( kOfxParamPropCanUndo ) )
+ , param_prop_param_prop_hint_( pcos::key::from_string( kOfxParamPropHint ) )
+ , param_prop_param_prop_script_name_( pcos::key::from_string( kOfxParamPropScriptName ) )
+ , param_prop_param_prop_parent_( pcos::key::from_string( kOfxParamPropParent ) )
+ , param_prop_param_prop_enabled_( pcos::key::from_string( kOfxParamPropEnabled ) )
+ , param_prop_param_prop_data_ptr_( pcos::key::from_string( kOfxParamPropDataPtr ) )
+ { }
+
+ virtual property_container_ptr get_property_set( )
+ { return ¶m_props_; }
+
+ virtual pcos::property get_value( ) = 0;
+ virtual pl::string get_type( ) = 0;
+
+ private:
+ pcos::property_container param_props_;
+ pcos::property param_prop_type_;
+ pcos::property param_prop_name_;
+ pcos::property param_prop_label_;
+ pcos::property param_prop_short_label_;
+ pcos::property param_prop_long_label_;
+ pcos::property param_prop_param_prop_type_;
+ pcos::property param_prop_param_prop_secret_;
+ pcos::property param_prop_param_prop_can_undo_;
+ pcos::property param_prop_param_prop_hint_;
+ pcos::property param_prop_param_prop_script_name_;
+ pcos::property param_prop_param_prop_parent_;
+ pcos::property param_prop_param_prop_enabled_;
+ pcos::property param_prop_param_prop_data_ptr_;
+ };
+
+ class value_param : public param
+ {
+ public:
+ explicit value_param( )
+ : value_param_prop_default_( pcos::key::from_string( kOfxParamPropDefault ) )
+ , value_param_prop_animates_( pcos::key::from_string( kOfxParamPropAnimates ) )
+ , value_param_prop_is_animating_( pcos::key::from_string( kOfxParamPropIsAnimating ) )
+ , value_param_prop_is_auto_keying_( pcos::key::from_string( kOfxParamPropIsAutoKeying ) )
+ , value_param_prop_persistant_( pcos::key::from_string( kOfxParamPropPersistant ) )
+ , value_param_prop_evaluate_on_change_( pcos::key::from_string( kOfxParamPropEvaluateOnChange ) )
+ , value_param_prop_plugin_may_write_( pcos::key::from_string( kOfxParamPropPluginMayWrite ) )
+ , value_param_prop_cache_invalidation_( pcos::key::from_string( kOfxParamPropCacheInvalidation ) )
+ { }
+
+ private:
+ pcos::property value_param_prop_default_;
+ pcos::property value_param_prop_animates_;
+ pcos::property value_param_prop_is_animating_;
+ pcos::property value_param_prop_is_auto_keying_;
+ pcos::property value_param_prop_persistant_;
+ pcos::property value_param_prop_evaluate_on_change_;
+ pcos::property value_param_prop_plugin_may_write_;
+ pcos::property value_param_prop_cache_invalidation_;
+ };
+
+ class string_param : public value_param
+ {
+ public:
+ explicit string_param( )
+ : string_param_value_( pcos::key::from_string( "value" ) )
+ , string_param_prop_string_mode_( pcos::key::from_string( kOfxParamPropStringMode ) )
+ , string_param_prop_string_file_path_exists_( pcos::key::from_string( kOfxParamPropStringFilePathExists ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return string_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypeString;
+ }
+
+ private:
+ pcos::property string_param_value_;
+ pcos::property string_param_prop_string_mode_;
+ pcos::property string_param_prop_string_file_path_exists_;
+ };
+
+ class int_param : public value_param
+ {
+ public:
+ explicit int_param( )
+ : int_param_value_( pcos::key::from_string( "value" ) )
+ , int_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , int_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , int_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , int_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return int_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypeInteger;
+ }
+
+ private:
+ pcos::property int_param_value_;
+ pcos::property int_param_prop_min_;
+ pcos::property int_param_prop_max_;
+ pcos::property int_param_prop_display_min_;
+ pcos::property int_param_prop_display_max_;
+ };
+
+ class int2D_param : public value_param
+ {
+ public:
+ explicit int2D_param( )
+ : int2D_param_value_( pcos::key::from_string( "value" ) )
+ , int2D_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , int2D_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , int2D_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , int2D_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ , int2D_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return int2D_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypeInteger2D;
+ }
+
+ private:
+ pcos::property int2D_param_value_;
+ pcos::property int2D_param_prop_min_;
+ pcos::property int2D_param_prop_max_;
+ pcos::property int2D_param_prop_display_min_;
+ pcos::property int2D_param_prop_display_max_;
+ pcos::property int2D_param_prop_dimension_label_;
+ };
+
+ class int3D_param : public value_param
+ {
+ public:
+ explicit int3D_param( )
+ : int3D_param_value_( pcos::key::from_string( "value" ) )
+ , int3D_param_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , int3D_param_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , int3D_param_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , int3D_param_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ , int3D_param_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return int3D_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypeInteger3D;
+ }
+
+ private:
+ pcos::property int3D_param_value_;
+ pcos::property int3D_param_param_prop_min_;
+ pcos::property int3D_param_param_prop_max_;
+ pcos::property int3D_param_param_prop_display_min_;
+ pcos::property int3D_param_param_prop_display_max_;
+ pcos::property int3D_param_param_prop_dimension_label_;
+ };
+
+ class base_double_param : public value_param
+ {
+ public:
+ explicit base_double_param( )
+ : base_double_param_prop_increment_( pcos::key::from_string( kOfxParamPropIncrement ) )
+ , base_double_param_prop_digits_( pcos::key::from_string( kOfxParamPropDigits ) )
+ { }
+
+ private:
+ pcos::property base_double_param_prop_increment_;
+ pcos::property base_double_param_prop_digits_;
+ };
+
+ class double_param : public value_param
+ {
+ public:
+ explicit double_param( )
+ : double_param_value_( pcos::key::from_string( "value" ) )
+ , double_param_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , double_param_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , double_param_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , double_param_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ , double_param_param_prop_show_time_marker_( pcos::key::from_string( kOfxParamPropShowTimeMarker ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return double_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypeDouble;
+ }
+
+ private:
+ pcos::property double_param_value_;
+ pcos::property double_param_param_prop_min_;
+ pcos::property double_param_param_prop_max_;
+ pcos::property double_param_param_prop_display_min_;
+ pcos::property double_param_param_prop_display_max_;
+ pcos::property double_param_param_prop_show_time_marker_;
+ };
+
+ class double2D_param : public value_param
+ {
+ public:
+ explicit double2D_param( )
+ : double2D_param_value_( pcos::key::from_string( "value" ) )
+ , double2D_param_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , double2D_param_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , double2D_param_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , double2D_param_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ , double2D_param_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return double2D_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypeDouble2D;
+ }
+
+ private:
+ pcos::property double2D_param_value_;
+ pcos::property double2D_param_param_prop_min_;
+ pcos::property double2D_param_param_prop_max_;
+ pcos::property double2D_param_param_prop_display_min_;
+ pcos::property double2D_param_param_prop_display_max_;
+ pcos::property double2D_param_param_prop_dimension_label_;
+ };
+
+ class double3D_param : public value_param
+ {
+ public:
+ explicit double3D_param( )
+ : double3D_param_value_( pcos::key::from_string( "value" ) )
+ , double3D_param_param_prop_min_( pcos::key::from_string( kOfxParamPropMin ) )
+ , double3D_param_param_prop_max_( pcos::key::from_string( kOfxParamPropMax ) )
+ , double3D_param_param_prop_display_min_( pcos::key::from_string( kOfxParamPropDisplayMin ) )
+ , double3D_param_param_prop_display_max_( pcos::key::from_string( kOfxParamPropDisplayMax ) )
+ , double3D_param_param_prop_dimension_label_( pcos::key::from_string( kOfxParamPropDimensionLabel ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return double3D_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypeDouble3D;
+ }
+
+ private:
+ pcos::property double3D_param_value_;
+ pcos::property double3D_param_param_prop_min_;
+ pcos::property double3D_param_param_prop_max_;
+ pcos::property double3D_param_param_prop_display_min_;
+ pcos::property double3D_param_param_prop_display_max_;
+ pcos::property double3D_param_param_prop_dimension_label_;
+ };
+
+ class rgb_param : public value_param
+ {
+ public:
+ explicit rgb_param( )
+ : rgb_param_value_( pcos::key::from_string( "value" ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return rgb_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypeRGB;
+ }
+
+ private:
+ pcos::property rgb_param_value_;
+ };
+
+ class rgba_param : public value_param
+ {
+ public:
+ explicit rgba_param( )
+ : rgba_param_value_( pcos::key::from_string( "value" ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return rgba_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypeRGBA;
+ }
+
+ private:
+ pcos::property rgba_param_value_;
+ };
+
+ class boolean_param : public value_param
+ {
+ public:
+ explicit boolean_param( )
+ : boolean_param_value_( pcos::key::from_string( "value" ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return boolean_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypeBoolean;
+ }
+
+ private:
+ pcos::property boolean_param_value_;
+ };
+
+ class choice_param : public value_param
+ {
+ public:
+ explicit choice_param( )
+ : choice_param_value_( pcos::key::from_string( "value" ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return choice_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypeChoice;
+ }
+
+ private:
+ pcos::property choice_param_value_;
+ };
+
+ class group_param : public value_param
+ {
+ public:
+ explicit group_param( )
+ : group_param_value_( pcos::key::from_string( "value" ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return group_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypeGroup;
+ }
+
+ private:
+ pcos::property group_param_value_;
+ };
+
+ class page_param : public value_param
+ {
+ public:
+ explicit page_param( )
+ : page_param_value_( pcos::key::from_string( "value" ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return page_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypePage;
+ }
+
+ private:
+ pcos::property page_param_value_;
+ };
+
+ class push_button_param : public value_param
+ {
+ public:
+ explicit push_button_param( )
+ : push_button_param_value_( pcos::key::from_string( "value" ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return push_button_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypePushButton;
+ }
+
+ private:
+ pcos::property push_button_param_value_;
+ };
+
+ class custom_param : public value_param
+ {
+ public:
+ explicit custom_param( )
+ : custom_param_value_( pcos::key::from_string( "value" ) )
+ { }
+
+ virtual pcos::property get_value( )
+ {
+ return custom_param_value_;
+ }
+
+ virtual pl::string get_type( )
+ {
+ return kOfxParamTypeCustom;
+ }
+
+ private:
+ pcos::property custom_param_value_;
+ };
+
+ class param_set : public Ofx_base
+ {
+ public:
+ typedef pl::string key_type;
+ typedef boost::shared_ptr<param> param_ptr;
+
+#if _MSC_VER >= 1400
+ typedef stdext::hash_map<key_type, param_ptr> container;
+#else
+ typedef std::map<key_type, param_ptr> container;
+#endif
+
+ public:
+ explicit param_set( )
+ { }
+
+ OfxStatus define( const pl::string& param_type, const pl::string& name )
+ {
+ typedef container::const_iterator const_iterator;
+
+ const_iterator I;
+ if( ( I = params_.find( name ) ) == params_.end( ) )
+ {
+ if( param_type == kOfxParamTypeInteger )
+ {
+ params_.insert( container::value_type( name, param_ptr( new int_param( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeInteger2D )
+ {
+ params_.insert( container::value_type( name, param_ptr( new int2D_param( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeInteger3D )
+ {
+ params_.insert( container::value_type( name, param_ptr( new int3D_param( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeDouble )
+ {
+ params_.insert( container::value_type( name, param_ptr( new double_param( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeDouble2D )
+ {
+ params_.insert( container::value_type( name, param_ptr( new double2D_param( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeDouble3D )
+ {
+ params_.insert( container::value_type( name, param_ptr( new double3D_param( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeRGB )
+ {
+ params_.insert( container::value_type( name, param_ptr( new rgb_param( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeRGBA )
+ {
+ params_.insert( container::value_type( name, param_ptr( new rgba_param( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeBoolean )
+ {
+ params_.insert( container::value_type( name, param_ptr( new boolean_param( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeChoice )
+ {
+ params_.insert( container::value_type( name, param_ptr( new choice_param( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeGroup )
+ {
+ params_.insert( container::value_type( name, param_ptr( new group_param( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypePage )
+ {
+ params_.insert( container::value_type( name, param_ptr( new page_param( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeCustom )
+ {
+ params_.insert( container::value_type( name, param_ptr( new custom_param( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypePushButton )
+ {
+ params_.insert( container::value_type( name, param_ptr( new push_button_param( ) ) ) );
+ }
+ else if( param_type == kOfxParamTypeString )
+ {
+ params_.insert( container::value_type( name, param_ptr( new string_param( ) ) ) );
+ }
+ }
+ else
+ {
+ // parameter already exists. if the type is the same return success. otherwise flag as an error.
+ }
+
+ return kOfxStatOK;
+ }
+
+ virtual property_container_ptr get_property_set( )
+ { return ¶m_set_props_; }
+
+ param* find_param( const pl::string& name )
+ {
+ typedef container::const_iterator const_iterator;
+
+ const_iterator I;
+ if( ( I = params_.find( name ) ) != params_.end( ) )
+ return I->second.get( );
+
+ return 0;
+ }
+
+ private:
+ container params_;
+ pcos::property_container param_set_props_;
+ };
+
+ class image : public Ofx_base
+ {
+ public:
+ explicit image( )
+ : image_prop_type_( pcos::key::from_string( kOfxPropType ) )
+ , image_effect_prop_pixel_depth_( pcos::key::from_string( kOfxImageEffectPropPixelDepth ) )
+ , image_effect_prop_components_( pcos::key::from_string( kOfxImageEffectPropComponents ) )
+ , image_effect_prop_pre_multiplication_( pcos::key::from_string( kOfxImageEffectPropPreMultiplication ) )
+ , image_effect_prop_render_scale_( pcos::key::from_string( kOfxImageEffectPropRenderScale ) )
+ , image_effect_prop_pixel_aspect_ratio_( pcos::key::from_string( kOfxImagePropPixelAspectRatio ) )
+ , image_effect_prop_data_( pcos::key::from_string( kOfxImagePropData ) )
+ , image_effect_prop_bounds_( pcos::key::from_string( kOfxImagePropBounds ) )
+ , image_effect_prop_region_of_definition_( pcos::key::from_string( kOfxImagePropRegionOfDefinition ) )
+ , image_effect_prop_row_bytes_( pcos::key::from_string( kOfxImagePropRowBytes ) )
+ , image_effect_prop_field_( pcos::key::from_string( kOfxImagePropField ) )
+ , image_effect_prop_unique_identifier_( pcos::key::from_string( kOfxImagePropUniqueIdentifier ) )
+ {
+ image_props_.append( image_prop_type_ = kOfxTypeImage );
+ }
+
+ virtual property_container_ptr get_property_set( )
+ { return &image_props_; }
+
+ bool set_image( il::image_type_ptr im )
+ {
+ il::image_type_ptr dst_img = il::convert( im, L"r8g8b8a8" );
+ if( dst_img )
+ {
+
+
+ return true;
+ }
+
+ return false;
+ }
+
+ private:
+ pcos::property_container image_props_;
+ pcos::property image_prop_type_;
+ pcos::property image_effect_prop_pixel_depth_;
+ pcos::property image_effect_prop_components_;
+ pcos::property image_effect_prop_pre_multiplication_;
+ pcos::property image_effect_prop_render_scale_;
+ pcos::property image_effect_prop_pixel_aspect_ratio_;
+ pcos::property image_effect_prop_data_;
+ pcos::property image_effect_prop_bounds_;
+ pcos::property image_effect_prop_region_of_definition_;
+ pcos::property image_effect_prop_row_bytes_;
+ pcos::property image_effect_prop_field_;
+ pcos::property image_effect_prop_unique_identifier_;
+ };
+
class clip_descriptor : public Ofx_base
{
public:
- explicit clip_descriptor( const pl::string& name )
+ explicit clip_descriptor( )
: clip_descriptor_prop_type_( pcos::key::from_string( kOfxPropType ) )
, clip_descriptor_prop_name_( pcos::key::from_string( kOfxPropName ) )
, clip_descriptor_prop_label_( pcos::key::from_string( kOfxPropLabel ) )
@@ -109,7 +1059,6 @@
, clip_descriptor_prop_field_extraction_( pcos::key::from_string( kOfxImageClipPropFieldExtraction ) )
, clip_descriptor_prop_is_mask_( pcos::key::from_string( kOfxImageClipPropIsMask ) )
, clip_descriptor_prop_supports_tiles_( pcos::key::from_string( kOfxImageEffectPropSupportsTiles ) )
- , name_( name )
{
set_clip_descriptor_properties( );
}
@@ -147,13 +1096,12 @@
pcos::property clip_descriptor_prop_field_extraction_;
pcos::property clip_descriptor_prop_is_mask_;
pcos::property clip_descriptor_prop_supports_tiles_;
- pl::string name_;
};
class clip_instance : public Ofx_base
{
public:
- explicit clip_instance( const pl::string& name )
+ explicit clip_instance( )
: clip_instance_prop_type_( pcos::key::from_string( kOfxPropType ) )
, clip_instance_prop_name_( pcos::key::from_string( kOfxPropName ) )
, clip_instance_prop_label_( pcos::key::from_string( kOfxPropLabel ) )
@@ -178,7 +1126,6 @@
, clip_instance_prop_unmapped_frame_range_( pcos::key::from_string( kOfxImageEffectPropUnmappedFrameRange ) )
, clip_instance_prop_unmapped_frame_rate_( pcos::key::from_string( kOfxImageEffectPropUnmappedFrameRate ) )
, clip_instance_prop_continuous_samples_( pcos::key::from_string( kOfxImageClipPropContinuousSamples ) )
- , name_( name )
{
set_clip_instance_properties( );
}
@@ -186,9 +1133,6 @@
virtual property_container_ptr get_property_set( )
{ return &clip_instance_props_; }
- pl::string name( ) const
- { return name_; }
-
private:
void set_clip_instance_properties( )
{
@@ -245,14 +1189,21 @@
pcos::property clip_instance_prop_unmapped_frame_range_;
pcos::property clip_instance_prop_unmapped_frame_rate_;
pcos::property clip_instance_prop_continuous_samples_;
-
- private:
- pl::string name_;
};
- class image_effect_descriptor : public Ofx_base
+ class image_effect_descriptor : public param_set_descriptor
{
public:
+ typedef pl::string key_type;
+ typedef boost::shared_ptr<clip_descriptor> clip_descriptor_ptr;
+
+#if _MSC_VER >= 1400
+ typedef stdext::hash_map<key_type, clip_descriptor_ptr> container;
+#else
+ typedef std::map<key_type, clip_descriptor_ptr> container;
+#endif
+
+ public:
explicit image_effect_descriptor( )
: image_effect_prop_type_( pcos::key::from_string( kOfxPropType ) )
, image_effect_prop_label_( pcos::key::from_string( kOfxPropLabel ) )
@@ -279,15 +1230,23 @@
virtual property_container_ptr get_property_set( )
{ return &effect_descriptor_props_; }
-
+
void clip_define( const pl::string& name, OfxPropertySetHandle* props )
{
- clip_descriptor desc( name );
+ typedef container::const_iterator const_iterator;
- if( *props )
- *props = ( OfxPropertySetHandle ) desc.get_property_set( );
-
- clip_descriptor_.push_back( desc );
+ const_iterator I = clip_desc_....
[truncated message content] |
|
From: <gl...@us...> - 2007-04-24 22:56:53
|
Revision: 104
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=104&view=rev
Author: glslang
Date: 2007-04-24 15:56:51 -0700 (Tue, 24 Apr 2007)
Log Message:
-----------
+ conformant copyright changes
Modified Paths:
--------------
lib/openlibraries/src/openassetlib/al/al_plugin.cpp
lib/openlibraries/src/openassetlib/al/guid.cpp
lib/openlibraries/src/openassetlib/py/asset.cpp
lib/openlibraries/src/openassetlib/py/guid.cpp
lib/openlibraries/src/openassetlib/py/openassetlib.cpp
lib/openlibraries/src/openassetlib/py/plugin.cpp
lib/openlibraries/src/openassetlib/py/py.cpp
lib/openlibraries/src/openassetlib/py/py.hpp
lib/openlibraries/src/openassetlib/py/python.hpp
lib/openlibraries/src/openassetlib/py/set.cpp
lib/openlibraries/src/openimagelib/plugins/bmp/bmp.cpp
lib/openlibraries/src/openimagelib/plugins/bmp/bmp_plugin.cpp
lib/openlibraries/src/openimagelib/plugins/bmp/bmp_plugin.hpp
lib/openlibraries/src/openimagelib/plugins/bmp/config.hpp
lib/openlibraries/src/openimagelib/plugins/tiff/config.hpp
lib/openlibraries/src/openimagelib/plugins/tiff/tiff.cpp
lib/openlibraries/src/openimagelib/plugins/tiff/tiff_plugin.cpp
lib/openlibraries/src/openimagelib/plugins/tiff/tiff_plugin.hpp
lib/openlibraries/src/openobjectlib/plugins/X3D/config.hpp
lib/openlibraries/src/openpluginlib/pl/content_handler_libxml.hpp
lib/openlibraries/src/openpluginlib/pl/pl_vc8.vcproj
lib/openlibraries/test/openimagelib/GL/_3D_lightmap/_3D_lightmap.cpp
lib/openlibraries/test/openmedialib/store/store.cpp
Modified: lib/openlibraries/src/openassetlib/al/al_plugin.cpp
===================================================================
--- lib/openlibraries/src/openassetlib/al/al_plugin.cpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openassetlib/al/al_plugin.cpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,6 +1,6 @@
// al_plugin.cpp - Interface to an openassetlib plugin.
//
-// Copyright (C) 2006 Visual Media FX Ltd.
+// Copyright (C) 2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openassetlib/al/guid.cpp
===================================================================
--- lib/openlibraries/src/openassetlib/al/guid.cpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openassetlib/al/guid.cpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,6 +1,6 @@
// guid.cpp
-// Copyright (C) 2005-2006 Visual Media FX Ltd.
+// Copyright (C) 2005-2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openassetlib/py/asset.cpp
===================================================================
--- lib/openlibraries/src/openassetlib/py/asset.cpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openassetlib/py/asset.cpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,6 +1,6 @@
// asset.cpp
-// Copyright (C) 2005-2006 Visual Media FX Ltd.
+// Copyright (C) 2005-2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openassetlib/py/guid.cpp
===================================================================
--- lib/openlibraries/src/openassetlib/py/guid.cpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openassetlib/py/guid.cpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,6 +1,6 @@
// asset.cpp
-// Copyright (C) 2005-2006 Visual Media FX Ltd.
+// Copyright (C) 2005-2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openassetlib/py/openassetlib.cpp
===================================================================
--- lib/openlibraries/src/openassetlib/py/openassetlib.cpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openassetlib/py/openassetlib.cpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,6 +1,6 @@
// openassetlib.cpp
-// Copyright (C) 2005-2006 Visual Media FX Ltd.
+// Copyright (C) 2005-2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openassetlib/py/plugin.cpp
===================================================================
--- lib/openlibraries/src/openassetlib/py/plugin.cpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openassetlib/py/plugin.cpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,6 +1,6 @@
// plugin.cpp
-// Copyright (C) 2005-2006 Visual Media FX Ltd.
+// Copyright (C) 2005-2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openassetlib/py/py.cpp
===================================================================
--- lib/openlibraries/src/openassetlib/py/py.cpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openassetlib/py/py.cpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,6 +1,6 @@
// py.cpp
-// Copyright (C) 2005-2006 Visual Media FX Ltd.
+// Copyright (C) 2005-2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openassetlib/py/py.hpp
===================================================================
--- lib/openlibraries/src/openassetlib/py/py.hpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openassetlib/py/py.hpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,6 +1,6 @@
// py.hpp
-// Copyright (C) 2005-2006 Visual Media FX Ltd.
+// Copyright (C) 2005-2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openassetlib/py/python.hpp
===================================================================
--- lib/openlibraries/src/openassetlib/py/python.hpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openassetlib/py/python.hpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,6 +1,6 @@
// python.hpp
-// Copyright (C) 2005-2006 Visual Media FX Ltd.
+// Copyright (C) 2005-2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openassetlib/py/set.cpp
===================================================================
--- lib/openlibraries/src/openassetlib/py/set.cpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openassetlib/py/set.cpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,6 +1,6 @@
// set.cpp
-// Copyright (C) 2005-2006 Visual Media FX Ltd.
+// Copyright (C) 2005-2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openimagelib/plugins/bmp/bmp.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/bmp/bmp.cpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openimagelib/plugins/bmp/bmp.cpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,7 +1,7 @@
// BMP - An BMP plugin to il.
-// Copyright (C) 2005-2006 Visual Media FX Ltd.
+// Copyright (C) 2005-2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openimagelib/plugins/bmp/bmp_plugin.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/bmp/bmp_plugin.cpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openimagelib/plugins/bmp/bmp_plugin.cpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,7 +1,7 @@
// BMP - A BMP plugin to il.
-// Copyright (C) 2005-2006 Visual Media FX Ltd.
+// Copyright (C) 2005-2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openimagelib/plugins/bmp/bmp_plugin.hpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/bmp/bmp_plugin.hpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openimagelib/plugins/bmp/bmp_plugin.hpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,7 +1,7 @@
// BMP - A BMP plugin to il.
-// Copyright (C) 2005 Visual Media FX Ltd.
+// Copyright (C) 2005 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openimagelib/plugins/bmp/config.hpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/bmp/config.hpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openimagelib/plugins/bmp/config.hpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,7 +1,7 @@
// BMP - An BMP plugin to il.
-// Copyright (C) 2005 Visual Media FX Ltd.
+// Copyright (C) 2005 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openimagelib/plugins/tiff/config.hpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/tiff/config.hpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openimagelib/plugins/tiff/config.hpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,7 +1,7 @@
// TIFF - A TIFF plugin to il.
-// Copyright (C) 2005-2006 Visual Media FX Ltd.
+// Copyright (C) 2005-2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openimagelib/plugins/tiff/tiff.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/tiff/tiff.cpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openimagelib/plugins/tiff/tiff.cpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,7 +1,7 @@
// TIFF - A TIFF plugin to il.
-// Copyright (C) 2005-2006 Visual Media FX Ltd.
+// Copyright (C) 2005-2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openimagelib/plugins/tiff/tiff_plugin.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/tiff/tiff_plugin.cpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openimagelib/plugins/tiff/tiff_plugin.cpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,7 +1,7 @@
// TIFF - A TIFF plugin to il.
-// Copyright (C) 2005 Visual Media FX Ltd.
+// Copyright (C) 2005 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
@@ -48,46 +48,31 @@
int width, height, depth;
TIFFGetField( tif, TIFFTAG_IMAGEWIDTH, &width );
-
TIFFGetField( tif, TIFFTAG_IMAGELENGTH, &height );
-
if( !TIFFGetField( tif, TIFFTAG_IMAGEDEPTH, &depth ) ) depth = 1;
unsigned short config;
-
TIFFGetField( tif, TIFFTAG_PLANARCONFIG, &config );
if( config != PLANARCONFIG_CONTIG )
{
-
TIFFClose( tif );
-
return il::image_type_ptr( );
-
}
-
unsigned short photo;
TIFFGetField( tif, TIFFTAG_PHOTOMETRIC, &photo );
if( config != PHOTOMETRIC_MINISBLACK && photo != PHOTOMETRIC_RGB )
{
-
TIFFClose( tif );
-
return il::image_type_ptr( );
-
}
-
unsigned short bpp, components;
-
TIFFGetField( tif, TIFFTAG_BITSPERSAMPLE, &bpp );
-
TIFFGetField( tif, TIFFTAG_SAMPLESPERPIXEL, &components );
-
-
il::image_type_ptr im = tiff_image_type_to_image_type( components, width, height );
if( !im )
return il::image_type_ptr( );
@@ -100,15 +85,12 @@
int tile_width, tile_height, tile_depth;
TIFFGetField( tif, TIFFTAG_TILEWIDTH, &tile_width );
-
TIFFGetField( tif, TIFFTAG_TILELENGTH, &tile_height );
if( !TIFFGetField( tif, TIFFTAG_TILEDEPTH, &tile_depth ) )
-
tile_depth = 1;
std::vector<unsigned char> buf( TIFFTileSize( tif ) );
-
for( int k = 0; k < depth; k += tile_depth )
{
for( int j = 0; j < height; j += tile_height )
@@ -126,9 +108,7 @@
}
}
}
-
}
-
else
{
unsigned int rows;
@@ -138,7 +118,6 @@
for( int i = 0; i < height * depth; i += rows )
{
tstrip_t strip = TIFFComputeStrip( tif, i, 0 );
-
TIFFReadEncodedStrip( tif, strip, data + i * im->pitch( ), strip_size );
}
}
Modified: lib/openlibraries/src/openimagelib/plugins/tiff/tiff_plugin.hpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/tiff/tiff_plugin.hpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openimagelib/plugins/tiff/tiff_plugin.hpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,7 +1,7 @@
// TIFF - A TIFF plugin to il.
-// Copyright (C) 2005-2006 Visual Media FX Ltd.
+// Copyright (C) 2005-2006 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openobjectlib/plugins/X3D/config.hpp
===================================================================
--- lib/openlibraries/src/openobjectlib/plugins/X3D/config.hpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openobjectlib/plugins/X3D/config.hpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,7 +1,7 @@
// X3D - An X3D plugin to sg.
-// Copyright (C) 2005 Visual Media FX Ltd.
+// Copyright (C) 2005 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openpluginlib/pl/content_handler_libxml.hpp
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/content_handler_libxml.hpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openpluginlib/pl/content_handler_libxml.hpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,7 +1,7 @@
// openpluginlib - A plugin interface to openlibraries.
-// Copyright (C) 2005 Visual Media FX Ltd.
+// Copyright (C) 2005 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openpluginlib/pl/pl_vc8.vcproj
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/pl_vc8.vcproj 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/src/openpluginlib/pl/pl_vc8.vcproj 2007-04-24 22:56:51 UTC (rev 104)
@@ -293,10 +293,6 @@
>
</File>
<File
- RelativePath=".\content_handler_libxml.hpp"
- >
- </File>
- <File
RelativePath=".\content_handler_msxml.hpp"
>
</File>
@@ -373,11 +369,11 @@
>
</File>
<File
- RelativePath=".\property.hpp"
+ RelativePath=".\pcos\property.hpp"
>
</File>
<File
- RelativePath=".\pcos\property.hpp"
+ RelativePath=".\property.hpp"
>
</File>
<File
Modified: lib/openlibraries/test/openimagelib/GL/_3D_lightmap/_3D_lightmap.cpp
===================================================================
--- lib/openlibraries/test/openimagelib/GL/_3D_lightmap/_3D_lightmap.cpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/test/openimagelib/GL/_3D_lightmap/_3D_lightmap.cpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,7 +1,7 @@
// il - A image library representation.
-// Copyright (C) 2005 Visual Media FX Ltd.
+// Copyright (C) 2005 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/test/openmedialib/store/store.cpp
===================================================================
--- lib/openlibraries/test/openmedialib/store/store.cpp 2007-04-24 22:00:03 UTC (rev 103)
+++ lib/openlibraries/test/openmedialib/store/store.cpp 2007-04-24 22:56:51 UTC (rev 104)
@@ -1,7 +1,7 @@
// ml - A media library representation.
-// Copyright (C) 2005 Visual Media FX Ltd.
+// Copyright (C) 2005 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-24 22:00:21
|
Revision: 103
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=103&view=rev
Author: glslang
Date: 2007-04-24 15:00:03 -0700 (Tue, 24 Apr 2007)
Log Message:
-----------
+ bug fixes
Modified Paths:
--------------
lib/openlibraries/installer/openlibraries_runtime.nsi
lib/openlibraries/installer/openlibraries_sdk.nsi
lib/openlibraries/src/openimagelib/il/utility.cpp
lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.cpp
Modified: lib/openlibraries/installer/openlibraries_runtime.nsi
===================================================================
--- lib/openlibraries/installer/openlibraries_runtime.nsi 2007-04-23 23:07:38 UTC (rev 102)
+++ lib/openlibraries/installer/openlibraries_runtime.nsi 2007-04-24 22:00:03 UTC (rev 103)
@@ -122,6 +122,8 @@
File "..\src\openimagelib\plugins\gdi+\Multi-threaded Release DLL\openimagelib_gdi-vc80-r-0_4_0.dll"
File "..\src\openimagelib\plugins\hdr\hdr_plugin.opl"
File "..\src\openimagelib\plugins\hdr\Multi-threaded Release DLL\openimagelib_hdr-vc80-r-0_4_0.dll"
+ File "..\src\openimagelib\plugins\jpg\jpg_plugin.opl"
+ File "..\src\openimagelib\plugins\jpg\Multi-threaded Release DLL\openimagelib_jpg-vc80-r-0_4_0.dll"
File "..\src\openimagelib\plugins\sgi\sgi_plugin.opl"
File "..\src\openimagelib\plugins\sgi\Multi-threaded Release DLL\openimagelib_sgi-vc80-r-0_4_0.dll"
File "..\src\openimagelib\plugins\tga\tga_plugin.opl"
Modified: lib/openlibraries/installer/openlibraries_sdk.nsi
===================================================================
--- lib/openlibraries/installer/openlibraries_sdk.nsi 2007-04-23 23:07:38 UTC (rev 102)
+++ lib/openlibraries/installer/openlibraries_sdk.nsi 2007-04-24 22:00:03 UTC (rev 103)
@@ -235,6 +235,8 @@
File "..\src\openimagelib\plugins\gdi+\Multi-threaded Debug DLL\openimagelib_gdi-vc80-d-0_4_0.dll"
File "..\src\openimagelib\plugins\hdr\hdr_plugin.opl"
File "..\src\openimagelib\plugins\hdr\Multi-threaded Debug DLL\openimagelib_hdr-vc80-d-0_4_0.dll"
+ File "..\src\openimagelib\plugins\jpg\jpg_plugin.opl"
+ File "..\src\openimagelib\plugins\jpg\Multi-threaded Debug DLL\openimagelib_jpg-vc80-d-0_4_0.dll"
File "..\src\openimagelib\plugins\sgi\sgi_plugin.opl"
File "..\src\openimagelib\plugins\sgi\Multi-threaded Debug DLL\openimagelib_sgi-vc80-d-0_4_0.dll"
File "..\src\openimagelib\plugins\tga\tga_plugin.opl"
@@ -281,6 +283,8 @@
File "..\src\openimagelib\plugins\gdi+\Multi-threaded Release DLL\openimagelib_gdi-vc80-r-0_4_0.dll"
File "..\src\openimagelib\plugins\hdr\hdr_plugin.opl"
File "..\src\openimagelib\plugins\hdr\Multi-threaded Release DLL\openimagelib_hdr-vc80-r-0_4_0.dll"
+ File "..\src\openimagelib\plugins\jpg\jpg_plugin.opl"
+ File "..\src\openimagelib\plugins\jpg\Multi-threaded Release DLL\openimagelib_jpg-vc80-r-0_4_0.dll"
File "..\src\openimagelib\plugins\sgi\sgi_plugin.opl"
File "..\src\openimagelib\plugins\sgi\Multi-threaded Release DLL\openimagelib_sgi-vc80-r-0_4_0.dll"
File "..\src\openimagelib\plugins\tga\tga_plugin.opl"
Modified: lib/openlibraries/src/openimagelib/il/utility.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/il/utility.cpp 2007-04-23 23:07:38 UTC (rev 102)
+++ lib/openlibraries/src/openimagelib/il/utility.cpp 2007-04-24 22:00:03 UTC (rev 103)
@@ -925,12 +925,15 @@
unsigned char u, v;
+ // TODO: Fix the chroma subsampling logic here
while( height > 1 )
{
if ( a == -1 )
{
while( width > 1 )
{
+ //u = ( *src2 + *( src2 + chroma_pitch ) ) >> 1;
+ //v = ( *src3 + *( src3 + chroma_pitch ) ) >> 1;
u = ( *src2 );
v = ( *src3 );
@@ -949,8 +952,10 @@
if ( width )
{
- u = ( *src2 + *( src2 + chroma_pitch ) ) >> 1;
- v = ( *src3 + *( src3 + chroma_pitch ) ) >> 1;
+ //u = ( *src2 + *( src2 + chroma_pitch ) ) >> 1;
+ //v = ( *src3 + *( src3 + chroma_pitch ) ) >> 1;
+ u = ( *src2 );
+ v = ( *src3 );
yuv444_to_rgb24( rgb[ 0 ], rgb[ 1 ], rgb[ 2 ], *src0 ++, *src2 ++, *src3 ++ );
assign3( dst0, rgb[ r ], rgb[ g ], rgb[ b ] );
yuv444_to_rgb24( rgb[ 0 ], rgb[ 1 ], rgb[ 2 ], *src1 ++, u, v );
@@ -961,8 +966,10 @@
{
while( width > 1 )
{
- u = ( *src2 + *( src2 + chroma_pitch ) ) >> 1;
- v = ( *src3 + *( src3 + chroma_pitch ) ) >> 1;
+ //u = ( *src2 + *( src2 + chroma_pitch ) ) >> 1;
+ //v = ( *src3 + *( src3 + chroma_pitch ) ) >> 1;
+ u = ( *src2 );
+ v = ( *src3 );
yuv444_to_rgb24( rgb[ 0 ], rgb[ 1 ], rgb[ 2 ], *src0 ++, *src2, *src3 );
assign4( dst0, rgb[ r ], rgb[ g ], rgb[ b ], rgb[ a ] );
@@ -979,8 +986,10 @@
if ( width )
{
- u = ( *src2 + *( src2 + chroma_pitch ) ) >> 1;
- v = ( *src3 + *( src3 + chroma_pitch ) ) >> 1;
+ //u = ( *src2 + *( src2 + chroma_pitch ) ) >> 1;
+ //v = ( *src3 + *( src3 + chroma_pitch ) ) >> 1;
+ u = ( *src2 );
+ v = ( *src3 );
yuv444_to_rgb24( rgb[ 0 ], rgb[ 1 ], rgb[ 2 ], *src0 ++, *src2 ++, *src3 ++ );
assign4( dst0, rgb[ r ], rgb[ g ], rgb[ b ], rgb[ a ] );
yuv444_to_rgb24( rgb[ 0 ], rgb[ 1 ], rgb[ 2 ], *src1 ++, u, v );
@@ -1996,7 +2005,7 @@
size_type orig_width = width / 2;
- while( height -- )
+ while( height )
{
width = orig_width;
dst = dptr;
@@ -2026,6 +2035,8 @@
sptr[ 1 ] += src_pitch[ 1 ];
sptr[ 2 ] += src_pitch[ 2 ];
}
+
+ height --;
}
}
Modified: lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.cpp 2007-04-23 23:07:38 UTC (rev 102)
+++ lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.cpp 2007-04-24 22:00:03 UTC (rev 103)
@@ -57,8 +57,6 @@
pixels += pitch;
}
- ( *info->mem->free_pool )( ( j_common_ptr ) info, JPOOL_IMAGE );
-
jpeg_finish_decompress( info );
jpeg_destroy_decompress( info );
}
@@ -131,7 +129,11 @@
#endif
#ifdef HAVE_JPEGHDR
- il::image_type_ptr image = il::allocate( L"r32g32b32f", info.cinfo.output_width, info.cinfo.output_height );
+ il::image_type_ptr image;
+ if( jpeghdr_decompress_ishdr( &info ) )
+ image = il::allocate( L"r32g32b32f", info.cinfo.output_width, info.cinfo.output_height );
+ else
+ image = il::allocate( L"r8g8b8", info.cinfo.output_width, info.cinfo.output_height );
#else
il::image_type_ptr image = il::allocate( L"r8g8b8", info.output_width, info.output_height );
#endif
@@ -155,10 +157,9 @@
bool store_jpg( const boost::filesystem::path& path, il::image_type_ptr img )
{
- int i;
struct jpeg_compress_struct cinfo;
struct jpeg_error_mgr jerr;
- unsigned char *line;
+
FILE *out = Fopen_s( path.native_directory_string( ), "wb" );
il::image_type_ptr image = il::convert( img, L"r8g8b8" );
@@ -166,7 +167,7 @@
if ( out != NULL )
{
- line = image->data( );
+ il::image_type::pointer line = image->data( );
cinfo.err = jpeg_std_error( &jerr );
jpeg_create_compress( &cinfo );
jpeg_stdio_dest( &cinfo, out );
@@ -178,7 +179,7 @@
jpeg_set_defaults( &cinfo );
jpeg_set_quality( &cinfo, 50, TRUE );
jpeg_start_compress( &cinfo, TRUE );
- for ( i = 0 ; i < image->height( ); i ++, line += image->pitch( ) )
+ for ( int i = 0 ; i < image->height( ); i ++, line += image->pitch( ) )
jpeg_write_scanlines( &cinfo, &line, 1 );
jpeg_finish_compress( &cinfo );
fclose( out );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-23 23:07:51
|
Revision: 102
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=102&view=rev
Author: glslang
Date: 2007-04-23 16:07:38 -0700 (Mon, 23 Apr 2007)
Log Message:
-----------
+ JPEG HDR support - largely untested (for now)
Modified Paths:
--------------
lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.cpp
lib/openlibraries/src/openimagelib/plugins/jpg/jpg_vc8.vcproj
Modified: lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.cpp 2007-04-22 22:25:15 UTC (rev 101)
+++ lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.cpp 2007-04-23 23:07:38 UTC (rev 102)
@@ -5,6 +5,10 @@
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
+#ifdef HAVE_CONFIG_H
+#include <openlibraries_global_config.hpp>
+#endif
+
#include <cstdlib>
#include <vector>
#include <string>
@@ -12,63 +16,137 @@
#include <openimagelib/plugins/jpg/jpg_plugin.hpp>
extern "C" {
-#include <jpeglib.h>
+#include <jpeglib.h>
}
+#ifdef HAVE_JPEGHDR
+#include <jpeghdr.h>
+#include <color.h>
+#endif
+
+namespace pl = olib::openpluginlib;
+
namespace olib { namespace openimagelib { namespace plugins { namespace JPG {
namespace
{
+ FILE* Fopen_s( const pl::string& path, const char* mode )
+ {
+#if _MSC_VER >= 1400
+ FILE* file;
+ fopen_s( &file, path.c_str( ), mode );
+ return file;
+#else
+ return fopen( path.c_str( ), mode );
+#endif
+ }
+
void destroy( il::image_type* im )
{ delete im; }
-
- il::image_type_ptr jpeg_pixelformat_to_image_type( int components, int width, int height )
+
+ void read_jpeg( jpeg_decompress_struct* info, il::image_type::pointer pixels, size_t pitch )
{
- switch( components )
+ int stride = info->output_width * info->output_components;
+
+ JSAMPARRAY buffer = ( *info->mem->alloc_sarray )( ( j_common_ptr ) info, JPOOL_IMAGE, stride, 1 );
+
+ while( info->output_scanline < info->output_height )
{
- case 3:
- return il::allocate( L"r8g8b8", width, height );
-
- default:
- return il::image_type_ptr( );
+ jpeg_read_scanlines( info, buffer, 1 );
+ memcpy( pixels, buffer[ 0 ], stride );
+ pixels += pitch;
}
+
+ ( *info->mem->free_pool )( ( j_common_ptr ) info, JPOOL_IMAGE );
+
+ jpeg_finish_decompress( info );
+ jpeg_destroy_decompress( info );
}
+#ifdef HAVE_JPEGHDR
+ void read_jpeg_hdr( jpeghdr_decompress_struct* info, il::image_type::pointer pixels, size_t pitch )
+ {
+ COLOR* buffer;
+
+ buffer = new COLOR [ info->cinfo.output_width ];
+
+ while( info->cinfo.output_scanline < info->cinfo.output_height )
+ {
+ jpeghdr_read_scanline( info, ( float* ) buffer );
+ memcpy( pixels, buffer, info->cinfo.output_width * sizeof( COLOR ) );
+ pixels += pitch;
+ }
+
+ delete[ ] buffer;
+
+ jpeghdr_finish_decompress( info );
+ jpeghdr_destroy_decompress( info );
+ }
+#endif
+
il::image_type_ptr load_jpg( const boost::filesystem::path& path )
{
- FILE* infile = fopen( path.native_directory_string( ).c_str( ), "rb" );
+ FILE* infile = Fopen_s( path.native_directory_string( ), "rb" );
if( infile == NULL ) return il::image_type_ptr( );
// TODO: some proper exception handling is needed. can't really be bothered
// with that setjmp thingie...
+#ifdef HAVE_JPEGHDR
+ jpeghdr_decompress_struct info;
+#else
struct jpeg_decompress_struct info;
+#endif
+ // set error structure.
struct jpeg_error_mgr jerr;
+#ifdef HAVE_JPEGHDR
+ info.cinfo.err = jpeg_std_error( &jerr );
+#else
info.err = jpeg_std_error( &jerr );
+#endif
+
+#ifdef HAVE_JPEGHDR
+ jpeghdr_create_decompress( &info );
+ jpeg_stdio_src( &info.cinfo, infile );
+ switch( jpeghdr_read_header( &info ) )
+ {
+ case JPEG_HEADER_OK:
+ info.cinfo.out_color_space = JCS_RGB;
+ jpeg_start_decompress( &info.cinfo );
+ break;
+
+ case JPEG_HEADER_HDR:
+ jpeghdr_start_decompress( &info );
+ break;
+
+ default:
+ return il::image_type_ptr( );
+ }
+#else
jpeg_create_decompress( &info );
jpeg_stdio_src( &info, infile );
jpeg_read_header( &info, TRUE );
jpeg_start_decompress( &info );
+#endif
- il::image_type_ptr image = jpeg_pixelformat_to_image_type( info.output_components, info.output_width, info.output_height );
+#ifdef HAVE_JPEGHDR
+ il::image_type_ptr image = il::allocate( L"r32g32b32f", info.cinfo.output_width, info.cinfo.output_height );
+#else
+ il::image_type_ptr image = il::allocate( L"r8g8b8", info.output_width, info.output_height );
+#endif
if( !image ) return il::image_type_ptr( );
-
- int stride = info.output_width * info.output_components;
- JSAMPARRAY buffer = ( *info.mem->alloc_sarray )( ( j_common_ptr ) &info, JPOOL_IMAGE, stride, 1 );
-
- int linesize = image->linesize( );
- unsigned char* pixels = image->data( );
- while( info.output_scanline < info.output_height )
- {
- jpeg_read_scanlines( &info, buffer, 1 );
- memcpy( pixels, buffer[ 0 ], linesize );
- pixels += image->pitch( );
- }
+ il::image_type::pointer pixels = image->data( );
- jpeg_finish_decompress( &info );
- jpeg_destroy_decompress( &info );
+#ifdef HAVE_JPEGHDR
+ if( jpeghdr_decompress_ishdr( &info ) )
+ read_jpeg_hdr( &info, pixels, image->pitch( ) );
+ else
+ read_jpeg( &info.cinfo, pixels, image->pitch( ) );
+#else
+ read_jpeg( &info, pixels, image->pitch( ) );
+#endif
fclose( infile );
@@ -81,7 +159,7 @@
struct jpeg_compress_struct cinfo;
struct jpeg_error_mgr jerr;
unsigned char *line;
- FILE *out = fopen( path.native_directory_string( ).c_str( ), "wb" );
+ FILE *out = Fopen_s( path.native_directory_string( ), "wb" );
il::image_type_ptr image = il::convert( img, L"r8g8b8" );
image = il::conform( image, 0 );
Modified: lib/openlibraries/src/openimagelib/plugins/jpg/jpg_vc8.vcproj
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/jpg/jpg_vc8.vcproj 2007-04-22 22:25:15 UTC (rev 101)
+++ lib/openlibraries/src/openimagelib/plugins/jpg/jpg_vc8.vcproj 2007-04-23 23:07:38 UTC (rev 102)
@@ -41,7 +41,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""$(SolutionDir)\src";"C:\Boost\include\boost-1_33_1";"C:\Program Files\HDR\include""
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;JPG_EXPORTS;OPENIMAGELIB_BUILD;HAVE_FLEX_STRING"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;JPG_EXPORTS;OPENIMAGELIB_BUILD;HAVE_FLEX_STRING;HAVE_JPEGHDR"
MinimalRebuild="true"
ExceptionHandling="2"
BasicRuntimeChecks="3"
@@ -131,7 +131,7 @@
Name="VCCLCompilerTool"
Optimization="3"
AdditionalIncludeDirectories=""$(SolutionDir)\src";"C:\Boost\include\boost-1_33_1";"C:\Program Files\HDR\include""
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;JPG_EXPORTS;OPENIMAGELIB_BUILD;HAVE_FLEX_STRING"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;JPG_EXPORTS;OPENIMAGELIB_BUILD;HAVE_FLEX_STRING;HAVE_JPEGHDR"
ExceptionHandling="2"
RuntimeLibrary="0"
BufferSecurityCheck="false"
@@ -158,10 +158,11 @@
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
- AdditionalDependencies="libjpeg.lib"
+ AdditionalDependencies="libjpeg.lib libjpeghdr.lib"
OutputFile="$(OutDir)/openimagelib_jpg-vc80-r-0_4_0.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="C:\Boost\lib;"C:\Program Files\HDR\lib""
+ IgnoreDefaultLibraryNames="libc.lib"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-22 22:25:20
|
Revision: 101
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=101&view=rev
Author: glslang
Date: 2007-04-22 15:25:15 -0700 (Sun, 22 Apr 2007)
Log Message:
-----------
+ initial jpg hdr implementation
Modified Paths:
--------------
lib/openlibraries/openlibraries_vc8.sln
lib/openlibraries/src/openimagelib/plugins/jpg/config.hpp
lib/openlibraries/src/openimagelib/plugins/jpg/jpg.cpp
lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.cpp
lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.hpp
lib/openlibraries/src/openimagelib/plugins/jpg/jpg_vc8.vcproj
Removed Paths:
-------------
lib/openlibraries/src/openimagelib/plugins/jpg/jpg_iw.vcproj
Modified: lib/openlibraries/openlibraries_vc8.sln
===================================================================
--- lib/openlibraries/openlibraries_vc8.sln 2007-04-22 20:57:05 UTC (rev 100)
+++ lib/openlibraries/openlibraries_vc8.sln 2007-04-22 22:25:15 UTC (rev 101)
@@ -103,80 +103,80 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "3D_lightmap", "src\openimagelib\plugins\3D_lightmap\3D_lightmap_vc8.vcproj", "{B1F25233-BC0C-4AB7-A1F2-ACFB520E34D1}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bmp", "src\openimagelib\plugins\bmp\bmp_vc8.vcproj", "{261595DD-FB76-4D37-A3C8-0D9625C20D46}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dds", "src\openimagelib\plugins\dds\dds_vc8.vcproj", "{B8498FDE-2F2F-4CAF-AA28-A6EBA5AECADE}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dpx", "src\openimagelib\plugins\dpx\dpx_vc8.vcproj", "{875CE227-A98F-4711-9496-61BC21DA88B8}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exr", "src\openimagelib\plugins\exr\exr_vc8.vcproj", "{17CBC457-3279-40F9-A614-A69046132424}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gdi+", "src\openimagelib\plugins\gdi+\gdi+_vc8.vcproj", "{08D0F0FA-947B-4AAF-90A8-7FBFC5EBD51B}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdr", "src\openimagelib\plugins\hdr\hdr_vc8.vcproj", "{972FF7FA-BDBE-400E-BDF6-59C13A6AE74D}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "png", "src\openimagelib\plugins\png\png_vc8.vcproj", "{4A6B0F4F-676E-4A96-A990-62464D923ED2}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "psd", "src\openimagelib\plugins\psd\psd_vc8.vcproj", "{FF23E252-5FD9-4642-9563-1111B12D8EE7}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qim", "src\openimagelib\plugins\qim\qim_vc8.vcproj", "{A2C21D3B-0948-4724-8028-C3824213912A}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "quicktime", "src\openimagelib\plugins\quicktime\quicktime_vc8.vcproj", "{AB23E1B4-55D4-4846-99BE-6EF3848ABCF3}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sgi", "src\openimagelib\plugins\sgi\sgi_vc8.vcproj", "{291BFF23-61D3-4355-8AA5-C8BF0FE30CB0}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tga", "src\openimagelib\plugins\tga\tga_vc8.vcproj", "{227A0088-F3AE-4CA7-941C-0283D44F1678}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ML", "ML", "{F76943CD-19F1-469A-B725-38C44C2DD27F}"
@@ -185,8 +185,8 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ml", "src\openmedialib\ml\ml_vc8.vcproj", "{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "py", "src\openmedialib\py\py_vc8.vcproj", "{1C648B54-C3DC-49B5-AFC9-B205F3151F81}"
@@ -196,80 +196,80 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "avformat", "src\openmedialib\plugins\avformat\avformat_vc8.vcproj", "{0C4F7499-83C6-4143-A392-56F299345E8A}"
ProjectSection(ProjectDependencies) = postProject
+ {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gensys", "src\openmedialib\plugins\gensys\gensys_vc8.vcproj", "{88BCD57E-044F-4427-A407-541BA8A938E6}"
+ ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gensys", "src\openmedialib\plugins\gensys\gensys_vc8.vcproj", "{88BCD57E-044F-4427-A407-541BA8A938E6}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glew", "src\openmedialib\plugins\glew\glew_vc8.vcproj", "{649D053D-1768-40BB-8FA7-8CD91A765F32}"
ProjectSection(ProjectDependencies) = postProject
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glew", "src\openmedialib\plugins\glew\glew_vc8.vcproj", "{649D053D-1768-40BB-8FA7-8CD91A765F32}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ofx", "src\openmedialib\plugins\ofx\ofx_vc8.vcproj", "{A60E2710-2DA9-4641-AEF6-6488A6264723}"
ProjectSection(ProjectDependencies) = postProject
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ofx", "src\openmedialib\plugins\ofx\ofx_vc8.vcproj", "{A60E2710-2DA9-4641-AEF6-6488A6264723}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "oil", "src\openmedialib\plugins\oil\oil_vc8.vcproj", "{C29BD9EC-EC1B-4D7F-8985-F85698CE66ED}"
ProjectSection(ProjectDependencies) = postProject
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "oil", "src\openmedialib\plugins\oil\oil_vc8.vcproj", "{C29BD9EC-EC1B-4D7F-8985-F85698CE66ED}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openal", "src\openmedialib\plugins\openal\openal_vc8.vcproj", "{68B4BE77-E59E-4A24-9AF5-D4CEFF132B51}"
ProjectSection(ProjectDependencies) = postProject
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openal", "src\openmedialib\plugins\openal\openal_vc8.vcproj", "{68B4BE77-E59E-4A24-9AF5-D4CEFF132B51}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "quicktime", "src\openmedialib\plugins\quicktime\quicktime_vc8.vcproj", "{1AC3D22B-175B-4169-B74A-276F9D5BA7AB}"
ProjectSection(ProjectDependencies) = postProject
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "quicktime", "src\openmedialib\plugins\quicktime\quicktime_vc8.vcproj", "{1AC3D22B-175B-4169-B74A-276F9D5BA7AB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "template", "src\openmedialib\plugins\template\template_vc8.vcproj", "{18271104-A6E4-4293-A6F1-70B15AE311E5}"
ProjectSection(ProjectDependencies) = postProject
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "template", "src\openmedialib\plugins\template\template_vc8.vcproj", "{18271104-A6E4-4293-A6F1-70B15AE311E5}"
- ProjectSection(ProjectDependencies) = postProject
- {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- EndProjectSection
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SG", "SG", "{BD86F550-C573-4A68-955B-6CEDCC8F595D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "plugins", "plugins", "{9483FC7B-E396-43E6-84ED-EB021AC54252}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sg", "src\openobjectlib\sg\sg_vc8.vcproj", "{DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obj", "src\openobjectlib\plugins\obj\obj_vc8.vcproj", "{AE1793B8-18EA-4277-BFDD-8C9F2AFA0096}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "X3D", "src\openobjectlib\plugins\X3D\X3D_vc8.vcproj", "{7A98C731-F651-4427-BD02-25133DEA7171}"
ProjectSection(ProjectDependencies) = postProject
+ {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AL", "AL", "{D3688A41-2908-41C0-8BF1-4AB6E3DFDBC4}"
@@ -278,10 +278,10 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "al", "src\openassetlib\al\al_vc8.vcproj", "{BD346E41-BEBD-43E7-9801-8EC1158355C4}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
+ {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
{DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
- {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "py", "src\openassetlib\py\py_vc8.vcproj", "{ECEDB34E-A863-420F-BFC6-F294AC078892}"
@@ -291,94 +291,94 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite", "src\openassetlib\plugins\sqlite\sqlite_vc8.vcproj", "{4B89FC29-D7E8-4E1A-99D7-17561B89DBEA}"
ProjectSection(ProjectDependencies) = postProject
+ {BD346E41-BEBD-43E7-9801-8EC1158355C4} = {BD346E41-BEBD-43E7-9801-8EC1158355C4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {BD346E41-BEBD-43E7-9801-8EC1158355C4} = {BD346E41-BEBD-43E7-9801-8EC1158355C4}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GL", "GL", "{C2EBF114-BFF6-4520-BC11-EB54565B92D6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2D", "test\openimagelib\GL\_2D\_2D_vc8.vcproj", "{24D622CC-4577-49B0-9224-8BB191236A61}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2D_compressed", "test\openimagelib\GL\_2D_compressed\_2D_compressed_vc8.vcproj", "{F0557FAB-2BC7-4991-9AD8-560526321D80}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2D_compressed_cubemap", "test\openimagelib\GL\_2D_compressed_cubemap\_2D_compressed_cubemap_vc8.vcproj", "{23B3623B-4FED-49F3-8F16-4883E57588E6}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2D_crop", "test\openimagelib\GL\_2D_crop\_2D_crop_vc8.vcproj", "{19B62156-49C4-4D43-A0E6-2D45952CC2CC}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2D_crop2", "test\openimagelib\GL\_2D_crop2\_2D_crop2_vc8.vcproj", "{AA3C0ACD-1251-484F-80D6-E9B8FF249B9E}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2D_exr", "test\openimagelib\GL\_2D_exr\_2D_exr_vc8.vcproj", "{4CC2C554-1EB4-4E53-A73F-38F0A1862F49}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2D_sgi", "test\openimagelib\GL\_2D_sgi\_2D_sgi_vc8.vcproj", "{F30DAA25-794E-44F6-BF01-867A72BE385B}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_3D_lightmap", "test\openimagelib\GL\_3D_lightmap\_3D_lightmap_vc8.vcproj", "{DBF9F309-3C1F-4563-AA2B-69FA27C2CBF7}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "player", "test\openmedialib\player\player_vc8.vcproj", "{14B49ECE-F5DB-4985-A31D-C48483362F9F}"
ProjectSection(ProjectDependencies) = postProject
+ {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "store", "test\openmedialib\store\store_vc8.vcproj", "{E6EFFB88-1563-4AB7-9D07-5B8853CD8ECF}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multipass_draw", "test\openobjectlib\GL\multipass_draw\multipass_draw_vc8.vcproj", "{AB0137D5-38BE-45A5-ACE9-02BB34D02358}"
ProjectSection(ProjectDependencies) = postProject
+ {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "noise_volume", "test\openobjectlib\GL\noise_volume\noise_volume_vc8.vcproj", "{3780D440-9C37-4186-B9B2-861EF3833CD4}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obj_draw", "test\openobjectlib\GL\obj_draw\obj_draw_vc8.vcproj", "{DD597B0F-DE01-4A1A-A399-F2355ABB06B0}"
ProjectSection(ProjectDependencies) = postProject
+ {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "texture_draw", "test\openobjectlib\GL\texture_draw\texture_draw_vc8.vcproj", "{8032E526-0866-4764-A4E9-F18C7CEE12D2}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GL", "GL", "{B972DCEB-386E-42D2-8C5E-DD2942EC7F63}"
@@ -387,15 +387,15 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tonemap", "src\openeffectslib\plugins\tonemap\tonemap_vc8.vcproj", "{6D618CAE-230F-4ADD-936B-6C1D3D723236}"
ProjectSection(ProjectDependencies) = postProject
+ {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tm_bench", "test\openeffectslib\tm_bench\tm_bench_vc8.vcproj", "{534B6931-67CB-4ACA-BD58-6887F35AC4D9}"
ProjectSection(ProjectDependencies) = postProject
+ {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tiff", "src\openimagelib\plugins\tiff\tiff_vc8.vcproj", "{A1308789-3ABD-438C-BA08-FB341B55D94C}"
@@ -405,9 +405,15 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rescaler_bench", "test\openeffectslib\rescaler_bench\rescaler_bench_vc8.vcproj", "{B2F0E6E4-4EA9-45BD-9CD9-E1B9A57E4E91}"
ProjectSection(ProjectDependencies) = postProject
+ {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jpg", "src\openimagelib\plugins\jpg\jpg_vc8.vcproj", "{DB59A3DD-CC08-4FFD-ADFA-F659B2FC78B1}"
+ ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
EndProjectSection
EndProject
Global
@@ -660,6 +666,10 @@
{B2F0E6E4-4EA9-45BD-9CD9-E1B9A57E4E91}.Multi-threaded Debug DLL|Win32.Build.0 = Multi-threaded Debug DLL|Win32
{B2F0E6E4-4EA9-45BD-9CD9-E1B9A57E4E91}.Multi-threaded Release DLL|Win32.ActiveCfg = Multi-threaded Release DLL|Win32
{B2F0E6E4-4EA9-45BD-9CD9-E1B9A57E4E91}.Multi-threaded Release DLL|Win32.Build.0 = Multi-threaded Release DLL|Win32
+ {DB59A3DD-CC08-4FFD-ADFA-F659B2FC78B1}.Multi-threaded Debug DLL|Win32.ActiveCfg = Multi-threaded Debug DLL|Win32
+ {DB59A3DD-CC08-4FFD-ADFA-F659B2FC78B1}.Multi-threaded Debug DLL|Win32.Build.0 = Multi-threaded Debug DLL|Win32
+ {DB59A3DD-CC08-4FFD-ADFA-F659B2FC78B1}.Multi-threaded Release DLL|Win32.ActiveCfg = Multi-threaded Release DLL|Win32
+ {DB59A3DD-CC08-4FFD-ADFA-F659B2FC78B1}.Multi-threaded Release DLL|Win32.Build.0 = Multi-threaded Release DLL|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -721,6 +731,7 @@
{291BFF23-61D3-4355-8AA5-C8BF0FE30CB0} = {D9066C6C-E143-472F-860E-004E481F3E0A}
{227A0088-F3AE-4CA7-941C-0283D44F1678} = {D9066C6C-E143-472F-860E-004E481F3E0A}
{A1308789-3ABD-438C-BA08-FB341B55D94C} = {D9066C6C-E143-472F-860E-004E481F3E0A}
+ {DB59A3DD-CC08-4FFD-ADFA-F659B2FC78B1} = {D9066C6C-E143-472F-860E-004E481F3E0A}
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {F76943CD-19F1-469A-B725-38C44C2DD27F}
{1C648B54-C3DC-49B5-AFC9-B205F3151F81} = {F76943CD-19F1-469A-B725-38C44C2DD27F}
{0C4F7499-83C6-4143-A392-56F299345E8A} = {C039BC12-D0D0-4BAC-B8E4-445EEA6678B8}
Modified: lib/openlibraries/src/openimagelib/plugins/jpg/config.hpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/jpg/config.hpp 2007-04-22 20:57:05 UTC (rev 100)
+++ lib/openlibraries/src/openimagelib/plugins/jpg/config.hpp 2007-04-22 22:25:15 UTC (rev 101)
@@ -1,7 +1,7 @@
// JPG - An JPG plugin to il.
-// Copyright (C) 2005 Visual Media FX Ltd.
+// Copyright (C) 2005-2007 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
Modified: lib/openlibraries/src/openimagelib/plugins/jpg/jpg.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/jpg/jpg.cpp 2007-04-22 20:57:05 UTC (rev 100)
+++ lib/openlibraries/src/openimagelib/plugins/jpg/jpg.cpp 2007-04-22 22:25:15 UTC (rev 101)
@@ -1,100 +1,24 @@
// JPG - An JPG plugin to il.
-// Copyright (C) 2005 Visual Media FX Ltd.
+// Copyright (C) 2005-2007 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
-#ifdef WIN32
-#include <windows.h>
-#include <gdiplus.h>
-#endif // WIN32
-
-#include <boost/thread/recursive_mutex.hpp>
-
#include <openimagelib/plugins/jpg/jpg_plugin.hpp>
namespace opl = olib::openpluginlib;
namespace JPG = olib::openimagelib::plugins::JPG;
-namespace
-{
- void reflib( int init )
- {
- static long refs = 0;
-#ifdef WIN32
- static ULONG_PTR gdiplusToken;
-#endif // WIN32
-
- assert( refs >= 0 && L"JPG_plugin::refinit: refs is negative." );
-
- if( init > 0 && ++refs )
- {
-# ifdef WIN32
- Gdiplus::GdiplusStartupInput gdiplusStartupInput;
-
- Gdiplus::GdiplusStartup( &gdiplusToken, &gdiplusStartupInput, NULL );
-# endif
- }
- else if( init < 0 && --refs == 0 )
- {
-# ifdef WIN32
- Gdiplus::GdiplusShutdown( gdiplusToken );
-# endif
- }
- }
-
-#ifdef WIN32
- ULONG_PTR gdiplusToken;
-
- bool has_jpg_decoder_installed( void )
- {
- UINT num, size;
- Gdiplus::GetImageDecodersSize( &num, &size );
-
- Gdiplus::ImageCodecInfo* decoders = ( Gdiplus::ImageCodecInfo* ) malloc( size );
- Gdiplus::GetImageDecoders( num, size, decoders );
-
- bool found = false;
- for( UINT i = 0; i < num; ++i )
- {
- if( !wcscmp( decoders[ i ].MimeType, L"image/jpeg" ) )
- {
- found = true;
-
- break;
- }
- }
-
- free( decoders );
-
- return found;
- }
-#endif
-}
-
extern "C"
{
JPG_DECLSPEC bool openplugin_init( void )
{
- boost::recursive_mutex mutex;
-
- reflib( 1 );
-
-# ifdef WIN32
- if( !has_jpg_decoder_installed( ) )
- return false;
-# endif
-
return true;
}
JPG_DECLSPEC bool openplugin_uninit( void )
{
- boost::recursive_mutex mutex;
-
- reflib( -1 );
-
return true;
}
Deleted: lib/openlibraries/src/openimagelib/plugins/jpg/jpg_iw.vcproj
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/jpg/jpg_iw.vcproj 2007-04-22 20:57:05 UTC (rev 100)
+++ lib/openlibraries/src/openimagelib/plugins/jpg/jpg_iw.vcproj 2007-04-22 22:25:15 UTC (rev 101)
@@ -1,164 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="7.10"
- Name="jpg"
- OwnerKey="{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}"
- ProjectGUID="{B8D82338-7F6B-4EFF-ABB4-F24FD066252A}"
- Keyword="Win32Proj">
- <Platforms>
- <Platform
- Name="Win32"/>
- </Platforms>
- <Configurations>
- <Configuration
- Name="Multi-threaded Debug DLL|Win32"
- OutputDirectory="$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- OptimizeForProcessor="2"
- AdditionalIncludeDirectories=""C:\Boost\include\boost-1_33";"$(SolutionDir)\src""
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;JPG_EXPORTS;OPENIMAGELIB_BUILD"
- MinimalRebuild="TRUE"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- BufferSecurityCheck="TRUE"
- EnableEnhancedInstructionSet="2"
- TreatWChar_tAsBuiltInType="TRUE"
- ForceConformanceInForLoopScope="TRUE"
- RuntimeTypeInfo="TRUE"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="4"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- IgnoreImportLibrary="TRUE"
- AdditionalDependencies="gdiplus.lib"
- OutputFile="$(OutDir)/openimagelib_jpg-iw90-d-0_1.dll"
- LinkIncremental="2"
- AdditionalLibraryDirectories="C:\Boost\lib"
- GenerateDebugInformation="TRUE"
- ProgramDatabaseFile="$(OutDir)/jpg.pdb"
- SubSystem="2"
- ImportLibrary=""
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Multi-threaded Release DLL|Win32"
- OutputDirectory="$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1">
- <Tool
- Name="VCCLCompilerTool"
- OptimizeForProcessor="2"
- AdditionalIncludeDirectories=""C:\Boost\include\boost-1_33";"$(SolutionDir)\src""
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;JPG_EXPORTS;OPENIMAGELIB_BUILD"
- RuntimeLibrary="2"
- BufferSecurityCheck="FALSE"
- EnableEnhancedInstructionSet="2"
- TreatWChar_tAsBuiltInType="TRUE"
- ForceConformanceInForLoopScope="TRUE"
- RuntimeTypeInfo="TRUE"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="3"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- IgnoreImportLibrary="TRUE"
- AdditionalDependencies="gdiplus.lib"
- OutputFile="$(OutDir)/openimagelib_jpg-iw90-0_1.dll"
- LinkIncremental="1"
- AdditionalLibraryDirectories="C:\Boost\lib"
- GenerateDebugInformation="TRUE"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- ImportLibrary=""
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
- <File
- RelativePath=".\jpg.cpp">
- </File>
- <File
- RelativePath=".\jpg_plugin.cpp">
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
- <File
- RelativePath=".\config.hpp">
- </File>
- <File
- RelativePath=".\jpg_plugin.hpp">
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
Modified: lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.cpp 2007-04-22 20:57:05 UTC (rev 100)
+++ lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.cpp 2007-04-22 22:25:15 UTC (rev 101)
@@ -1,7 +1,7 @@
// JPG - A JPG plugin to il.
-// Copyright (C) 2005 Visual Media FX Ltd.
+// Copyright (C) 2005-2007 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
@@ -17,52 +17,27 @@
namespace olib { namespace openimagelib { namespace plugins { namespace JPG {
-typedef il::image<unsigned char, il::surface_format> image_type;
-
namespace
{
- void destroy( image_type* im )
+ void destroy( il::image_type* im )
{ delete im; }
- std::wstring to_wstring( const std::string& str )
+ il::image_type_ptr jpeg_pixelformat_to_image_type( int components, int width, int height )
{
- std::vector<wchar_t> ws;
- ws.resize( str.size( ) + 1 );
-
-#if _MSC_VER >= 1400
- size_t size;
- mbstowcs_s( &size, &ws[ 0 ], ws.size( ), str.c_str( ), str.size( ) );
-#else
- mbstowcs( &ws[ 0 ], str.c_str( ), str.size( ) );
-#endif // _MSC_VER >= 0x1400
-
- return std::wstring( ws.begin( ), ws.end( ) );
- }
-
- boost::shared_ptr<image_type> jpeg_pixelformat_to_image_type( int components, int width, int height )
- {
- using namespace olib::openimagelib::il;
-
- typedef boost::shared_ptr<image_type> image_type_ptr;
- typedef image<unsigned char, r8g8b8> r8g8b8_image_type;
-
switch( components )
{
case 3:
- return image_type_ptr( new image_type( r8g8b8_image_type( width, height, 1 ) ), destroy );
+ return il::allocate( L"r8g8b8", width, height );
default:
- return image_type_ptr( static_cast<image_type*>( 0 ) );
+ return il::image_type_ptr( );
}
}
- // TODO: use IFL on IRIX machines.
- JPG_plugin::image_type_ptr load_jpg_unix( const boost::filesystem::path& path )
+ il::image_type_ptr load_jpg( const boost::filesystem::path& path )
{
- typedef boost::shared_ptr<image_type> image_type_ptr;
-
FILE* infile = fopen( path.native_directory_string( ).c_str( ), "rb" );
- if( infile == NULL ) return JPG_plugin::image_type_ptr( image_type_ptr( ) );
+ if( infile == NULL ) return il::image_type_ptr( );
// TODO: some proper exception handling is needed. can't really be bothered
// with that setjmp thingie...
@@ -76,8 +51,8 @@
jpeg_read_header( &info, TRUE );
jpeg_start_decompress( &info );
- image_type_ptr image = jpeg_pixelformat_to_image_type( info.output_components, info.output_width, info.output_height );
- if( !image ) return JPG_plugin::image_type_ptr( image_type_ptr( ) );
+ il::image_type_ptr image = jpeg_pixelformat_to_image_type( info.output_components, info.output_width, info.output_height );
+ if( !image ) return il::image_type_ptr( );
int stride = info.output_width * info.output_components;
JSAMPARRAY buffer = ( *info.mem->alloc_sarray )( ( j_common_ptr ) &info, JPOOL_IMAGE, stride, 1 );
@@ -97,10 +72,10 @@
fclose( infile );
- return JPG_plugin::image_type_ptr( image );
+ return image;
}
- bool store_jpg( const boost::filesystem::path& path, const boost::shared_ptr<image_type>& img )
+ bool store_jpg( const boost::filesystem::path& path, il::image_type_ptr img )
{
int i;
struct jpeg_compress_struct cinfo;
@@ -108,7 +83,7 @@
unsigned char *line;
FILE *out = fopen( path.native_directory_string( ).c_str( ), "wb" );
- boost::shared_ptr<image_type> image = il::convert( img, L"r8g8b8" );
+ il::image_type_ptr image = il::convert( img, L"r8g8b8" );
image = il::conform( image, 0 );
if ( out != NULL )
@@ -137,11 +112,10 @@
}
}
-JPG_plugin::image_type_ptr JPG_plugin::load( const boost::filesystem::path& path )
-{ return JPG_plugin::image_type_ptr( load_jpg_unix( path ) ); }
+il::image_type_ptr JPG_plugin::load( const boost::filesystem::path& path )
+{ return load_jpg( path ); }
-bool JPG_plugin::store( const boost::filesystem::path& path, const JPG_plugin::image_type_ptr& image )
+bool JPG_plugin::store( const boost::filesystem::path& path, const il::image_type_ptr& image )
{ return store_jpg( path, image ); }
} } } }
-
Modified: lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.hpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.hpp 2007-04-22 20:57:05 UTC (rev 100)
+++ lib/openlibraries/src/openimagelib/plugins/jpg/jpg_plugin.hpp 2007-04-22 22:25:15 UTC (rev 101)
@@ -1,7 +1,7 @@
// JPG - A JPG plugin to il.
-// Copyright (C) 2005 Visual Media FX Ltd.
+// Copyright (C) 2005-2007 VM Inc.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
@@ -15,15 +15,11 @@
namespace olib { namespace openimagelib { namespace plugins { namespace JPG {
-class JPG_DECLSPEC JPG_plugin : public olib::openimagelib::il::openimagelib_plugin
+class JPG_DECLSPEC JPG_plugin : public il::openimagelib_plugin
{
public:
- typedef il::image<unsigned char, il::surface_format> image_type;
- typedef boost::shared_ptr<image_type> image_type_ptr;
-
-public:
- virtual image_type_ptr load( const boost::filesystem::path& path );
- virtual bool store( const boost::filesystem::path& path, const image_type_ptr& image );
+ virtual il::image_type_ptr load( const boost::filesystem::path& path );
+ virtual bool store( const boost::filesystem::path& path, const il::image_type_ptr& image );
};
} } } }
Modified: lib/openlibraries/src/openimagelib/plugins/jpg/jpg_vc8.vcproj
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/jpg/jpg_vc8.vcproj 2007-04-22 20:57:05 UTC (rev 100)
+++ lib/openlibraries/src/openimagelib/plugins/jpg/jpg_vc8.vcproj 2007-04-22 22:25:15 UTC (rev 101)
@@ -40,14 +40,14 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories=""$(SolutionDir)\src";"C:\Boost\include\boost-1_33_1""
+ AdditionalIncludeDirectories=""$(SolutionDir)\src";"C:\Boost\include\boost-1_33_1";"C:\Program Files\HDR\include""
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;JPG_EXPORTS;OPENIMAGELIB_BUILD;HAVE_FLEX_STRING"
MinimalRebuild="true"
ExceptionHandling="2"
BasicRuntimeChecks="3"
- RuntimeLibrary="3"
+ RuntimeLibrary="1"
BufferSecurityCheck="true"
- EnableEnhancedInstructionSet="2"
+ EnableEnhancedInstructionSet="0"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
@@ -69,10 +69,11 @@
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
- AdditionalDependencies="gdiplus.lib"
- OutputFile="$(OutDir)/openimagelib_jpg-vc80-d-0_2.dll"
+ AdditionalDependencies="libjpeg.lib libjpeghdr.lib"
+ OutputFile="$(OutDir)/openimagelib_jpg-vc80-d-0_4_0.dll"
LinkIncremental="2"
- AdditionalLibraryDirectories="C:\Boost\lib;$(SolutionDir)\src\openpluginlib\$(ConfigurationName)"
+ AdditionalLibraryDirectories="C:\Boost\lib;"C:\Program Files\HDR\lib""
+ IgnoreDefaultLibraryNames="libc.lib"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/jpg.pdb"
SubSystem="2"
@@ -129,12 +130,13 @@
<Tool
Name="VCCLCompilerTool"
Optimization="3"
- AdditionalIncludeDirectories=""$(SolutionDir)\src";"C:\Boost\include\boost-1_33_1""
+ AdditionalIncludeDirectories=""$(SolutionDir)\src";"C:\Boost\include\boost-1_33_1";"C:\Program Files\HDR\include""
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;JPG_EXPORTS;OPENIMAGELIB_BUILD;HAVE_FLEX_STRING"
ExceptionHandling="2"
- RuntimeLibrary="2"
+ RuntimeLibrary="0"
BufferSecurityCheck="false"
- EnableEnhancedInstructionSet="2"
+ EnableEnhancedInstructionSet="0"
+ FloatingPointModel="2"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
@@ -156,10 +158,10 @@
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
- AdditionalDependencies="gdiplus.lib"
- OutputFile="$(OutDir)/openimagelib_jpg-vc80-r-0_2.dll"
+ AdditionalDependencies="libjpeg.lib"
+ OutputFile="$(OutDir)/openimagelib_jpg-vc80-r-0_4_0.dll"
LinkIncremental="1"
- AdditionalLibraryDirectories="C:\Boost\lib;$(SolutionDir)\src\openpluginlib\$(ConfigurationName)"
+ AdditionalLibraryDirectories="C:\Boost\lib;"C:\Program Files\HDR\lib""
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-22 20:57:10
|
Revision: 100
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=100&view=rev
Author: glslang
Date: 2007-04-22 13:57:05 -0700 (Sun, 22 Apr 2007)
Log Message:
-----------
+ cleanups
+ rescaler benchmark
+ example of how to init and uninit pl without a crash at exit
Modified Paths:
--------------
lib/openlibraries/openlibraries_vc8.sln
lib/openlibraries/src/openimagelib/il/utility.cpp
lib/openlibraries/test/openeffectslib/tm_bench/tm_bench.cpp
Added Paths:
-----------
lib/openlibraries/test/openeffectslib/rescaler_bench/
lib/openlibraries/test/openeffectslib/rescaler_bench/rescaler_bench.cpp
lib/openlibraries/test/openeffectslib/rescaler_bench/rescaler_bench_vc8.vcproj
Modified: lib/openlibraries/openlibraries_vc8.sln
===================================================================
--- lib/openlibraries/openlibraries_vc8.sln 2007-04-22 17:05:12 UTC (rev 99)
+++ lib/openlibraries/openlibraries_vc8.sln 2007-04-22 20:57:05 UTC (rev 100)
@@ -103,80 +103,80 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "3D_lightmap", "src\openimagelib\plugins\3D_lightmap\3D_lightmap_vc8.vcproj", "{B1F25233-BC0C-4AB7-A1F2-ACFB520E34D1}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bmp", "src\openimagelib\plugins\bmp\bmp_vc8.vcproj", "{261595DD-FB76-4D37-A3C8-0D9625C20D46}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dds", "src\openimagelib\plugins\dds\dds_vc8.vcproj", "{B8498FDE-2F2F-4CAF-AA28-A6EBA5AECADE}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dpx", "src\openimagelib\plugins\dpx\dpx_vc8.vcproj", "{875CE227-A98F-4711-9496-61BC21DA88B8}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exr", "src\openimagelib\plugins\exr\exr_vc8.vcproj", "{17CBC457-3279-40F9-A614-A69046132424}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gdi+", "src\openimagelib\plugins\gdi+\gdi+_vc8.vcproj", "{08D0F0FA-947B-4AAF-90A8-7FBFC5EBD51B}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdr", "src\openimagelib\plugins\hdr\hdr_vc8.vcproj", "{972FF7FA-BDBE-400E-BDF6-59C13A6AE74D}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "png", "src\openimagelib\plugins\png\png_vc8.vcproj", "{4A6B0F4F-676E-4A96-A990-62464D923ED2}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "psd", "src\openimagelib\plugins\psd\psd_vc8.vcproj", "{FF23E252-5FD9-4642-9563-1111B12D8EE7}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qim", "src\openimagelib\plugins\qim\qim_vc8.vcproj", "{A2C21D3B-0948-4724-8028-C3824213912A}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "quicktime", "src\openimagelib\plugins\quicktime\quicktime_vc8.vcproj", "{AB23E1B4-55D4-4846-99BE-6EF3848ABCF3}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sgi", "src\openimagelib\plugins\sgi\sgi_vc8.vcproj", "{291BFF23-61D3-4355-8AA5-C8BF0FE30CB0}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tga", "src\openimagelib\plugins\tga\tga_vc8.vcproj", "{227A0088-F3AE-4CA7-941C-0283D44F1678}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ML", "ML", "{F76943CD-19F1-469A-B725-38C44C2DD27F}"
@@ -185,8 +185,8 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ml", "src\openmedialib\ml\ml_vc8.vcproj", "{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "py", "src\openmedialib\py\py_vc8.vcproj", "{1C648B54-C3DC-49B5-AFC9-B205F3151F81}"
@@ -196,80 +196,80 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "avformat", "src\openmedialib\plugins\avformat\avformat_vc8.vcproj", "{0C4F7499-83C6-4143-A392-56F299345E8A}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gensys", "src\openmedialib\plugins\gensys\gensys_vc8.vcproj", "{88BCD57E-044F-4427-A407-541BA8A938E6}"
+ ProjectSection(ProjectDependencies) = postProject
+ {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gensys", "src\openmedialib\plugins\gensys\gensys_vc8.vcproj", "{88BCD57E-044F-4427-A407-541BA8A938E6}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glew", "src\openmedialib\plugins\glew\glew_vc8.vcproj", "{649D053D-1768-40BB-8FA7-8CD91A765F32}"
ProjectSection(ProjectDependencies) = postProject
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glew", "src\openmedialib\plugins\glew\glew_vc8.vcproj", "{649D053D-1768-40BB-8FA7-8CD91A765F32}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ofx", "src\openmedialib\plugins\ofx\ofx_vc8.vcproj", "{A60E2710-2DA9-4641-AEF6-6488A6264723}"
ProjectSection(ProjectDependencies) = postProject
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ofx", "src\openmedialib\plugins\ofx\ofx_vc8.vcproj", "{A60E2710-2DA9-4641-AEF6-6488A6264723}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "oil", "src\openmedialib\plugins\oil\oil_vc8.vcproj", "{C29BD9EC-EC1B-4D7F-8985-F85698CE66ED}"
ProjectSection(ProjectDependencies) = postProject
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "oil", "src\openmedialib\plugins\oil\oil_vc8.vcproj", "{C29BD9EC-EC1B-4D7F-8985-F85698CE66ED}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openal", "src\openmedialib\plugins\openal\openal_vc8.vcproj", "{68B4BE77-E59E-4A24-9AF5-D4CEFF132B51}"
ProjectSection(ProjectDependencies) = postProject
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openal", "src\openmedialib\plugins\openal\openal_vc8.vcproj", "{68B4BE77-E59E-4A24-9AF5-D4CEFF132B51}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "quicktime", "src\openmedialib\plugins\quicktime\quicktime_vc8.vcproj", "{1AC3D22B-175B-4169-B74A-276F9D5BA7AB}"
ProjectSection(ProjectDependencies) = postProject
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "quicktime", "src\openmedialib\plugins\quicktime\quicktime_vc8.vcproj", "{1AC3D22B-175B-4169-B74A-276F9D5BA7AB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "template", "src\openmedialib\plugins\template\template_vc8.vcproj", "{18271104-A6E4-4293-A6F1-70B15AE311E5}"
ProjectSection(ProjectDependencies) = postProject
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "template", "src\openmedialib\plugins\template\template_vc8.vcproj", "{18271104-A6E4-4293-A6F1-70B15AE311E5}"
- ProjectSection(ProjectDependencies) = postProject
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
- EndProjectSection
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SG", "SG", "{BD86F550-C573-4A68-955B-6CEDCC8F595D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "plugins", "plugins", "{9483FC7B-E396-43E6-84ED-EB021AC54252}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sg", "src\openobjectlib\sg\sg_vc8.vcproj", "{DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obj", "src\openobjectlib\plugins\obj\obj_vc8.vcproj", "{AE1793B8-18EA-4277-BFDD-8C9F2AFA0096}"
ProjectSection(ProjectDependencies) = postProject
+ {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "X3D", "src\openobjectlib\plugins\X3D\X3D_vc8.vcproj", "{7A98C731-F651-4427-BD02-25133DEA7171}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AL", "AL", "{D3688A41-2908-41C0-8BF1-4AB6E3DFDBC4}"
@@ -278,10 +278,10 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "al", "src\openassetlib\al\al_vc8.vcproj", "{BD346E41-BEBD-43E7-9801-8EC1158355C4}"
ProjectSection(ProjectDependencies) = postProject
+ {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
+ {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
- {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "py", "src\openassetlib\py\py_vc8.vcproj", "{ECEDB34E-A863-420F-BFC6-F294AC078892}"
@@ -291,94 +291,94 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite", "src\openassetlib\plugins\sqlite\sqlite_vc8.vcproj", "{4B89FC29-D7E8-4E1A-99D7-17561B89DBEA}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{BD346E41-BEBD-43E7-9801-8EC1158355C4} = {BD346E41-BEBD-43E7-9801-8EC1158355C4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GL", "GL", "{C2EBF114-BFF6-4520-BC11-EB54565B92D6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2D", "test\openimagelib\GL\_2D\_2D_vc8.vcproj", "{24D622CC-4577-49B0-9224-8BB191236A61}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2D_compressed", "test\openimagelib\GL\_2D_compressed\_2D_compressed_vc8.vcproj", "{F0557FAB-2BC7-4991-9AD8-560526321D80}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2D_compressed_cubemap", "test\openimagelib\GL\_2D_compressed_cubemap\_2D_compressed_cubemap_vc8.vcproj", "{23B3623B-4FED-49F3-8F16-4883E57588E6}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2D_crop", "test\openimagelib\GL\_2D_crop\_2D_crop_vc8.vcproj", "{19B62156-49C4-4D43-A0E6-2D45952CC2CC}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2D_crop2", "test\openimagelib\GL\_2D_crop2\_2D_crop2_vc8.vcproj", "{AA3C0ACD-1251-484F-80D6-E9B8FF249B9E}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2D_exr", "test\openimagelib\GL\_2D_exr\_2D_exr_vc8.vcproj", "{4CC2C554-1EB4-4E53-A73F-38F0A1862F49}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2D_sgi", "test\openimagelib\GL\_2D_sgi\_2D_sgi_vc8.vcproj", "{F30DAA25-794E-44F6-BF01-867A72BE385B}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_3D_lightmap", "test\openimagelib\GL\_3D_lightmap\_3D_lightmap_vc8.vcproj", "{DBF9F309-3C1F-4563-AA2B-69FA27C2CBF7}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "player", "test\openmedialib\player\player_vc8.vcproj", "{14B49ECE-F5DB-4985-A31D-C48483362F9F}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "store", "test\openmedialib\store\store_vc8.vcproj", "{E6EFFB88-1563-4AB7-9D07-5B8853CD8ECF}"
ProjectSection(ProjectDependencies) = postProject
+ {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multipass_draw", "test\openobjectlib\GL\multipass_draw\multipass_draw_vc8.vcproj", "{AB0137D5-38BE-45A5-ACE9-02BB34D02358}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "noise_volume", "test\openobjectlib\GL\noise_volume\noise_volume_vc8.vcproj", "{3780D440-9C37-4186-B9B2-861EF3833CD4}"
ProjectSection(ProjectDependencies) = postProject
+ {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obj_draw", "test\openobjectlib\GL\obj_draw\obj_draw_vc8.vcproj", "{DD597B0F-DE01-4A1A-A399-F2355ABB06B0}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "texture_draw", "test\openobjectlib\GL\texture_draw\texture_draw_vc8.vcproj", "{8032E526-0866-4764-A4E9-F18C7CEE12D2}"
ProjectSection(ProjectDependencies) = postProject
+ {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
{3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E} = {DCCDFFF5-23EB-4E4B-BE38-9E5F8D42151E}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GL", "GL", "{B972DCEB-386E-42D2-8C5E-DD2942EC7F63}"
@@ -387,15 +387,15 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tonemap", "src\openeffectslib\plugins\tonemap\tonemap_vc8.vcproj", "{6D618CAE-230F-4ADD-936B-6C1D3D723236}"
ProjectSection(ProjectDependencies) = postProject
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tm_bench", "test\openeffectslib\tm_bench\tm_bench_vc8.vcproj", "{534B6931-67CB-4ACA-BD58-6887F35AC4D9}"
ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
{84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
- {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
- {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tiff", "src\openimagelib\plugins\tiff\tiff_vc8.vcproj", "{A1308789-3ABD-438C-BA08-FB341B55D94C}"
@@ -403,6 +403,13 @@
{C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rescaler_bench", "test\openeffectslib\rescaler_bench\rescaler_bench_vc8.vcproj", "{B2F0E6E4-4EA9-45BD-9CD9-E1B9A57E4E91}"
+ ProjectSection(ProjectDependencies) = postProject
+ {C9BA7656-B238-4882-A30A-EC2BDB2843B4} = {C9BA7656-B238-4882-A30A-EC2BDB2843B4}
+ {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0} = {3D424B92-233E-4BA0-AFD3-0FD1D80F5DD0}
+ {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC} = {84DAF5D6-05DE-4B4B-AB54-4CD2039EE5DC}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Multi-threaded Debug DLL|Win32 = Multi-threaded Debug DLL|Win32
@@ -649,6 +656,10 @@
{A1308789-3ABD-438C-BA08-FB341B55D94C}.Multi-threaded Debug DLL|Win32.Build.0 = Multi-threaded Debug DLL|Win32
{A1308789-3ABD-438C-BA08-FB341B55D94C}.Multi-threaded Release DLL|Win32.ActiveCfg = Multi-threaded Release DLL|Win32
{A1308789-3ABD-438C-BA08-FB341B55D94C}.Multi-threaded Release DLL|Win32.Build.0 = Multi-threaded Release DLL|Win32
+ {B2F0E6E4-4EA9-45BD-9CD9-E1B9A57E4E91}.Multi-threaded Debug DLL|Win32.ActiveCfg = Multi-threaded Debug DLL|Win32
+ {B2F0E6E4-4EA9-45BD-9CD9-E1B9A57E4E91}.Multi-threaded Debug DLL|Win32.Build.0 = Multi-threaded Debug DLL|Win32
+ {B2F0E6E4-4EA9-45BD-9CD9-E1B9A57E4E91}.Multi-threaded Release DLL|Win32.ActiveCfg = Multi-threaded Release DLL|Win32
+ {B2F0E6E4-4EA9-45BD-9CD9-E1B9A57E4E91}.Multi-threaded Release DLL|Win32.Build.0 = Multi-threaded Release DLL|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -690,6 +701,7 @@
{9483FC7B-E396-43E6-84ED-EB021AC54252} = {FE28E322-51C9-4979-9A0A-93055023A503}
{C85EDDFB-1A91-4ABD-8E86-6AFDF0C85CBA} = {67E6C3A2-E542-4D5D-A4A4-61DF5CD73711}
{534B6931-67CB-4ACA-BD58-6887F35AC4D9} = {C2D61212-6194-4B66-837B-E8A2FA29AB0E}
+ {B2F0E6E4-4EA9-45BD-9CD9-E1B9A57E4E91} = {C2D61212-6194-4B66-837B-E8A2FA29AB0E}
{14B49ECE-F5DB-4985-A31D-C48483362F9F} = {135B4433-9BD9-42C8-A552-61CA0CBA6CDC}
{E6EFFB88-1563-4AB7-9D07-5B8853CD8ECF} = {135B4433-9BD9-42C8-A552-61CA0CBA6CDC}
{B972DCEB-386E-42D2-8C5E-DD2942EC7F63} = {BEF92EC2-7872-48E2-BF6F-3DE4EBA9C037}
Modified: lib/openlibraries/src/openimagelib/il/utility.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/il/utility.cpp 2007-04-22 17:05:12 UTC (rev 99)
+++ lib/openlibraries/src/openimagelib/il/utility.cpp 2007-04-22 20:57:05 UTC (rev 100)
@@ -1878,11 +1878,6 @@
{
while( width-- )
{
-/*
- *( dst + 2 ) = static_cast<unsigned char>( *src++ );
- *( dst + 1 ) = static_cast<unsigned char>( *src++ );
- *( dst + 0 ) = static_cast<unsigned char>( *src++ );
-*/
*( dst + 2 ) = static_cast<unsigned char>( opl::fast_floorf( *src++ ) );
*( dst + 1 ) = static_cast<unsigned char>( opl::fast_floorf( *src++ ) );
*( dst + 0 ) = static_cast<unsigned char>( opl::fast_floorf( *src++ ) );
Added: lib/openlibraries/test/openeffectslib/rescaler_bench/rescaler_bench.cpp
===================================================================
--- lib/openlibraries/test/openeffectslib/rescaler_bench/rescaler_bench.cpp (rev 0)
+++ lib/openlibraries/test/openeffectslib/rescaler_bench/rescaler_bench.cpp 2007-04-22 20:57:05 UTC (rev 100)
@@ -0,0 +1,44 @@
+
+// el - A effects library representation.
+
+// Copyright (C) 2007 Goncalo N. M. de Carvalho
+// Released under the GPL.
+// For more information, see http://www.openlibraries.org.
+
+#include <iostream>
+
+#include <openpluginlib/pl/openpluginlib.hpp>
+#include <openpluginlib/pl/timer.hpp>
+#include <openimagelib/il/il.hpp>
+#include <openmedialib/ml/ml.hpp>
+
+namespace ml = olib::openmedialib::ml;
+namespace il = olib::openimagelib::il;
+namespace pl = olib::openpluginlib;
+
+void run( char* argv )
+{
+ ml::input_type_ptr input = ml::create_input( pl::string( argv ) + pl::string( "/sequence:" ) );
+ ml::frame_type_ptr frame = input->fetch( );
+
+ pl::rdtsc_default_timer r;
+
+ r.reset( );
+ r.start( );
+
+ for( int i = 0; i < 1000; ++i )
+ il::rescale( frame->get_image( ), 100, 100, 1, il::BICUBIC_SAMPLING );
+
+ r.stop( );
+ pl::rdtsc_default_timer::value_type elapsed = r.elapsed( );
+ std::cout << "rdtsc: elapsed time is " << elapsed.tv_sec << " seconds and " << elapsed.tv_usec << " microseconds.\n";
+}
+
+int main( int argc, char* argv[ ] )
+{
+ pl::init( "" );
+
+ run( argv[ 1 ] );
+
+ pl::uninit( );
+}
Property changes on: lib/openlibraries/test/openeffectslib/rescaler_bench/rescaler_bench.cpp
___________________________________________________________________
Name: svn:eol-style
+ native
Added: lib/openlibraries/test/openeffectslib/rescaler_bench/rescaler_bench_vc8.vcproj
===================================================================
--- lib/openlibraries/test/openeffectslib/rescaler_bench/rescaler_bench_vc8.vcproj (rev 0)
+++ lib/openlibraries/test/openeffectslib/rescaler_bench/rescaler_bench_vc8.vcproj 2007-04-22 20:57:05 UTC (rev 100)
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="rescaler_bench"
+ ProjectGUID="{B2F0E6E4-4EA9-45BD-9CD9-E1B9A57E4E91}"
+ RootNamespace="rescaler_bench"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Multi-threaded Debug DLL|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="$(SolutionDir)\src;"C:\Boost\include\boost-1_33_1""
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;OPENMEDIALIB_BUILD;HAVE_FLEX_STRING;HAVE_CG_RUNTIME;HAVE_BOOST_FILESYSTEM"
+ MinimalRebuild="true"
+ ExceptionHandling="2"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ OpenMP="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ DisableSpecificWarnings="4503"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="C:\Boost\lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Multi-threaded Release DLL|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="$(SolutionDir)\src;"C:\Boost\include\boost-1_33_1""
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;OPENMEDIALIB_BUILD;HAVE_FLEX_STRING;HAVE_CG_RUNTIME;HAVE_BOOST_FILESYSTEM"
+ ExceptionHandling="2"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ FloatingPointModel="2"
+ OpenMP="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4503"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="C:\Boost\lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\rescaler_bench.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
Property changes on: lib/openlibraries/test/openeffectslib/rescaler_bench/rescaler_bench_vc8.vcproj
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: lib/openlibraries/test/openeffectslib/tm_bench/tm_bench.cpp
===================================================================
--- lib/openlibraries/test/openeffectslib/tm_bench/tm_bench.cpp 2007-04-22 17:05:12 UTC (rev 99)
+++ lib/openlibraries/test/openeffectslib/tm_bench/tm_bench.cpp 2007-04-22 20:57:05 UTC (rev 100)
@@ -14,11 +14,9 @@
namespace ml = olib::openmedialib::ml;
namespace pl = olib::openpluginlib;
-int main( int argc, char* argv[ ] )
+void run( char* argv )
{
- pl::init( "" );
-
- ml::input_type_ptr input = ml::create_input( pl::string( argv[ 1 ] ) + pl::string( "/sequence:" ) );
+ ml::input_type_ptr input = ml::create_input( pl::string( argv ) + pl::string( "/sequence:" ) );
ml::filter_type_ptr filter = ml::create_filter( L"tm_linear" );
pl::rdtsc_default_timer r;
@@ -39,3 +37,12 @@
pl::rdtsc_default_timer::value_type elapsed = r.elapsed( );
std::cout << "rdtsc: elapsed time is " << elapsed.tv_sec << " seconds and " << elapsed.tv_usec << " microseconds.\n";
}
+
+int main( int argc, char* argv[ ] )
+{
+ pl::init( "" );
+
+ run( argv[ 1 ] );
+
+ pl::uninit( );
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-22 17:05:12
|
Revision: 99
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=99&view=rev
Author: glslang
Date: 2007-04-22 10:05:12 -0700 (Sun, 22 Apr 2007)
Log Message:
-----------
+compilation fixes
Modified Paths:
--------------
lib/openlibraries/src/openpluginlib/pl/fast_math.cpp
Modified: lib/openlibraries/src/openpluginlib/pl/fast_math.cpp
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/fast_math.cpp 2007-04-22 16:48:10 UTC (rev 98)
+++ lib/openlibraries/src/openpluginlib/pl/fast_math.cpp 2007-04-22 17:05:12 UTC (rev 99)
@@ -28,7 +28,7 @@
return ( int ) ( ( *( ( long long* ) &y ) ) >> 16 );
#else
- return ( int ) std::floorf( x );
+ return ( int ) floorf( x );
#endif
}
@@ -61,7 +61,7 @@
#if defined( HAVE_FAST_MATH )
return fast_exp2f( y * fast_log2f( x ) );
#else
- return std::powf( x, y );
+ return powf( x, y );
#endif
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-22 16:48:11
|
Revision: 98
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=98&view=rev
Author: glslang
Date: 2007-04-22 09:48:10 -0700 (Sun, 22 Apr 2007)
Log Message:
-----------
+build updates
Modified Paths:
--------------
lib/openlibraries/configure.ac
Modified: lib/openlibraries/configure.ac
===================================================================
--- lib/openlibraries/configure.ac 2007-04-22 16:46:47 UTC (rev 97)
+++ lib/openlibraries/configure.ac 2007-04-22 16:48:10 UTC (rev 98)
@@ -154,6 +154,8 @@
AC_SUBST(XML2_CXXFLAGS)
AC_SUBST(XML2_LIBS)
+AC_CHECK_OPENIMAGELIB( )
+
AC_CHECK_QUICKTIME( )
SWAB_AUDIO=""
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-22 16:46:48
|
Revision: 97
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=97&view=rev
Author: glslang
Date: 2007-04-22 09:46:47 -0700 (Sun, 22 Apr 2007)
Log Message:
-----------
+ wrong deletion
Added Paths:
-----------
lib/openlibraries/m4/openimagelib.m4
Added: lib/openlibraries/m4/openimagelib.m4
===================================================================
--- lib/openlibraries/m4/openimagelib.m4 (rev 0)
+++ lib/openlibraries/m4/openimagelib.m4 2007-04-22 16:46:47 UTC (rev 97)
@@ -0,0 +1,55 @@
+
+#
+# Configure OpenImageLib
+#
+
+AC_DEFUN([AC_CHECK_OPENIMAGELIB],[
+ AC_ARG_WITH(openimagelib, AC_HELP_STRING([--with-openimagelib],
+ [configure with OpenImageLib support (default=yes)]),with_openimagelib="yes",[])
+
+ AS_IF([test "x$with_openimagelib" == "xyes"],
+ AC_MSG_WARN([*** OpenImageLib is not configured. Some functionality may not be available. ***]),
+ ac_use_openimagelib=yes AC_DEFINE(HAVE_OPENIMAGELIB, 1, [Define this for OpenImageLib support])
+ )
+
+ if test x$ac_use_openimagelib = "xyes"; then
+ dnl libpng support
+ AC_PATH_PROG(LIBPNG_CONFIG, libpng-config, no)
+ if test "$LIBPNG_CONFIG" = "no" ; then
+ AC_CHECK_LIB(png, png_create_read_struct,
+ have_libpng=yes PNG_LIBS="-lpng",
+ AC_MSG_RESULT([*** PNG support is not available ***]))
+ else
+ PNG_CFLAGS=`$LIBPNG_CONFIG --cflags`
+ PNG_LIBS=`$LIBPNG_CONFIG --libs`
+ have_libpng="yes"
+ AC_DEFINE(HAVE_LIBPNG,1,[Define this for PNG support])
+ fi
+
+ AM_CONDITIONAL(HAVE_LIBPNG, test x"$have_libpng" = "xyes")
+ AC_SUBST(PNG_CFLAGS)
+ AC_SUBST(PNG_LIBS)
+
+ dnl libjpeg support
+ AC_CHECK_LIB(jpeg, jpeg_read_header,
+ have_libjpeg=yes JPEG_LIBS="-ljpeg",
+ AC_MSG_RESULT([*** JPEG support is not available ***]))
+ AM_CONDITIONAL(HAVE_LIBJPEG, test x"$have_libjpeg" = "xyes")
+ AC_SUBST(JPEG_LIBS)
+
+ dnl libtiff support
+ AC_CHECK_LIB(tiff, TIFFOpen,
+ have_libtiff=yes TIFF_LIBS="-ltiff",
+ AC_MSG_RESULT([*** TIFF support is not available ***]))
+ AM_CONDITIONAL(HAVE_LIBTIFF, test x"$have_libtiff" = "xyes")
+ AC_SUBST(TIFF_LIBS)
+ fi
+
+ AM_CONDITIONAL(HAVE_OPENIMAGELIB, test x"$ac_use_openimagelib" = "xyes")
+
+ if test x$ac_use_openimagelib = "xyes"; then
+ ifelse([$1], , :, [$1])
+ else
+ ifelse([$2], , :, [$2])
+ fi
+])
Property changes on: lib/openlibraries/m4/openimagelib.m4
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-22 16:42:52
|
Revision: 96
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=96&view=rev
Author: glslang
Date: 2007-04-22 09:42:50 -0700 (Sun, 22 Apr 2007)
Log Message:
-----------
+build updates
Removed Paths:
-------------
lib/openlibraries/m4/openimagelib.m4
Deleted: lib/openlibraries/m4/openimagelib.m4
===================================================================
--- lib/openlibraries/m4/openimagelib.m4 2007-04-22 16:42:37 UTC (rev 95)
+++ lib/openlibraries/m4/openimagelib.m4 2007-04-22 16:42:50 UTC (rev 96)
@@ -1,55 +0,0 @@
-
-#
-# Configure OpenImageLib
-#
-
-AC_DEFUN([AC_CHECK_OPENIMAGELIB],[
- AC_ARG_WITH(openimagelib, AC_HELP_STRING([--with-openimagelib],
- [configure with OpenImageLib support (default=yes)]),with_openimagelib="yes",[])
-
- AS_IF([test "x$with_openimagelib" == "xyes"],
- AC_MSG_WARN([*** OpenImageLib is not configured. Some functionality may not be available. ***]),
- ac_use_openimagelib=yes AC_DEFINE(HAVE_OPENIMAGELIB, 1, [Define this for OpenImageLib support])
- )
-
- if test x$ac_use_openimagelib = "xyes"; then
- dnl libpng support
- AC_PATH_PROG(LIBPNG_CONFIG, libpng-config, no)
- if test "$LIBPNG_CONFIG" = "no" ; then
- AC_CHECK_LIB(png, png_create_read_struct,
- have_libpng=yes PNG_LIBS="-lpng",
- AC_MSG_RESULT([*** PNG support is not available ***]))
- else
- PNG_CFLAGS=`$LIBPNG_CONFIG --cflags`
- PNG_LIBS=`$LIBPNG_CONFIG --libs`
- have_libpng="yes"
- AC_DEFINE(HAVE_LIBPNG,1,[Define this for PNG support])
- fi
-
- AM_CONDITIONAL(HAVE_LIBPNG, test x"$have_libpng" = "xyes")
- AC_SUBST(PNG_CFLAGS)
- AC_SUBST(PNG_LIBS)
-
- dnl libjpeg support
- AC_CHECK_LIB(jpeg, jpeg_read_header,
- have_libjpeg=yes JPEG_LIBS="-ljpeg",
- AC_MSG_RESULT([*** JPEG support is not available ***]))
- AM_CONDITIONAL(HAVE_LIBJPEG, test x"$have_libjpeg" = "xyes")
- AC_SUBST(JPEG_LIBS)
-
- dnl libtiff support
- AC_CHECK_LIB(tiff, TIFFOpen,
- have_libtiff=yes TIFF_LIBS="-ltiff",
- AC_MSG_RESULT([*** TIFF support is not available ***]))
- AM_CONDITIONAL(HAVE_LIBTIFF, test x"$have_libtiff" = "xyes")
- AC_SUBST(TIFF_LIBS)
- fi
-
- AM_CONDITIONAL(HAVE_OPENIMAGELIB, test x"$ac_use_openimagelib" = "xyes")
-
- if test x$ac_use_openimagelib = "xyes"; then
- ifelse([$1], , :, [$1])
- else
- ifelse([$2], , :, [$2])
- fi
-])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-22 16:42:38
|
Revision: 95
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=95&view=rev
Author: glslang
Date: 2007-04-22 09:42:37 -0700 (Sun, 22 Apr 2007)
Log Message:
-----------
+build updates
Modified Paths:
--------------
lib/openlibraries/configure.ac
Modified: lib/openlibraries/configure.ac
===================================================================
--- lib/openlibraries/configure.ac 2007-04-22 16:40:46 UTC (rev 94)
+++ lib/openlibraries/configure.ac 2007-04-22 16:42:37 UTC (rev 95)
@@ -154,10 +154,6 @@
AC_SUBST(XML2_CXXFLAGS)
AC_SUBST(XML2_LIBS)
-dnl OpenImageLib support
-AC_MSG_NOTICE([*** Configuring OpenImageLib ***])
-AC_CHECK_OPENIMAGELIB( )
-
AC_CHECK_QUICKTIME( )
SWAB_AUDIO=""
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-22 16:40:49
|
Revision: 94
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=94&view=rev
Author: glslang
Date: 2007-04-22 09:40:46 -0700 (Sun, 22 Apr 2007)
Log Message:
-----------
+ enable fast math by default
Modified Paths:
--------------
lib/openlibraries/src/openpluginlib/pl/fast_math.cpp
lib/openlibraries/src/openpluginlib/pl/pl_vc8.vcproj
lib/openlibraries/test/openeffectslib/tm_bench/tm_bench_vc8.vcproj
Property Changed:
----------------
lib/openlibraries/m4/fast_math.m4
Property changes on: lib/openlibraries/m4/fast_math.m4
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: lib/openlibraries/src/openpluginlib/pl/fast_math.cpp
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/fast_math.cpp 2007-04-22 15:47:45 UTC (rev 93)
+++ lib/openlibraries/src/openpluginlib/pl/fast_math.cpp 2007-04-22 16:40:46 UTC (rev 94)
@@ -5,6 +5,14 @@
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
+#ifdef HAVE_CONFIG_H
+#include <openlibraries_global_config.hpp>
+#endif
+
+#ifndef HAVE_FAST_MATH
+#include <cmath>
+#endif
+
#include <openpluginlib/pl/fast_math.hpp>
namespace olib { namespace openpluginlib {
@@ -15,9 +23,13 @@
int fast_floorf( float x )
{
+#if defined( HAVE_FAST_MATH ) && !defined( __ppc )
double y = ( x + 68719476736.0 * 1.5 );
-
+
return ( int ) ( ( *( ( long long* ) &y ) ) >> 16 );
+#else
+ return ( int ) std::floorf( x );
+#endif
}
float fast_log2f( float v )
@@ -25,18 +37,18 @@
float x = ( float ) *( int* ) &v;
x *= one_over_two_to_pow_23;
x = x - 127.0f;
-
+
float y = x - fast_floorf( x );
y = ( y - y * y ) * 0.346607f;
-
+
return x + y;
}
-
+
float fast_exp2f( float v )
{
float y = v - fast_floorf( v );
y = ( y - y * y ) * 0.33971f;
-
+
float x = v + 127.0f - y;
x *= two_to_pow_23;
*( int* ) &x = ( int ) x;
@@ -46,7 +58,11 @@
float fast_powf( float x, float y )
{
+#if defined( HAVE_FAST_MATH )
return fast_exp2f( y * fast_log2f( x ) );
+#else
+ return std::powf( x, y );
+#endif
}
} }
Modified: lib/openlibraries/src/openpluginlib/pl/pl_vc8.vcproj
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/pl_vc8.vcproj 2007-04-22 15:47:45 UTC (rev 93)
+++ lib/openlibraries/src/openpluginlib/pl/pl_vc8.vcproj 2007-04-22 16:40:46 UTC (rev 94)
@@ -42,7 +42,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""$(SolutionDir)\src";"C:\Boost\include\boost-1_33_1";"C:\Program Files\NVIDIA Corporation\Cg\include""
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;OPENPLUGINLIB_EXPORTS;OPENPLUGINLIB_BUILD;HAVE_FLEX_STRING;HAVE_CG_RUNTIME;HAVE_BOOST_FILESYSTEM"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;OPENPLUGINLIB_EXPORTS;OPENPLUGINLIB_BUILD;HAVE_FLEX_STRING;HAVE_CG_RUNTIME;HAVE_BOOST_FILESYSTEM;HAVE_FAST_MATH"
MinimalRebuild="true"
ExceptionHandling="2"
BasicRuntimeChecks="3"
@@ -128,7 +128,7 @@
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories=""$(SolutionDir)\src";"C:\Boost\include\boost-1_33_1";"C:\Program Files\NVIDIA Corporation\Cg\include""
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OPENPLUGINLIB_EXPORTS;OPENPLUGINLIB_BUILD;HAVE_FLEX_STRING;HAVE_CG_RUNTIME;HAVE_BOOST_FILESYSTEM"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OPENPLUGINLIB_EXPORTS;OPENPLUGINLIB_BUILD;HAVE_FLEX_STRING;HAVE_CG_RUNTIME;HAVE_BOOST_FILESYSTEM;HAVE_FAST_MATH"
ExceptionHandling="2"
RuntimeLibrary="2"
BufferSecurityCheck="false"
@@ -373,11 +373,11 @@
>
</File>
<File
- RelativePath=".\pcos\property.hpp"
+ RelativePath=".\property.hpp"
>
</File>
<File
- RelativePath=".\property.hpp"
+ RelativePath=".\pcos\property.hpp"
>
</File>
<File
Modified: lib/openlibraries/test/openeffectslib/tm_bench/tm_bench_vc8.vcproj
===================================================================
--- lib/openlibraries/test/openeffectslib/tm_bench/tm_bench_vc8.vcproj 2007-04-22 15:47:45 UTC (rev 93)
+++ lib/openlibraries/test/openeffectslib/tm_bench/tm_bench_vc8.vcproj 2007-04-22 16:40:46 UTC (rev 94)
@@ -202,10 +202,6 @@
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
- <File
- RelativePath=".\VTune\tm_bench.vpj"
- >
- </File>
</Files>
<Globals>
</Globals>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-22 15:47:48
|
Revision: 93
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=93&view=rev
Author: glslang
Date: 2007-04-22 08:47:45 -0700 (Sun, 22 Apr 2007)
Log Message:
-----------
+build updates
Modified Paths:
--------------
lib/openlibraries/configure.ac
Added Paths:
-----------
lib/openlibraries/m4/fast_math.m4
Modified: lib/openlibraries/configure.ac
===================================================================
--- lib/openlibraries/configure.ac 2007-04-21 19:16:49 UTC (rev 92)
+++ lib/openlibraries/configure.ac 2007-04-22 15:47:45 UTC (rev 93)
@@ -274,6 +274,9 @@
dnl Universal Binary Support (OS X only)
AC_CHECK_UNIVERSAL_BINARY_SUPPORT( )
+dnl Fast Math support
+AC_CHECK_FAST_MATH( )
+
SHARED_EXT="so"
case $host in
*-apple-darwin*)
Added: lib/openlibraries/m4/fast_math.m4
===================================================================
--- lib/openlibraries/m4/fast_math.m4 (rev 0)
+++ lib/openlibraries/m4/fast_math.m4 2007-04-22 15:47:45 UTC (rev 93)
@@ -0,0 +1,24 @@
+
+#
+# Enable/Disable fast math support.
+#
+
+AC_DEFUN([AC_CHECK_FAST_MATH],[
+ AC_ARG_ENABLE(fastmath, AC_HELP_STRING([--enable-fastmath], [disable fast math support]),
+ [enablefastmath=$enableval],
+ [enablefastmath=yes])
+
+ AC_MSG_CHECKING(for fast math support)
+ if test x$enablefastmath = "xyes" ; then
+ AC_DEFINE(HAVE_FAST_MATH,1,[Define this to enable fast math support])
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
+
+ if test x$enablefastmath = "xyes"; then
+ ifelse([$1], , :, [$1])
+ else
+ ifelse([$2], , :, [$2])
+ fi
+])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-21 19:16:50
|
Revision: 92
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=92&view=rev
Author: glslang
Date: 2007-04-21 12:16:49 -0700 (Sat, 21 Apr 2007)
Log Message:
-----------
+ build update
Modified Paths:
--------------
lib/openlibraries/src/openpluginlib/pl/Makefile.am
Modified: lib/openlibraries/src/openpluginlib/pl/Makefile.am
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/Makefile.am 2007-04-21 19:15:00 UTC (rev 91)
+++ lib/openlibraries/src/openpluginlib/pl/Makefile.am 2007-04-21 19:16:49 UTC (rev 92)
@@ -14,6 +14,8 @@
content_handler_libxml.hpp \
content_handler_libxml.cpp \
discovery_traits.hpp \
+ fast_math.hpp \
+ fast_math.cpp \
geometry.hpp \
openplugin.hpp \
openplugin.cpp \
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-21 19:15:03
|
Revision: 91
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=91&view=rev
Author: glslang
Date: 2007-04-21 12:15:00 -0700 (Sat, 21 Apr 2007)
Log Message:
-----------
+ fast math support
Modified Paths:
--------------
lib/openlibraries/src/openimagelib/il/utility.cpp
lib/openlibraries/src/openimagelib/plugins/tiff/tiff_vc8.vcproj
lib/openlibraries/src/openpluginlib/pl/pl_vc8.vcproj
lib/openlibraries/test/openeffectslib/tm_bench/tm_bench.cpp
lib/openlibraries/test/openeffectslib/tm_bench/tm_bench_vc8.vcproj
Added Paths:
-----------
lib/openlibraries/src/openpluginlib/pl/fast_math.cpp
lib/openlibraries/src/openpluginlib/pl/fast_math.hpp
Modified: lib/openlibraries/src/openimagelib/il/utility.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/il/utility.cpp 2007-04-21 16:40:23 UTC (rev 90)
+++ lib/openlibraries/src/openimagelib/il/utility.cpp 2007-04-21 19:15:00 UTC (rev 91)
@@ -11,9 +11,10 @@
using namespace std;
+#include <openpluginlib/pl/fast_math.hpp>
+#include <openpluginlib/pl/utf8_utils.hpp>
#include <openimagelib/il/il.hpp>
-#include <openpluginlib/pl/utf8_utils.hpp>
namespace opl = olib::openpluginlib;
namespace olib { namespace openimagelib { namespace il {
@@ -1877,9 +1878,15 @@
{
while( width-- )
{
+/*
*( dst + 2 ) = static_cast<unsigned char>( *src++ );
*( dst + 1 ) = static_cast<unsigned char>( *src++ );
*( dst + 0 ) = static_cast<unsigned char>( *src++ );
+*/
+ *( dst + 2 ) = static_cast<unsigned char>( opl::fast_floorf( *src++ ) );
+ *( dst + 1 ) = static_cast<unsigned char>( opl::fast_floorf( *src++ ) );
+ *( dst + 0 ) = static_cast<unsigned char>( opl::fast_floorf( *src++ ) );
+
*( dst + 3 ) = 255;
dst += 4;
@@ -3241,6 +3248,10 @@
// range is the difference the maximum and minimum luminance values.
float range = maxval - minval;
+ if( range < 1e-6f )
+ return dst_img;
+
+ float one_over_range = 1.0f / range;
// reset the src image pointer.
src = ( const float* ) im->data( );
@@ -3251,9 +3262,9 @@
{
for( size_type j = 0; j < width; ++j )
{
- float r = output_range * ( ( *src++ - minval ) / range );
- float g = output_range * ( ( *src++ - minval ) / range );
- float b = output_range * ( ( *src++ - minval ) / range );
+ float r = output_range * ( ( *src++ - minval ) * one_over_range );
+ float g = output_range * ( ( *src++ - minval ) * one_over_range );
+ float b = output_range * ( ( *src++ - minval ) * one_over_range );
r < 0.0f ? *dst++ = 0.0f : r > output_range ? *dst++ = output_range : *dst++ = r;
g < 0.0f ? *dst++ = 0.0f : g > output_range ? *dst++ = output_range : *dst++ = g;
@@ -3357,13 +3368,15 @@
const float* sptr = src;
float* dptr = dst;
+ const float one_over_gamma = 1.0f / gamma;
+
while( height-- )
{
while( width-- )
{
- *dst++ = powf( *src++, 1.0f / gamma );
- *dst++ = powf( *src++, 1.0f / gamma );
- *dst++ = powf( *src++, 1.0f / gamma );
+ *dst++ = opl::fast_powf( *src++, one_over_gamma );
+ *dst++ = opl::fast_powf( *src++, one_over_gamma );
+ *dst++ = opl::fast_powf( *src++, one_over_gamma );
}
dst = dptr += dst_pitch;
Modified: lib/openlibraries/src/openimagelib/plugins/tiff/tiff_vc8.vcproj
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/tiff/tiff_vc8.vcproj 2007-04-21 16:40:23 UTC (rev 90)
+++ lib/openlibraries/src/openimagelib/plugins/tiff/tiff_vc8.vcproj 2007-04-21 19:15:00 UTC (rev 91)
@@ -151,7 +151,7 @@
OutputFile="$(OutDir)\openimagelib_tiff-vc80-r-0_4_0.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="C:\Boost\lib;$(SolutionDir)\src\openpluginlib\pl\$(ConfigurationName);C:\libtiff\lib"
- IgnoreDefaultLibraryNames="msvcrt.lib"
+ IgnoreDefaultLibraryNames=""
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
Added: lib/openlibraries/src/openpluginlib/pl/fast_math.cpp
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/fast_math.cpp (rev 0)
+++ lib/openlibraries/src/openpluginlib/pl/fast_math.cpp 2007-04-21 19:15:00 UTC (rev 91)
@@ -0,0 +1,52 @@
+
+// openpluginlib - A plugin interface to openlibraries.
+
+// Copyright (C) 2007 VM Inc.
+// Released under the LGPL.
+// For more information, see http://www.openlibraries.org.
+
+#include <openpluginlib/pl/fast_math.hpp>
+
+namespace olib { namespace openpluginlib {
+
+// precomputed constants.
+const float two_to_pow_23 = 1 << 23;
+const float one_over_two_to_pow_23 = 1.0f / ( 1 << 23 );
+
+int fast_floorf( float x )
+{
+ double y = ( x + 68719476736.0 * 1.5 );
+
+ return ( int ) ( ( *( ( long long* ) &y ) ) >> 16 );
+}
+
+float fast_log2f( float v )
+{
+ float x = ( float ) *( int* ) &v;
+ x *= one_over_two_to_pow_23;
+ x = x - 127.0f;
+
+ float y = x - fast_floorf( x );
+ y = ( y - y * y ) * 0.346607f;
+
+ return x + y;
+}
+
+float fast_exp2f( float v )
+{
+ float y = v - fast_floorf( v );
+ y = ( y - y * y ) * 0.33971f;
+
+ float x = v + 127.0f - y;
+ x *= two_to_pow_23;
+ *( int* ) &x = ( int ) x;
+
+ return x;
+}
+
+float fast_powf( float x, float y )
+{
+ return fast_exp2f( y * fast_log2f( x ) );
+}
+
+} }
Property changes on: lib/openlibraries/src/openpluginlib/pl/fast_math.cpp
___________________________________________________________________
Name: svn:eol-style
+ native
Added: lib/openlibraries/src/openpluginlib/pl/fast_math.hpp
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/fast_math.hpp (rev 0)
+++ lib/openlibraries/src/openpluginlib/pl/fast_math.hpp 2007-04-21 19:15:00 UTC (rev 91)
@@ -0,0 +1,22 @@
+
+// openpluginlib - A plugin interface to openlibraries.
+
+// Copyright (C) 2007 VM Inc.
+// Released under the LGPL.
+// For more information, see http://www.openlibraries.org.
+
+#ifndef FAST_MATH_INC_
+#define FAST_MATH_INC_
+
+#include <openpluginlib/pl/config.hpp>
+
+namespace olib { namespace openpluginlib {
+
+OPENPLUGINLIB_DECLSPEC float fast_log2f( float x );
+OPENPLUGINLIB_DECLSPEC float fast_exp2f( float x );
+OPENPLUGINLIB_DECLSPEC float fast_powf( float x, float y );
+OPENPLUGINLIB_DECLSPEC int fast_floorf( float x );
+
+} }
+
+#endif
Property changes on: lib/openlibraries/src/openpluginlib/pl/fast_math.hpp
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: lib/openlibraries/src/openpluginlib/pl/pl_vc8.vcproj
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/pl_vc8.vcproj 2007-04-21 16:40:23 UTC (rev 90)
+++ lib/openlibraries/src/openpluginlib/pl/pl_vc8.vcproj 2007-04-21 19:15:00 UTC (rev 91)
@@ -211,6 +211,10 @@
>
</File>
<File
+ RelativePath=".\fast_math.cpp"
+ >
+ </File>
+ <File
RelativePath=".\GL_utility.cpp"
>
</File>
@@ -305,6 +309,10 @@
>
</File>
<File
+ RelativePath=".\fast_math.hpp"
+ >
+ </File>
+ <File
RelativePath=".\flex_string.h"
>
</File>
@@ -365,11 +373,11 @@
>
</File>
<File
- RelativePath=".\property.hpp"
+ RelativePath=".\pcos\property.hpp"
>
</File>
<File
- RelativePath=".\pcos\property.hpp"
+ RelativePath=".\property.hpp"
>
</File>
<File
Modified: lib/openlibraries/test/openeffectslib/tm_bench/tm_bench.cpp
===================================================================
--- lib/openlibraries/test/openeffectslib/tm_bench/tm_bench.cpp 2007-04-21 16:40:23 UTC (rev 90)
+++ lib/openlibraries/test/openeffectslib/tm_bench/tm_bench.cpp 2007-04-21 19:15:00 UTC (rev 91)
@@ -28,8 +28,11 @@
if( input && filter )
{
- filter->connect( input );
- filter->fetch( );
+ for( int i = 0; i < 10; ++i )
+ {
+ filter->connect( input );
+ filter->fetch( );
+ }
}
r.stop( );
Modified: lib/openlibraries/test/openeffectslib/tm_bench/tm_bench_vc8.vcproj
===================================================================
--- lib/openlibraries/test/openeffectslib/tm_bench/tm_bench_vc8.vcproj 2007-04-21 16:40:23 UTC (rev 90)
+++ lib/openlibraries/test/openeffectslib/tm_bench/tm_bench_vc8.vcproj 2007-04-21 19:15:00 UTC (rev 91)
@@ -149,6 +149,7 @@
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
+ FixedBaseAddress="1"
/>
<Tool
Name="VCALinkTool"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-21 16:40:24
|
Revision: 90
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=90&view=rev
Author: glslang
Date: 2007-04-21 09:40:23 -0700 (Sat, 21 Apr 2007)
Log Message:
-----------
+ guard against the use of rdtsc timer in a ppc environment. tm_bench and client code will also need to make the same assumption. currently the unit test will not compile on ppc
Modified Paths:
--------------
lib/openlibraries/src/openpluginlib/pl/timer.hpp
Modified: lib/openlibraries/src/openpluginlib/pl/timer.hpp
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/timer.hpp 2007-04-21 16:39:04 UTC (rev 89)
+++ lib/openlibraries/src/openpluginlib/pl/timer.hpp 2007-04-21 16:40:23 UTC (rev 90)
@@ -330,7 +330,7 @@
#ifdef WIN32
typedef timer<rdtsc<time_value, event_sleep> > rdtsc_default_timer;
#else
-# if GCC_VERSION >= 40000 && !defined __APPLE__
+# if GCC_VERSION >= 40000 && !defined __ppc
typedef timer<rdtsc<time_value, nanosleep_> > rdtsc_default_timer;
# endif
typedef timer<gettimeofday_<time_value, nanosleep_> > gettimeofday_default_timer;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-21 16:39:09
|
Revision: 89
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=89&view=rev
Author: glslang
Date: 2007-04-21 09:39:04 -0700 (Sat, 21 Apr 2007)
Log Message:
-----------
+build updates
Modified Paths:
--------------
lib/openlibraries/test/openeffectslib/tm_bench/Makefile.am
Modified: lib/openlibraries/test/openeffectslib/tm_bench/Makefile.am
===================================================================
--- lib/openlibraries/test/openeffectslib/tm_bench/Makefile.am 2007-04-21 16:26:49 UTC (rev 88)
+++ lib/openlibraries/test/openeffectslib/tm_bench/Makefile.am 2007-04-21 16:39:04 UTC (rev 89)
@@ -20,5 +20,6 @@
tm_bench_LDADD = \
$(BOOST_FILESYSTEM_LIBS) \
$(top_builddir)/src/openpluginlib/pl/libopenpluginlib_pl.la \
- $(top_builddir)/src/openimagelib/il/libopenimagelib_il.la
+ $(top_builddir)/src/openimagelib/il/libopenimagelib_il.la \
+ $(top_builddir)/src/openmedialib/ml/libopenmedialib_ml.la
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gl...@us...> - 2007-04-21 16:26:50
|
Revision: 88
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=88&view=rev
Author: glslang
Date: 2007-04-21 09:26:49 -0700 (Sat, 21 Apr 2007)
Log Message:
-----------
+build updates
Modified Paths:
--------------
lib/openlibraries/configure.ac
lib/openlibraries/test/Makefile.am
Added Paths:
-----------
lib/openlibraries/test/openeffectslib/tm_bench/Makefile.am
Modified: lib/openlibraries/configure.ac
===================================================================
--- lib/openlibraries/configure.ac 2007-04-21 16:19:18 UTC (rev 87)
+++ lib/openlibraries/configure.ac 2007-04-21 16:26:49 UTC (rev 88)
@@ -394,6 +394,8 @@
media/Makefile
effects/Makefile
test/Makefile
+test/openeffectslib/Makefile
+test/openeffectslib/tm_bench/Makefile
test/openpluginlib/Makefile
test/openpluginlib/discovery/Makefile
test/openpluginlib/enumerate/Makefile
Modified: lib/openlibraries/test/Makefile.am
===================================================================
--- lib/openlibraries/test/Makefile.am 2007-04-21 16:19:18 UTC (rev 87)
+++ lib/openlibraries/test/Makefile.am 2007-04-21 16:26:49 UTC (rev 88)
@@ -4,7 +4,8 @@
#
SUBDIRS = \
- openpluginlib \
+ openeffectslib \
+ openpluginlib \
openimagelib \
openmedialib \
openobjectlib \
Added: lib/openlibraries/test/openeffectslib/tm_bench/Makefile.am
===================================================================
--- lib/openlibraries/test/openeffectslib/tm_bench/Makefile.am (rev 0)
+++ lib/openlibraries/test/openeffectslib/tm_bench/Makefile.am 2007-04-21 16:26:49 UTC (rev 88)
@@ -0,0 +1,24 @@
+
+#
+#
+#
+
+check_PROGRAMS = tm_bench
+
+tm_bench_SOURCES = \
+ tm_bench.cpp
+
+tm_bench_CXXFLAGS = \
+ $(OLIB_CXXFLAGS) \
+ $(BOOST_INCLUDE_PATH)
+
+tm_bench_LDFLAGS = \
+ $(OLIB_LDFLAGS) \
+ $(BOOST_LIB_PATH) \
+ $(BOOST_LIB_RPATH)
+
+tm_bench_LDADD = \
+ $(BOOST_FILESYSTEM_LIBS) \
+ $(top_builddir)/src/openpluginlib/pl/libopenpluginlib_pl.la \
+ $(top_builddir)/src/openimagelib/il/libopenimagelib_il.la
+
Property changes on: lib/openlibraries/test/openeffectslib/tm_bench/Makefile.am
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|