亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 11026 | 回復(fù): 13
打印 上一主題 下一主題

gtk有更快的圖像刷新方法嗎 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2007-12-10 13:21 |只看該作者 |倒序瀏覽
我用gtk來實現(xiàn)了一個圖片的過渡效果,每一幀畫面處理完后調(diào)用gtk_widget_queue_draw_area來引發(fā)expose_event事件,然后在expose_event事件的回調(diào)函數(shù)中繪制圖像,在pc上效果還可以接收,可是在嵌入式機器里面反應(yīng)巨慢,我測試了一下,在我引發(fā)信號到進入到expose_event回調(diào)函數(shù)里要幾百毫秒的時間,這顯然是太慢了(希望能在10毫秒以內(nèi)),gtk的機制如此沒辦法,不知道除了這樣做還沒有更實時的繪制方法,即我每幀的畫面處理完后能立即顯示出來,知道的朋友還望不吝賜教,小弟感激不盡!

論壇徽章:
0
2 [報告]
發(fā)表于 2007-12-10 14:21 |只看該作者
直接用個線程不就可以了,搞個信號量,然后讓這個線程等待信號量,圖片處理的時候會占用信號量,而繪制線程就等待信號量,取得信號量后直接gtk_window_draw_rgb就可以了。
draw圖片的時候要前后加上 gdk_threads_enter(),gdk_threads_leave()

論壇徽章:
0
3 [報告]
發(fā)表于 2007-12-10 14:22 |只看該作者
你的平臺是GTKFB嗎,移植方便嗎?移植完成后需要多大空間?

論壇徽章:
0
4 [報告]
發(fā)表于 2007-12-10 16:17 |只看該作者
多謝二樓的回復(fù)!按你的意思那就是調(diào)用gtk_window_draw_rgb()就立即可以顯示了嗎,不需要等到觸發(fā)expose_event事件到了就行了,如果這樣的話就好辦了,我每幀處理完直接調(diào)它就行了,不用設(shè)置無效區(qū)了,那就真是太理想了,不過你這函數(shù)根本就不存在還是你打錯了呀,但我看到的一些代碼都是要設(shè)置無效區(qū)的

===》三樓:我的就是gtk+dfb的,感覺移植后控件和內(nèi)存都耗的巨大,可能優(yōu)化的不夠,現(xiàn)在速度和內(nèi)存占用都不理想

論壇徽章:
0
5 [報告]
發(fā)表于 2007-12-10 16:44 |只看該作者
SORRY,確實打錯了,是gdk_draw_rgb_image

論壇徽章:
0
6 [報告]
發(fā)表于 2007-12-10 18:01 |只看該作者
我試了一下,你說的的確是可以的,我調(diào)用gdk_draw_rgb_image()后是可以立即畫出來,不過是在pc上,我pc的gtk是2.10,但是嵌入式中畫不出來,可能gtk+dfb中沒有支持到這個函數(shù),郁悶了

論壇徽章:
0
7 [報告]
發(fā)表于 2007-12-10 18:49 |只看該作者
又測試了一下,我原來在expose-event回調(diào)函數(shù)里面用gdk_draw_pixbuf()畫的,現(xiàn)在直接在每一幀處理完了調(diào)用它也可以畫出來的,和gdk_draw_rgb_image()效果一樣,現(xiàn)在的問題是在pc上這兩個函數(shù)調(diào)用都可以刷新畫面,可是在gtk+dfb構(gòu)架的嵌入式機器上就都畫不出來,除非每一幀處理完設(shè)置無效區(qū)域,然后在expose-event回調(diào)函數(shù)中調(diào)他們,難道gtk+dfb的構(gòu)架就只能在expose-event的回調(diào)函數(shù)中來畫圖嗎

論壇徽章:
0
8 [報告]
發(fā)表于 2007-12-11 17:17 |只看該作者
解決了嗎?我最近也需要做這些,解決后希望告知一聲

論壇徽章:
0
9 [報告]
發(fā)表于 2007-12-11 19:03 |只看該作者
考慮下gtk_widget_send_expose直接進入重繪

論壇徽章:
0
10 [報告]
發(fā)表于 2007-12-13 09:01 |只看該作者
GTK機制如此,導(dǎo)致各種方法都不能有效加速畫面的刷新速度,我現(xiàn)在的做法是在gdk-directfb層面增加一個接口,重新編譯庫,使我在gtk程序中可以調(diào)用該接口取得gdk的圖像渲染所使用的dfb的surface,然后我在動畫效果時的代碼實際上是一段dfb程序,將圖像直接渲染到該surface上,跳過了gdk的那些東東,我試了一下初步取得成功,并且不影響gtk窗口的事件處理,全屏從上到下依次畫隔行直線速度還不錯,繼續(xù)改進一下看看圖片顯示速度怎么樣,我弄成功的話將方法寫出來大家一起討論討論。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP