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

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>
            亚洲精品久久嫩草网站秘色 | 久久久久女教师免费一区| 欧美午夜精品久久久| 亚洲在线观看视频网站| 亚洲女人天堂av| 欧美 日韩 国产在线| 久久精品日韩欧美| 99精品福利视频| 亚洲国产美女久久久久| 亚洲欧美日韩精品久久奇米色影视| 国产偷国产偷亚洲高清97cao| 中文欧美日韩| 亚洲欧美国产精品va在线观看| 午夜精品久久久久久久久久久| 亚洲欧美日韩国产另类专区| 久久精品av麻豆的观看方式| 久久精品在线免费观看| 老司机精品视频网站| 久久综合网络一区二区| 篠田优中文在线播放第一区| 久久综合一区二区| 亚洲成人在线视频播放| 香蕉成人啪国产精品视频综合网| 亚洲在线播放电影| 亚洲人体大胆视频| 国产亚洲精品v| 欧美三区在线视频| 欧美成人a∨高清免费观看| 国产精品va在线播放我和闺蜜| 国产麻豆精品视频| 亚洲手机视频| 一区二区三区 在线观看视| 亚洲午夜国产一区99re久久| 久久动漫亚洲| 欧美插天视频在线播放| 亚洲欧美日本日韩| 国产精品久久久久99| 欧美精品一区在线| 国产精品高潮呻吟| 国产一区二区日韩| 狠狠综合久久av一区二区小说| 国产精品免费网站在线观看| 一区二区免费在线视频| 欧美不卡视频| 亚洲综合精品四区| 久久久久久久久蜜桃| 欧美a级大片| 亚洲视频免费| 久久久777| 在线成人欧美| 99热免费精品| 亚洲高清自拍| 一区二区三区四区五区在线| 欧美在线观看一二区| 欧美日本精品| 黄色在线一区| 欧美一区二区三区四区在线观看 | 亚洲国产精品福利| 亚洲国产精品女人久久久| 欧美日韩在线一区二区三区| 午夜精品亚洲| 久久精品卡一| 久久精品人人| 伊人春色精品| 91久久久在线| 男人的天堂亚洲在线| 99在线精品视频在线观看| 欧美激情综合网| 91久久精品国产91性色| 久久久久国产一区二区| 亚洲精品乱码久久久久久按摩观| 国产精品美女一区二区| 亚洲伦理网站| 国产欧美一区在线| 久久久久se| 性视频1819p久久| 国产精品私拍pans大尺度在线| 日韩视频国产视频| 欧美国产乱视频| 欧美激情国产日韩| 国产欧美日本一区二区三区| 午夜日韩视频| 欧美激情综合五月色丁香小说| 久久精品一区二区国产| 欧美高清视频免费观看| 一本大道久久a久久精品综合| 久久久91精品国产| 亚洲一区二区三区在线观看视频| 久久久久国产一区二区三区四区| 亚洲网在线观看| 欧美成人小视频| 欧美不卡一卡二卡免费版| 国产欧美日韩亚洲精品| 日韩视频一区二区在线观看 | 激情丁香综合| 久久久久久成人| 美女诱惑一区| 99人久久精品视频最新地址| 男人插女人欧美| 99re66热这里只有精品3直播| 亚洲老板91色精品久久| 欧美福利电影网| 99re6热在线精品视频播放速度 | 久久噜噜噜精品国产亚洲综合| 欧美高清不卡| 性视频1819p久久| 亚洲福利专区| 1024成人网色www| 欧美好骚综合网| 欧美激情一区二区三区全黄| 久久米奇亚洲| 久久久精彩视频| 一区二区三区久久精品| 欧美日韩mv| 午夜综合激情| 欧美aⅴ99久久黑人专区| 黄色成人av| 国内外成人在线| 欧美人妖另类| 久久久青草青青国产亚洲免观| 亚洲高清在线观看| 久久不见久久见免费视频1| 国产精品入口福利| 欧美多人爱爱视频网站| 一级成人国产| 欧美成人自拍| 欧美成年视频| 欧美一区二区三区另类| 亚洲激情偷拍| 黄色精品一二区| 亚洲欧美综合精品久久成人| 欧美成人r级一区二区三区| 国产综合久久久久久| 久久久91精品国产一区二区精品| 小嫩嫩精品导航| 99精品国产热久久91蜜凸| 一本色道久久综合亚洲精品不| 国产亚洲欧美另类中文| 亚洲国产电影| 国产精品国产精品国产专区不蜜| 久久只精品国产| 国产精品国产三级国产普通话蜜臀 | 亚洲一区二区高清| 黄色成人av网| 中国av一区| 亚洲靠逼com| 久久久久久一区二区三区| 欧美一区二区三区在| 欧美日韩国产在线播放网站| 久久一区二区三区四区五区| 国产精品久久久久aaaa九色| 亚洲国产精品久久久久秋霞不卡 | 久久国产精品久久国产精品| 亚洲欧美日韩精品久久久久| 欧美日韩高清在线播放| 欧美成人有码| 影音先锋日韩资源| 久久精品中文| 狂野欧美激情性xxxx| 国产欧美日本| 亚洲欧美区自拍先锋| 亚洲自拍偷拍一区| 国产精品va| 亚洲欧美另类久久久精品2019| 午夜精品久久久久久久蜜桃app | 一区二区三区视频在线观看| 亚洲免费黄色| 欧美人交a欧美精品| 91久久极品少妇xxxxⅹ软件| 欧美一区二区视频网站| 欧美视频一区二| 欧美在线观看一二区| 亚洲二区在线观看| 亚洲一区二区高清视频| 国产综合一区二区| 欧美激情va永久在线播放| 亚洲私拍自拍| 免费在线亚洲欧美| 老妇喷水一区二区三区| 亚洲欧美一区二区激情| 国产精品久久久久毛片大屁完整版 | 久久亚洲综合色| 正在播放亚洲一区| 欧美jizz19性欧美| 欧美一级视频| 亚洲美女电影在线| 黄色成人在线网站| 国产精品久久999| 免费观看成人| 欧美一区二区三区在线免费观看| 亚洲国产合集| 久久精品国产亚洲aⅴ| 在线视频欧美一区| 亚洲电影在线| 国产欧美日韩另类一区 | 国产精品毛片大码女人| 欧美ed2k| 久久久久综合一区二区三区| 亚洲小说春色综合另类电影| 最新国产成人在线观看|