예제 #1
0
OCIO::ConstContextRcPtr manager_t::get_context( const context_t *ctx) const
{
	OCIO::ConstConfigRcPtr cfg = config();
	OCIO::ConstContextRcPtr context = cfg->getCurrentContext();

	if( !ctx)
		return context;

    OCIO::ContextRcPtr mutable_context;

	for( int i = 0; i < ctx->size(); ++i)
	{
		std::pair<std::string, std::string> ctx_pair = (*ctx)[i];

	    if( !ctx_pair.first.empty())
		{
	        if( !mutable_context)
				mutable_context = context->createEditableCopy();

			mutable_context->setStringVar( ctx_pair.first.c_str(), ctx_pair.second.c_str());
	    }
	}

    if( mutable_context)
		return mutable_context;

	return context;
}
예제 #2
0
OCIO::ConstContextRcPtr ocio_colorspace_node_t::get_local_context()
{
	OCIO::ConstConfigRcPtr config = app().ocio_manager().config();
	OCIO::ConstContextRcPtr context = config->getCurrentContext();
	
    OCIO::ContextRcPtr mutable_context;
	
	std::string key = get_value<std::string>( param( "key1"));
	
    if( !key.empty())
    {
        if( !mutable_context)
			mutable_context = context->createEditableCopy();

		std::string value = get_value<std::string>( param( "value1"));
        mutable_context->setStringVar( key.c_str(), value.c_str());		
    }
	
	key = get_value<std::string>( param( "key2"));
	
    if( !key.empty())
	{
		if( !mutable_context)
			mutable_context = context->createEditableCopy();
		
		std::string value = get_value<std::string>( param( "value2"));
        mutable_context->setStringVar( key.c_str(), value.c_str());		
    }

	key = get_value<std::string>( param( "key3"));
	
    if( !key.empty())
    {
		if( !mutable_context)
			mutable_context = context->createEditableCopy();
		
		std::string value = get_value<std::string>( param( "value3"));
        mutable_context->setStringVar( key.c_str(), value.c_str());		
    }
	
	key = get_value<std::string>( param( "key4"));
	
    if( !key.empty())		
    {
        if(!mutable_context)
			mutable_context = context->createEditableCopy();

		std::string value = get_value<std::string>( param( "value4"));
        mutable_context->setStringVar( key.c_str(), value.c_str());
    }
	
    if( mutable_context)
		context = mutable_context;
	
	return context;
}
예제 #3
0
파일: flipbook.cpp 프로젝트: kmac5/ramen
OCIO::ConstContextRcPtr flipbook_t::get_local_context()
{
    OCIO::ConstConfigRcPtr config = app().ocio_manager().config();
    OCIO::ConstContextRcPtr context = config->getCurrentContext();

    OCIO::ContextRcPtr mutable_context;

    std::pair<std::string, std::string> ctx_pair;

    ctx_pair = app().document().composition().ocio_context_pairs()[0];

    if( !ctx_pair.first.empty())
    {
        if( !mutable_context)
            mutable_context = context->createEditableCopy();

        mutable_context->setStringVar( ctx_pair.first.c_str(), ctx_pair.second.c_str());
    }

    ctx_pair = app().document().composition().ocio_context_pairs()[1];

    if( !ctx_pair.first.empty())
    {
        if( !mutable_context)
            mutable_context = context->createEditableCopy();

        mutable_context->setStringVar( ctx_pair.first.c_str(), ctx_pair.second.c_str());
    }

    ctx_pair = app().document().composition().ocio_context_pairs()[2];

    if( !ctx_pair.first.empty())
    {
        if( !mutable_context)
            mutable_context = context->createEditableCopy();

        mutable_context->setStringVar( ctx_pair.first.c_str(), ctx_pair.second.c_str());
    }

    ctx_pair = app().document().composition().ocio_context_pairs()[3];

    if( !ctx_pair.first.empty())
    {
        if(!mutable_context)
            mutable_context = context->createEditableCopy();

        mutable_context->setStringVar( ctx_pair.first.c_str(), ctx_pair.second.c_str());
    }

    if( mutable_context)
        context = mutable_context;

    return context;
}