--Code changes

-Remove the unused field m_RotCenterY from Ember.
 -Make a #define for fma() testing, but seems to make no difference.
 -Optimize some of the OpenCL iteration kernel generation code.
 -Possible fix to an OpenCL compilation bug when using blur curve on AMD on Mac.
This commit is contained in:
Person
2020-03-15 00:40:57 -07:00
parent 6fc5082fd4
commit f170811e09
11 changed files with 160 additions and 76 deletions

View File

@ -369,7 +369,7 @@ template <typename T> void FractoriumEmberController<T>::CenterYChanged(double d
{
UpdateAll([&](Ember<T>& ember, bool isMain)
{
ember.m_CenterY = ember.m_RotCenterY = d;
ember.m_CenterY = d;
}, true, eProcessAction::FULL_RENDER, m_Fractorium->ApplyAll());
}
void Fractorium::OnCenterYChanged(double d) { m_Controller->CenterYChanged(d); }
@ -772,7 +772,7 @@ void FractoriumEmberController<T>::SetCenter(double x, double y)
UpdateAll([&](Ember<T>& ember, bool isMain)
{
ember.m_CenterX = x;
ember.m_CenterY = ember.m_RotCenterY = y;
ember.m_CenterY = y;
}, true, eProcessAction::FULL_RENDER, m_Fractorium->ApplyAll());
m_Fractorium->m_CenterXSpin->SetValueStealth(x);//Don't trigger a redraw twice.
m_Fractorium->m_CenterYSpin->SetValueStealth(y);
@ -873,7 +873,7 @@ void FractoriumEmberController<T>::ParamsToEmberPrivate(Ember<U>& ember, bool im
ember.m_FinalRasW = m_Fractorium->m_WidthSpin->value();//Geometry.
ember.m_FinalRasH = m_Fractorium->m_HeightSpin->value();
ember.m_CenterX = m_Fractorium->m_CenterXSpin->value();
ember.m_CenterY = ember.m_RotCenterY = m_Fractorium->m_CenterYSpin->value();
ember.m_CenterY = m_Fractorium->m_CenterYSpin->value();
ember.m_PixelsPerUnit = m_Fractorium->m_ScaleSpin->value();
ember.m_Zoom = m_Fractorium->m_ZoomSpin->value();
ember.m_Rotate = m_Fractorium->m_RotateSpin->value();

View File

@ -891,7 +891,7 @@ void GLEmberController<T>::MousePress(QMouseEvent* e)
m_DragState = eDragState::DragNone;
}
}
else if (e->button() == Qt::MiddleButton || (e->button() == Qt::RightButton && e->modifiers() & Qt::ShiftModifier))//Middle button or right button with shift key, do whole image translation.
else if (e->button() == Qt::MiddleButton || (e->button() == Qt::RightButton && e->modifiers() & Qt::ShiftModifier))//Middle button or right button with shift key, do whole image translation.
{
m_CenterDownX = ember->m_CenterX;//Capture where the center of the image is because this value will change when panning.
m_CenterDownY = ember->m_CenterY;
@ -1043,7 +1043,7 @@ void GLEmberController<T>::MouseMove(QMouseEvent* e)
v2T v1(x, y);
v2T v2 = rotMat.TransformVector(v1);
ember->m_CenterX = v2.x;
ember->m_CenterY = ember->m_RotCenterY = v2.y;
ember->m_CenterY = v2.y;
m_FractoriumEmberController->SetCenter(ember->m_CenterX, ember->m_CenterY);//Will restart the rendering process.
}
else if (m_DragState == eDragState::DragRotateScale)//Rotating and scaling the whole image.