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

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>
            韩日欧美一区二区三区| 亚洲婷婷在线| 国产精品中文在线| 亚洲桃花岛网站| 亚洲高清免费在线| 激情综合亚洲| 国产精品你懂得| 欧美在线免费观看| 日韩手机在线导航| 一本色道久久综合狠狠躁篇的优点| 欧美一级视频| 久久久999| 欧美韩国日本一区| 亚洲每日更新| 亚洲愉拍自拍另类高清精品| 欧美一区视频| 久久一区二区精品| 欧美日韩国产三级| 国产精品久久久久久久久久久久久 | av不卡在线看| 午夜欧美大尺度福利影院在线看 | 欧美三级网址| 国产深夜精品| 亚洲少妇一区| 麻豆精品网站| 一本久久综合亚洲鲁鲁| 久久精品亚洲国产奇米99| 欧美精品日韩一区| 国产一区二区主播在线| 中文欧美字幕免费| 美女亚洲精品| 亚洲一区二区三区久久| 欧美激情1区2区3区| 狠狠噜噜久久| 欧美亚洲免费电影| 亚洲免费观看视频| 美女999久久久精品视频| 国产精品视频网站| 在线一区二区三区四区| 欧美国产国产综合| 久久激情视频久久| 国产亚洲女人久久久久毛片| 一区二区三区.www| 91久久精品一区| 免费欧美在线视频| 一区二区三区在线观看欧美| 亚洲一区欧美激情| 亚洲欧美激情视频| 亚洲一区亚洲二区| 欧美日韩高清在线| 亚洲黑丝在线| 欧美成人中文| 久久综合五月| 亚洲高清123| 欧美xxx成人| 久久午夜视频| 在线精品国产欧美| 免费不卡亚洲欧美| 老牛嫩草一区二区三区日本| 在线观看欧美视频| 欧美成人69av| 免费在线国产精品| 亚洲国产欧美一区二区三区久久| 麻豆精品网站| 美女国内精品自产拍在线播放| 在线观看三级视频欧美| 久久免费精品视频| 久久香蕉国产线看观看av| 亚洲第一中文字幕在线观看| 亚洲电影毛片| 欧美日韩综合另类| 午夜在线视频一区二区区别| 性欧美长视频| 亚洲福利在线看| 日韩视频一区二区三区| 国产欧美精品在线播放| 毛片一区二区| 欧美精品免费在线| 亚洲欧美影音先锋| 香蕉久久一区二区不卡无毒影院| 依依成人综合视频| 亚洲国产精品女人久久久| 欧美日韩精品国产| 久久福利影视| 欧美激情五月| 久久精品国产一区二区三| 欧美成人按摩| 午夜欧美理论片| 玖玖国产精品视频| 亚洲综合国产精品| 久久亚洲图片| 午夜免费电影一区在线观看| 久久久免费av| 亚洲欧美不卡| 久久婷婷成人综合色| 亚洲图片自拍偷拍| 久久精品中文字幕一区二区三区| 日韩视频在线一区二区三区| 性做久久久久久久久| 日韩一级成人av| 午夜精品久久久久久久久久久久 | 一区二区久久久久| 午夜一区二区三区在线观看| 亚洲人成网站在线观看播放| 亚洲性视频h| 亚洲国产一区二区三区青草影视 | 亚洲综合另类| 久久久久久欧美| 亚洲一区三区视频在线观看| 久久久久久9| 欧美一级视频精品观看| 欧美国产大片| 欧美在线观看天堂一区二区三区| 欧美va亚洲va日韩∨a综合色| 欧美一区二区免费观在线| 欧美精品一区二区在线播放| 久热精品视频在线| 国产欧美精品在线观看| 夜夜嗨一区二区| 亚洲国产日韩综合一区| 久久精品在线播放| 久久精品道一区二区三区| 欧美午夜精品理论片a级按摩| 亚洲福利专区| 亚洲国产专区| 浪潮色综合久久天堂| 免费中文字幕日韩欧美| 一区二区三区在线不卡| 欧美一区二区三区四区视频| 性欧美8khd高清极品| 国产精品国产精品| 中文欧美日韩| 亚洲一区二区四区| 欧美先锋影音| 这里只有精品视频在线| 亚洲综合精品自拍| 国产精品久久久亚洲一区| aa级大片欧美| 亚洲一区在线视频| 欧美午夜精品伦理| 9国产精品视频| 亚洲欧美在线观看| 国产精品一区二区三区四区五区 | 欧美在线视频二区| 国产日韩成人精品| 久久激情综合| 欧美成年人视频网站| 亚洲精品视频在线观看免费| 欧美日韩国产黄| 亚洲一区二区三区777| 久久爱www| 在线不卡中文字幕| 欧美国产三级| 中日韩视频在线观看| 欧美一区二区三区视频在线| 国内揄拍国内精品少妇国语| 久久尤物电影视频在线观看| 亚洲国产欧美在线人成| 亚洲一区日韩| 极品少妇一区二区三区| 欧美高清在线一区| 亚洲色图综合久久| 久久一区激情| 日韩视频精品在线观看| 国产精品国产自产拍高清av| 久久精品二区| 99re6这里只有精品| 久久久久久伊人| 亚洲精品视频在线看| 亚洲国产精品久久久| 国产亚洲在线观看| 久久久99国产精品免费| 亚洲国产清纯| 性欧美xxxx视频在线观看| 亚洲国产成人tv| 国产精品美女xx| 免费亚洲网站| 欧美亚洲在线观看| 亚洲精品日本| 噜噜噜在线观看免费视频日韩| 一本色道精品久久一区二区三区| 国产亚洲激情视频在线| 欧美日韩精品福利| 久久一区二区三区av| 亚洲免费影视第一页| 亚洲国产精品一区二区www| 久久超碰97中文字幕| 一区二区av| 亚洲国产精品尤物yw在线观看| 欧美视频一区二区三区在线观看| 久久久久久色| 午夜日韩av| 99热精品在线| 亚洲成人在线免费| 最新日韩在线| 狠狠久久亚洲欧美| 国产精品久久国产精品99gif | 国产香蕉97碰碰久久人人| 欧美视频第二页| 欧美激情精品久久久久久蜜臀|