Helion Bestsellery

Architektura oprogramowania. Rusz głową! Przewodnik po myśleniu architektonicznym
  • Autor: Raju Gandhi, Mark Richards, Neal Ford
  • Zniżka: 35%
  • Cena: 129.00 83.85 zł
  • Marka: Helion
  • Status: Dostępna
  • Typ: Książka
  • EAN: 9788328915671
  • ISBN: 978-83-289-1567-1
Dodaj Architektura oprogramowania. Rusz głową! Przewodnik po myśleniu architektonicznym do koszyka

Helion Książka Dnia

Algorytmy w Pythonie. Techniki programowania dla praktyków
  • Autor: Piotr Wróblewski
  • Zniżka: 50%
  • Cena: 119.00 59.50 zł
  • Marka: Helion
  • Status: Dostępna
  • Typ: Książka
  • EAN: 9788328393684
  • ISBN: 978-83-283-9368-4
Dodaj Algorytmy w Pythonie. Techniki programowania dla praktyków do koszyka

activeTexture()

[ Leksykon ] [ JavaScript ] [ Metody ] [ canvas ] [ WebGL ]

WebGLRenderingContext.activeTexture()

[_] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z]

activeTexture(texture)

 

Przykłady: 

gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);

gl.activeTexture(gl.TEXTURE0);
gl.getParameter(gl.ACTIVE_TEXTURE);

 

gl.uniform1i(u_tex1, 0);
gl.uniform1i(u_tex2, 1);

gl.activeTexture(gl.TEXTURE0 + 0);
gl.bindTexture(gl.TEXTURE_2D, tex1);

gl.activeTexture(gl.TEXTURE0 + 1);
gl.bindTexture(gl.TEXTURE_2D, tex2);

 

<script>

window.onload = () => {

const szer = 300;
const wys = 400;

const offscreen = new OffscreenCanvas(szer, wys);
canvas.width = szer;
canvas.height = wys;

const gl = canvas.getContext("webgl");

console.log(gl.canvas); // HTMLCanvasElement

gl.drawingBufferColorSpace = "display-p3";
gl.unpackColorSpace = "display-p3";

const arr = new Uint8ClampedArray(10_000);

// Wypełnij tablicę wartościami RGBA
for (let i = 0; i < arr.length; i += 4) {
arr[i + 0] = 250; // R
arr[i + 1] = 100; // G
arr[i + 2] = 0; // B
arr[i + 3] = 255; // A
}

const obraz2 = new ImageData(arr, 50);

console.log(obraz2.height); // 50
console.log(obraz2.width); // 50

width = obraz2.height;
height = obraz2.width;

var temp = new Uint8Array(obraz2); // temp

const tekstura = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, tekstura);

const pixel = new Uint8Array([0, 0, 255, 255]);
gl.texImage2D(
gl.TEXTURE_2D,
0,
gl.RGBA,
1,
1,
0,
gl.RGBA,
gl.UNSIGNED_BYTE,
pixel
);

const obraz = new Image();
obraz.onload = () => {
gl.bindTexture(gl.TEXTURE_2D, tekstura);
gl.texImage2D(
gl.TEXTURE_2D,
0,
gl.RGBA,
gl.RGBA,
gl.UNSIGNED_BYTE,
obraz
);

if (isPowerOf2(obraz.width) && isPowerOf2(obraz.height)) {
gl.generateMipmap(gl.TEXTURE_2D);
} else {
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
}
};

function isPowerOf2(value) {
return (value & (value - 1)) === 0;
}

obraz.src = "dom.png";

console.log(tekstura); // WebGLTexture{}

gl.activeTexture(gl.TEXTURE0);
gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);
gl.getParameter(gl.ACTIVE_TEXTURE);

console.log(gl.TEXTURE0); // 33984, 0x84C0, gl.TEXTURE0
console.log(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS); // 35661
console.log(gl.ACTIVE_TEXTURE); // 34016

}

</script>

<canvas id="canvas" width="100" height="100"></canvas>

  

Opis:
Metoda WebGLRenderingContext.activeTexture() określa, która jednostka tekstury ma być aktywna. Parametry texture - jednostka tekstury, która ma być aktywna. Wartość to gl.TEXTUREI, gdzie I mieści się w zakresie od 0 do gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1. Wartość zwracana undefined. Wyjątki jeśli tekstura nie jest jedną z gl.TEXTUREI, gdzie I mieści się w zakresie od 0 do gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1, w gl.INVALID_ENUM zgłaszany jest błąd. Liczba jednostek tekstury zależy od implementacji, liczbę tę można uzyskać za pomocą stałej MAX_COMBINED_TEXTURE_IMAGE_UNITS. Według specyfikacji jest to co najmniej 8. Aby uzyskać aktywną teksturę, wykonaj zapytanie o ACTIVE_TEXTURE stałą. Następujące wywołanie wybiera gl.TEXTURE1 bieżącą teksturę. Kolejne wywołania modyfikujące stan tekstury będą miały wpływ na tę teksturę.

Zobacz też:
gl.INVALID_ENUM -
gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS - 
gl.TEXTUREI - 

 

Please publish modules in offcanvas position.