GUI: use ClipRect instead of clamp in sample edit
This commit is contained in:
parent
591cd633d7
commit
1dc05f0777
|
@ -1367,6 +1367,7 @@ void FurnaceGUI::drawSampleEdit() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dl->PushClipRect(rectMin,rectMax);
|
||||||
if (e->isPreviewingSample()) {
|
if (e->isPreviewingSample()) {
|
||||||
if (!statusBar2.empty()) {
|
if (!statusBar2.empty()) {
|
||||||
statusBar2+=" | ";
|
statusBar2+=" | ";
|
||||||
|
@ -1380,7 +1381,6 @@ void FurnaceGUI::drawSampleEdit() {
|
||||||
end^=start;
|
end^=start;
|
||||||
start^=end;
|
start^=end;
|
||||||
}
|
}
|
||||||
ImDrawList* dl=ImGui::GetWindowDrawList();
|
|
||||||
ImVec2 p1=rectMin;
|
ImVec2 p1=rectMin;
|
||||||
p1.x+=(e->getSamplePreviewPos()-samplePos)/sampleZoom;
|
p1.x+=(e->getSamplePreviewPos()-samplePos)/sampleZoom;
|
||||||
ImVec4 posColor=uiColors[GUI_COLOR_SAMPLE_NEEDLE];
|
ImVec4 posColor=uiColors[GUI_COLOR_SAMPLE_NEEDLE];
|
||||||
|
@ -1390,8 +1390,8 @@ void FurnaceGUI::drawSampleEdit() {
|
||||||
posTrail2.w=0.0f;
|
posTrail2.w=0.0f;
|
||||||
float trailDistance=(e->getSamplePreviewRate()/100.0f)/sampleZoom;
|
float trailDistance=(e->getSamplePreviewRate()/100.0f)/sampleZoom;
|
||||||
|
|
||||||
if (p1.x<rectMin.x) p1.x=rectMin.x;
|
//if (p1.x<rectMin.x) p1.x=rectMin.x;
|
||||||
if (p1.x>rectMax.x) p1.x=rectMax.x;
|
//if (p1.x>rectMax.x) p1.x=rectMax.x;
|
||||||
|
|
||||||
ImVec2 p2=p1;
|
ImVec2 p2=p1;
|
||||||
p2.y=rectMax.y;
|
p2.y=rectMax.y;
|
||||||
|
@ -1419,7 +1419,6 @@ void FurnaceGUI::drawSampleEdit() {
|
||||||
end^=start;
|
end^=start;
|
||||||
start^=end;
|
start^=end;
|
||||||
}
|
}
|
||||||
ImDrawList* dl=ImGui::GetWindowDrawList();
|
|
||||||
ImVec2 p1=rectMin;
|
ImVec2 p1=rectMin;
|
||||||
p1.x+=(chanPos.pos-samplePos)/sampleZoom;
|
p1.x+=(chanPos.pos-samplePos)/sampleZoom;
|
||||||
ImVec4 posColor=uiColors[GUI_COLOR_SAMPLE_NEEDLE_PLAYING];
|
ImVec4 posColor=uiColors[GUI_COLOR_SAMPLE_NEEDLE_PLAYING];
|
||||||
|
@ -1429,8 +1428,8 @@ void FurnaceGUI::drawSampleEdit() {
|
||||||
posTrail2.w=0.0f;
|
posTrail2.w=0.0f;
|
||||||
float trailDistance=((float)chanPos.freq/100.0f)/sampleZoom;
|
float trailDistance=((float)chanPos.freq/100.0f)/sampleZoom;
|
||||||
|
|
||||||
if (p1.x<rectMin.x) p1.x=rectMin.x;
|
//if (p1.x<rectMin.x) p1.x=rectMin.x;
|
||||||
if (p1.x>rectMax.x) p1.x=rectMax.x;
|
//if (p1.x>rectMax.x) p1.x=rectMax.x;
|
||||||
|
|
||||||
ImVec2 p2=p1;
|
ImVec2 p2=p1;
|
||||||
p2.y=rectMax.y;
|
p2.y=rectMax.y;
|
||||||
|
@ -1446,6 +1445,7 @@ void FurnaceGUI::drawSampleEdit() {
|
||||||
dl->AddLine(p1,p2,ImGui::GetColorU32(posColor));
|
dl->AddLine(p1,p2,ImGui::GetColorU32(posColor));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
dl->PopClipRect();
|
||||||
|
|
||||||
if (drawSelection) {
|
if (drawSelection) {
|
||||||
int start=sampleSelStart;
|
int start=sampleSelStart;
|
||||||
|
@ -1455,7 +1455,6 @@ void FurnaceGUI::drawSampleEdit() {
|
||||||
end^=start;
|
end^=start;
|
||||||
start^=end;
|
start^=end;
|
||||||
}
|
}
|
||||||
ImDrawList* dl=ImGui::GetWindowDrawList();
|
|
||||||
ImVec2 p1=rectMin;
|
ImVec2 p1=rectMin;
|
||||||
p1.x+=(start-samplePos)/sampleZoom;
|
p1.x+=(start-samplePos)/sampleZoom;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue