• <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>

            AGG入門(一) - 配置開發(fā)環(huán)境

            AGG是一個(gè)高效的、高質(zhì)量的、開源的矢量圖形庫(kù),類似的有:GTK+的Cairo,Microsoft的GDI+。在三者中,AGG的性能是最高的(不討論Skia和Direct2D,他們有OGL和DX的硬件加速,繪圖速度根本不是一個(gè)檔次的)。讓我們細(xì)數(shù)一下他的優(yōu)缺點(diǎn):
            • 優(yōu)點(diǎn):效率高,質(zhì)量高(有反鋸齒),功能強(qiáng)大,跨平臺(tái)和平臺(tái)GUI支持,……
            • 缺點(diǎn):沒有硬件加速,文檔少,門檻有那么點(diǎn)高,……
             

            一、準(zhǔn)備

             

            二、工作

            1. 在VC6里新建一個(gè)工程“AGG”,類型為靜態(tài)庫(kù)Win32 Static Library

            2. 將下列源文件都加入工程:

              1. ./src/ 目錄下所有cpp文件【核心庫(kù)】*
              2. ./src/ctrl/ 目錄下所有cpp文件【控件庫(kù)】*
              3. ./src/platform/ 下對(duì)應(yīng)平臺(tái)目錄(win32)下的所有cpp文件【平臺(tái)支持庫(kù)】*
              4. ./font_freetype/ 下所有的cpp文件【Freetype字體支持庫(kù)】
              5. ./font_win32_tt/ 下所有的cpp文件【Truetype字體支持庫(kù)】*
              6. ./gpc/ 下所有的cpp文件【Generic Polygon Clipper裁切庫(kù)】
            3. 將下列目錄加入Tools(工具)菜單– Options(選項(xiàng))菜單 – Directory(目錄)選項(xiàng)卡中的Include Files目錄列表中:

              1. ./include/ *
              2. ./font_freetype/
              3. ./font_win32_tt/ *
              4. ./gpc/
            4. 選擇配置為Win32 Release,編譯

            5. 編譯成功后,Tools(工具)菜單– Options(選項(xiàng))菜單 – Directory(目錄)選項(xiàng)卡中的Library Files目錄列表中加入 【工程所在目錄】\Release\

            6. 沒有成功編譯的童鞋,獎(jiǎng)勵(lì)已經(jīng)編譯好的AGG.lib一枚…… AGG.zip

            三、測(cè)試

            1. 新建一個(gè)Win32 Application 空工程,新建一源文件,加入下面的代碼:
              #include <agg_pixfmt_rgb.h>
              #include <agg_renderer_base.h>
              #include <platform/agg_platform_support.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(204, 204, 204));
                  }

              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;
              }
            2. 在【工程】菜單 - 【設(shè)置】菜單 - 【連接】選項(xiàng)卡 - 【對(duì)象/庫(kù)模塊】文本框 中加入AGG.lib
            3. 編譯運(yùn)行,不出意外,可以得到下面的結(jié)果:

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

            評(píng)論

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-15 22:32 戰(zhàn)魂小筑

            來(lái)圍觀下經(jīng)典的樓主,都用win7了,還抓著vc6不放啊?  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-15 22:42 Shihira

            @戰(zhàn)魂小筑
            Win7就由得它Win7吧
            VC6是最“落后”的編譯器,能通過它的編譯,那些代碼就是已經(jīng)不含什么新標(biāo)準(zhǔn)的特性。這樣不但能跨編譯器,還能跨平臺(tái),夠穩(wěn)定  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-16 09:22 戰(zhàn)魂小筑

            @Shihira
            GCC現(xiàn)在兼容性很好了, VC代碼只要不是特別晦澀的模板都沒問題.
            除非做硬件, 否則還是盡量升級(jí)版本

            VC6怕的就是BUG...當(dāng)年被折騰慘了  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-16 09:36 Shihira

            @戰(zhàn)魂小筑
            實(shí)際上……偶也用Code::Blocks中,但是它的函數(shù)提示非常之不好用,稍微用宏替一下,就像Win32API里的:
            #ifdef _UNICODE
            #define .... ....W
            #else
            #define .... ....A
            #endif
            他就不讓提示了
            至于VC6,升了Intel編譯器,用了Visual Assist X,倒也沒什么不好,我也習(xí)慣了它的界面  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-16 09:38 戰(zhàn)魂小筑

            @Shihira
            老兄, 用一把vs2010, 你會(huì)愛上她的. 超級(jí)高效了
            不像很多人用過2003后就把之后.net版本VC都否定了, 現(xiàn)在已經(jīng)改的很好了  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-16 09:59 Shihira

            @戰(zhàn)魂小筑
            因?yàn)槲矣眠^2008 在我的老爺機(jī)上運(yùn)行起來(lái)那叫一個(gè)卡 然后之后的版本我都不敢用了 或許我可以試一下 謝謝你的建議  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-16 13:17 imjj

            skia 不用硬件加速也比 agg 要好一些吧,至少更新比較勤快,有人在專門維護(hù) agg 都多久了……  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-16 20:44 Shihira

            @imjj
            skia是好東西,只不過他移植編譯神馬的有點(diǎn)繁...至于AGG……因?yàn)槟居杏辛Φ墓局С郑淅淝迩澹芫脹]更新啦
            不過不可否認(rèn)他也是好東西,適應(yīng)能力很強(qiáng)  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2013-02-19 12:11 crax

            你好 agg是個(gè)非常優(yōu)秀的庫(kù) 一直想拿來(lái)應(yīng)用到項(xiàng)目中 目前的示例好像都是基于agg自身的框加 博主能否提供在其它環(huán)境下使用的示例。如在mfc中 或是在其它的開源框架使用的示例。  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2013-06-09 16:41 yanghl03

            樓主你好,我的AGG庫(kù)編譯通過了,但測(cè)試的時(shí)候出問題了,麻煩你幫我看一下,錯(cuò)誤如下:
            AGG.lib(agg_platform_support.obj) : error LNK2001: unresolved external symbol "int __cdecl agg_main(int,char * * const)" (?agg_main@@YAHHQAPAD@Z)
            F:\3D city map\AGG\Release\testAGG.exe : fatal error LNK1120: 1 unresolved externals

            謝謝了
              回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2013-10-28 12:33 Shihira

            @yanghl03
            是這樣的。你在你的源文件里需要用agg_main函數(shù)來(lái)代替main或WinMain函數(shù),因?yàn)閃inMain函數(shù)已經(jīng)在agg_platform_support.cpp里被寫好了,在里面將會(huì)調(diào)用agg_main。  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2014-06-20 10:55 JackMichaelis

            編譯靜態(tài)庫(kù)的過程報(bào)錯(cuò):找不到ft2build.h  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2014-06-21 00:06 Shihria

            @JackMichaelis
            我沒有遇到這樣的情況,可能你需要安裝一個(gè)freetype2到電腦上  回復(fù)  更多評(píng)論   

            導(dǎo)航

            統(tǒng)計(jì)

            公告

            留言簿(2)

            隨筆分類

            搜索

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            99久久精品这里只有精品| 久久久久无码中| 国产精品欧美久久久天天影视| 色欲久久久天天天综合网精品 | 丁香久久婷婷国产午夜视频| 91精品国产高清久久久久久国产嫩草| 国产精品成人久久久久久久| 久久精品国产99久久久古代 | 亚洲v国产v天堂a无码久久| 奇米综合四色77777久久| 久久婷婷五月综合色99啪ak| 精品国产乱码久久久久久1区2区| 欧美日韩成人精品久久久免费看| jizzjizz国产精品久久| 亚洲精品美女久久久久99| 大香网伊人久久综合网2020| 99久久超碰中文字幕伊人| 99久久精品免费看国产一区二区三区 | 久久国产精品-久久精品| 国产精品成人久久久| 久久国产乱子伦精品免费午夜| 久久精品国产99国产电影网 | 日本加勒比久久精品| 东京热TOKYO综合久久精品| 日本久久久久亚洲中字幕| 少妇熟女久久综合网色欲| 久久一区二区三区免费| 97精品伊人久久久大香线蕉| 久久免费小视频| 久久精品国产99国产电影网| 久久se精品一区精品二区| 国产精品久久免费| 99国内精品久久久久久久| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 久久国产成人亚洲精品影院| 99久久婷婷国产一区二区| 99久久精品国产一区二区蜜芽| 狠狠干狠狠久久| 91久久精品无码一区二区毛片| 久久免费国产精品一区二区| 精品久久久久中文字|