XGetimage需要3-4秒才能执行并完全冻结X11
display *display; display = XOpendisplay(NulL); if (!display) {fprintf(stderr,"unable to connect to display");return 7;} Window w; int x,y,i; unsigned m; Window root = XDefaultRootwindow(display); if (!root) {fprintf(stderr,"unable to open rootwindow");return 8;} //sleep(1); if(!XqueryPointer(display,root,&root,&w,&x,&y,&i,&m)) { printf("unable to query pointern"); return 9;} XImage *image; XWindowAttributes attr; XGetwindowAttributes(display,&attr); image = XGetimage(display,attr.wIDth,attr.height,AllPlanes,XYpixmap); XClosedisplay(display); if (!image) {printf("unable to get imagen"); return 10;}
在Xorg日志中:
[ 13234.693] AUDIT: Thu Jan 7 20:12:13 2016: 3856: clIEnt 45 connected from local host ( uID=500 gID=500 pID=12993 ) Auth name: MIT-MAGIC-cookie-1 ID: 153 [ 13238.774] AUDIT: Thu Jan 7 20:12:18 2016: 3856: clIEnt 45 disconnected
time: real 0m4.080s user 0m0.002s sys 0m0.007s
理想情况下,我希望这个函数在不到0.1秒的时间内运行
内存映射内核空间的解剖是如何的
multithreading不利用多核心?
在VirtualBox中的Debian上调用socket()时发生错误97
为什么在windows上调用MinGW编译函数(不加载库)时会得到UnsatisfIEdlinkError?
在Vista上调用RPC调用时,“ *** 作不受支持”
我在哪里可以findsql Server版本的友好的string?
windows Phone 8.1仅绑定“左”边距属性
这是“现代”的消息框UI在Qt中可用吗? 还是纯粹的windows API?
Pcap不完整types
如何重新使用设置元素的向量?
XYpixmap是一个非常专业的格式,没有太多的用途。 几乎总是应该使用Zpixmap 。
XYpixmap 平面地工作 。 这是什么意思? 取每个像素的位0,并将所有这些位紧紧地包装在一个unsigned int的数组中。 这就是你的飞机0.然后把每个像素的位1,并将所有这些位打包在一个数组中。 那是你的飞机1.然后把每一个像素的位2
Framebuffer __________________________________________________________________ / Pixel 0 Pixel 1 Pixel 2 [0][1][2][3][4][5][6][7] [0][1][2][3][4][5][6][7] [0][1][2].... | | | | +------------------------+ | | | | | | +--------------------------------------------------+ | | | vvv [0][0][0]..... (Plane 0) | | [1][1][1].... | Result (Plane 1) | .... | [7][7][7].... | (Plane 7) | /
如果你的framebuffer是这样存储的,大多数现代硬件就是这种情况,这是很多的 *** 纵!
图片显示了8位像素,但对于其他任何深度都是一样的。
另一方面, Zpixmap将整个像素Zpixmap到一个数组中:
Framebuffer __________________________________________________________________ / Pixel 0 Pixel 1 Pixel 2 [0][1][2][3][4][5][6][7] [0][1][2][3][4][5][6][7] [0][1][2].... | | | | | | | | | | | | | | | | | | | vvvvvvvvvvvvvvvvvvv [0][1][2][3][4][5][6][7] [0][1][2][3][4][5][6][7] [0][1][2].... _____________________________________________________________________ Result
这是简单的直接复制,应该是非常快的。
总结以上是内存溢出为你收集整理的XGetImage需要大量的时间来运行全部内容,希望文章能够帮你解决XGetImage需要大量的时间来运行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)