mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-19 22:48:18 +00:00
Fix envelope editor scaling
This commit is contained in:
parent
fe74ff4c0c
commit
09c2e8475f
|
@ -3421,7 +3421,7 @@ void CEditor::RenderEnvelopeEditor(CUIRect View)
|
||||||
{
|
{
|
||||||
// Out-Tangent
|
// Out-Tangent
|
||||||
float x_out = px + (pEnvelope->m_lPoints[i].m_aOutTangentdx[c]/1000.0f/EndTime);
|
float x_out = px + (pEnvelope->m_lPoints[i].m_aOutTangentdx[c]/1000.0f/EndTime);
|
||||||
float y_out = py + (fx2f(pEnvelope->m_lPoints[i].m_aOutTangentdy[c])-Bottom)/(Top-Bottom);
|
float y_out = py + fx2f(pEnvelope->m_lPoints[i].m_aOutTangentdy[c])/(Top-Bottom);
|
||||||
|
|
||||||
if (m_SelectedQuadEnvelope == m_SelectedEnvelope && m_SelectedEnvelopePoint == i)
|
if (m_SelectedQuadEnvelope == m_SelectedEnvelope && m_SelectedEnvelopePoint == i)
|
||||||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 0.4f);
|
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 0.4f);
|
||||||
|
@ -3436,7 +3436,7 @@ void CEditor::RenderEnvelopeEditor(CUIRect View)
|
||||||
{
|
{
|
||||||
// In-Tangent
|
// In-Tangent
|
||||||
float x_in = px + (pEnvelope->m_lPoints[i].m_aInTangentdx[c]/1000.0f/EndTime);
|
float x_in = px + (pEnvelope->m_lPoints[i].m_aInTangentdx[c]/1000.0f/EndTime);
|
||||||
float y_in = py + (fx2f(pEnvelope->m_lPoints[i].m_aInTangentdy[c])-Bottom)/(Top-Bottom);
|
float y_in = py + fx2f(pEnvelope->m_lPoints[i].m_aInTangentdy[c])/(Top-Bottom);
|
||||||
|
|
||||||
if (m_SelectedQuadEnvelope == m_SelectedEnvelope && m_SelectedEnvelopePoint == i)
|
if (m_SelectedQuadEnvelope == m_SelectedEnvelope && m_SelectedEnvelopePoint == i)
|
||||||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 0.4f);
|
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 0.4f);
|
||||||
|
@ -3670,7 +3670,7 @@ void CEditor::RenderEnvelopeEditor(CUIRect View)
|
||||||
{
|
{
|
||||||
// Out-Tangent handle
|
// Out-Tangent handle
|
||||||
float x_out = px + (pEnvelope->m_lPoints[i].m_aOutTangentdx[c]/1000.0f/EndTime);
|
float x_out = px + (pEnvelope->m_lPoints[i].m_aOutTangentdx[c]/1000.0f/EndTime);
|
||||||
float y_out = py + (fx2f(pEnvelope->m_lPoints[i].m_aOutTangentdy[c])-Bottom)/(Top-Bottom);
|
float y_out = py + fx2f(pEnvelope->m_lPoints[i].m_aOutTangentdy[c])/(Top-Bottom);
|
||||||
|
|
||||||
CUIRect Final;
|
CUIRect Final;
|
||||||
Final.x = View.x + x_out*View.w;
|
Final.x = View.x + x_out*View.w;
|
||||||
|
@ -3751,7 +3751,7 @@ void CEditor::RenderEnvelopeEditor(CUIRect View)
|
||||||
{
|
{
|
||||||
// In-Tangent handle
|
// In-Tangent handle
|
||||||
float x_in = px + (pEnvelope->m_lPoints[i].m_aInTangentdx[c]/1000.0f/EndTime);
|
float x_in = px + (pEnvelope->m_lPoints[i].m_aInTangentdx[c]/1000.0f/EndTime);
|
||||||
float y_in = py + (fx2f(pEnvelope->m_lPoints[i].m_aInTangentdy[c])-Bottom)/(Top-Bottom);
|
float y_in = py + fx2f(pEnvelope->m_lPoints[i].m_aInTangentdy[c])/(Top-Bottom);
|
||||||
|
|
||||||
CUIRect Final;
|
CUIRect Final;
|
||||||
Final.x = View.x + x_in*View.w;
|
Final.x = View.x + x_in*View.w;
|
||||||
|
@ -3821,7 +3821,7 @@ void CEditor::RenderEnvelopeEditor(CUIRect View)
|
||||||
if (m_SelectedQuadEnvelope == m_SelectedEnvelope && m_SelectedEnvelopePoint == i)
|
if (m_SelectedQuadEnvelope == m_SelectedEnvelope && m_SelectedEnvelopePoint == i)
|
||||||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 0.5f);
|
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 0.5f);
|
||||||
else
|
else
|
||||||
Graphics()->SetColor(aColors[c].r, aColors[c].g, aColors[c].b, 0.5f);
|
Graphics()->SetColor(aColors[c].r*ColorMod, aColors[c].g*ColorMod, aColors[c].b*ColorMod, 0.5f);
|
||||||
|
|
||||||
// draw triangle
|
// draw triangle
|
||||||
IGraphics::CFreeformItem FreeformItem(Final.x+Final.w/2, Final.y, Final.x+Final.w/2, Final.y,
|
IGraphics::CFreeformItem FreeformItem(Final.x+Final.w/2, Final.y, Final.x+Final.w/2, Final.y,
|
||||||
|
|
|
@ -79,10 +79,29 @@ public:
|
||||||
{
|
{
|
||||||
if(ChannelMask&(1<<c))
|
if(ChannelMask&(1<<c))
|
||||||
{
|
{
|
||||||
|
{
|
||||||
|
// value handle
|
||||||
float v = fx2f(m_lPoints[i].m_aValues[c]);
|
float v = fx2f(m_lPoints[i].m_aValues[c]);
|
||||||
if(v > m_Top) m_Top = v;
|
if(v > m_Top) m_Top = v;
|
||||||
if(v < m_Bottom) m_Bottom = v;
|
if(v < m_Bottom) m_Bottom = v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(m_lPoints[i].m_Curvetype == CURVETYPE_BEZIER)
|
||||||
|
{
|
||||||
|
// out-tangent handle
|
||||||
|
float v = fx2f(m_lPoints[i].m_aValues[c]+m_lPoints[i].m_aOutTangentdy[c]);
|
||||||
|
if(v > m_Top) m_Top = v;
|
||||||
|
if(v < m_Bottom) m_Bottom = v;
|
||||||
|
}
|
||||||
|
|
||||||
|
if((i>0) && m_lPoints[i-1].m_Curvetype == CURVETYPE_BEZIER)
|
||||||
|
{
|
||||||
|
// in-tangent handle
|
||||||
|
float v = fx2f(m_lPoints[i].m_aValues[c]+m_lPoints[i].m_aInTangentdy[c]);
|
||||||
|
if(v > m_Top) m_Top = v;
|
||||||
|
if(v < m_Bottom) m_Bottom = v;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue