wxWidgets第十七課 採用AGG渲染庫

2021-09-20 23:00:09 字數 1588 閱讀 3163

說明

等並沒有進行什麼記憶體分配,但是統一起見,所以構造為靜態變數,實際上,還有申請的渲染快取指向的區域也應該設定為靜態變數,然後通過指定寬和高,即可最大限度的避免了記憶體碎片

**標頭檔案

#include "wx/wx.h"

#include "agg/agg_scanline_p.h"

#include "agg/agg_renderer_scanline.h"

#include "agg/agg_pixfmt_rgba.h"

#include "agg/agg_rasterizer_scanline_aa.h"

struct poscoordinate

;class cflightinstrumentcompassctrl : public wxcontrol

;原始檔

#include "flightinstrumentcompass.h"

#include "wx/msw/window.h"

#include

#include "wx/dc.h"

begin_event_table(cflightinstrumentcompassctrl, wxcontrol)

end_event_table()

//靜態agg物件的定義

agg::rendering_buffer cflightinstrumentcompassctrl::m_rbuf;

agg::pixfmt_bgra32 cflightinstrumentcompassctrl::m_pixf;

agg::renderer_basecflightinstrumentcompassctrl::m_renb;

agg::renderer_scanline_aa_solid> cflightinstrumentcompassctrl::m_ren;

agg::rasterizer_scanline_aa<> cflightinstrumentcompassctrl::m_ras;

agg::scanline_p8 cflightinstrumentcompassctrl::m_sl;

bool cflightinstrumentcompassctrl::create(wxwindow *parent,

cflightinstrumentcompassctrl::~cflightinstrumentcompassctrl(void)

void cflightinstrumentcompassctrl::onpaint( wxpaintevent& event )

注意1 為了能夠使用wxclientdc等wxdc派生類,需要包含標頭檔案wx/wx.h,否則在呼叫drawtext渲染字型的時候出現如下的編譯錯誤:drawtextw不是wxclientdc 的成員

2 在使用了agg渲染之後,沒有必要使用wxdc的派生類進行渲染。agg渲染是首先在構建一張位圖,在此基礎上渲染完畢,進行影象的貼上,如果要使用wxclientdc,會造成閃爍,如果使用wxmemorydc(也是構建一塊記憶體位圖,然後進行貼圖),也只能採用裁剪函式貼圖某乙個區域,不可能進行混合渲染,否則會覆蓋已有的渲染,並且在拉伸視窗的過程中,發現agg渲染成功,但是wxclientdc等看不到任何渲染的結果

JAVA第十七課

一 序列化與反序列化 序列化是將物件的狀態寫入特定的流中的過程 反序列化則是從特定的流中獲取資料重新構建物件的過程 二 實現序列化的步奏 1 實現serilizable介面。2 建立物件輸出流 3 呼叫writeobject 方法將物件寫入檔案 4 關閉物件輸出流 三 常見異常 notseriali...

Linux第十七課

一 squid 八爪魚單純的 不加密 埠號為3128 支援http ftp ssl等多種協議的資料快取,可以基於訪問控制列表 acl 和訪問許可權列表 arl 執行內容過濾與許可權管理功能。正向 模式 一般用於企業區域網之中,讓企業使用者統一地通過squid服務訪問網際網路資源,可以在一定程度上減少...

第十七課 C指標(概述)

第十七課 c指標 概述 17.1 什麼是記憶體 通過指標,可以簡化一些 c 程式設計任務的執行,還有一些任務,如 動態記憶體分配 沒有指標是無法執行的。所以,想要成為一名優秀的 c 程式設計師,學習指標是很有必要的。每乙個變數都有乙個記憶體位置,每乙個記憶體位置都定義了可使用連字型大小 運算子訪問的...