青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

AGG入門(二) - 平臺支持

一、先看看下面的代碼,并試著編譯下:

#include <platform/agg_platform_support.h>
#include <agg_pixfmt_rgb.h>
#include <agg_renderer_base.h>
#include <stdio.h>

#include <agg_path_storage.h>

class the_application : public agg::platform_support
{
public:
    the_application(agg::pix_format_e format, bool flip_y) : 
        agg::platform_support(format, flip_y),
        pix_fmt(rbuf_window()),
        ren_bas(pix_fmt) //初始化渲染器
    {
    }

    virtual void on_draw()
    {
        ren_bas.reset_clipping(true);
        ren_bas.clear(agg::rgba8(255, 255, 255));
    }

    virtual void on_mouse_button_down(int x, int y, unsigned flags)
    {
        if(flags == agg::mouse_left) {
            char str[50];
            sprintf(str, "Mouse location:(%d, %d)", x, y);
            message(str);
        }
    }

    virtual void on_key(int x, int y, unsigned key, unsigned flags)
    {
        if(key == agg::key_return && flags == agg::kbd_shift) {
            unsigned img = 0, states;
            states = create_img(0, 500, 500);
            states = load_img(img, "Steve-and-Bill.bmp");
            copy_img_to_window(img);
            update_window();
        }
    }

private:
    agg::pixfmt_rgb24 pix_fmt;
    agg::renderer_base<agg::pixfmt_rgb24> ren_bas;

};

int agg_main(int argc, char* argv[])
{
    the_application app(agg::pix_format_rgb24, true);
    app.caption("AGG Test");
    
    if(app.init(500, 500, agg::window_resize)) {
        return app.run();
    }
    return -1;
}
如果不出意外,在窗口中點擊鼠標左鍵將會出現對話框提示當前鼠標的位置,而按下Shift+Enter將會在窗口中顯示在工作目錄下的位圖“Steve-and-Bill.bmp”;

二、解釋

先看看頭文件:platform/agg_platform_support.h,它里邊定義了一個platform_support類——它允許你建立一個窗口來測試你的圖形,并用鼠標鍵盤去控制它。

類型

  • class platform_support 

主要成員函數

  • platform_support(pix_format_e, bool) : 構造函數。設置窗口風格和y軸是否上下翻轉;
  • width() :返回窗口的寬;
  • height() :返回窗口的高;
  • caption([ const char* ]) :設置標題或返回標題字符串;
  • format() : 返回窗口風格;
  • message(const char*) :彈出對話框(沒有風格可選);
  • run() :運行窗口;
  • force_redraw() :重繪窗口,調用on_draw();
  • update_window() :更新窗口,既是把渲染緩存中已有的內容寫入窗口,不調用on_draw()。
  • platform_support為我們提供了一個很好地繪圖平臺,它有一系列的函數可用于操作位圖(BMP或PPM):
    • create_img():創建一個編號為idx的位圖;
    • save_img():將位圖idx保存到文件中;
    • load_img():從文件中加載位圖到idx中;
    • copy_img_to_window():把idx拷貝到渲染緩存里;
    • copy_img_to_img():把idx拷貝到另一幅位圖里;
    • copy_window_to_img() :將渲染緩存里的內容拷貝到位圖。

虛函數(一般都是些消息,要覆蓋它以讓消息循環調用)

  • on_init() :窗口初始化時調用;
  • on_resize(int, int) :改變大小時調用;
  • on_idle()  :空閑時調用;
  • on_mouse_move(int, int, unsigned) :鼠標移動時調用;
  • on_mouse_button_down(int, int, unsigned) :鼠標按下時調用;
  • on_mouse_button_up(int, int, unsigned)  :鼠標彈起時調用;
  • on_key(int, int, unsigned, unsigned)  :鍵盤打字時調用;
  • on_draw()  :窗口重繪時調用。

三、結語

platform_support 的功能不僅僅是這么多,除此之外,他還能使用控件,等等。但很多時候,成熟的應用是不會使用它的,因為它封裝了太多,雖然保證了跨平臺性,卻缺乏了自由性。platform_support 的主要作用是測試圖像和修改圖像,方便工作和移植……還有,方便初學者入門……

posted on 2012-07-24 16:28 Shihira 閱讀(4111) 評論(1)  編輯 收藏 引用 所屬分類: 圖形編程

評論

# re: AGG配置在VS2010 2015-04-09 13:37 冀甜甜

請問,在VS2010中怎么配置AGG環境
還有,為什么我的.lib程序不能啟動呢
  回復  更多評論   

導航

統計

公告

留言簿(2)

隨筆分類

搜索

