Exemplo n.º 1
0
bool STexture::openVideo(QString s, double fps, bool loop, int start, int stop)
{
    clearCallBacks();
    setPlaying(false);
    setFPS(fps);
    setLooping(loop);

    videoFileName = s;

    bool ok=false;
    for (physicalFirstFrame=0; physicalFirstFrame < (unsigned)max(20,max(start,stop)); physicalFirstFrame++)
    {
        QString fn = frameFilename(physicalFirstFrame);
        QFileInfo info(fn);
        if (info.isFile() && info.isReadable()) {
            ok=true;
            break;   
        }
    }
    if (!ok) {
        videoFileName.clear();
        return false;
    }
    unsigned in = physicalFirstFrame;
    unsigned out = 100000;
    while (out-in > 1) {
        int mid = in + ((out-in)/2);
        QString fn = frameFilename(mid);
        QFileInfo info(fn);
        if (info.isFile() && info.isReadable())
            in = mid;
        else
            out = mid;
    }
    physicalLastFrame=in;
    position=firstFrame=physicalFirstFrame;
    lastFrame=physicalLastFrame;

    if (start>=0) setFirstFrame(start);
    if (stop>=0) setLastFrame(stop);
    return true;
}
void KisRasterKeyframeChannel::saveKeyframe(KisKeyframeSP keyframe, QDomElement keyframeElement, const QString &layerFilename)
{
    int frameId = keyframe->value();

    QString filename = frameFilename(frameId);
    if (filename.isEmpty()) {
        filename = chooseFrameFilename(frameId, layerFilename);
    }
    keyframeElement.setAttribute("frame", filename);

    QPoint offset = m_d->paintDevice->framesInterface()->frameOffset(frameId);
    KisDomUtils::saveValue(&keyframeElement, "offset", offset);
}
Exemplo n.º 3
0
void STexture::bind()
{
    if (this==0) return;

    if (videoReady()) {
        QString s=frameFilename(updateCurrentFrame());
        loadDDS(s);
        //qDebug() << s << ": " << texture;
    } else if (currentTexName.size()>0) {
        loadDDS(currentTexName);
    }

    if (texture) {
        glEnable(GL_TEXTURE_2D);
        glBindTexture(GL_TEXTURE_2D, texture);
        glEnable(GL_BLEND);
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    } else {
        glDisable(GL_TEXTURE_2D);
    }
}