|
871 | 871 | <span id="871">871</span>
|
872 | 872 | <span id="872">872</span>
|
873 | 873 | <span id="873">873</span>
|
| 874 | +<span id="874">874</span> |
| 875 | +<span id="875">875</span> |
| 876 | +<span id="876">876</span> |
| 877 | +<span id="877">877</span> |
| 878 | +<span id="878">878</span> |
| 879 | +<span id="879">879</span> |
| 880 | +<span id="880">880</span> |
| 881 | +<span id="881">881</span> |
| 882 | +<span id="882">882</span> |
| 883 | +<span id="883">883</span> |
| 884 | +<span id="884">884</span> |
| 885 | +<span id="885">885</span> |
874 | 886 | </pre><pre class="rust"><code><span class="kw">use </span>glow::HasContext;
|
875 | 887 | <span class="kw">use </span>std::sync::Arc;
|
876 | 888 | <span class="kw">use </span>wgt::AstcChannel;
|
|
1228 | 1240 | <span class="comment">// This is a part of GLES-3 but not WebGL2 core
|
1229 | 1241 | </span>!<span class="macro">cfg!</span>(target_arch = <span class="string">"wasm32"</span>) || extensions.contains(<span class="string">"WEBGL_compressed_texture_etc"</span>),
|
1230 | 1242 | );
|
1231 |
| - features.set( |
1232 |
| - wgt::Features::TEXTURE_COMPRESSION_ASTC_LDR, |
1233 |
| - extensions.contains(<span class="string">"GL_KHR_texture_compression_astc_ldr"</span>) |
1234 |
| - || extensions.contains(<span class="string">"WEBGL_compressed_texture_astc"</span>), |
1235 |
| - ); |
| 1243 | + <span class="comment">// `OES_texture_compression_astc` provides 2D + 3D, LDR + HDR support |
| 1244 | + </span><span class="kw">if </span>extensions.contains(<span class="string">"WEBGL_compressed_texture_astc"</span>) |
| 1245 | + || extensions.contains(<span class="string">"GL_OES_texture_compression_astc"</span>) |
| 1246 | + { |
| 1247 | + features.insert(wgt::Features::TEXTURE_COMPRESSION_ASTC_LDR); |
| 1248 | + features.insert(wgt::Features::TEXTURE_COMPRESSION_ASTC_HDR); |
| 1249 | + } <span class="kw">else </span>{ |
| 1250 | + features.set( |
| 1251 | + wgt::Features::TEXTURE_COMPRESSION_ASTC_LDR, |
| 1252 | + extensions.contains(<span class="string">"GL_KHR_texture_compression_astc_ldr"</span>), |
| 1253 | + ); |
| 1254 | + features.set( |
| 1255 | + wgt::Features::TEXTURE_COMPRESSION_ASTC_HDR, |
| 1256 | + extensions.contains(<span class="string">"GL_KHR_texture_compression_astc_hdr"</span>), |
| 1257 | + ); |
| 1258 | + } |
1236 | 1259 |
|
1237 | 1260 | <span class="kw">let </span><span class="kw-2">mut </span>private_caps = <span class="kw">super</span>::PrivateCapabilities::empty();
|
1238 | 1261 | private_caps.set(
|
|
1541 | 1564 | <span class="kw">let </span>bcn_features = feature_fn(wgt::Features::TEXTURE_COMPRESSION_BC, filterable);
|
1542 | 1565 | <span class="kw">let </span>etc2_features = feature_fn(wgt::Features::TEXTURE_COMPRESSION_ETC2, filterable);
|
1543 | 1566 | <span class="kw">let </span>astc_features = feature_fn(wgt::Features::TEXTURE_COMPRESSION_ASTC_LDR, filterable);
|
| 1567 | + <span class="kw">let </span>astc_hdr_features = feature_fn(wgt::Features::TEXTURE_COMPRESSION_ASTC_HDR, filterable); |
1544 | 1568 |
|
1545 | 1569 | <span class="kw">let </span>private_caps_fn = |f, caps| {
|
1546 | 1570 | <span class="kw">if </span><span class="self">self</span>.shared.private_caps.contains(f) {
|
|
1638 | 1662 | Tf::Astc {
|
1639 | 1663 | block: <span class="kw">_</span>,
|
1640 | 1664 | channel: AstcChannel::Hdr,
|
1641 |
| - } => Tfc::empty(), |
| 1665 | + } => astc_hdr_features, |
1642 | 1666 | }
|
1643 | 1667 | }
|
1644 | 1668 |
|
|
0 commit comments