• <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入門(一) - 配置開發環境

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

            一、準備

             

            二、工作

            1. 在VC6里新建一個工程“AGG”,類型為靜態庫Win32 Static Library

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

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

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

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

            6. 沒有成功編譯的童鞋,獎勵已經編譯好的AGG.lib一枚…… AGG.zip

            三、測試

            1. 新建一個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. 在【工程】菜單 - 【設置】菜單 - 【連接】選項卡 - 【對象/庫模塊】文本框 中加入AGG.lib
            3. 編譯運行,不出意外,可以得到下面的結果:

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

            評論

            # re: AGG入門(一) - 配置開發環境 2012-07-15 22:32 戰魂小筑

            來圍觀下經典的樓主,都用win7了,還抓著vc6不放啊?  回復  更多評論   

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

            @戰魂小筑
            Win7就由得它Win7吧
            VC6是最“落后”的編譯器,能通過它的編譯,那些代碼就是已經不含什么新標準的特性。這樣不但能跨編譯器,還能跨平臺,夠穩定  回復  更多評論   

            # re: AGG入門(一) - 配置開發環境 2012-07-16 09:22 戰魂小筑

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

            VC6怕的就是BUG...當年被折騰慘了  回復  更多評論   

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

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

            # re: AGG入門(一) - 配置開發環境 2012-07-16 09:38 戰魂小筑

            @Shihira
            老兄, 用一把vs2010, 你會愛上她的. 超級高效了
            不像很多人用過2003后就把之后.net版本VC都否定了, 現在已經改的很好了  回復  更多評論   

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

            @戰魂小筑
            因為我用過2008 在我的老爺機上運行起來那叫一個卡 然后之后的版本我都不敢用了 或許我可以試一下 謝謝你的建議  回復  更多評論   

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

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

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

            @imjj
            skia是好東西,只不過他移植編譯神馬的有點繁...至于AGG……因為木有有力的公司支持,冷冷清清,很久沒更新啦
            不過不可否認他也是好東西,適應能力很強  回復  更多評論   

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

            你好 agg是個非常優秀的庫 一直想拿來應用到項目中 目前的示例好像都是基于agg自身的框加 博主能否提供在其它環境下使用的示例。如在mfc中 或是在其它的開源框架使用的示例。  回復  更多評論   

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

            樓主你好,我的AGG庫編譯通過了,但測試的時候出問題了,麻煩你幫我看一下,錯誤如下:
            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

            謝謝了
              回復  更多評論   

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

            @yanghl03
            是這樣的。你在你的源文件里需要用agg_main函數來代替main或WinMain函數,因為WinMain函數已經在agg_platform_support.cpp里被寫好了,在里面將會調用agg_main。  回復  更多評論   

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

            編譯靜態庫的過程報錯:找不到ft2build.h  回復  更多評論   

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

            @JackMichaelis
            我沒有遇到這樣的情況,可能你需要安裝一個freetype2到電腦上  回復  更多評論   

            導航

            統計

            公告

            留言簿(2)

            隨筆分類

            搜索

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲日本久久久午夜精品| 国产精品久久久久久吹潮| 国产成年无码久久久久毛片| 亚洲日韩欧美一区久久久久我| 久久综合综合久久97色| 久久精品毛片免费观看| 欧美黑人又粗又大久久久| 无码人妻久久一区二区三区免费丨 | 亚洲中文久久精品无码| 伊人久久大香线蕉综合网站 | 欧美性大战久久久久久| 久久国产热这里只有精品| 久久精品国产亚洲AV无码娇色| 亚洲午夜久久久久久久久电影网| 久久久久精品国产亚洲AV无码| 伊人久久综合成人网| 久久久久久久人妻无码中文字幕爆| 久久综合给合久久国产免费| 色偷偷88888欧美精品久久久 | 久久久精品2019免费观看| 热re99久久6国产精品免费| 久久这里只精品99re66| 色欲久久久天天天综合网| 97精品国产91久久久久久| 7777久久亚洲中文字幕| 韩国三级大全久久网站| 久久性精品| 亚洲欧美日韩久久精品第一区| 久久线看观看精品香蕉国产| 色综合色天天久久婷婷基地| 亚洲国产成人久久笫一页| 亚洲国产欧洲综合997久久| 国产精品免费看久久久| 久久激情亚洲精品无码?V| 伊人久久综合无码成人网| 99精品久久久久久久婷婷| 久久中文字幕精品| 久久久综合九色合综国产| 九九热久久免费视频| 欧美va久久久噜噜噜久久| 久久久精品久久久久特色影视|