ShaderManager::ShaderManager(QOpenGLContext *ctx) :
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
    QObject(ctx)
#else
    QObject(0)
#endif
  , m_ctx(ctx)
{
}

ShaderManager::~ShaderManager()
{
    invalidated();
}

VideoShader* ShaderManager::prepareMaterial(VideoMaterial *material)
{
    const char* type = material->type();
    VideoShader *shader = shader_cache.value(type, 0);
    if (shader)
        return shader;
    qDebug("[ShaderManager] cache a new shader material type: %s", type);
    shader = material->createShader();
    shader->initialize();
    shader_cache[type] = shader;
    return shader;
}

void ShaderManager::invalidated()
{
    // TODO: thread safe required?
    qDeleteAll(shader_cache.values());
    shader_cache.clear();
}
Beispiel #2
0
    // When should we next call retransmit()
    Time next_retransmit() const
    {
      if (!invalidated())
	return next_retransmit_;
      else
	return Time::infinite();
    }
Beispiel #3
0
const T & Data<T>::operator=(const T & value)
{
	m_data = value;
	invalidated();

	return value;
}
Beispiel #4
0
void
RadialMap::Widget::invalidate(const bool b)
{
    if (isValid()) {
        //**** have to check that only way to invalidate is this function frankly
        //**** otherwise you may get bugs..

        //disable mouse tracking
        setMouseTracking(false);

        QUrl urlInv = url();

        //ensure this class won't think we have a map still
        m_tree  = 0;
        m_focus = 0;

        delete m_rootSegment;
        m_rootSegment = 0;

        //FIXME move this disablement thing no?
        //      it is confusing in other areas, like the whole createFromCache() thing
        m_map.invalidate(b);   //b signifies whether the pixmap is made to look disabled or not
        if (b)
            update();

        //tell rest of Filelight
        emit invalidated(urlInv);
    }
}
Beispiel #5
0
void FileStorage::handleFSError()
{
    cache.clear();
    _cacheValid = false;
    emit storageErorr(tr("File system error for storage \"%1\". Please check your settings.").arg(name()));
    emit invalidated();
}
Beispiel #6
0
void KoView::partSelectEvent( KParts::PartSelectEvent *event )
{
  if ( event->part() != (KParts::Part *)koDocument() )
  {
    assert( event->part()->inherits( "KoDocument" ) );

    KoDocumentChild *child = koDocument()->child( (KoDocument *)event->part() );

    if ( child && event->selected() )
    {
      QRegion r = child->frameRegion( matrix() );
      r.translate( - canvasXOffset(), - canvasYOffset() );
      emit regionInvalidated( r, true );
      emit childSelected( child );
    }
    else if ( child )
    {
      QRegion r = child->frameRegion( matrix() );
      r.translate( - canvasXOffset(), - canvasYOffset() );
      emit regionInvalidated( r, true );
      emit childUnselected( child );
    }
    else
      emit invalidated();
  }
  else
    emit selected( event->selected() );
}
Beispiel #7
0
    // Write any pending data to network and update retransmit
    // timer.  Should be called as a final step after one or more
    // net_recv, app_send, raw_send, or start_handshake calls.
    void flush()
    {
      if (!invalidated() && !up_stack_reentry_level)
	{
	  down_stack_raw();
	  down_stack_app();
	  update_retransmit();
	}
    }
Beispiel #8
0
    // Start SSL handshake on underlying SSL connection object.
    void start_handshake()
    {
      if (!invalidated())
	{
	  ssl_->start_handshake();
	  ssl_started_ = true;
	  up_sequenced();
	}
    }
