aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/api/webgl_compressed_texture_pvrtc/index.html
blob: 03ad7b143d23ed6abf5475df1a6d05f135e4d98b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
---
title: WEBGL_compressed_texture_pvrtc
slug: Web/API/WEBGL_compressed_texture_pvrtc
translation_of: Web/API/WEBGL_compressed_texture_pvrtc
---
<div>{{APIRef("WebGL")}}</div>

<p>Расширение <code><strong>WEBGL_compressed_texture_pvrtc</strong></code> часть <a href="/en-US/docs/Web/API/WebGL_API">WebGL API</a> и представляет четыре <a href="https://en.wikipedia.org/wiki/PVRTC">сжатых формата текстур PVRTC</a>.</p>

<p>Сжатые текстуры уменьшают количество памяти, используемые в GPU для хранения, позволяя большее разрешение для текстур или большее количество текстур с одинаковым разрешением.</p>

<p>WebGL расширения доступны через метод {{domxref("WebGLRenderingContext.getExtension()")}}. Для подробностей смотри также <a href="/en-US/docs/Web/API/WebGL_API/Using_Extensions">Использование расширений</a> в <a href="/en-US/docs/Web/API/WebGL_API/Tutorial">туториале по WebGL.</a></p>

<div class="note">
<p><strong>Доступность:  </strong>Обычно PVRTC доступен только на мобильных устройствах с чипсетом PowerVR. Используется во всех поколениях iPhone, iPod Touch и iPad и поддерживается на определённых Android устройствах, использующих PowerVR GPU.</p>

<p>Версии контекста, поддерживающие расширение:   {{domxref("WebGLRenderingContext", "WebGL1", "", 1)}} , и {{domxref("WebGL2RenderingContext", "WebGL2", "", 1)}}.</p>
</div>

<h2 id="Константы">Константы</h2>

<p>Форматы сжатых текстур представлены четырьмя константами и могут быть использованы в двух функциях:<br>
 {{domxref("WebGLRenderingContext.compressedTexImage2D", "compressedTexImage2D()")}} — параметры высота и ширина должны соответствовать степени 2<br>
 {{domxref("WebGLRenderingContext.compressedTexSubImage2D", "compressedTexSubImage2D()")}} — параметры высоты и ширины должны быть равны размеру текстуры, а значения параметров <code>xoffset</code> и <code>yoffset</code> должны быть 0.</p>

<dl>
 <dt><code>ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG</code></dt>
 <dd>RGB сжатие в 4-битном режиме. Один блок на каждые 4×4 пикселей.</dd>
 <dt><code>ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG</code></dt>
 <dd>RGBA сжатие в 4-битном режиме. Один блок на каждые 4×4 пикселей.</dd>
 <dt><code>ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG</code></dt>
 <dd>RGB сжатие в 2-битном режиме. Один блок на каждые 8×4 пикселей.</dd>
 <dt><code>ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG</code></dt>
 <dd>RGBA сжатие в 2-битном режиме. Один блок на каждые 8×4 пикселей.</dd>
</dl>

<h2 id="Примеры">Примеры</h2>

<pre class="brush:js">var ext = gl.getExtension('WEBGL_compressed_texture_pvrtc');

var texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);

gl.compressedTexImage2D(gl.TEXTURE_2D, 0, ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG, 512, 512, 0, textureData);
</pre>

<h2 id="Спецификации">Спецификации</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</th>
  </tr>
  <tr>
   <td>{{SpecName('WEBGL_compressed_texture_pvrtc', "", "WEBGL_compressed_texture_pvrtc")}}</td>
   <td>{{Spec2('WEBGL_compressed_texture_pvrtc')}}</td>
   <td>Начальное определение.</td>
  </tr>
 </tbody>
</table>

<h2 id="Браузерная_совместимость">Браузерная совместимость</h2>

<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>

<p>{{Compat("api.WEBGL_compressed_texture_pvrtc")}}</p>

<h2 id="Смотрите_также">Смотрите также</h2>

<ul>
 <li><a href="https://en.wikipedia.org/wiki/PVRTC">PVRTC Texture Compression – Wikipedia</a></li>
 <li>{{domxref("WebGLRenderingContext.getExtension()")}}</li>
 <li>{{domxref("WebGLRenderingContext.compressedTexImage2D()")}}</li>
 <li>{{domxref("WebGLRenderingContext.compressedTexSubImage2D()")}}</li>
 <li>{{domxref("WebGLRenderingContext.getParameter()")}}</li>
</ul>