Улучшение
This commit is contained in:
@@ -117,7 +117,7 @@ pub fn getScaledImageSize(self: Canvas) ImageRect {
|
|||||||
/// `viewport` и `scroll_offset` ожидаются в *physical* пикселях (т.е. уже умноженные на windowNaturalScale).
|
/// `viewport` и `scroll_offset` ожидаются в *physical* пикселях (т.е. уже умноженные на windowNaturalScale).
|
||||||
///
|
///
|
||||||
/// После обновления (или если текстуры ещё нет) перерисовывает текстуру, чтобы она содержала только видимую часть.
|
/// После обновления (или если текстуры ещё нет) перерисовывает текстуру, чтобы она содержала только видимую часть.
|
||||||
pub fn updateVisibleImageRect(self: *Canvas, viewport: dvui.Rect, scroll_offset: dvui.Point) !bool {
|
pub fn updateVisibleImageRect(self: *Canvas, viewport: dvui.Rect, scroll_offset: dvui.Point) bool {
|
||||||
const next = computeVisibleImageRect(self.*, viewport, scroll_offset);
|
const next = computeVisibleImageRect(self.*, viewport, scroll_offset);
|
||||||
var changed = false;
|
var changed = false;
|
||||||
if (self._visible_rect) |vis| {
|
if (self._visible_rect) |vis| {
|
||||||
|
|||||||
@@ -49,11 +49,9 @@ fn drawCanvasContent(canvas: *Canvas, scroll: anytype) void {
|
|||||||
.y = scroll_current.y * natural_scale,
|
.y = scroll_current.y * natural_scale,
|
||||||
};
|
};
|
||||||
|
|
||||||
const changed = canvas.updateVisibleImageRect(viewport_px, scroll_px) catch |err| {
|
const changed = canvas.updateVisibleImageRect(viewport_px, scroll_px);
|
||||||
std.debug.print("updateVisibleImageRect error: {}\n", .{err});
|
if (changed)
|
||||||
return false;
|
canvas.requestRedraw();
|
||||||
};
|
|
||||||
if (changed) canvas.requestRedraw();
|
|
||||||
canvas.processPendingRedraw() catch |err| {
|
canvas.processPendingRedraw() catch |err| {
|
||||||
std.debug.print("processPendingRedraw error: {}\n", .{err});
|
std.debug.print("processPendingRedraw error: {}\n", .{err});
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user