Mercurial > hg > orthanc-stone
comparison Framework/Widgets/LayeredSceneWidget.cpp @ 61:ca644004d2ee wasm
MAJOR - removal of Start/Stop and observers in IWidget
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 10 May 2017 17:55:13 +0200 |
parents | c2dc924f1a63 |
children | f5f54ed8d307 |
comparison
equal
deleted
inserted
replaced
60:288c948199e5 | 61:ca644004d2ee |
---|---|
393 | 393 |
394 | 394 |
395 bool LayeredSceneWidget::RenderScene(CairoContext& context, | 395 bool LayeredSceneWidget::RenderScene(CairoContext& context, |
396 const ViewportGeometry& view) | 396 const ViewportGeometry& view) |
397 { | 397 { |
398 assert(IsStarted()); | |
399 return renderers_->RenderScene(context, view); | 398 return renderers_->RenderScene(context, view); |
400 } | 399 } |
401 | 400 |
402 | 401 |
403 LayeredSceneWidget::LayeredSceneWidget() | 402 LayeredSceneWidget::LayeredSceneWidget() |
488 | 487 |
489 | 488 |
490 ILayerRendererFactory& LayeredSceneWidget::AddLayer(size_t& layerIndex, | 489 ILayerRendererFactory& LayeredSceneWidget::AddLayer(size_t& layerIndex, |
491 ILayerRendererFactory* factory) | 490 ILayerRendererFactory* factory) |
492 { | 491 { |
493 if (IsStarted()) | |
494 { | |
495 // Start() has already been invoked | |
496 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); | |
497 } | |
498 | |
499 layerIndex = layers_.size(); | 492 layerIndex = layers_.size(); |
500 layers_.push_back(new Layer(factory, *pendingLayers_, layers_.size())); | 493 layers_.push_back(new Layer(factory, *pendingLayers_, layers_.size())); |
501 | 494 |
502 return *factory; | 495 return *factory; |
503 } | 496 } |
584 pendingLayers_->InvalidateAllLayers(); | 577 pendingLayers_->InvalidateAllLayers(); |
585 //NotifyChange(); // TODO Understand why this makes the SDL engine not update the display subsequently | 578 //NotifyChange(); // TODO Understand why this makes the SDL engine not update the display subsequently |
586 } | 579 } |
587 | 580 |
588 | 581 |
582 #if 0 | |
589 void LayeredSceneWidget::Start() | 583 void LayeredSceneWidget::Start() |
590 { | 584 { |
591 if (IsStarted()) | |
592 { | |
593 // Start() has already been invoked | |
594 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); | |
595 } | |
596 | |
597 for (size_t i = 0; i < layers_.size(); i++) | 585 for (size_t i = 0; i < layers_.size(); i++) |
598 { | 586 { |
599 layers_[i]->Start(); | 587 layers_[i]->Start(); |
600 } | 588 } |
601 | 589 |
608 } | 596 } |
609 | 597 |
610 | 598 |
611 void LayeredSceneWidget::Stop() | 599 void LayeredSceneWidget::Stop() |
612 { | 600 { |
613 if (!IsStarted()) | |
614 { | |
615 // Stop() has already been invoked | |
616 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); | |
617 } | |
618 | |
619 pendingLayers_->Stop(); | 601 pendingLayers_->Stop(); |
620 WorldSceneWidget::Stop(); | |
621 | 602 |
622 renderers_.reset(NULL); | 603 renderers_.reset(NULL); |
623 pendingRenderers_.reset(NULL); | 604 pendingRenderers_.reset(NULL); |
624 | 605 |
625 for (size_t i = 0; i < layers_.size(); i++) | 606 for (size_t i = 0; i < layers_.size(); i++) |
626 { | 607 { |
627 layers_[i]->Stop(); | 608 layers_[i]->Stop(); |
628 } | 609 } |
629 } | 610 } |
611 #endif | |
630 } | 612 } |