init
This commit is contained in:
commit
f698a38c7e
585 changed files with 118338 additions and 0 deletions
|
@ -0,0 +1,183 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Platform Details | Universal Windows Platform</title>
|
||||
<link rel="stylesheet" href="style/docs.css">
|
||||
<link rel="stylesheet" href="style/code_highlight.css">
|
||||
<script type="text/javascript" src="scripts/language-selector.js"></script></head>
|
||||
<body>
|
||||
<div class="docs-body">
|
||||
<div class="manual-toc">
|
||||
<p>FMOD Engine User Manual 2.03</p>
|
||||
<ul>
|
||||
<li><a href="welcome.html">Welcome to the FMOD Engine</a></li>
|
||||
<li><a href="studio-guide.html">Studio API Guide</a></li>
|
||||
<li><a href="core-guide.html">Core API Guide</a></li>
|
||||
<li class="manual-current-chapter manual-inactive-chapter"><a href="platforms.html">Platform Details</a><ul class="subchapters"><li><a href="platforms-win.html">Windows</a></li><li><a href="platforms-mac.html">Mac</a></li><li><a href="platforms-linux.html">Linux</a></li><li><a href="platforms-ios.html">iOS</a></li><li><a href="platforms-android.html">Android</a></li><li><a href="platforms-openharmony.html">Open Harmony</a></li><li class="manual-current-chapter manual-active-chapter"><a href="platforms-uwp.html">Universal Windows Platform</a></li><li><a href="platforms-html5.html">HTML5</a></li></ul></li>
|
||||
<li><a href="white-papers.html">White Papers</a></li>
|
||||
<li><a href="studio-api.html">Studio API Reference</a></li>
|
||||
<li><a href="core-api.html">Core API Reference</a></li>
|
||||
<li><a href="fsbank-api.html">FSBank API Reference</a></li>
|
||||
<li><a href="plugin-api.html">Plug-in API Reference</a></li>
|
||||
<li><a href="effects-reference.html">Effects Reference</a></li>
|
||||
<li><a href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li><a href="glossary.html">Glossary</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="manual-content api">
|
||||
<h1>4. Platform Details | Universal Windows Platform</h1>
|
||||
<div class="toc">
|
||||
<ul>
|
||||
<li><a href="#uwp-specific-starter-guide">UWP Specific Starter Guide</a><ul>
|
||||
<li><a href="#sdk-version">SDK Version</a></li>
|
||||
<li><a href="#compatibility">Compatibility</a></li>
|
||||
<li><a href="#libraries">Libraries</a></li>
|
||||
<li><a href="#plug-ins">Plug-ins</a></li>
|
||||
<li><a href="#permissions">Permissions</a></li>
|
||||
<li><a href="#thread-affinity">Thread Affinity</a></li>
|
||||
<li><a href="#thread-priority">Thread Priority</a></li>
|
||||
<li><a href="#port-support">Port Support</a><ul>
|
||||
<li><a href="#background-music">Background Music</a></li>
|
||||
<li><a href="#pass-through">Pass Through</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#known-issues">Known Issues</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#performance-reference">Performance Reference</a><ul>
|
||||
<li><a href="#format-choice">Format Choice</a></li>
|
||||
<li><a href="#channel-count">Channel Count</a><ul>
|
||||
<li><a href="#settings">Settings</a></li>
|
||||
<li><a href="#test-device">Test Device</a></li>
|
||||
<li><a href="#results">Results</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h2 id="uwp-specific-starter-guide"><a href="#uwp-specific-starter-guide">UWP Specific Starter Guide</a></h2>
|
||||
<h3 id="sdk-version"><a href="#sdk-version">SDK Version</a></h3>
|
||||
<p>FMOD is compiled using the following tools.</p>
|
||||
<ul>
|
||||
<li><strong>Visual Studio</strong> - version 2017 targeting platform toolset v141</li>
|
||||
</ul>
|
||||
<h3 id="compatibility"><a href="#compatibility">Compatibility</a></h3>
|
||||
<p>FMOD supports devices of the below architectures running Windows 10.</p>
|
||||
<ul>
|
||||
<li><strong>x86</strong> - optimized with SSE3.</li>
|
||||
<li><strong>x64</strong> - optimized with SSE3 (and AVX if detected at runtime).</li>
|
||||
<li><strong>arm</strong> - optimized with VFPv2 (and NEON if detected at runtime).</li>
|
||||
</ul>
|
||||
<h3 id="libraries"><a href="#libraries">Libraries</a></h3>
|
||||
<p><em>The provided libs are import libraries which require the corresponding DLL to be present at runtime. Substitute $ARCH your desired architecture from the 'Compatibility' list above.</em></p>
|
||||
<p>Core API library</p>
|
||||
<ul>
|
||||
<li><strong>/api/core/lib/$ARCH/fmod.lib</strong> - Release binary for production code (requires fmod.dll at runtime).</li>
|
||||
<li><strong>/api/core/lib/$ARCH/fmodL.lib</strong> - Release binary with logging enabled for development (requires fmodL.dll at runtime).</li>
|
||||
</ul>
|
||||
<p>Studio API library (used in conjunction with the Core API library)</p>
|
||||
<ul>
|
||||
<li><strong>/api/studio/lib/$ARCH/fmodstudio.lib</strong> - Release binary for production code (requires fmodstudio.dll at runtime).</li>
|
||||
<li><strong>/api/studio/lib/$ARCH/fmodstudioL.lib</strong> - Release binary with logging enabled for development (requires fmodstudioL.dll at runtime).</li>
|
||||
</ul>
|
||||
<h3 id="plug-ins"><a href="#plug-ins">Plug-ins</a></h3>
|
||||
<p>FMOD includes a media foundation plug-in codec that can optionally be included in your game.</p>
|
||||
<ul>
|
||||
<li><strong>/api/plugins/media_foundation/lib/$ARCH/media_foundation.dll</strong></li>
|
||||
</ul>
|
||||
<p>This has been separated in order to support <a href="https://support.microsoft.com/en-us/windows/what-is-a-windows-7-n-edition-cc95bcfc-55dd-a11d-8120-7c0c1400c655">Windows N</a> by default - the media foundation plug-in is NOT compatible with Windows N unless the user installs the appropriate Media Feature Pack for Windows.</p>
|
||||
<p>If included, FMOD can use the codec to support WMA, ASF, WMV, M4A and MP4 files.</p>
|
||||
<h3 id="permissions"><a href="#permissions">Permissions</a></h3>
|
||||
<p>Some functionality inside of FMOD will require you set relevant capabilities in your manifest file.</p>
|
||||
<ul>
|
||||
<li><strong>Microphone</strong> - to make use of the <a class="apilink" href="core-api-system.html#system_recordstart">System::recordStart</a> API, see Known Issues for further notes about recording.</li>
|
||||
<li><strong>Internet (Client)</strong> - to stream audio from the internet.</li>
|
||||
<li><strong>Private Networks (Client & Server)</strong> - to use <a href="glossary.html#core-api-profiler-tool">FMOD profiler</a> or <a href="https://fmod.com/docs/2.03/studio/glossary.html#live-update">FMOD Studio live update</a>. See Known Issue for further notes about connecting.</li>
|
||||
</ul>
|
||||
<h3 id="thread-affinity"><a href="#thread-affinity">Thread Affinity</a></h3>
|
||||
<p>All threads will default to <a class="apilink" href="core-api-common.html#fmod_thread_affinity_core_all">FMOD_THREAD_AFFINITY_CORE_ALL</a>, this is recommended due to the wide variety of PC hardware but can be customized with <a class="apilink" href="core-api-common.html#thread_setattributes">Thread_SetAttributes</a>.</p>
|
||||
<h3 id="thread-priority"><a href="#thread-priority">Thread Priority</a></h3>
|
||||
<p>The relationship between FMOD platform agnostic thread priority and the platform specific values is as follows:</p>
|
||||
<ul>
|
||||
<li><a class="apilink" href="core-api-common.html#fmod_thread_priority_low">FMOD_THREAD_PRIORITY_LOW</a> ~ THREAD_PRIORITY_BELOW_NORMAL</li>
|
||||
<li><a class="apilink" href="core-api-common.html#fmod_thread_priority_medium">FMOD_THREAD_PRIORITY_MEDIUM</a> ~ THREAD_PRIORITY_NORMAL</li>
|
||||
<li><a class="apilink" href="core-api-common.html#fmod_thread_priority_high">FMOD_THREAD_PRIORITY_HIGH</a> ~ THREAD_PRIORITY_ABOVE_NORMAL</li>
|
||||
<li><a class="apilink" href="core-api-common.html#fmod_thread_priority_very_high">FMOD_THREAD_PRIORITY_VERY_HIGH</a> ~ THREAD_PRIORITY_HIGHEST</li>
|
||||
<li><a class="apilink" href="core-api-common.html#fmod_thread_priority_extreme">FMOD_THREAD_PRIORITY_EXTREME</a> ~ THREAD_PRIORITY_TIME_CRITICAL</li>
|
||||
<li><a class="apilink" href="core-api-common.html#fmod_thread_priority_critical">FMOD_THREAD_PRIORITY_CRITICAL</a> ~ THREAD_PRIORITY_TIME_CRITICAL</li>
|
||||
</ul>
|
||||
<h3 id="port-support"><a href="#port-support">Port Support</a></h3>
|
||||
<p>UWP supports the following port types when using <a class="apilink" href="core-api-system.html#fmod_outputtype_winsonic">FMOD_OUTPUTTYPE_WINSONIC</a>:</p>
|
||||
<ul>
|
||||
<li><a class="apilink" href="core-api-system.html#fmod_port_type_music">FMOD_PORT_TYPE_MUSIC</a></li>
|
||||
<li><a class="apilink" href="core-api-system.html#fmod_port_type_passthrough">FMOD_PORT_TYPE_PASSTHROUGH</a></li>
|
||||
</ul>
|
||||
<h4 id="background-music"><a href="#background-music">Background Music</a></h4>
|
||||
<p>The background music will bypass the operating system's virtual speaker processing. </p>
|
||||
<p>Below is a usage demonstration with error checking omitted for brevity:</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD</span><span class="o">::</span><span class="n">ChannelGroup</span> <span class="o">*</span><span class="n">bgm</span><span class="p">;</span>
|
||||
<span class="n">system</span><span class="o">-></span><span class="n">createChannelGroup</span><span class="p">(</span><span class="s">"BGM"</span><span class="p">,</span> <span class="o">&</span><span class="n">bgm</span><span class="p">);</span>
|
||||
<span class="n">system</span><span class="o">-></span><span class="n">attachChannelGroupToPort</span><span class="p">(</span><span class="n">FMOD_PORT_TYPE_MUSIC</span><span class="p">,</span> <span class="n">FMOD_PORT_INDEX_NONE</span><span class="p">,</span> <span class="n">bgm</span><span class="p">);</span>
|
||||
|
||||
<span class="n">FMOD</span><span class="o">::</span><span class="n">Channel</span><span class="o">*</span> <span class="n">channel</span><span class="p">;</span>
|
||||
<span class="n">system</span><span class="o">-></span><span class="n">playSound</span><span class="p">(</span><span class="n">music</span><span class="p">,</span> <span class="n">bgm</span><span class="p">,</span> <span class="nb">false</span><span class="p">,</span> <span class="o">&</span><span class="n">channel</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<h4 id="pass-through"><a href="#pass-through">Pass Through</a></h4>
|
||||
<p>Use this port to bypass the operating system's virtual speaker processing for non-diegetic sounds. </p>
|
||||
<p>Below is a usage demonstration with error checking omitted for brevity:</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD</span><span class="o">::</span><span class="n">ChannelGroup</span> <span class="o">*</span><span class="n">passthrough</span><span class="p">;</span>
|
||||
<span class="n">system</span><span class="o">-></span><span class="n">createChannelGroup</span><span class="p">(</span><span class="s">"PASSTHROUGH"</span><span class="p">,</span> <span class="o">&</span><span class="n">passthrough</span><span class="p">);</span>
|
||||
<span class="n">system</span><span class="o">-></span><span class="n">attachChannelGroupToPort</span><span class="p">(</span><span class="n">FMOD_PORT_TYPE_PASSTHROUGH</span><span class="p">,</span> <span class="n">FMOD_PORT_INDEX_NONE</span><span class="p">,</span> <span class="n">passthrough</span><span class="p">);</span>
|
||||
|
||||
<span class="n">FMOD</span><span class="o">::</span><span class="n">Channel</span> <span class="o">*</span><span class="n">channel</span><span class="p">;</span>
|
||||
<span class="n">system</span><span class="o">-></span><span class="n">playSound</span><span class="p">(</span><span class="n">your_non_diegetic_sound</span><span class="p">,</span> <span class="n">passthrough</span><span class="p">,</span> <span class="nb">false</span><span class="p">,</span> <span class="o">&</span><span class="n">channel</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<h3 id="known-issues"><a href="#known-issues">Known Issues</a></h3>
|
||||
<ul>
|
||||
<li>
|
||||
<p>Even after adding support for audio recording to your application manifest, you must still make sure to call <a class="apilink" href="core-api-system.html#system_recordstart">System::recordStart</a> in the UI thread so the system can display a warning to the user. Calling from any other thread will return <a class="apilink" href="core-api-common.html#fmod_err_output_init">FMOD_ERR_OUTPUT_INIT</a>.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="glossary.html#fmod-studio">FMOD Studio</a> will not be able to connect to the engine if they are both running on the same machine. This is a restriction imposed by the Windows Universal Application environment.</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="performance-reference"><a href="#performance-reference">Performance Reference</a></h2>
|
||||
<p>This section is a companion for the <a href="white-papers-cpu-performance.html">CPU Performance</a> white paper and serves as a quick reference of facts targeting this platform.</p>
|
||||
<h3 id="format-choice"><a href="#format-choice">Format Choice</a></h3>
|
||||
<p>Each compression format provided in FMOD has a reason for being included, the below list will detail our recommendations for this platform. Formats listed as primary are considering the best choice, secondary formats should only be considered if the primary doesn't satisfy your requirements.</p>
|
||||
<ul>
|
||||
<li><strong>Vorbis</strong>: Primary format for all sounds.</li>
|
||||
<li><strong>FADPCM</strong>: Secondary format if Vorbis CPU usage is too high for low spec machines.</li>
|
||||
<li><strong>PCM</strong>: Not recommended.</li>
|
||||
<li><strong>XMA</strong>: Unavailable.</li>
|
||||
<li><strong>AT9</strong>: Unavailable.</li>
|
||||
</ul>
|
||||
<h3 id="channel-count"><a href="#channel-count">Channel Count</a></h3>
|
||||
<p>To give developers an idea about the costs of a particular format we provide synthetic benchmark results. These results are based on simple usage of the Studio API using recommended configuration settings.</p>
|
||||
<h4 id="settings"><a href="#settings">Settings</a></h4>
|
||||
<ul>
|
||||
<li><strong>Real channel count:</strong> 64</li>
|
||||
<li><strong>Sample rate:</strong> 48 kHz</li>
|
||||
<li><strong>Speaker mode:</strong> Stereo</li>
|
||||
<li><strong>DSP block size:</strong> 1024 samples</li>
|
||||
</ul>
|
||||
<h4 id="test-device"><a href="#test-device">Test Device</a></h4>
|
||||
<ul>
|
||||
<li><strong>CPU:</strong> Intel(R) Core(TM) i5-6400T CPU @ 2.20GHz</li>
|
||||
<li><strong>OS:</strong> Microsoft Windows [Version 10.0.19042.867]</li>
|
||||
</ul>
|
||||
<h4 id="results"><a href="#results">Results</a></h4>
|
||||
<ul>
|
||||
<li><strong>DSP with Vorbis:</strong> 6.45% (+/- 0.66%)</li>
|
||||
<li><strong>DSP with FADPCM:</strong> 3.00% (+/- 0.34%)</li>
|
||||
<li><strong>DSP with PCM:</strong> 1.33% (+/- 0.22%)</li>
|
||||
<li><strong>Update at 60 FPS:</strong> 0.77% (+/- 0.19%)</li>
|
||||
</ul></div>
|
||||
|
||||
<p class="manual-footer">FMOD Engine User Manual 2.03.07 (2025-04-02). © 2025 Firelight Technologies Pty Ltd.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</div>
|
Loading…
Add table
Add a link
Reference in a new issue