<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                在PPAPI里面繪圖,可以結合第三方的圖形庫,比如Cairo、Skia。Google Chrome、Chromium和Android都使用Skia作為繪圖引擎,我也來試試Skia,先過編譯關。 > foruok原創,如需轉載請關注foruok的微信訂閱號“程序視界”聯系foruok。 # CEF編譯出的Skia不可單獨用 Chromium使用Skia,[**Windows下從源碼編譯CEF**](http://blog.csdn.net/foruok/article/details/50498740)說明了怎么編譯CEF,它會捎帶著編譯Chromium,里面有Skia,但它編譯出來的skia_library.lib無法單獨使用,加到VS工程里,報N多鏈接錯誤。 只好自己編譯了。 # 單獨編譯Skia Windows下編譯指南:[https://skia.org/user/quick/windows](https://skia.org/user/quick/windows)。首先你系統得有Python,我們編譯過CEF,有了。 下載skia到這里:[https://skia.org/user/download](https://skia.org/user/download)。需要使用git,depot_tools很全,什么都有。 我們之前編譯CEF,已自動下載depot_tools,在E:\sources\CEF\2526\depot_tools,設置到path中: ~~~ set path=E:\sources\CEF\2526\depot_tools;%path% ~~~ 然后使用git下載Skia: ~~~ git clone https://skia.googlesource.com/skia.git ~~~ 然后執行下列命令: ~~~ cd %SKIA_CHECKOUT_DIR% SET "GYP_GENERATORS=ninja,msvs" //告訴GYP,產生ninja構建文件和msvs構建文件 python bin/sync-and-gyp SET "GYP_GENERATORS=" ~~~ 上面命令完成后,基于ninja的構建文件在這里:E:\sources\skia\out\Release(Debug)\build.ninja。基于VS2013的解決方案在這里:E:\sources\skia\out\skia.sln。 我選擇編譯Release版本。默認編譯“most”目標,most.ninja在這里:E:\sources\skia\out\Release\obj\gyp,它指定編譯skia_lib和dm、SampleApp、HelloWorld等模塊。 編譯命令如下: ~~~ cd out\Release ninja ~~~ 編譯到effects模塊,出錯了,說: > ninja: build stopped: subcommand failed. 加個參數,再來: ~~~ ninja -v > skia_build.log ~~~ 研究skia_build.log,發現錯誤信息如下: > [6/1807] ninja -t msvc -e environment.x86 – “E:\software\VS2013_64_update4\VC\bin\amd64_x86\cl.exe” /nologo /showIncludes /FC @obj\tools\imgslice.imgslice.obj.rsp /c ….\tools\imgslice.cpp /Foobj\tools\imgslice.imgslice.obj /Fdimgslice.pdb FAILED: ninja -t msvc -e environment.x86 – “E:\software\VS2013_64_update4\VC\bin\amd64_x86\cl.exe” /nologo /showIncludes /FC @obj\src\effects\effects.SkDisplacementMapEffect.obj.rsp /c ….\src\effects\SkDisplacementMapEffect.cpp /Foobj\src\effects\effects.SkDisplacementMapEffect.obj /Fdeffects.pdb e:\sources\skia\src\effects\skdisplacementmapeffect.cpp : error C2220: 警告被視為錯誤 - 沒有生成“object”文件 e:\sources\skia\src\effects\skdisplacementmapeffect.cpp : warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件保存為 Unicode 格式以防止數據丟失 錯誤C2220是因為把所有警告當做錯誤了,編譯時加了/WX標記。而警告C4819,MSDN說,“在具有不能表示文件中所有字符的代碼頁的系統上編譯ANSI 源文件時,出現C4819”。記得之前編譯CEF(參考[**Windows下從源碼編譯CEF**](http://blog.csdn.net/foruok/article/details/50498740))時說要設置系統locale為英文,再試試吧。 (⊙o⊙)…,真過了。 編譯完成后,lib文件和exe文件都在E:\sources\skia\out\Release目錄下。有這么些skia庫,見下圖: ![skialibs](https://box.kancloud.cn/2016-02-22_56caac343f2e6.jpg "") 試著運行一下HelloWorld.exe(在E:\sources\skia\out\Release目錄下),效果如下圖: ![helloworld](https://box.kancloud.cn/2016-02-22_56caac3452645.jpg "") 嗯,不錯,可以繼續前進了。下次我會把PPAPI和Skia結合起來試試。 其他參考文章: - [**CEF Windows開發環境搭建**](http://blog.csdn.net/foruok/article/details/50468642) - [**CEF加載PPAPI插件**](http://blog.csdn.net/foruok/article/details/50485448) - [**VS2013編譯最簡單的PPAPI插件**](http://blog.csdn.net/foruok/article/details/50485461) - [**理解PPAPI的設計**](http://blog.csdn.net/foruok/article/details/50486788) - [**PPAPI插件與瀏覽器的交互過程**](http://blog.csdn.net/foruok/article/details/50494061) - [**Windows下從源碼編譯CEF**](http://blog.csdn.net/foruok/article/details/50498740) - [**編譯PPAPI的media_stream_video示例**](http://blog.csdn.net/foruok/article/details/50498873) - [**PPAPI插件的繪圖與輸入事件處理**](http://blog.csdn.net/foruok/article/details/50499813) - [**在PPAPI插件中創建本地窗口**](http://blog.csdn.net/foruok/article/details/50513228) - [**PPAPI插件與瀏覽器的通信**](http://blog.csdn.net/foruok/article/details/50513315)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看