Files
how-to-vulkan/ktx/build/docs/html/libktx/structktxBasisParams.html
T
2026-06-14 19:09:18 +01:00

551 lines
29 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.16.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libktx Reference: ktxBasisParams Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="ktx_logo_200.png"/></td>
<td id="projectalign">
<div id="projectname">libktx Reference<span id="projectnumber">&#160;0.0.0</span>
</div>
<div id="projectbrief">Libraries and tools to create and read KTX image texture files.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.16.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('structktxBasisParams.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">ktxBasisParams Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Structure for passing extended parameters to ktxTexture2_CompressBasisEx().
<a href="#details">More...</a></p>
<p><code>#include &lt;ktx.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-pub-attribs" class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:a51fe881fb2eae346ba017f7f55a1d642" id="r_a51fe881fb2eae346ba017f7f55a1d642"><td class="memItemLeft">ktx_uint32_t&#160;</td><td class="memItemRight"><a class="el" href="#a51fe881fb2eae346ba017f7f55a1d642">structSize</a></td></tr>
<tr class="memitem:ac9363a20b43cebc11ab690aec5fbd38d" id="r_ac9363a20b43cebc11ab690aec5fbd38d"><td class="memItemLeft">ktx_bool_t&#160;</td><td class="memItemRight"><a class="el" href="#ac9363a20b43cebc11ab690aec5fbd38d">uastc</a></td></tr>
<tr class="memitem:a6ca13a756a2066f8082772b9207e4bba" id="r_a6ca13a756a2066f8082772b9207e4bba"><td class="memItemLeft">ktx_bool_t&#160;</td><td class="memItemRight"><a class="el" href="#a6ca13a756a2066f8082772b9207e4bba">verbose</a></td></tr>
<tr class="memitem:a0024310d24bafd33ab41de3bd7dd6887" id="r_a0024310d24bafd33ab41de3bd7dd6887"><td class="memItemLeft">ktx_bool_t&#160;</td><td class="memItemRight"><a class="el" href="#a0024310d24bafd33ab41de3bd7dd6887">noSSE</a></td></tr>
<tr class="memitem:a04aa92e2192b36b2d9701d23fd246386" id="r_a04aa92e2192b36b2d9701d23fd246386"><td class="memItemLeft">ktx_uint32_t&#160;</td><td class="memItemRight"><a class="el" href="#a04aa92e2192b36b2d9701d23fd246386">threadCount</a></td></tr>
<tr class="memitem:a27652d35542830750e195ab57dd1f3b1" id="r_a27652d35542830750e195ab57dd1f3b1"><td class="memItemLeft">ktx_uint32_t&#160;</td><td class="memItemRight"><a class="el" href="#a27652d35542830750e195ab57dd1f3b1">compressionLevel</a></td></tr>
<tr class="memitem:aac5068885c586a1454efbf2e9cf4b3ed" id="r_aac5068885c586a1454efbf2e9cf4b3ed"><td class="memItemLeft">ktx_uint32_t&#160;</td><td class="memItemRight"><a class="el" href="#aac5068885c586a1454efbf2e9cf4b3ed">qualityLevel</a></td></tr>
<tr class="memitem:a47519cb97d15ade856f899023eab9960" id="r_a47519cb97d15ade856f899023eab9960"><td class="memItemLeft">ktx_uint32_t&#160;</td><td class="memItemRight"><a class="el" href="#a47519cb97d15ade856f899023eab9960">maxEndpoints</a></td></tr>
<tr class="memitem:aafccbc4e43845f62cf500d4792c7cf6a" id="r_aafccbc4e43845f62cf500d4792c7cf6a"><td class="memItemLeft">float&#160;</td><td class="memItemRight"><a class="el" href="#aafccbc4e43845f62cf500d4792c7cf6a">endpointRDOThreshold</a></td></tr>
<tr class="memitem:a93a37769ec5b285051083aa8457e1d1a" id="r_a93a37769ec5b285051083aa8457e1d1a"><td class="memItemLeft">ktx_uint32_t&#160;</td><td class="memItemRight"><a class="el" href="#a93a37769ec5b285051083aa8457e1d1a">maxSelectors</a></td></tr>
<tr class="memitem:aea4a4f651952b4831fdfc784f7058866" id="r_aea4a4f651952b4831fdfc784f7058866"><td class="memItemLeft">float&#160;</td><td class="memItemRight"><a class="el" href="#aea4a4f651952b4831fdfc784f7058866">selectorRDOThreshold</a></td></tr>
<tr class="memitem:a0d67004efa49e08a7f39f71c93286b0a" id="r_a0d67004efa49e08a7f39f71c93286b0a"><td class="memItemLeft">char&#160;</td><td class="memItemRight"><a class="el" href="#a0d67004efa49e08a7f39f71c93286b0a">inputSwizzle</a> [4]</td></tr>
<tr class="memitem:a59af70a939f66dce9749174c12cc3725" id="r_a59af70a939f66dce9749174c12cc3725"><td class="memItemLeft">ktx_bool_t&#160;</td><td class="memItemRight"><a class="el" href="#a59af70a939f66dce9749174c12cc3725">normalMap</a></td></tr>
<tr class="memitem:a2b5e77802a353a04d6b8d1d848f98d47" id="r_a2b5e77802a353a04d6b8d1d848f98d47"><td class="memItemLeft">ktx_bool_t&#160;</td><td class="memItemRight"><a class="el" href="#a2b5e77802a353a04d6b8d1d848f98d47">separateRGToRGB_A</a></td></tr>
<tr class="memitem:a13bd0ffd0161a44f84482ece6b270ce7" id="r_a13bd0ffd0161a44f84482ece6b270ce7"><td class="memItemLeft">ktx_bool_t&#160;</td><td class="memItemRight"><a class="el" href="#a13bd0ffd0161a44f84482ece6b270ce7">preSwizzle</a></td></tr>
<tr class="memitem:a24b0d409b2fbd536216196ca4e27358f" id="r_a24b0d409b2fbd536216196ca4e27358f"><td class="memItemLeft">ktx_bool_t&#160;</td><td class="memItemRight"><a class="el" href="#a24b0d409b2fbd536216196ca4e27358f">noEndpointRDO</a></td></tr>
<tr class="memitem:a740b64ff37292977ab3cf04d3fb3cd6b" id="r_a740b64ff37292977ab3cf04d3fb3cd6b"><td class="memItemLeft">ktx_bool_t&#160;</td><td class="memItemRight"><a class="el" href="#a740b64ff37292977ab3cf04d3fb3cd6b">noSelectorRDO</a></td></tr>
<tr class="memitem:ad09ee28fdd7fcd267771deb3d11c2cee" id="r_ad09ee28fdd7fcd267771deb3d11c2cee"><td class="memItemLeft">ktx_pack_uastc_flags&#160;</td><td class="memItemRight"><a class="el" href="#ad09ee28fdd7fcd267771deb3d11c2cee">uastcFlags</a></td></tr>
<tr class="memitem:a762083beb362fc21fc96f9fec210f2cb" id="r_a762083beb362fc21fc96f9fec210f2cb"><td class="memItemLeft">ktx_bool_t&#160;</td><td class="memItemRight"><a class="el" href="#a762083beb362fc21fc96f9fec210f2cb">uastcRDO</a></td></tr>
<tr class="memitem:a1214b8b4eca85e666bf92862e0f22aeb" id="r_a1214b8b4eca85e666bf92862e0f22aeb"><td class="memItemLeft">float&#160;</td><td class="memItemRight"><a class="el" href="#a1214b8b4eca85e666bf92862e0f22aeb">uastcRDOQualityScalar</a></td></tr>
<tr class="memitem:a2db4d897c3dddf44f94be794f242343c" id="r_a2db4d897c3dddf44f94be794f242343c"><td class="memItemLeft">ktx_uint32_t&#160;</td><td class="memItemRight"><a class="el" href="#a2db4d897c3dddf44f94be794f242343c">uastcRDODictSize</a></td></tr>
<tr class="memitem:a144c86b7675a79226b2e88a008078cc8" id="r_a144c86b7675a79226b2e88a008078cc8"><td class="memItemLeft">float&#160;</td><td class="memItemRight"><a class="el" href="#a144c86b7675a79226b2e88a008078cc8">uastcRDOMaxSmoothBlockErrorScale</a></td></tr>
<tr class="memitem:aacf2963f160d1079e6abccc81e17f7c4" id="r_aacf2963f160d1079e6abccc81e17f7c4"><td class="memItemLeft">float&#160;</td><td class="memItemRight"><a class="el" href="#aacf2963f160d1079e6abccc81e17f7c4">uastcRDOMaxSmoothBlockStdDev</a></td></tr>
<tr class="memitem:a2800eb7a62ed740bd4e13af330058f75" id="r_a2800eb7a62ed740bd4e13af330058f75"><td class="memItemLeft">ktx_bool_t&#160;</td><td class="memItemRight"><a class="el" href="#a2800eb7a62ed740bd4e13af330058f75">uastcRDODontFavorSimplerModes</a></td></tr>
<tr class="memitem:a8de3ee72ab61a663a495f174796a7b17" id="r_a8de3ee72ab61a663a495f174796a7b17"><td class="memItemLeft">ktx_bool_t&#160;</td><td class="memItemRight"><a class="el" href="#a8de3ee72ab61a663a495f174796a7b17">uastcRDONoMultithreading</a></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Structure for passing extended parameters to ktxTexture2_CompressBasisEx(). </p>
<p>If you only want default values, use ktxTexture2_CompressBasis(). Here, at a minimum you must initialize the structure as follows: </p><div class="fragment"><div class="line"><a class="code hl_struct" href="structktxBasisParams.html">ktxBasisParams</a> params = {0};</div>
<div class="line">params.<a class="code hl_variable" href="#a51fe881fb2eae346ba017f7f55a1d642">structSize</a> = <span class="keyword">sizeof</span>(params);</div>
<div class="line">params.<a class="code hl_variable" href="#a27652d35542830750e195ab57dd1f3b1">compressionLevel</a> = KTX_ETC1S_DEFAULT_COMPRESSION_LEVEL;</div>
<div class="ttc" id="astructktxBasisParams_html"><div class="ttname"><a href="structktxBasisParams.html">ktxBasisParams</a></div><div class="ttdoc">Structure for passing extended parameters to ktxTexture2_CompressBasisEx().</div><div class="ttdef"><b>Definition</b> ktx.h:1379</div></div>
<div class="ttc" id="astructktxBasisParams_html_a27652d35542830750e195ab57dd1f3b1"><div class="ttname"><a href="#a27652d35542830750e195ab57dd1f3b1">ktxBasisParams::compressionLevel</a></div><div class="ttdeci">ktx_uint32_t compressionLevel</div><div class="ttdef"><b>Definition</b> ktx.h:1398</div></div>
<div class="ttc" id="astructktxBasisParams_html_a51fe881fb2eae346ba017f7f55a1d642"><div class="ttname"><a href="#a51fe881fb2eae346ba017f7f55a1d642">ktxBasisParams::structSize</a></div><div class="ttdeci">ktx_uint32_t structSize</div><div class="ttdef"><b>Definition</b> ktx.h:1380</div></div>
</div><!-- fragment --><p><em>compressionLevel</em> has to be explicitly set because 0 is a valid <em>compressionLevel</em> but is not the default used by the BasisU encoder when no value is set. Only the other settings that are to be non-default must be non-zero. </p>
</div><a name="doc-variable-members" id="doc-variable-members"></a><h2 id="header-doc-variable-members" class="groupheader">Field Documentation</h2>
<a id="a27652d35542830750e195ab57dd1f3b1" name="a27652d35542830750e195ab57dd1f3b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a27652d35542830750e195ab57dd1f3b1">&#9670;&#160;</a></span>compressionLevel</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_uint32_t compressionLevel</td>
</tr>
</table>
</div><div class="memdoc">
<p>Encoding speed vs. quality tradeoff. Range is [0,6]. Higher values are much slower, but give slightly higher quality. Higher levels are intended for video. There is no default. Callers must explicitly set this value. Callers can use KTX_ETC1S_DEFAULT_COMPRESSION_LEVEL as a default value. Currently this is 2. </p>
</div>
</div>
<a id="aafccbc4e43845f62cf500d4792c7cf6a" name="aafccbc4e43845f62cf500d4792c7cf6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafccbc4e43845f62cf500d4792c7cf6a">&#9670;&#160;</a></span>endpointRDOThreshold</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float endpointRDOThreshold</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set endpoint RDO quality threshold. The default is 1.25. Lower is higher quality but less quality per output bit (try [1.0,3.0]. This will override the value chosen by <code>qualityLevel</code>. </p>
</div>
</div>
<a id="a0d67004efa49e08a7f39f71c93286b0a" name="a0d67004efa49e08a7f39f71c93286b0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d67004efa49e08a7f39f71c93286b0a">&#9670;&#160;</a></span>inputSwizzle</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char inputSwizzle[4]</td>
</tr>
</table>
</div><div class="memdoc">
<p>A swizzle to apply before encoding. It must match the regular expression /^[rgba01]{4}$/. If both this and preSwizzle are specified ktxTexture_CompressBasisEx will raise KTX_INVALID_OPERATION. Usable with both ETC1S and UASTC. </p>
</div>
</div>
<a id="a47519cb97d15ade856f899023eab9960" name="a47519cb97d15ade856f899023eab9960"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47519cb97d15ade856f899023eab9960">&#9670;&#160;</a></span>maxEndpoints</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_uint32_t maxEndpoints</td>
</tr>
</table>
</div><div class="memdoc">
<p>Manually set the max number of color endpoint clusters. Range is [1,16128]. Default is 0, unset. If this is set, maxSelectors must also be set, otherwise the value will be ignored. </p>
</div>
</div>
<a id="a93a37769ec5b285051083aa8457e1d1a" name="a93a37769ec5b285051083aa8457e1d1a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93a37769ec5b285051083aa8457e1d1a">&#9670;&#160;</a></span>maxSelectors</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_uint32_t maxSelectors</td>
</tr>
</table>
</div><div class="memdoc">
<p>Manually set the max number of color selector clusters. Range is [1,16128]. Default is 0, unset. If this is set, maxEndpoints must also be set, otherwise the value will be ignored. </p>
</div>
</div>
<a id="a24b0d409b2fbd536216196ca4e27358f" name="a24b0d409b2fbd536216196ca4e27358f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24b0d409b2fbd536216196ca4e27358f">&#9670;&#160;</a></span>noEndpointRDO</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_bool_t noEndpointRDO</td>
</tr>
</table>
</div><div class="memdoc">
<p>Disable endpoint rate distortion optimizations. Slightly faster, less noisy output, but lower quality per output bit. Default is KTX_FALSE. </p>
</div>
</div>
<a id="a59af70a939f66dce9749174c12cc3725" name="a59af70a939f66dce9749174c12cc3725"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59af70a939f66dce9749174c12cc3725">&#9670;&#160;</a></span>normalMap</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_bool_t normalMap</td>
</tr>
</table>
</div><div class="memdoc">
<p>Tunes codec parameters for better quality on normal maps (no selector RDO, no endpoint RDO) and sets the texture's DFD appropriately. Only valid for linear textures. </p>
</div>
</div>
<a id="a740b64ff37292977ab3cf04d3fb3cd6b" name="a740b64ff37292977ab3cf04d3fb3cd6b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a740b64ff37292977ab3cf04d3fb3cd6b">&#9670;&#160;</a></span>noSelectorRDO</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_bool_t noSelectorRDO</td>
</tr>
</table>
</div><div class="memdoc">
<p>Disable selector rate distortion optimizations. Slightly faster, less noisy output, but lower quality per output bit. Default is KTX_FALSE. </p>
</div>
</div>
<a id="a0024310d24bafd33ab41de3bd7dd6887" name="a0024310d24bafd33ab41de3bd7dd6887"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0024310d24bafd33ab41de3bd7dd6887">&#9670;&#160;</a></span>noSSE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_bool_t noSSE</td>
</tr>
</table>
</div><div class="memdoc">
<p>True to forbid use of the SSE instruction set. Ignored if CPU does not support SSE. </p>
</div>
</div>
<a id="a13bd0ffd0161a44f84482ece6b270ce7" name="a13bd0ffd0161a44f84482ece6b270ce7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a13bd0ffd0161a44f84482ece6b270ce7">&#9670;&#160;</a></span>preSwizzle</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_bool_t preSwizzle</td>
</tr>
</table>
</div><div class="memdoc">
<p>If the texture has <code>KTXswizzle</code> metadata, apply it before compressing. Swizzling, like <code>rabb</code> may yield drastically different error metrics if done after supercompression. Usable for both ETC1S and UASTC. </p>
</div>
</div>
<a id="aac5068885c586a1454efbf2e9cf4b3ed" name="aac5068885c586a1454efbf2e9cf4b3ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac5068885c586a1454efbf2e9cf4b3ed">&#9670;&#160;</a></span>qualityLevel</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_uint32_t qualityLevel</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compression quality. Range is [1,255]. Lower gives better compression/lower quality/faster. Higher gives less compression /higher quality/slower. This automatically determines values for <code>maxEndpoints</code>, <code>maxSelectors</code>, <code>endpointRDOThreshold</code> and <code>selectorRDOThreshold</code> for the target quality level. Setting these parameters overrides the values determined by <code>qualityLevel</code> which defaults to 128 if neither it nor both of <code>maxEndpoints</code> and <code>maxSelectors</code> have been set. </p><dl class="section note"><dt>Note</dt><dd><em>Both</em> of <code>maxEndpoints</code> and <code>maxSelectors</code> must be set for them to have any effect. </dd>
<dd>
qualityLevel will only determine values for <code>endpointRDOThreshold</code> and <code>selectorRDOThreshold</code> when its value exceeds 128, otherwise their defaults will be used. </dd></dl>
</div>
</div>
<a id="aea4a4f651952b4831fdfc784f7058866" name="aea4a4f651952b4831fdfc784f7058866"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea4a4f651952b4831fdfc784f7058866">&#9670;&#160;</a></span>selectorRDOThreshold</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float selectorRDOThreshold</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set selector RDO quality threshold. The default is 1.5. Lower is higher quality but less quality per output bit (try [1.0,3.0]). This will override the value chosen by <code>qualityLevel</code>. </p>
</div>
</div>
<a id="a2b5e77802a353a04d6b8d1d848f98d47" name="a2b5e77802a353a04d6b8d1d848f98d47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b5e77802a353a04d6b8d1d848f98d47">&#9670;&#160;</a></span>separateRGToRGB_A</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_bool_t separateRGToRGB_A</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated</a></b></dt><dd>This was and is a no-op. 2-component inputs have always been automatically separated using an "rrrg" inputSwizzle. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a0d67004efa49e08a7f39f71c93286b0a">inputSwizzle</a> and normalMode. </dd></dl>
</div>
</div>
<a id="a51fe881fb2eae346ba017f7f55a1d642" name="a51fe881fb2eae346ba017f7f55a1d642"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51fe881fb2eae346ba017f7f55a1d642">&#9670;&#160;</a></span>structSize</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_uint32_t structSize</td>
</tr>
</table>
</div><div class="memdoc">
<p>Size of this struct. Used so library can tell which version of struct is being passed. </p>
</div>
</div>
<a id="a04aa92e2192b36b2d9701d23fd246386" name="a04aa92e2192b36b2d9701d23fd246386"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04aa92e2192b36b2d9701d23fd246386">&#9670;&#160;</a></span>threadCount</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_uint32_t threadCount</td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of threads used for compression. Default is 1. </p>
</div>
</div>
<a id="ac9363a20b43cebc11ab690aec5fbd38d" name="ac9363a20b43cebc11ab690aec5fbd38d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9363a20b43cebc11ab690aec5fbd38d">&#9670;&#160;</a></span>uastc</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_bool_t uastc</td>
</tr>
</table>
</div><div class="memdoc">
<p>True to use UASTC base, false to use ETC1S base. </p>
</div>
</div>
<a id="ad09ee28fdd7fcd267771deb3d11c2cee" name="ad09ee28fdd7fcd267771deb3d11c2cee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad09ee28fdd7fcd267771deb3d11c2cee">&#9670;&#160;</a></span>uastcFlags</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_pack_uastc_flags uastcFlags</td>
</tr>
</table>
</div><div class="memdoc">
<p>A set of <a class="el" href="ktx_8h.html#a9cb85e48ab10ea04747de7ef12087670" title="Flags specifiying UASTC encoding options.">ktx_pack_uastc_flag_bits_e</a> controlling UASTC encoding. The most important value is the level given in the least-significant 4 bits which selects a speed vs quality tradeoff as shown in the following table:</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadCenter">Level/Speed </th><th class="markdownTableHeadCenter">Quality </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">KTX_PACK_UASTC_LEVEL_FASTEST </td><td class="markdownTableBodyCenter">43.45dB </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyCenter">KTX_PACK_UASTC_LEVEL_FASTER </td><td class="markdownTableBodyCenter">46.49dB </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">KTX_PACK_UASTC_LEVEL_DEFAULT </td><td class="markdownTableBodyCenter">47.47dB </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyCenter">KTX_PACK_UASTC_LEVEL_SLOWER </td><td class="markdownTableBodyCenter">48.01dB </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">KTX_PACK_UASTC_LEVEL_VERYSLOW </td><td class="markdownTableBodyCenter">48.24dB </td></tr>
</table>
</div>
</div>
<a id="a762083beb362fc21fc96f9fec210f2cb" name="a762083beb362fc21fc96f9fec210f2cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a762083beb362fc21fc96f9fec210f2cb">&#9670;&#160;</a></span>uastcRDO</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_bool_t uastcRDO</td>
</tr>
</table>
</div><div class="memdoc">
<p>Enable Rate Distortion Optimization (RDO) post-processing. </p>
</div>
</div>
<a id="a2db4d897c3dddf44f94be794f242343c" name="a2db4d897c3dddf44f94be794f242343c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2db4d897c3dddf44f94be794f242343c">&#9670;&#160;</a></span>uastcRDODictSize</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_uint32_t uastcRDODictSize</td>
</tr>
</table>
</div><div class="memdoc">
<p>UASTC RDO dictionary size in bytes. Default is 4096. Lower values=faster, but give less compression. Range is [64,65536]. </p>
</div>
</div>
<a id="a2800eb7a62ed740bd4e13af330058f75" name="a2800eb7a62ed740bd4e13af330058f75"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2800eb7a62ed740bd4e13af330058f75">&#9670;&#160;</a></span>uastcRDODontFavorSimplerModes</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_bool_t uastcRDODontFavorSimplerModes</td>
</tr>
</table>
</div><div class="memdoc">
<p>Do not favor simpler UASTC modes in RDO mode. </p>
</div>
</div>
<a id="a144c86b7675a79226b2e88a008078cc8" name="a144c86b7675a79226b2e88a008078cc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a144c86b7675a79226b2e88a008078cc8">&#9670;&#160;</a></span>uastcRDOMaxSmoothBlockErrorScale</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float uastcRDOMaxSmoothBlockErrorScale</td>
</tr>
</table>
</div><div class="memdoc">
<p>UASTC RDO max smooth block error scale. Range is [1,300]. Default is 10.0, 1.0 is disabled. Larger values suppress more artifacts (and allocate more bits) on smooth blocks. </p>
</div>
</div>
<a id="aacf2963f160d1079e6abccc81e17f7c4" name="aacf2963f160d1079e6abccc81e17f7c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aacf2963f160d1079e6abccc81e17f7c4">&#9670;&#160;</a></span>uastcRDOMaxSmoothBlockStdDev</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float uastcRDOMaxSmoothBlockStdDev</td>
</tr>
</table>
</div><div class="memdoc">
<p>UASTC RDO max smooth block standard deviation. Range is [.01,65536.0]. Default is 18.0. Larger values expand the range of blocks considered smooth. </p>
</div>
</div>
<a id="a8de3ee72ab61a663a495f174796a7b17" name="a8de3ee72ab61a663a495f174796a7b17"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8de3ee72ab61a663a495f174796a7b17">&#9670;&#160;</a></span>uastcRDONoMultithreading</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_bool_t uastcRDONoMultithreading</td>
</tr>
</table>
</div><div class="memdoc">
<p>Disable RDO multithreading (slightly higher compression, deterministic). </p>
</div>
</div>
<a id="a1214b8b4eca85e666bf92862e0f22aeb" name="a1214b8b4eca85e666bf92862e0f22aeb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1214b8b4eca85e666bf92862e0f22aeb">&#9670;&#160;</a></span>uastcRDOQualityScalar</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float uastcRDOQualityScalar</td>
</tr>
</table>
</div><div class="memdoc">
<p>UASTC RDO quality scalar (lambda). Lower values yield higher quality/larger LZ compressed files, higher values yield lower quality/smaller LZ compressed files. A good range to try is [.2,4]. Full range is [.001,50.0]. Default is 1.0. </p>
</div>
</div>
<a id="a6ca13a756a2066f8082772b9207e4bba" name="a6ca13a756a2066f8082772b9207e4bba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ca13a756a2066f8082772b9207e4bba">&#9670;&#160;</a></span>verbose</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ktx_bool_t verbose</td>
</tr>
</table>
</div><div class="memdoc">
<p>If true, prints Basis Universal encoder operation details to <code>stdout</code>. Not recommended for GUI apps. </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="structktxBasisParams.html">ktxBasisParams</a></li>
<li class="footer">Generated on <span class="timestamp"></span> for libktx Reference by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
</ul>
</div>
</body>
</html>