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

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 閱讀(4110) 評論(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>
            欧美wwwwww| 亚洲国产三级| 久久成人精品无人区| 亚洲天堂成人在线观看| 9i看片成人免费高清| 一区二区免费在线播放| 一区二区三区四区精品| 性18欧美另类| 免费视频一区| 欧美午夜精品理论片a级按摩 | 91久久综合亚洲鲁鲁五月天| 亚洲人成绝费网站色www| 一区二区高清在线| 欧美在线免费观看亚洲| 久久综合网色—综合色88| 欧美成人精品h版在线观看| 亚洲国产毛片完整版 | 欧美伊人久久| 免费看的黄色欧美网站| 亚洲一区二区久久| 亚洲日本成人| 激情一区二区| 999亚洲国产精| 亚洲天堂av电影| 久久久久久精| 亚洲区在线播放| 亚洲小说春色综合另类电影| 亚洲调教视频在线观看| 久久网站免费| 国产精品久久久久aaaa| 亚洲激情亚洲| 久久精品视频在线观看| 亚洲精品色婷婷福利天堂| 亚洲精品国产精品国自产在线| 亚洲天堂黄色| 欧美高潮视频| 国产一区二区三区网站| 亚洲影院色无极综合| 亚洲高清色综合| 久久久国产精品一区| 国产麻豆日韩欧美久久| 亚洲午夜精品一区二区| 欧美黑人在线播放| 欧美综合国产精品久久丁香| 国产精品久久久久久久电影| 亚洲裸体俱乐部裸体舞表演av| 久久人体大胆视频| 亚洲综合国产| 国产精品久久久久久久浪潮网站 | 久久国产一区二区三区| 一本久久综合亚洲鲁鲁五月天| 裸体一区二区三区| 在线看成人片| 牛牛影视久久网| 久久久亚洲精品一区二区三区| 国产欧美在线视频| 久久av一区二区| 欧美一区不卡| 国产自产2019最新不卡| 久久黄金**| 欧美专区福利在线| 国精品一区二区| 麻豆成人在线| 狂野欧美激情性xxxx欧美| 亚洲电影av在线| 欧美成人中文字幕| 欧美高清日韩| 亚洲午夜精品久久| 亚洲男人的天堂在线| 久久久99免费视频| 亚洲一区二区三区中文字幕| 亚洲国产精品久久| 欧美精品一区二区精品网| 夜夜嗨av一区二区三区网站四季av| 亚洲电影免费观看高清完整版在线观看 | 91久久久亚洲精品| 欧美日韩高清不卡| 亚洲专区一区二区三区| 亚洲欧美日韩系列| 在线成人免费视频| 最新日韩在线视频| 国产精品亚洲激情| 久久久久久久久久久一区| 久久精品国产精品亚洲精品| 亚洲国产福利在线| 日韩视频免费在线观看| 国产精品视频网站| 欧美成人在线网站| 国产精品国产| 麻豆av福利av久久av| 欧美久久婷婷综合色| 久久精彩视频| 欧美日韩一区二区免费在线观看| 欧美一区二区三区免费视频| 久久亚洲精品欧美| 午夜久久久久久| 美日韩精品视频| 欧美一区二区三区免费观看视频| 美女脱光内衣内裤视频久久影院| 亚洲午夜激情| 免费亚洲电影| 久久国产精品久久国产精品| 欧美国产视频在线| 久久深夜福利免费观看| 欧美色图五月天| 女人天堂亚洲aⅴ在线观看| 国产精品卡一卡二| 91久久一区二区| 影视先锋久久| 欧美影院久久久| 亚洲综合导航| 欧美人交a欧美精品| 欧美成人一区二区三区片免费| 国产精品日韩在线| 99亚洲视频| 亚洲美女视频在线免费观看| 久久久精品午夜少妇| 久久久精品国产一区二区三区| 欧美视频一区| 亚洲伦伦在线| 日韩一级精品| 欧美精品电影| 亚洲片在线观看| 亚洲激情视频网站| 老鸭窝亚洲一区二区三区| 国产亚洲一级高清| 欧美一区二区| 国产精品久久久久久福利一牛影视| 欧美激情一区二区| 亚洲国产成人精品久久久国产成人一区| 亚洲综合精品一区二区| 亚洲综合精品四区| 国产精品av久久久久久麻豆网| 亚洲国产一区在线观看| 亚洲欧洲精品一区二区三区| 久久婷婷人人澡人人喊人人爽| 久久亚洲综合| 精品999成人| 久久综合久久美利坚合众国| 久久夜色精品亚洲噜噜国产mv| 国产最新精品精品你懂的| 久久精品日韩欧美| 免费久久99精品国产自在现线| 永久免费视频成人| 免费亚洲网站| 亚洲乱码国产乱码精品精天堂| 亚洲视频综合| 国产免费观看久久黄| 欧美中文字幕视频| 欧美国产日韩xxxxx| 99pao成人国产永久免费视频| 欧美乱妇高清无乱码| 9l国产精品久久久久麻豆| 羞羞答答国产精品www一本| 国产视频观看一区| 久久综合久久综合久久| 日韩一区二区精品在线观看| 午夜欧美理论片| 娇妻被交换粗又大又硬视频欧美| 麻豆成人精品| 艳妇臀荡乳欲伦亚洲一区| 欧美在线三区| 亚洲国产欧美一区二区三区久久 | 99精品视频免费全部在线| 午夜欧美精品久久久久久久| 韩国欧美一区| 欧美另类在线观看| 香蕉成人啪国产精品视频综合网| 蜜桃av综合| 亚洲在线一区| 亚洲二区视频| 国产精品国产成人国产三级| 欧美在线网站| 亚洲裸体视频| 美日韩精品免费| 亚洲欧美日韩成人高清在线一区| 狠狠综合久久| 国产精品成人一区二区三区吃奶| 久久av资源网站| 在线亚洲高清视频| 欧美成人亚洲成人日韩成人| 亚洲欧美日韩在线播放| 亚洲欧洲日产国产综合网| 国产精品综合| 欧美日韩国产在线播放网站| 久久精品国产91精品亚洲| 夜夜精品视频一区二区| 欧美成人国产va精品日本一级| 亚洲综合视频一区| 日韩午夜激情| 亚洲成人在线免费| 国产一区二区三区丝袜 | 91久久黄色| 国产一区二区看久久| 亚洲三级免费| 99国产精品99久久久久久| 伊人久久大香线| 国产欧美精品xxxx另类| 欧美日韩中文字幕精品| 欧美电影在线|