Beispiel #9
0
void
Bitmap::add_invalidated_bounds(InvalidatedRanges& ranges, bool force)
{
    if (!force && !invalidated()) return;

    ranges.add(m_old_invalidated_ranges);

    SWFRect bounds;
    bounds.expand_to_transformed_rect(getWorldMatrix(*this), getBounds()); 
    ranges.add(bounds.getRange());

}
Beispiel #10
0
ProblemWidget::ProblemWidget(QWidget *parent) : QWidget(parent)
{
    createActions();
    createControls();

    updateControls();

    // global signals
    connect(Util::scene(), SIGNAL(invalidated()), this, SLOT(updateControls()));
    connect(Util::problem(), SIGNAL(fieldsChanged()), this, SLOT(updateControls()));

    setMinimumSize(sizeHint());
}
Beispiel #11
0
void CanvasTexture::del()
{
    if (!invalidated() && m_textureId) {
        if (m_quickItem) {
            m_context->quickItemToTextureMap().remove(m_quickItem);
            m_quickItem = 0;
            queueCommand(CanvasGlCommandQueue::internalClearQuickItemAsTexture, m_textureId);
        } else {
            queueCommand(CanvasGlCommandQueue::glDeleteTextures, m_textureId);
        }
    }
    m_textureId = 0;
}
Beispiel #12
0
void ApiTraceModel::setApiTrace(ApiTrace *trace)
{
    if (m_trace == trace)
        return;
    if (m_trace)
        disconnect(m_trace);
    m_trace = trace;
    connect(m_trace, SIGNAL(invalidated()),
            this, SLOT(invalidateFrames()));
    connect(m_trace, SIGNAL(framesInvalidated()),
            this, SLOT(invalidateFrames()));
    connect(m_trace, SIGNAL(framesAdded(int, int)),
            this, SLOT(appendFrames(int, int)));
}
Beispiel #13
0
void
Video::add_invalidated_bounds(InvalidatedRanges& ranges, bool force)
{
    if (!force && !invalidated()) return; // no need to redraw

    ranges.add(m_old_invalidated_ranges);

    assert(m_def);

    SWFRect bounds;
    bounds.expand_to_transformed_rect(getWorldMatrix(*this), m_def->bounds());

    ranges.add(bounds.getRange());
}
Beispiel #14
0
    // Send pending ACKs back to sender for packets already received
    void send_pending_acks()
    {
      if (!invalidated())
	{
	  while (!xmit_acks.empty())
	    {
	      ack_send_buf.frame_prepare(*frame_, Frame::WRITE_ACK_STANDALONE);

	      // encapsulate standalone ACK
	      generate_ack(ack_send_buf);

	      // transmit it
	      net_send(ack_send_buf, NET_SEND_ACK);
	    }
	}
    }
Beispiel #15
0
    // Send any pending retransmissions
    void retransmit()
    {
      if (!invalidated() && *now >= next_retransmit_)
	{
	  for (id_t i = rel_send.head_id(); i < rel_send.tail_id(); ++i)
	    {
	      typename ReliableSend::Message& m = rel_send.ref_by_id(i);
	      if (m.ready_retransmit(*now))
		{
		  net_send(m.packet, NET_SEND_RETRANSMIT);
		  m.reset_retransmit(*now);
		}
	    }
	  update_retransmit();
	}
    }
