gpt4 book ai didi

坐标传递给 XDrawImageString()

转载 作者:行者123 更新时间:2023-11-30 17:32:10 25 4
gpt4 key购买 nike

我最近在我正在开发的一个程序中发现了一些奇怪的行为。

该程序有一个 X11 状态窗口,其中使用写入大量文本

 XDrawImageString(d, w, DefaultGC(d, s), x, y, str_to_draw, strlen(str_to_draw));

在一个循环中。没有检查 y 是否离开窗口底部,我一直认为从窗口边缘绘制的东西会被简单地忽略,但是我发现如果尝试将东西绘制到距窗口底部太远的位置窗口,它不会被忽略,而是可以环绕并再次在窗口顶部开始绘制。

可以通过在循环开始时调用 XGetGeometry() 并检查坐标是否超出窗口的尺寸来防止这种行为,更令人担忧的是看来这种环绕不仅会导致屏幕损坏,还会导致偶尔的核心转储。不完全确定核心转储位,但我遇到了一个,我暂时将其归因于此。

问题:

对于传递给 XDrawImageString() 的坐标需要多小心?

对于传递的字符串的长度需要多小心?如果底部有问题,就会引出一个问题:如果您沿右手方向离开边缘,会发生什么。

这个问题的答案在多大程度上依赖于 X11 的实现?

最佳答案

X11 坐标实际上是 16 位,因此如果在任一维度上超过 65535,就会出现环绕(并在处理过程中浪费大量资源)。

关于坐标传递给 XDrawImageString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24325638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com