最新隨筆

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久精品午夜少妇| 亚洲一区二区视频| 韩曰欧美视频免费观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美激情1区2区| 欧美日韩一区二区三区在线观看免| 一本到12不卡视频在线dvd| 在线视频欧美精品| 99精品视频免费在线观看| 亚洲精品黄色| 亚洲午夜久久久久久久久电影院| 亚洲人被黑人高潮完整版| 亚洲国产精品久久久久婷婷884| 国产手机视频一区二区| 国产偷久久久精品专区| 国产亚洲第一区| 91久久精品国产91久久| 一区二区激情小说| 香蕉成人啪国产精品视频综合网| 欧美在线一二三| 免费看的黄色欧美网站| 日韩一级免费| 小黄鸭视频精品导航| 亚洲综合精品四区| 亚洲美女视频在线免费观看| 亚洲中午字幕| 免费一级欧美在线大片| 国产精品乱子乱xxxx| 亚洲国产综合91精品麻豆| 亚洲私人影吧| 91久久国产综合久久91精品网站| 一本大道久久精品懂色aⅴ | 欧美三级乱人伦电影| 国产亚洲欧美激情| 亚洲一区二区三区高清| 欧美激情亚洲一区| 欧美一区二区日韩| 亚洲精品视频免费观看| 亚洲欧美日韩在线观看a三区| 一区二区国产精品| 欧美日韩国产小视频| 日韩视频第一页| 亚洲电影免费| 欧美电影打屁股sp| 激情丁香综合| 蜜臀99久久精品久久久久久软件| 亚洲影院一区| 国产女人aaa级久久久级| 欧美在线一区二区| 久久精品国产亚洲aⅴ| 亚洲国产高清视频| 亚洲人成欧美中文字幕| 欧美性猛交xxxx免费看久久久| 亚洲精品久久久久久久久久久| 亚洲电影免费观看高清完整版在线 | 两个人的视频www国产精品| 欧美性开放视频| 久久精品天堂| 欧美激情一区二区三级高清视频| 99成人在线| 欧美一级淫片aaaaaaa视频| 极品裸体白嫩激情啪啪国产精品| 亚洲第一福利视频| 国产精品爱久久久久久久| 久久久久国产一区二区| 欧美精品久久久久久久免费观看 | 欧美成人免费在线观看| 99精品视频免费全部在线| 亚洲砖区区免费| 亚洲欧洲一区二区在线观看| 亚洲欧美日韩一区在线观看| 日韩视频免费观看| 久久欧美肥婆一二区| 久久精品国产亚洲一区二区| 免费在线观看成人av| 久久尤物电影视频在线观看| 国产精品高精视频免费| 亚洲人人精品| 亚洲视频www| 国产精品黄色| 一区二区欧美日韩| 香蕉久久夜色精品国产使用方法| 欧美特黄一级大片| 中文精品视频| 99riav久久精品riav| 欧美国产91| 99re热精品| 欧美在线日韩在线| 国产视频一区在线观看一区免费| 欧美一级视频免费在线观看| 久久www成人_看片免费不卡| 国产日韩1区| 欧美a级一区二区| 一区二区三区国产盗摄| 久久精品国产一区二区三| 亚洲二区三区四区| 欧美日韩成人一区二区三区| 亚洲美女av在线播放| 久久久免费精品视频| 日韩亚洲成人av在线| 夜夜爽www精品| 欧美中文字幕在线播放| 亚洲夫妻自拍| 欧美人与禽猛交乱配| 欧美激情视频在线播放| 久久精品一区二区三区中文字幕| 最近中文字幕mv在线一区二区三区四区| 欧美激情一区二区三区高清视频| 午夜精品999| 一区二区欧美激情| 亚洲人成毛片在线播放女女| 久久九九免费| 久久成人精品一区二区三区| 亚洲经典三级| 亚洲国产色一区| 国产资源精品在线观看| 国产精品色一区二区三区| 欧美视频免费| 国产精品久久久久77777| 欧美日韩在线影院| 欧美视频二区36p| 国产精品日日摸夜夜添夜夜av| 免费高清在线视频一区·| 亚洲一区视频| 亚洲全部视频| 一区二区三区高清在线观看| 亚洲精品免费电影| 中文精品视频| 久久精品视频网| 欧美aⅴ一区二区三区视频| 免费观看日韩av| 欧美三级不卡| 国产视频精品xxxx| 亚洲激情国产精品| 在线亚洲自拍| 久久精品国产清高在天天线| 免费成人在线视频网站| 亚洲国产mv| 欧美在线free| 欧美猛交免费看| 国产日韩欧美自拍| 美女图片一区二区| 欧美午夜精品久久久久久久| 国产一区再线| 亚洲欧美日韩视频二区| 午夜国产精品视频免费体验区| 欧美怡红院视频| av成人黄色| 欧美激情影院| 亚洲精品综合久久中文字幕| 久久免费视频在线观看| 亚洲一区二区av电影| 欧美日韩综合视频| 亚洲天天影视| 这里只有精品丝袜| 欧美日韩亚洲高清一区二区| 亚洲全黄一级网站| 亚洲国产成人高清精品| 欧美国产另类| 亚洲永久免费av| 亚洲愉拍自拍另类高清精品| 国产精品一级久久久| 久久手机免费观看| 欧美亚洲免费在线| 亚洲成色777777女色窝| 欧美黑人一区二区三区| 欧美精品在线一区二区三区| 国产午夜精品全部视频播放| 亚洲美女在线国产| 一二三区精品福利视频| 国产精品每日更新在线播放网址| 亚洲一区二区三区三| 中日韩视频在线观看| 国产拍揄自揄精品视频麻豆| 久久天天狠狠| 欧美日韩四区| 久久亚洲风情| 欧美日韩国产系列| 欧美.日韩.国产.一区.二区| 欧美精品系列| 欧美大片免费观看| 欧美香蕉大胸在线视频观看| 久热综合在线亚洲精品| 国产精品成人一区二区艾草| 久久人人爽国产| 国产精品国产自产拍高清av| 国产色视频一区| 亚洲激情在线| 黄色成人片子| 欧美一进一出视频| 亚洲欧美日韩视频二区| 亚洲欧美综合精品久久成人| 亚洲国产欧美不卡在线观看| 久久久久国产精品www| 欧美一区二区三区四区在线| 欧美激情一区二区三区| 亚洲国产欧美一区| 亚洲理论电影网| 欧美精品色一区二区三区| 亚洲人成艺术|