2011-06-02 56 views
1

我有時使用Windows gdi區域進行圖形繪製和無效/驗證。例如,程序http://www.maxerist.net/main/soft-for-win/tubicus(oss)僅使用區域(沒有位圖或離屏緩衝區)。該繪圖使用FillRgn和FrameRgn進行繪製,無效並使用InvalidateRgn和CombineRgn繪製,每個單元格(請參見截圖)都是使用CreateEllipticRgn,CreatePolygonRgn和CombineRgn創建的簡單區域。在Linux中的Windows gdi區域的等價物

我有計劃把它移植到Linux上。據我瞭解,Linux中有很多圖形庫。有沒有支持類似Windows的區域?

感謝

回答

1

Qt擁有大量的塗裝方案,並使用QPainterQPainterPath對象可能適合你。 (Qt分佈中有樣本)。您可以組合(添加/相交/ substact)路徑。

QGraphicsView framework也是一個很好的選擇。

1

您想使用X Window System,也就是X11作爲圖形平臺。其客戶端庫稱爲Xlib。該平臺支持多邊形區域。

在Xlib(Gtk,Qt,wxWindows以及更多)上編寫了許多庫,但您始終可以直接使用低級別的Xlib API。 Qt甚至支持橢圓區域。我不知道細節,但我想它是在X11多邊形區域上實現的。

+0

謝謝,你能說出X11中與非矩形區域相關的東西(函數名)嗎?我之前搜索過,無法找到 – Maksee 2011-06-02 14:21:56

+0

@Maksee當然。 'XPolygonRegion'創建一個多邊形區域。 – 2011-06-02 14:30:07