| Index: native_client_sdk/doc_generated/devguide/devcycle/vs-addin.html
|
| diff --git a/native_client_sdk/doc_generated/devguide/devcycle/vs-addin.html b/native_client_sdk/doc_generated/devguide/devcycle/vs-addin.html
|
| index c6dfe083346d4ee1b9ea03bbf0585b679fd300f3..e77b0e2cf9881fb2b307720aa6ad80234f5bbb0c 100644
|
| --- a/native_client_sdk/doc_generated/devguide/devcycle/vs-addin.html
|
| +++ b/native_client_sdk/doc_generated/devguide/devcycle/vs-addin.html
|
| @@ -52,7 +52,6 @@ The Native Client add-in requires Visual Studio 2010 with Service Pack 1. No
|
| other versions of Visual Studio are currently supported. Visual Studio
|
| Express is also not supported.
|
| </aside>
|
| -<section id="introduction">
|
| <h2 id="introduction">Introduction</h2>
|
| <p>The Native Client add-in for Visual Studio helps you develop your application
|
| more efficiently in many ways:</p>
|
| @@ -80,7 +79,6 @@ properties of your project so it can be built and run as either a Pepper plugin
|
| or a Native Client module. The platforms also define the behavior associated
|
| with the debug command so you can test your code while running in Visual
|
| Studio.</p>
|
| -</section><section id="platforms">
|
| <h2 id="platforms">Platforms</h2>
|
| <p>It is helpful to consider the Visual Studio add-in platforms in two groups. One
|
| contains the PPAPI platform only. The other group, which we’ll call the Native
|
| @@ -97,7 +95,6 @@ your Native Client module, and also attaches an appropriate debugger.</p>
|
| code.</p>
|
| <p>When you run your project, Visual Studio launches the PPAPI and Native Client
|
| platforms in different ways, as explained in the next sections.</p>
|
| -<section id="the-ppapi-platform">
|
| <h3 id="the-ppapi-platform">The PPAPI platform</h3>
|
| <p>The PPAPI platform builds your module as a dynamic library and launches a
|
| version of Chrome that’s configured to run the library as a plugin when it
|
| @@ -109,7 +106,6 @@ existing code incrementally, rewriting functions using the PPAPI interfaces one
|
| piece at a time. Since the module is built with Visual Studio’s native compiler
|
| (MSBuild) you can use the Visual Studio debugger to control and inspect your
|
| code.</p>
|
| -</section><section id="the-native-client-platforms">
|
| <h3 id="the-native-client-platforms">The Native Client platforms</h3>
|
| <p>There are four Native Client platforms. All of them can be used to build Native
|
| Client modules. When you run one of the Native Client platforms Visual Studio
|
| @@ -118,7 +114,6 @@ builds the corresponding type of Native Client module (either a .nexe or
|
| fetches the module from the server and runs it. Visual Studio will also open a
|
| terminal window, launch an instance of nacl-gdb, and attach it to your module’s
|
| process so you can use gdb commands to debug.</p>
|
| -<section id="nacl32-and-nacl64">
|
| <h4 id="nacl32-and-nacl64">NaCl32 and NaCl64</h4>
|
| <p>The platforms named NaCl32 and NaCl64 are targeted at x86 32-bit and 64-bit
|
| systems respectively. You need both platforms to build a full set of .nexe
|
| @@ -126,7 +121,6 @@ files when you are ready to distribute your application. Note, however, that
|
| when you are testing in Visual Studio you must select the NaCl64 platform
|
| (because Chrome for Windows runs Native Client in a 64-bit process). If you try
|
| to run from the NaCl32 platform you will get an error message.</p>
|
| -</section><section id="naclarm">
|
| <h4 id="naclarm">NaClARM</h4>
|
| <p>The NaClARM platform is targeted at ARM-based processors. You can build .nexe
|
| files with the NaClARM platform in Visual Studio but you cannot run them from
|
| @@ -138,7 +132,6 @@ testing your module in Chrome.</p>
|
| <aside class="note">
|
| Note: The NaClARM platform currently supports the newlib toolchain only.
|
| </aside>
|
| -</section><section id="pnacl">
|
| <h4 id="pnacl">PNaCl</h4>
|
| <p>The PNaCl (portable NaCl) platform is included in the Visual Studio Native
|
| Client add-in versions 1.1 and higher. It supports the .pexe file format. A
|
| @@ -153,7 +146,6 @@ it as if you were working with a NaCl64 platform.</p>
|
| <aside class="note">
|
| Note: The PNaCl platform currently supports the newlib toolchain only.
|
| </aside>
|
| -</section></section></section><section id="installing-the-add-in">
|
| <h2 id="installing-the-add-in">Installing the add-in</h2>
|
| <p>In order to use the Native Client Visual Studio add-in, your development
|
| environment should include:</p>
|
| @@ -168,7 +160,6 @@ your regular version of Chrome.</li>
|
| bundle or greater. The version of Chrome that you use must be equal or
|
| greater than the version of the SDK bundle.</li>
|
| </ul>
|
| -<section id="set-environment-variables">
|
| <h3 id="set-environment-variables">Set environment variables</h3>
|
| <p>Before you run the installer you must define two Windows environment variables.
|
| They point to the bundle in the Native Client SDK that you use to build your
|
| @@ -200,7 +191,6 @@ SxS\Application\chrome.exe</code></td>
|
| </tr>
|
| </tbody>
|
| </table>
|
| -</section><section id="download-the-add-in">
|
| <h3 id="download-the-add-in">Download the add-in</h3>
|
| <p>The Native Client Visual Studio add-in is a separate bundle in the SDK named
|
| <code>vs_addin</code>. Open a command prompt window, go to the top-level SDK directory,
|
| @@ -214,7 +204,6 @@ installer files, and a directory of examples.</p>
|
| Note: The vs_addin bundle is only visible when you run <code>naclsdk</code> on a
|
| Windows system.
|
| </aside>
|
| -</section><section id="run-the-installer">
|
| <h3 id="run-the-installer">Run the installer</h3>
|
| <p>The installer script is located inside the <code>vs_addin</code> folder in the SDK.
|
| Right click on the file <code>install.bat</code> and run it as administrator.</p>
|
| @@ -245,12 +234,10 @@ administrator.</p>
|
| selecting Add-in Manager in the Visual Studio Tools menu. If the add-in has
|
| been installed it will appear in the list of available add-ins. Select it and
|
| read its description.</p>
|
| -</section></section><section id="try-the-hello-world-gles-sample-project">
|
| <h2 id="try-the-hello-world-gles-sample-project">Try the <code>hello_world_gles</code> sample project</h2>
|
| <p>The add-in comes with an examples directory. Open the sample project
|
| <code>examples\hello_world_gles\hello_world_gles.sln</code>. This project is an
|
| application that displays a spinning cube.</p>
|
| -<section id="select-the-nacl64-platform">
|
| <h3 id="select-the-nacl64-platform">Select the NaCl64 platform</h3>
|
| <p>Open the sample project in Visual Studio, select the <code>Configuration Manager</code>,
|
| and confirm that the active solution configuration is <code>Debug</code> and the active
|
| @@ -259,7 +246,6 @@ project platform is <code>NaCl64</code>. Note that the platform for the
|
| <code>Configuration Manager</code> from the <code>Build</code> menu or the project’s
|
| <code>Properties</code> window.)</p>
|
| <img alt="/native-client/images/visualstudio1.png" src="/native-client/images/visualstudio1.png" />
|
| -</section><section id="build-and-run-the-project">
|
| <h3 id="build-and-run-the-project">Build and run the project</h3>
|
| <p>Use the debugging command (F5) to build and run the project. As the wheels
|
| start to turn, you may be presented with one or more alerts. They are benign;
|
| @@ -287,7 +273,6 @@ Stop the debugging session by closing the Chrome window, or select the stop
|
| debugging command from the debug menu. The nacl-gdb window will close when
|
| you stop running the program.</li>
|
| </ol>
|
| -</section><section id="test-the-nacl-gdb-debugger">
|
| <h3 id="test-the-nacl-gdb-debugger">Test the nacl-gdb debugger</h3>
|
| <p>Add a breakpoint at the SwapBuffers call in the function MainLoop, which is in
|
| hello_world.cc.</p>
|
| @@ -297,25 +282,21 @@ nacl-gcb and the program will pause there. Type c to continue running. You can
|
| use gdb commands to set more breakpoints and step through the application. For
|
| details, see <a class="reference internal" href="/native-client/devguide/devcycle/debugging.html#using-gdb"><em>Debugging with nacl-gdb</em></a> (scroll down to the end
|
| of the section to see some commonly used gdb commands).</p>
|
| -</section><section id="test-the-visual-studio-debugger">
|
| <h3 id="test-the-visual-studio-debugger">Test the Visual Studio debugger</h3>
|
| <p>If you’ve installed the <code>PPAPI</code> platform, go back to the <code>Configuration
|
| Manager</code> and select the <code>PPAPI</code> platform. This time when Chrome launches the
|
| <code>nacl-gdb</code> window will not appear; the Visual Studio debugger is fully
|
| engaged and on the job.</p>
|
| -</section><section id="inspect-the-platform-properties">
|
| <h3 id="inspect-the-platform-properties">Inspect the platform properties</h3>
|
| <p>At this point, it may be helpful to take a look at the properties that are
|
| associated with the PPAPI and Native Client platforms—see the settings in the
|
| sample project as an example.</p>
|
| -</section></section><section id="developing-for-native-client-in-visual-studio">
|
| <h2 id="developing-for-native-client-in-visual-studio">Developing for Native Client in Visual Studio</h2>
|
| <p>After you’ve installed the add-in and tried the sample project, you’re ready to
|
| start working with your own code. You can reuse the sample project and the
|
| PPAPI and Native Client platforms it already has by replacing the source code
|
| with your own. More likely, you will add the platforms to an existing project,
|
| or to a new project that you create from scratch.</p>
|
| -<section id="adding-platforms-to-a-project">
|
| <h3 id="adding-platforms-to-a-project">Adding platforms to a project</h3>
|
| <p>Follow these steps to add the Native Client and PPAPI platforms to a project:</p>
|
| <ol class="arabic simple">
|
| @@ -345,7 +326,6 @@ Configuration type is correct:<ul class="small-gap">
|
| </ul>
|
| </li>
|
| </ol>
|
| -</section><section id="selecting-a-toolchain">
|
| <h3 id="selecting-a-toolchain">Selecting a toolchain</h3>
|
| <p>When you build a Native Client module directly from the SDK you can use two
|
| different toolchains, newlib or glibc. See <a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loading.html"><em>Dynamic Linking and Loading
|
| @@ -359,7 +339,6 @@ Currently, the NaClARM and PNaCl platforms only support the newlib toolchain.
|
| </aside>
|
| <p>There is no toolchain property for the PPAPI platform. The PPAPI platform uses
|
| the toolchain and libraries that come with Visual Studio.</p>
|
| -</section><section id="adding-libraries-to-a-project">
|
| <h3 id="adding-libraries-to-a-project">Adding libraries to a project</h3>
|
| <p>If your Native Client application requires libraries that are not included in
|
| the SDK you must add them to the project properties (under <code>Configuration
|
| @@ -368,11 +347,9 @@ Visual Studio project. This list of dependencies is a semi-colon delimited
|
| list. On the PPAPI platform the library names include the .lib extension (e.g.,
|
| <code>ppapi_cpp.lib;ppapi.lib</code>). On the Native Client platforms the extension is
|
| excluded (e.g., <code>ppapi_cpp;ppapi</code>).</p>
|
| -</section><section id="running-a-web-server">
|
| <h3 id="running-a-web-server">Running a web server</h3>
|
| <p>In order for the Visual Studio add-in to test your Native Client module, you
|
| must serve the module from a web server. There are two options:</p>
|
| -<section id="running-your-own-server">
|
| <h4 id="running-your-own-server">Running your own server</h4>
|
| <p>When you start a debug run Visual Studio launches Chrome and tries to connect
|
| to the web server at the address found in the Chrome command arguments (see the
|
| @@ -382,7 +359,6 @@ specify its address in the command arguments property, and confirm that your
|
| server is running before starting a debug session. Also be certain that the
|
| server has all the files it needs to deliver a Native Client module (see
|
| “Keeping track of all the pieces”, below).</p>
|
| -</section><section id="running-the-sdk-server">
|
| <h4 id="running-the-sdk-server">Running the SDK server</h4>
|
| <p>If there is no web server running at the specified port, Visual Studio will try
|
| to launch the simple Python web server that comes with the Native Client SDK.
|
| @@ -392,7 +368,6 @@ It looks for a copy of the server in the SDK itself (at
|
| Visual Studio launches the server. The server output appears in Visual Studio’s
|
| Output window, in the pane named “Native Client Web Server Output”. A server
|
| launched in this way is terminated when the debugging session ends.</p>
|
| -</section></section><section id="keeping-track-of-all-the-pieces">
|
| <h3 id="keeping-track-of-all-the-pieces">Keeping track of all the pieces</h3>
|
| <p>No matter where the web server lives or how it’s launched you must make sure
|
| that it has all the files that your application needs:</p>
|
| @@ -433,7 +408,6 @@ contains html files built with both toolchains (<code>index_glibc.html</code> an
|
| <code>index_newlib.html</code>). The .nexe and .nmf files are found in the newlib and
|
| glibc subfolders. For additional information about the parts of a Native Client
|
| application, see <a class="reference internal" href="/native-client/devguide/coding/application-structure.html"><em>Application Structure</em></a>.</p>
|
| -</section><section id="using-the-debuggers">
|
| <h3 id="using-the-debuggers">Using the debuggers</h3>
|
| <p>PPAPI plugins are built natively by Visual Studio’s compiler (MSBuild), and
|
| work with Visual Studio’s debugger in the usual way. You can set breakpoints in
|
| @@ -464,12 +438,10 @@ debugger to attach. If you use the Start Without Debugging command, no debugger
|
| attaches and Chrome just waits patiently. To use Start Without Debugging,
|
| switch to the Release configuration, or manually remove the offending argument
|
| from the <code>Command Arguments</code> property.</p>
|
| -</section><section id="disable-chrome-caching">
|
| <h3 id="disable-chrome-caching">Disable Chrome caching</h3>
|
| <p>When you debug with a Native Client platform you might want to <a class="reference internal" href="/native-client/devguide/devcycle/running.html#cache"><em>disable
|
| Chrome’s cache</em></a> to be sure you are testing your latest and greatest
|
| code.</p>
|
| -</section><section id="a-warning-about-postmessage">
|
| <h3 id="a-warning-about-postmessage">A warning about PostMessage</h3>
|
| <p>Some Windows libraries define the symbol <code>PostMessage</code> as <code>PostMessageW</code>.
|
| This can cause havoc if you are working with the PPAPI platform and you use the
|
| @@ -482,7 +454,6 @@ testing on the PPAPI platform. Here it is:</p>
|
| #undef PostMessage
|
| #endif
|
| </pre>
|
| -</section><section id="porting-windows-applications-to-native-client-in-visual-studio">
|
| <h3 id="porting-windows-applications-to-native-client-in-visual-studio">Porting Windows applications to Native Client in Visual Studio</h3>
|
| <p>At Google I/O 2012 we demonstrated how to port a Windows desktop application to
|
| Native Client in 60 minutes. The <a class="reference external" href="http://www.youtube.com/watch?v=1zvhs5FR0X8&feature=plcp">video</a> is available to
|
| @@ -503,13 +474,11 @@ can run in either the <code>PPAPI</code> or the <code>NaCl64</code> platform.</p
|
| progressively defining the symbols STEP1 through STEP6 in the source. Inline
|
| comments explain how each successive step changes the code. View the example
|
| code to see how it’s actually done. Here is a summary of the process:</p>
|
| -<section id="win32-platform">
|
| <h4 id="win32-platform">Win32 Platform</h4>
|
| <dl class="docutils">
|
| <dt>STEP1 Run the desktop application</dt>
|
| <dd>Begin by running the original Windows application in the Win32 platform.</dd>
|
| </dl>
|
| -</section><section id="ppapi-platform">
|
| <h4 id="ppapi-platform">PPAPI Platform</h4>
|
| <dl class="docutils">
|
| <dt>STEP2 Launch Chrome with an empty Native Client module</dt>
|
| @@ -536,13 +505,12 @@ porting pieces of the application one feature at a time.</dd>
|
| <dd>All the Windows code is def’d out, proving we are PPAPI-compliant. The
|
| functional code that is running is the same as STEP5.</dd>
|
| </dl>
|
| -</section><section id="nacl64-platform">
|
| <h4 id="nacl64-platform">NaCl64 Platform</h4>
|
| <dl class="docutils">
|
| <dt>Run the Native Client Module in the NaCl64 platform</dt>
|
| <dd>You are still running the STEP6 code, but as a Native Client module rather
|
| than a Pepper plugin.</dd>
|
| </dl>
|
| -</section></section></section></section>
|
| +</section>
|
|
|
| {{/partials.standard_nacl_api}}
|
|
|