Beispiel #16
0
void ApiTrace::setFileName(const QString &name)
{
    if (m_fileName != name) {
        m_fileName = name;
        m_tempFileName = QString();

        m_frames.clear();
        m_errors.clear();
        m_editedCalls.clear();
        m_queuedErrors.clear();
        m_needsSaving = false;
        emit invalidated();

        emit loadTrace(m_fileName);
    }
}
Beispiel #17
0
void FileStorage::settingsApplied()
{
    FileStorageSettingsWidget *w = qobject_cast<FileStorageSettingsWidget *>(sender());
    QString p = w->path();
    if (p.isEmpty()) { /* just to be sure all native file dialogs work the same way */
        return;
    }
    QFileInfo fi(p);
    if (!fi.isDir() || !fi.isWritable()) {
        return;
    }
    notesDir = fi.absoluteFilePath();
    QSettings().setValue(QString("storage.%1.path").arg(systemName()), notesDir == findStorageDir()? "" : notesDir);
    cache.clear();
    _cacheValid = false;
    emit invalidated();
}
Beispiel #18
0
void ApiTraceModel::setApiTrace(ApiTrace *trace)
{
    if (m_trace == trace)
        return;
    if (m_trace)
        disconnect(m_trace);
    m_trace = trace;
    connect(m_trace, SIGNAL(invalidated()),
            this, SLOT(invalidateFrames()));
    connect(m_trace, SIGNAL(framesInvalidated()),
            this, SLOT(invalidateFrames()));
    connect(m_trace, SIGNAL(beginAddingFrames(int, int)),
            this, SLOT(beginAddingFrames(int, int)));
    connect(m_trace, SIGNAL(endAddingFrames()),
            this, SLOT(endAddingFrames()));
    connect(m_trace, SIGNAL(changed(ApiTraceCall*)),
            this, SLOT(callChanged(ApiTraceCall*)));
}
Beispiel #19
0
void QSGContext::invalidate()
{
    Q_D(QSGContext);
    d->textureMutex.lock();
    qDeleteAll(d->textures.values());
    d->textures.clear();
    d->textureMutex.unlock();
    qDeleteAll(d->materials.values());
    d->materials.clear();
    delete d->depthStencilBufferManager;
    d->depthStencilBufferManager = 0;
    delete d->distanceFieldCacheManager;
    d->distanceFieldCacheManager = 0;

    d->gl = 0;

    emit invalidated();
}
Beispiel #20
0
void KoView::partActivateEvent( KParts::PartActivateEvent *event )
{
  if ( event->part() != (KParts::Part *)koDocument() )
  {
    assert( event->part()->inherits( "KoDocument" ) );

    KoDocumentChild *child = koDocument()->child( (KoDocument *)event->part() );
    if ( child && event->activated() )
    {
      if ( child->isRectangle() && !child->isTransparent() )
      {
        KoViewChild *viewChild = new KoViewChild( child, this );
        d->m_children.append( viewChild );

        QApplication::setOverrideCursor(waitCursor);
        // This is the long operation (due to toolbar layout stuff)
        d->m_manager->setActivePart( child->document(), viewChild->frame()->view() );
        QApplication::restoreOverrideCursor();

        // Now we can move the frame to the right place
        viewChild->setInitialFrameGeometry();
      }
      else
      {
        emit regionInvalidated( child->frameRegion( matrix() ), true );
      }
      emit childActivated( child );
    }
    else if ( child )
    {
      emit regionInvalidated( child->frameRegion( matrix() ), true );
      emit childDeactivated( child );
    }
    else
      emit invalidated();
  }
  else
    emit activated( event->activated() );
}
Beispiel #21
0
Agros2D::Agros2D()
{
    clearAgros2DCache();

    m_problem = new Problem();
    m_scene = new Scene();

    QObject::connect(m_problem, SIGNAL(fieldsChanged()), m_scene, SLOT(doFieldsChanged()));
    QObject::connect(m_scene, SIGNAL(invalidated()), m_problem, SLOT(clearSolution()));

    initLists();

    m_solutionStore = new SolutionStore();

    m_configComputer = new Config();
    m_configComputer->load();

    // log
    m_log = new Log();

    // memory monitor
    m_memoryMonitor = new MemoryMonitor();
}
QSGDefaultLayer::~QSGDefaultLayer()
{
    invalidated();
}
void TreeRepository::invalidate()
{
//	CX_LOG_CHANNEL_DEBUG("CA") << "TreeRepository::invalidate()";
	mInvalid = true;
	emit invalidated();
}
Beispiel #24
0
void Camera::changed()
{
    invalidated();
}
SSGQuickLayer::~SSGQuickLayer()
{
    invalidated();
}
Beispiel #26
0
void Data<T>::setData(const T & value)
{
    m_data = value;
    invalidated();
}
Beispiel #27
0
    // Incoming ciphertext packet arriving from network,
    // we will take ownership of pkt.
    void net_recv(PACKET& pkt)
    {
      if (!invalidated())
	up_stack(pkt);
    }
Beispiel #28
0
    // Outgoing application-level cleartext packet ready to send
    // (will be encrypted via SSL), we will take ownership
    // of buf.
    void app_send(BufferPtr& buf)
    {
      if (!invalidated())
	app_write_queue.push_back(buf);
    }
Beispiel #29
0
    // Outgoing raw packet ready to send (will NOT be encrypted
    // via SSL, but will still be encapsulated, sequentialized,
    // and tracked via reliability layer).
    void raw_send(const PACKET& pkt)
    {
      if (!invalidated())
	raw_write_queue.push_back(pkt);
    }
Beispiel #30
0
void DBusProxy::emitInvalidated()
{
    Q_ASSERT(!isValid());

    emit invalidated(this, mPriv->invalidationReason, mPriv->invalidationMessage);
}