您好,登錄后才能下訂單哦!
前言
除了pure_api例子外,其他的都是基于agg::platform_support之上進(jìn)行開發(fā)的。這些例子通過(guò)調(diào)用agg::platform_support,隱藏了如何創(chuàng)建渲染緩存buffer以及關(guān)聯(lián)agg::rendering_buffer的細(xì)節(jié)。一句話,通過(guò)繼承agg::platform_support,就可以直接調(diào)用rbuf_window(),獲取渲染的緩存。而pure_api是一個(gè)最原始的程序,通過(guò)調(diào)用系統(tǒng)API函數(shù),構(gòu)建一個(gè)最完整詳細(xì)的例子程序,而這些所做的事情,已經(jīng)全部封裝到agg::platform_support里面。在wx章節(jié)中,有詳細(xì)介紹如何應(yīng)用AGG進(jìn)行渲染。
要求
本意是希望獲取當(dāng)前位圖的渲染緩存,然后傳遞給agg::rendering_bufer,然后開始進(jìn)行AGG的渲染。
結(jié)果
查詢了很多資料,還是只能夠創(chuàng)建兼容DC,然后創(chuàng)建兼容位圖,然后選入位圖,獲取渲染緩存,繪制之后,貼圖到當(dāng)前的兼容DC上
HDC mem_dc = ::CreateCompatibleDC(hdc); //創(chuàng)建兼容DC
void* buf = 0;
HBITMAP bmp = ::CreateDIBSection( //創(chuàng)建兼容位圖,獲取緩存
mem_dc,
&bmp_info,
DIB_RGB_COLORS,
&buf,
0,
0
);
// Selecting the object before doing anything allows you
// to use AGG together with native Windows GDI.
HBITMAP temp = (HBITMAP)::SelectObject(mem_dc, bmp);
//貼圖到當(dāng)前DC上,減去100,是不希望覆蓋右邊的一小塊區(qū)域
::BitBlt(
hdc,
rt.left,
rt.top,
width - 100,
height,
mem_dc,
0,
0,
SRCCOPY
);
總結(jié)
詳細(xì)的流程請(qǐng)參考源碼目錄下的examples提供了完整的測(cè)試用例
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。