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

            隨筆分類

            搜索

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            青青久久精品国产免费看| 91精品免费久久久久久久久| 综合久久一区二区三区| 久久婷婷是五月综合色狠狠| 色偷偷88888欧美精品久久久| 成人国内精品久久久久影院| 亚洲成av人片不卡无码久久| 热re99久久6国产精品免费| 夜夜亚洲天天久久| 久久久精品人妻一区二区三区蜜桃 | 久久精品国产72国产精福利| 国产精品99久久久精品无码 | 色欲综合久久躁天天躁蜜桃| 久久国产福利免费| 久久精品人成免费| 久久天天躁狠狠躁夜夜2020一| 精品综合久久久久久97超人 | 99999久久久久久亚洲| 久久精品免费一区二区| 久久99精品久久久久久秒播| 精品久久久久久久久中文字幕| 波多野结衣久久| 久久久精品国产亚洲成人满18免费网站 | 久久久久久曰本AV免费免费| 久久国产美女免费观看精品| 波多野结衣中文字幕久久| 亚洲成色www久久网站夜月| 伊人久久一区二区三区无码| 久久久久亚洲?V成人无码| 狠狠久久综合伊人不卡| 亚洲国产成人久久综合碰碰动漫3d| 亚洲国产精品无码久久一线| 久久天天躁狠狠躁夜夜avapp| 亚洲AⅤ优女AV综合久久久| 中文字幕无码久久久| 无码国内精品久久人妻麻豆按摩| 久久精品国产精品亚洲艾草网美妙 | 久久精品国产久精国产思思 | 久久亚洲精品国产精品| 欧美亚洲色综久久精品国产| 久久国产亚洲精品无码|