渲染修正

This commit is contained in:
codeboss 2025-10-14 01:46:17 +08:00
parent 25f73007f8
commit bc6acbbcc9
2 changed files with 10 additions and 6 deletions

View File

@ -12,7 +12,7 @@ int main(int argc, char* argv[])
MapPresent p;
p.show();
p.zoomTo(0);
p.zoomTo(0.5);
//QObject::connect(&p, &MapPresent::mouseIn, [=]() {
// qDebug() << "Mouse Enter";

View File

@ -127,20 +127,24 @@ void MapPresent::paintEvent(QPaintEvent* ev)
for (auto unit_idx : _updated_index_list.mid(0, update_batch_count)) {
pic_painter.save();
// 原点偏移,绘制缩放
auto opt = _visible_units[unit_idx];
auto rect = opt.outline;
pic_painter.translate(rect.topLeft());
rect.moveTo(0, 0);
pic_painter.translate(opt.outline.topLeft());
pic_painter.scale(_scale_times, _scale_times);
// PresentOption重组ClipPath设置
auto rect = QRectF(0, 0, _primitive_region_len, _primitive_region_len);
opt.outline = rect;
auto clip_path = BasicUnitDelegate::clipPathGet(rect);
pic_painter.setClipPath(clip_path);
opt.outline = rect;
int unit_type = 0;
if (_map_data_model) {
unit_type = _map_data_model->mapData(MapDataModel::DataType::UnitType, unit_idx).toInt();
}
if (!_type_present_delegate.contains(unit_type)) {
unit_type = 0;
}
UnitPresentDelegate& t = *_type_present_delegate[unit_type];
t.paint(&pic_painter, opt);