feat: improve image viewer render performance

This commit is contained in:
kradchen
2025-05-12 10:11:03 +08:00
parent d19d064c18
commit 6b81839f15
2 changed files with 7 additions and 3 deletions

View File

@@ -466,7 +466,7 @@ void DICOMImageViewer::SetSlice(int slice) {
if (Fusion && FusionMapper) { if (Fusion && FusionMapper) {
FusionMapper->SetClippingPlanes(ImageMapper->GetClippingPlanes()); FusionMapper->SetClippingPlanes(ImageMapper->GetClippingPlanes());
} }
this->Render(); // this->Render();
UpdateTopLeftCornerInfo(); UpdateTopLeftCornerInfo();
if (InteractorStyle){ if (InteractorStyle){
double direction = (double)(slice - lastSliceNumber); double direction = (double)(slice - lastSliceNumber);
@@ -1186,7 +1186,6 @@ void DICOMImageViewer::UpdateCornerInfo(int index) {
cornerAnnotation->SetText(index, m_cornerInfo.ConstAnno[index].c_str()); cornerAnnotation->SetText(index, m_cornerInfo.ConstAnno[index].c_str());
} }
} }
this->Render();
} }
void DICOMImageViewer::UpdateCornerInfoAll() { void DICOMImageViewer::UpdateCornerInfoAll() {
@@ -1200,6 +1199,7 @@ void DICOMImageViewer::UpdateCornerInfoAll() {
UpdateCornerInfo(RIGHT_MIDDLE); UpdateCornerInfo(RIGHT_MIDDLE);
UpdateCornerInfo(LEFT_MIDDLE); UpdateCornerInfo(LEFT_MIDDLE);
UpdateCornerInfo(TOP_MIDDLE); UpdateCornerInfo(TOP_MIDDLE);
this->Render();
} else { } else {
cornerAnnotation->ClearAllTexts(); cornerAnnotation->ClearAllTexts();
this->Render(); this->Render();

View File

@@ -254,9 +254,11 @@ void DicomImageView::fusionWindowChanged(double level, double width) {
} }
void DicomImageView::imageTransformed() { void DicomImageView::imageTransformed() {
if (hasSeries()){
mImageViewer->UpdateOrientationInfo(); mImageViewer->UpdateOrientationInfo();
mImageViewer->Render(); mImageViewer->Render();
} }
}
void DicomImageView::clicked() { void DicomImageView::clicked() {
emit onViewClick(this); emit onViewClick(this);
@@ -430,6 +432,7 @@ void DicomImageView::clearFusionContext() {
//Callbacks------------------------------------------------------------------------------------ //Callbacks------------------------------------------------------------------------------------
void DicomImageView::windowLevelHandle() { void DicomImageView::windowLevelHandle() {
mImageViewer->UpdateCornerInfo(BOTTOM_RIGHT); mImageViewer->UpdateCornerInfo(BOTTOM_RIGHT);
mImageViewer->Render();
emit onFusionWindowChange(mImageViewer->GetColorLevel(), mImageViewer->GetColorWindow()); emit onFusionWindowChange(mImageViewer->GetColorLevel(), mImageViewer->GetColorWindow());
} }
@@ -490,7 +493,6 @@ void DicomImageView::render() {
if (hasSeries()) { if (hasSeries()) {
mImageViewer->Render(); mImageViewer->Render();
} }
} }
int DicomImageView::getReconPlane() { int DicomImageView::getReconPlane() {
@@ -576,6 +578,7 @@ void DicomImageView::setWindowLevel(double level, double width) {
//You have to call updateConerInfo manually //You have to call updateConerInfo manually
//only mouse event can rely on callback //only mouse event can rely on callback
mImageViewer->UpdateCornerInfo(BOTTOM_RIGHT); mImageViewer->UpdateCornerInfo(BOTTOM_RIGHT);
mImageViewer->Render();
emit onFusionWindowChange(level, width); emit onFusionWindowChange(level, width);
} }
@@ -677,6 +680,7 @@ void DicomImageView::updateCornerInfoAll() {
void DicomImageView::updateCornerInfoPrivacy() { void DicomImageView::updateCornerInfoPrivacy() {
if (hasSeries()) { if (hasSeries()) {
mImageViewer->UpdateCornerInfo(TOP_RIGHT); mImageViewer->UpdateCornerInfo(TOP_RIGHT);
mImageViewer->Render();
} }
} }