5 changed files with 0 additions and 1545 deletions
File diff suppressed because it is too large
File diff suppressed because one or more lines are too long
@ -1,465 +0,0 @@ |
|||||
function resultatSucces(span1, span2, msg = "Le fragment passe ce test.") |
|
||||
{ |
|
||||
document.getElementById(span1).innerHTML = "Succès :"; |
|
||||
document.getElementById(span1).className = "green"; |
|
||||
document.getElementById(span2).innerHTML = msg; |
|
||||
document.getElementById(span2).className = "green"; |
|
||||
} |
|
||||
function resultatEchec(span1, span2, msg = "Le fragment ne passe pas ce test et il n'ira pas plus loin.") |
|
||||
{ |
|
||||
document.getElementById(span1).innerHTML = "Échec :"; |
|
||||
document.getElementById(span1).className = "red"; |
|
||||
document.getElementById(span2).innerHTML = msg; |
|
||||
document.getElementById(span2).className = "red"; |
|
||||
} |
|
||||
function resultatDesactive(span1, span2, msg = "") |
|
||||
{ |
|
||||
document.getElementById(span1).innerHTML = "(désactivé)"; |
|
||||
document.getElementById(span1).className = ""; |
|
||||
document.getElementById(span2).innerHTML = msg; |
|
||||
document.getElementById(span2).className = ""; |
|
||||
} |
|
||||
function resultatNonApplicable(span1, span2, msg = "") |
|
||||
{ |
|
||||
document.getElementById(span1).innerHTML = "(non appliqué)"; |
|
||||
document.getElementById(span1).className = ""; |
|
||||
document.getElementById(span2).innerHTML = msg; |
|
||||
document.getElementById(span2).className = ""; |
|
||||
} |
|
||||
|
|
||||
function clamp(v,vmin,vmax) |
|
||||
{ |
|
||||
return( v < vmin ? vmin : v > vmax ? vmax : v ); |
|
||||
} |
|
||||
|
|
||||
function calculerPixel() |
|
||||
{ |
|
||||
// les attributs du fragment courant
|
|
||||
var zFrag = document.getElementById('zFrag').value; |
|
||||
var rFrag = document.getElementById('rFrag').value; |
|
||||
var gFrag = document.getElementById('gFrag').value; |
|
||||
var bFrag = document.getElementById('bFrag').value; |
|
||||
var aFrag = document.getElementById('aFrag').value; |
|
||||
// les valeurs dans le tampon
|
|
||||
var zTamp = document.getElementById('zTamp').value; |
|
||||
var rTamp = document.getElementById('rTamp').value; |
|
||||
var gTamp = document.getElementById('gTamp').value; |
|
||||
var bTamp = document.getElementById('bTamp').value; |
|
||||
var aTamp = document.getElementById('aTamp').value; |
|
||||
var sTamp = document.getElementById('sTamp').value; |
|
||||
// les valeurs courantes
|
|
||||
var zCour = zFrag; |
|
||||
var rCour = rFrag; |
|
||||
var gCour = gFrag; |
|
||||
var bCour = bFrag; |
|
||||
var aCour = aFrag; |
|
||||
var sCour = sTamp; |
|
||||
// tous les tests sont OK?
|
|
||||
var testsOK = true; // si aucun test n'est actif, alors le fragment deviendra un pixel
|
|
||||
|
|
||||
//
|
|
||||
// test du stencil
|
|
||||
//
|
|
||||
var stencilSucces = true; // par défaut
|
|
||||
var stencilEnabled = document.getElementById('stencilEnabled').value; |
|
||||
document.getElementById('stencilfunc').disabled = !( stencilEnabled === "Enable" ); |
|
||||
document.getElementById('ref').disabled = !( stencilEnabled === "Enable" ); |
|
||||
document.getElementById('mask').disabled = !( stencilEnabled === "Enable" ); |
|
||||
document.getElementById('sfail').disabled = !( stencilEnabled === "Enable" ); |
|
||||
document.getElementById('dpfail').disabled = !( stencilEnabled === "Enable" ); |
|
||||
document.getElementById('dppass').disabled = !( stencilEnabled === "Enable" ); |
|
||||
if ( stencilEnabled === "Enable" ) |
|
||||
{ |
|
||||
if ( testsOK ) |
|
||||
{ |
|
||||
var stencilfunc = document.getElementById('stencilfunc').value; |
|
||||
var ref = document.getElementById('ref').value; |
|
||||
var mask = document.getElementById('mask').value; |
|
||||
document.getElementById('ref').disabled = ( stencilfunc === "NEVER" || stencilfunc === "ALWAYS" ); |
|
||||
document.getElementById('mask').disabled = ( stencilfunc === "NEVER" || stencilfunc === "ALWAYS" ); |
|
||||
switch ( stencilfunc ) { |
|
||||
case "NEVER": stencilSucces = false; break; |
|
||||
case "LESS": stencilSucces = ( ref & mask ) < ( sTamp & mask ); break; |
|
||||
case "LEQUAL": stencilSucces = ( ref & mask ) <= ( sTamp & mask ); break; |
|
||||
case "GREATER": stencilSucces = ( ref & mask ) > ( sTamp & mask ); break; |
|
||||
case "GEQUAL": stencilSucces = ( ref & mask ) >= ( sTamp & mask ); break; |
|
||||
case "EQUAL": stencilSucces = ( ref & mask ) == ( sTamp & mask ); break; |
|
||||
case "NOTEQUAL": stencilSucces = ( ref & mask ) != ( sTamp & mask ); break; |
|
||||
case "ALWAYS": stencilSucces = true; break; |
|
||||
} |
|
||||
testsOK &= stencilSucces; |
|
||||
if ( stencilSucces ) |
|
||||
resultatSucces('stencilSucces','stencilMessage'); |
|
||||
else |
|
||||
resultatEchec('stencilSucces','stencilMessage'); |
|
||||
} |
|
||||
else |
|
||||
resultatNonApplicable('stencilSucces','stencilMessage'); // ne se produira pas dans cet exemple
|
|
||||
} |
|
||||
else |
|
||||
resultatDesactive('stencilSucces','stencilMessage'); |
|
||||
|
|
||||
//
|
|
||||
// test de profondeur
|
|
||||
//
|
|
||||
var depthSucces = true; // par défaut
|
|
||||
var depthEnabled = document.getElementById('depthEnabled').value; |
|
||||
document.getElementById('depthfunc').disabled = !( depthEnabled === "Enable" ); |
|
||||
if ( depthEnabled === "Enable" ) |
|
||||
{ |
|
||||
if ( testsOK ) |
|
||||
{ |
|
||||
var depthfunc = document.getElementById('depthfunc').value; |
|
||||
switch ( depthfunc ) { |
|
||||
case "NEVER": depthSucces = false; break; |
|
||||
case "LESS": depthSucces = zFrag < zTamp; break; |
|
||||
case "LEQUAL": depthSucces = zFrag <= zTamp; break; |
|
||||
case "GREATER": depthSucces = zFrag > zTamp; break; |
|
||||
case "GEQUAL": depthSucces = zFrag >= zTamp; break; |
|
||||
case "EQUAL": depthSucces = zFrag == zTamp; break; |
|
||||
case "NOTEQUAL": depthSucces = zFrag != zTamp; break; |
|
||||
case "ALWAYS": depthSucces = true; break; |
|
||||
} |
|
||||
testsOK &= depthSucces; |
|
||||
if ( depthSucces ) |
|
||||
resultatSucces('depthSucces','depthMessage'); |
|
||||
else |
|
||||
resultatEchec('depthSucces','depthMessage'); |
|
||||
} |
|
||||
else |
|
||||
resultatNonApplicable('depthSucces','depthMessage'); |
|
||||
} |
|
||||
else |
|
||||
resultatDesactive('depthSucces','depthMessage',"(Le tampon de profondeur ne sera pas modifié.)"); |
|
||||
|
|
||||
//
|
|
||||
// opération sur le stencil selon les résultats du test de stencil et du test de profondeur
|
|
||||
//
|
|
||||
if ( stencilEnabled === "Enable" ) |
|
||||
{ |
|
||||
var sfail = document.getElementById('sfail').value; |
|
||||
var dpfail = document.getElementById('dpfail').value; |
|
||||
var dppass = document.getElementById('dppass').value; |
|
||||
if ( !stencilSucces ) |
|
||||
{ |
|
||||
switch ( sfail ) { |
|
||||
case "KEEP": sCour = sTamp; break; |
|
||||
case "ZERO": sCour = 0; break; |
|
||||
case "REPLACE": sCour = ref & mask; break; |
|
||||
case "INCR": sCour = sTamp; sCour++; break; |
|
||||
case "DECR": sCour = sTamp; sCour--; break; |
|
||||
case "INVERT": sCour = -sTamp; break; |
|
||||
} |
|
||||
} |
|
||||
else if ( !depthSucces ) |
|
||||
{ |
|
||||
switch ( dpfail ) { |
|
||||
case "KEEP": sCour = sTamp; break; |
|
||||
case "ZERO": sCour = 0; break; |
|
||||
case "REPLACE": sCour = ref & mask; break; |
|
||||
case "INCR": sCour = sTamp; sCour++; break; |
|
||||
case "DECR": sCour = sTamp; sCour--; break; |
|
||||
case "INVERT": sCour = -sTamp; break; |
|
||||
} |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
switch ( dppass ) { |
|
||||
case "KEEP": sCour = sTamp; break; |
|
||||
case "ZERO": sCour = 0; break; |
|
||||
case "REPLACE": sCour = ref & mask; break; |
|
||||
case "INCR": sCour = sTamp; sCour++; break; |
|
||||
case "DECR": sCour = sTamp; sCour--; break; |
|
||||
case "INVERT": sCour = -sTamp; break; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
//
|
|
||||
// fusion de couleurs
|
|
||||
//
|
|
||||
var blendEnabled = document.getElementById('blendEnabled').value; |
|
||||
document.getElementById('sfactor').disabled = !( blendEnabled === "Enable" ); |
|
||||
document.getElementById('dfactor').disabled = !( blendEnabled === "Enable" ); |
|
||||
if ( blendEnabled === "Enable" ) |
|
||||
{ |
|
||||
if ( testsOK ) |
|
||||
{ |
|
||||
var sfactor = document.getElementById('sfactor').value; |
|
||||
var dfactor = document.getElementById('dfactor').value; |
|
||||
var sr = 0.0, sg = 0.0, sb = 0.0, sa = 0.0; |
|
||||
var dr = 0.0, dg = 0.0, db = 0.0, da = 0.0; |
|
||||
switch ( sfactor ) { |
|
||||
case "GL_ZERO": |
|
||||
sr = ( 0.0 ) * rFrag; |
|
||||
sg = ( 0.0 ) * gFrag; |
|
||||
sb = ( 0.0 ) * bFrag; |
|
||||
sa = ( 0.0 ) * aFrag; |
|
||||
break; |
|
||||
case "GL_ONE": |
|
||||
sr = ( 1.0 ) * rFrag; |
|
||||
sg = ( 1.0 ) * gFrag; |
|
||||
sb = ( 1.0 ) * bFrag; |
|
||||
sa = ( 1.0 ) * aFrag; |
|
||||
break; |
|
||||
case "GL_SRC_COLOR": |
|
||||
sr = ( rFrag ) * rFrag; |
|
||||
sg = ( gFrag ) * gFrag; |
|
||||
sb = ( bFrag ) * bFrag; |
|
||||
sa = ( aFrag ) * aFrag; |
|
||||
break; |
|
||||
case "GL_ONE_MINUS_SRC_COLOR": |
|
||||
sr = ( 1.0 - rFrag ) * rFrag; |
|
||||
sg = ( 1.0 - gFrag ) * gFrag; |
|
||||
sb = ( 1.0 - bFrag ) * bFrag; |
|
||||
sa = ( 1.0 - aFrag ) * aFrag; |
|
||||
break; |
|
||||
case "GL_DST_COLOR": |
|
||||
sr = ( rTamp ) * rFrag; |
|
||||
sg = ( gTamp ) * gFrag; |
|
||||
sb = ( bTamp ) * bFrag; |
|
||||
sa = ( aTamp ) * aFrag; |
|
||||
break; |
|
||||
case "GL_ONE_MINUS_DST_COLOR": |
|
||||
sr = ( 1.0 - rTamp ) * rFrag; |
|
||||
sg = ( 1.0 - gTamp ) * gFrag; |
|
||||
sb = ( 1.0 - bTamp ) * bFrag; |
|
||||
sa = ( 1.0 - aTamp ) * aFrag; |
|
||||
break; |
|
||||
case "GL_SRC_ALPHA": |
|
||||
sr = ( aFrag ) * rFrag; |
|
||||
sg = ( aFrag ) * gFrag; |
|
||||
sb = ( aFrag ) * bFrag; |
|
||||
sa = ( aFrag ) * aFrag; |
|
||||
break; |
|
||||
case "GL_ONE_MINUS_SRC_ALPHA": |
|
||||
sr = ( 1.0 - aFrag ) * rFrag; |
|
||||
sg = ( 1.0 - aFrag ) * gFrag; |
|
||||
sb = ( 1.0 - aFrag ) * bFrag; |
|
||||
sa = ( 1.0 - aFrag ) * aFrag; |
|
||||
break; |
|
||||
case "GL_DST_ALPHA": |
|
||||
sr = ( aTamp ) * rFrag; |
|
||||
sg = ( aTamp ) * gFrag; |
|
||||
sb = ( aTamp ) * bFrag; |
|
||||
sa = ( aTamp ) * aFrag; |
|
||||
break; |
|
||||
case "GL_ONE_MINUS_DST_ALPHA": |
|
||||
sr = ( 1.0 - aTamp ) * rFrag; |
|
||||
sg = ( 1.0 - aTamp ) * gFrag; |
|
||||
sb = ( 1.0 - aTamp ) * bFrag; |
|
||||
sa = ( 1.0 - aTamp ) * aFrag; |
|
||||
break; |
|
||||
} |
|
||||
switch ( dfactor ) { |
|
||||
case "GL_ZERO": |
|
||||
dr = ( 0.0 ) * rTamp; |
|
||||
dg = ( 0.0 ) * gTamp; |
|
||||
db = ( 0.0 ) * bTamp; |
|
||||
da = ( 0.0 ) * aTamp; |
|
||||
break; |
|
||||
case "GL_ONE": |
|
||||
dr = ( 1.0 ) * rTamp; |
|
||||
dg = ( 1.0 ) * gTamp; |
|
||||
db = ( 1.0 ) * bTamp; |
|
||||
da = ( 1.0 ) * aTamp; |
|
||||
break; |
|
||||
case "GL_SRC_COLOR": |
|
||||
dr = ( rFrag ) * rTamp; |
|
||||
dg = ( gFrag ) * gTamp; |
|
||||
db = ( bFrag ) * bTamp; |
|
||||
da = ( aFrag ) * aTamp; |
|
||||
break; |
|
||||
case "GL_ONE_MINUS_SRC_COLOR": |
|
||||
dr = ( 1.0 - rFrag ) * rTamp; |
|
||||
dg = ( 1.0 - gFrag ) * gTamp; |
|
||||
db = ( 1.0 - bFrag ) * bTamp; |
|
||||
da = ( 1.0 - aFrag ) * aTamp; |
|
||||
break; |
|
||||
case "GL_DST_COLOR": |
|
||||
dr = ( rTamp ) * rTamp; |
|
||||
dg = ( gTamp ) * gTamp; |
|
||||
db = ( bTamp ) * bTamp; |
|
||||
da = ( aTamp ) * aTamp; |
|
||||
break; |
|
||||
case "GL_ONE_MINUS_DST_COLOR": |
|
||||
dr = ( 1.0 - rTamp ) * rTamp; |
|
||||
dg = ( 1.0 - gTamp ) * gTamp; |
|
||||
db = ( 1.0 - bTamp ) * bTamp; |
|
||||
da = ( 1.0 - aTamp ) * aTamp; |
|
||||
break; |
|
||||
case "GL_SRC_ALPHA": |
|
||||
dr = ( aFrag ) * rTamp; |
|
||||
dg = ( aFrag ) * gTamp; |
|
||||
db = ( aFrag ) * bTamp; |
|
||||
da = ( aFrag ) * aTamp; |
|
||||
break; |
|
||||
case "GL_ONE_MINUS_SRC_ALPHA": |
|
||||
dr = ( 1.0 - aFrag ) * rTamp; |
|
||||
dg = ( 1.0 - aFrag ) * gTamp; |
|
||||
db = ( 1.0 - aFrag ) * bTamp; |
|
||||
da = ( 1.0 - aFrag ) * aTamp; |
|
||||
break; |
|
||||
case "GL_DST_ALPHA": |
|
||||
dr = ( aTamp ) * rTamp; |
|
||||
dg = ( aTamp ) * gTamp; |
|
||||
db = ( aTamp ) * bTamp; |
|
||||
da = ( aTamp ) * aTamp; |
|
||||
break; |
|
||||
case "GL_ONE_MINUS_DST_ALPHA": |
|
||||
dr = ( 1.0 - aTamp ) * rTamp; |
|
||||
dg = ( 1.0 - aTamp ) * gTamp; |
|
||||
db = ( 1.0 - aTamp ) * bTamp; |
|
||||
da = ( 1.0 - aTamp ) * aTamp; |
|
||||
break; |
|
||||
} |
|
||||
rCour = clamp( sr+dr, 0.0, 1.0 ); |
|
||||
gCour = clamp( sg+dg, 0.0, 1.0 ); |
|
||||
bCour = clamp( sb+db, 0.0, 1.0 ); |
|
||||
aCour = clamp( sa+da, 0.0, 1.0 ); |
|
||||
resultatSucces('blendSucces','blendMessage','Couleurs fusionnées.'); |
|
||||
} |
|
||||
else |
|
||||
resultatNonApplicable('blendSucces','blendMessage'); |
|
||||
} |
|
||||
else |
|
||||
resultatDesactive('blendSucces','blendMessage'); |
|
||||
|
|
||||
//
|
|
||||
// opérations logiques
|
|
||||
//
|
|
||||
// var logicEnabled = document.getElementById('logicEnabled').value;
|
|
||||
// document.getElementById('opcode').disabled = !( logicEnabled === "Enable" );
|
|
||||
// if ( logicEnabled === "Enable" )
|
|
||||
// {
|
|
||||
// if ( testsOK )
|
|
||||
// {
|
|
||||
// var opcode = document.getElementById('opcode').value;
|
|
||||
// switch ( opcode ) {
|
|
||||
// case "GL_CLEAR":
|
|
||||
// rCour = 0.0;
|
|
||||
// gCour = 0.0;
|
|
||||
// bCour = 0.0;
|
|
||||
// aCour = 0.0;
|
|
||||
// break;
|
|
||||
// case "GL_SET":
|
|
||||
// rCour = 1.0;
|
|
||||
// gCour = 1.0;
|
|
||||
// bCour = 1.0;
|
|
||||
// aCour = 1.0;
|
|
||||
// break;
|
|
||||
// case "GL_COPY":
|
|
||||
// rCour = rCour;
|
|
||||
// gCour = gCour;
|
|
||||
// bCour = bCour;
|
|
||||
// aCour = aCour;
|
|
||||
// break;
|
|
||||
// case "GL_COPY_INVERTED":
|
|
||||
// rCour = 1-rCour;
|
|
||||
// gCour = 1-gCour;
|
|
||||
// bCour = 1-bCour;
|
|
||||
// aCour = 1-aCour;
|
|
||||
// break;
|
|
||||
// case "GL_NOOP":
|
|
||||
// rCour = rTamp;
|
|
||||
// gCour = gTamp;
|
|
||||
// bCour = bTamp;
|
|
||||
// aCour = aTamp;
|
|
||||
// break;
|
|
||||
// case "GL_INVERT":
|
|
||||
// rCour = 1-rTamp;
|
|
||||
// gCour = 1-gTamp;
|
|
||||
// bCour = 1-bTamp;
|
|
||||
// aCour = 1-aTamp;
|
|
||||
// break;
|
|
||||
// case "GL_AND":
|
|
||||
// rCour = rCour & rTamp;
|
|
||||
// gCour = gCour & gTamp;
|
|
||||
// bCour = bCour & bTamp;
|
|
||||
// aCour = aCour & aTamp;
|
|
||||
// break;
|
|
||||
// case "GL_NAND":
|
|
||||
// rCour = 1-( rCour & rTamp );
|
|
||||
// gCour = 1-( gCour & gTamp );
|
|
||||
// bCour = 1-( bCour & bTamp );
|
|
||||
// aCour = 1-( aCour & aTamp );
|
|
||||
// break;
|
|
||||
// case "GL_OR":
|
|
||||
// rCour = rCour | rTamp;
|
|
||||
// gCour = gCour | gTamp;
|
|
||||
// bCour = bCour | bTamp;
|
|
||||
// aCour = aCour | aTamp;
|
|
||||
// break;
|
|
||||
// case "GL_NOR":
|
|
||||
// rCour = 1-( rCour | rTamp );
|
|
||||
// gCour = 1-( gCour | gTamp );
|
|
||||
// bCour = 1-( bCour | bTamp );
|
|
||||
// aCour = 1-( aCour | aTamp );
|
|
||||
// break;
|
|
||||
// case "GL_XOR":
|
|
||||
// //rCour = (( (parseInt(rCour*256)%255) ^ (parseInt(rTamp*256)&255) ) & 255 )/256;
|
|
||||
// rCour = rCour ^ rTamp;
|
|
||||
// gCour = gCour ^ gTamp;
|
|
||||
// bCour = bCour ^ bTamp;
|
|
||||
// aCour = aCour ^ aTamp;
|
|
||||
// break;
|
|
||||
// case "GL_EQUIV":
|
|
||||
// rCour = 1-( rCour ^ rTamp );
|
|
||||
// gCour = 1-( gCour ^ gTamp );
|
|
||||
// bCour = 1-( bCour ^ bTamp );
|
|
||||
// aCour = 1-( aCour ^ aTamp );
|
|
||||
// break;
|
|
||||
// case "GL_AND_REVERSE":
|
|
||||
// rCour = rCour & ~rTamp;
|
|
||||
// gCour = gCour & ~gTamp;
|
|
||||
// bCour = bCour & ~bTamp;
|
|
||||
// aCour = aCour & ~aTamp;
|
|
||||
// break;
|
|
||||
// case "GL_AND_INVERTED":
|
|
||||
// rCour = ~rCour & rTamp;
|
|
||||
// gCour = ~gCour & gTamp;
|
|
||||
// bCour = ~bCour & bTamp;
|
|
||||
// aCour = ~aCour & aTamp;
|
|
||||
// break;
|
|
||||
// case "GL_OR_REVERSE":
|
|
||||
// rCour = rCour | ~rTamp;
|
|
||||
// gCour = gCour | ~gTamp;
|
|
||||
// bCour = bCour | ~bTamp;
|
|
||||
// aCour = aCour | ~aTamp;
|
|
||||
// break;
|
|
||||
// case "GL_OR_INVERTED":
|
|
||||
// rCour = ~rCour | rTamp;
|
|
||||
// gCour = ~gCour | gTamp;
|
|
||||
// bCour = ~bCour | bTamp;
|
|
||||
// aCour = ~aCour | aTamp;
|
|
||||
// break;
|
|
||||
// }
|
|
||||
// resultatSucces('logicSucces','logicMessage','Opération appliuquée.');
|
|
||||
// }
|
|
||||
// else
|
|
||||
// resultatNonApplicable('logicSucces','logicMessage');
|
|
||||
// }
|
|
||||
// else
|
|
||||
// resultatDesactive('logicSucces','logicMessage');
|
|
||||
|
|
||||
//
|
|
||||
// FIN: tous les tests sont passés; assigner les valeurs aux tampons
|
|
||||
//
|
|
||||
if ( testsOK ) |
|
||||
{ |
|
||||
document.getElementById('zFin').value = ( depthEnabled === "Enable" ) ? zCour : zTamp; |
|
||||
document.getElementById('rFin').value = clamp( rCour, 0.0, 1.0 ); |
|
||||
document.getElementById('gFin').value = clamp( gCour, 0.0, 1.0 ); |
|
||||
document.getElementById('bFin').value = clamp( bCour, 0.0, 1.0 ); |
|
||||
document.getElementById('aFin').value = clamp( aCour, 0.0, 1.0 ); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
document.getElementById('zFin').value = zTamp; |
|
||||
document.getElementById('rFin').value = clamp( rTamp, 0.0, 1.0 ); |
|
||||
document.getElementById('gFin').value = clamp( gTamp, 0.0, 1.0 ); |
|
||||
document.getElementById('bFin').value = clamp( bTamp, 0.0, 1.0 ); |
|
||||
document.getElementById('aFin').value = clamp( aTamp, 0.0, 1.0 ); |
|
||||
} |
|
||||
document.getElementById('sFin').value = sCour; |
|
||||
} |
|
||||
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue