[ Leksykon ] [ JavaScript ] [ Metody ] [ canvas ] [ WebGL ]
WebGLRenderingContext.createProgram()
[_] [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]
createProgram()
Przykłady:
gl.linkProgram(program);
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
const info = gl.getProgramInfoLog(program);
throw `Nie można skompilować programu WebGL. \n\n${info}`;
}
function createProgram(gl, vertexShader, fragmentShader ) {
const program = gl.createProgram();
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);
gl.linkProgram(program);
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
alert( "Błąd:\n" +
"VALIDATE_STATUS: " + gl.getProgramParameter(program, gl.VALIDATE_STATUS) + "\n" +
"ERROR: " + gl.getError() + "\n\n" +
", Vertex Shader:\n" + vertexShader + "\n\n" +
", Fragment Shader:\n" + fragmentShader );
const info = gl.getProgramInfoLog(program);
throw new Error(`Nie można skompilować programu WebGL E1. \n\n${info}`);
gl.deleteProgram(program);
return null;
}
return program;
}
Opis:
Metoda WebGLRenderingContext.createProgram() tworzy i inicjuje WebGLProgram obiekt. Wartość zwracana obiekt WebGLProgram będący kombinacją dwóch skompilowanych obiektów WebGLShader składających się z modułu cieniującego wierzchołków i modułu cieniującego fragment oba napisane w języku GLSL. Są one następnie łączone w użyteczny program. Stanowi kombinację dwóch skompilowanych WebGLShadermodułów, składających się z vertex shader i fragment shader (oba napisane w języku GLSL).
WebGLObject <-- WebGLProgram
Aby utworzyć WebGLProgram, wywołaj funkcję kontekstu gl.createProgram(). Po dołączeniu programów shaderów za pomocą attachShader(), łączysz je w użyteczny program. Aby faktycznie wykonać jakąś pracę z programem, należy wydać procesorowi graficznemu polecenie użycia programu, powiązać odpowiednie dane i opcje konfiguracji, a na końcu narysować coś na ekranie.
Zobacz też: