mirror of https://github.com/odrling/Aegisub
Speed up grid painting with many unique effects/actors a bit
This commit is contained in:
parent
79fb5cb3fe
commit
8c1b20e651
|
@ -599,12 +599,14 @@ void BaseGrid::SetColumnWidths() {
|
|||
int x = 0;
|
||||
|
||||
WidthHelper helper{dc, std::unordered_map<boost::flyweight<std::string>, int>{}};
|
||||
helper.widths.reserve(prev_unique_string_widths);
|
||||
for (auto const& column : columns) {
|
||||
column->UpdateWidth(context, helper);
|
||||
if (column->Width() && column->RefreshOnTextChange())
|
||||
text_refresh_rects.emplace_back(x, 0, column->Width(), h);
|
||||
x += column->Width();
|
||||
}
|
||||
prev_unique_string_widths = helper.widths.size();
|
||||
}
|
||||
|
||||
AssDialogue *BaseGrid::GetDialogue(int n) const {
|
||||
|
|
|
@ -57,6 +57,8 @@ class BaseGrid final : public wxWindow {
|
|||
|
||||
int active_row = -1;
|
||||
|
||||
size_t prev_unique_string_widths = 0;
|
||||
|
||||
/// Rows which are visible on the current video frame
|
||||
std::vector<int> visible_rows;
|
||||
|
||||
|
|
Loading…
Reference in New Issue