Пример #1
0
bool
OutputEffectInstance::ifInfiniteclipRectToProjectDefault(RectD* rod) const
{
    if ( !getApp()->getProject() ) {
        return false;
    }
    /*If the rod is infinite clip it to the project's default*/
    Format projectDefault;
    getRenderFormat(&projectDefault);
    // BE CAREFUL:
    // std::numeric_limits<int>::infinity() does not exist (check std::numeric_limits<int>::has_infinity)
    // an int can not be equal to (or compared to) std::numeric_limits<double>::infinity()
    bool isRodProjectFormat = false;
    if (rod->left() <= kOfxFlagInfiniteMin) {
        rod->set_left( projectDefault.left() );
        isRodProjectFormat = true;
    }
    if (rod->bottom() <= kOfxFlagInfiniteMin) {
        rod->set_bottom( projectDefault.bottom() );
        isRodProjectFormat = true;
    }
    if (rod->right() >= kOfxFlagInfiniteMax) {
        rod->set_right( projectDefault.right() );
        isRodProjectFormat = true;
    }
    if (rod->top() >= kOfxFlagInfiniteMax) {
        rod->set_top( projectDefault.top() );
        isRodProjectFormat = true;
    }

    return isRodProjectFormat;
}
bool TigerAutoPolygonSprite::initWithFile(const std::string &file, bool usePolygon)
{
    if (usePolygon)
    {
        auto image = new Image();
        image->initWithImageFile(file);
        
        if (image->getRenderFormat() == Texture2D::PixelFormat::RGBA8888)
        {
            auto polygon_info = AutoPolygon::generatePolygon(file);
            
            if (!Sprite::initWithPolygon(polygon_info))
            {
                return false;
            }
        }
        else
        {
            if (!Sprite::initWithFile(file))
            {
                return false;
            }
        }
        
        CC_SAFE_DELETE(image);
    }
    else
    {
        if (!Sprite::initWithFile(file))
        {
            return false;
        }
    }
    
    return true;
}