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

View File

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