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

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;
}
如果不出意外,在窗口中點擊鼠標(biāo)左鍵將會出現(xiàn)對話框提示當(dāng)前鼠標(biāo)的位置,而按下Shift+Enter將會在窗口中顯示在工作目錄下的位圖“Steve-and-Bill.bmp”;

二、解釋

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

類型

  • class platform_support 

主要成員函數(shù)

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

虛函數(shù)(一般都是些消息,要覆蓋它以讓消息循環(huán)調(diào)用)

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

三、結(jié)語

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

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

評論

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

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

導(dǎo)航

統(tǒng)計

公告

留言簿(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>
            美日韩丰满少妇在线观看| 欧美77777| 久久免费午夜影院| 亚洲成人在线视频播放 | 久久精品在线观看| 一区免费在线| 欧美午夜剧场| 欧美二区乱c少妇| 麻豆精品一区二区av白丝在线| 日韩午夜在线| **欧美日韩vr在线| 国产精品自拍在线| 欧美区高清在线| 久热国产精品视频| 欧美在线观看视频一区二区三区| 亚洲精品久久久久| 另类春色校园亚洲| 亚洲国产免费| 欧美韩国日本综合| 久久亚洲精选| 欧美在线观看视频一区二区| 一区二区三区精品在线| 亚洲国产婷婷| 国产亚洲一区在线播放| 国产精品久久久久免费a∨| 欧美日韩国产123区| 欧美77777| 欧美 亚欧 日韩视频在线| 欧美日韩1区2区| 国产亚洲一区二区三区在线播放| 亚洲欧洲视频在线| 亚洲免费高清| 一级成人国产| 久久国产精品99国产| 亚洲一区二区三区激情| 久久精品视频在线播放| 亚洲一区二区三区欧美| 日韩图片一区| 久久久久久久久久久久久9999| 免费亚洲一区二区| 亚洲一区二区免费看| 免费欧美日韩国产三级电影| 国产欧美日韩在线播放| 国产午夜久久| 国产主播一区二区三区| 狠久久av成人天堂| 亚洲第一精品电影| 亚洲亚洲精品在线观看 | 91久久精品一区二区三区| 午夜精品久久久久影视| 亚洲男人的天堂在线aⅴ视频| 一区二区日韩精品| 欧美激情视频一区二区三区不卡| 欧美亚洲免费在线| 久久久久久久性| 老司机精品视频网站| 国产亚洲免费的视频看| 亚洲午夜在线观看| 日韩视频亚洲视频| 亚洲欧美日韩在线播放| 久久精品国产第一区二区三区| 国产精品久久久久久av下载红粉 | 国产欧美日韩免费看aⅴ视频| 亚洲小说区图片区| 一区二区三区国产| 久久九九国产| 欧美精品激情| 国产一区二区0| 久久成人免费视频| 亚洲三级毛片| 欧美日韩人人澡狠狠躁视频| 国产午夜亚洲精品理论片色戒| 亚洲欧美日韩国产中文| 正在播放亚洲| 欧美激情欧美激情在线五月| 亚洲人成久久| 亚洲毛片av| 久久成人一区| 亚洲黄色免费电影| 正在播放欧美视频| 狠狠狠色丁香婷婷综合久久五月| 麻豆精品精华液| 欧美黄色影院| 午夜亚洲福利| 欧美高清视频在线观看| 制服丝袜亚洲播放| 美日韩精品视频| 欧美99久久| 亚洲中无吗在线| 亚洲日本中文字幕| 欧美四级在线观看| 亚洲精品网站在线播放gif| 久久riav二区三区| 久久久久久亚洲精品中文字幕| 亚洲国产一区二区a毛片| 夜色激情一区二区| 欧美精彩视频一区二区三区| 亚洲视频一区| 久久精品一本| 亚洲一二三级电影| 久久av一区二区三区| 99精品福利视频| 久久狠狠亚洲综合| 一区二区三区日韩在线观看 | 欧美高潮视频| 新67194成人永久网站| 99re热精品| 国产一区二区毛片| 99精品视频免费观看| 国产一区在线播放| 一区二区三区 在线观看视| 在线看一区二区| 午夜激情亚洲| 亚洲综合精品自拍| 欧美日韩国产成人在线91| 麻豆久久婷婷| 国产一区二区三区在线观看网站| 亚洲每日在线| 亚洲乱码国产乱码精品精天堂 | 亚洲国产成人高清精品| 久久综合色播五月| 欧美一区二区视频97| 欧美日韩二区三区| 亚洲国产精品精华液网站| 黄色成人在线网址| 亚洲欧美日韩一区二区| 亚洲主播在线播放| 欧美日韩一区在线| 亚洲伦理在线| 亚洲视频精选| 欧美三级网页| a4yy欧美一区二区三区| 一区二区高清视频| 欧美日韩一区二区三区免费| 亚洲黄页视频免费观看| 国产精品日日摸夜夜摸av| 欧美一区二区精品| 欧美亚日韩国产aⅴ精品中极品| 亚洲国产另类久久精品| 亚洲大片一区二区三区| 久久综合狠狠综合久久综青草| 久久久无码精品亚洲日韩按摩| 免费一区视频| 国产精品日韩久久久久| 久久精品亚洲精品| 国产精品免费电影| 亚洲一区二区三区精品在线| 亚洲欧美三级伦理| 国产精品欧美精品| 午夜精品久久久久久久99水蜜桃 | 欧美自拍偷拍午夜视频| 国产日本精品| 久久婷婷一区| 亚洲国产成人av| 亚洲一区二区三区免费在线观看| 国产精品网站在线| 久久久999| 亚洲美女中文字幕| 久久精品国产99精品国产亚洲性色| 国产在线观看精品一区二区三区| 久久精品亚洲一区| 亚洲精品日产精品乱码不卡| 亚洲男女自偷自拍| 在线精品视频免费观看| 欧美精品18+| 午夜久久久久久| 一区二区av在线| 国产精品日本一区二区| 久久精品国产清自在天天线| 亚洲高清激情| 欧美一区二区三区四区在线| 黄色精品一区二区| 欧美日韩午夜| 久久激情五月婷婷| 9人人澡人人爽人人精品| 久久久欧美一区二区| 99精品久久久| 黑人一区二区| 国产精品国产精品| 欧美成人精品在线| 久久精品国产精品亚洲精品| 99热免费精品在线观看| 欧美99在线视频观看| 亚洲欧美www| 亚洲精品乱码久久久久久黑人 | 亚洲国产欧美日韩精品| 国产精品高潮呻吟久久| 麻豆免费精品视频| 亚洲国内在线| 久久婷婷久久| 亚洲一区二区高清视频| 亚洲丰满在线| 欧美成人精品在线观看| 亚洲永久精品国产| 亚洲黑丝在线| 免费欧美高清视频| 久久久成人精品| 亚洲欧美日韩中文视频| 99国产精品久久久久老师| 国产一区观看|