mirror of
https://github.com/Rezmason/matrix.git
synced 2026-04-21 23:39:29 -07:00
A little more cleanup in the renderer code.
This commit is contained in:
@@ -13,6 +13,11 @@ const cycleStyles = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const numVerticesPerQuad = 2 * 3;
|
const numVerticesPerQuad = 2 * 3;
|
||||||
|
const tlVert = [0, 0];
|
||||||
|
const trVert = [0, 1];
|
||||||
|
const blVert = [1, 0];
|
||||||
|
const brVert = [1, 1];
|
||||||
|
const quadVertices = [tlVert, trVert, brVert, tlVert, brVert, blVert];
|
||||||
|
|
||||||
export default (regl, config) => {
|
export default (regl, config) => {
|
||||||
const volumetric = config.volumetric;
|
const volumetric = config.volumetric;
|
||||||
@@ -21,6 +26,7 @@ export default (regl, config) => {
|
|||||||
const [numQuadRows, numQuadColumns] = volumetric ? [numRows, numColumns] : [1, 1];
|
const [numQuadRows, numQuadColumns] = volumetric ? [numRows, numColumns] : [1, 1];
|
||||||
const numQuads = numQuadRows * numQuadColumns;
|
const numQuads = numQuadRows * numQuadColumns;
|
||||||
const quadSize = [1 / numQuadColumns, 1 / numQuadRows];
|
const quadSize = [1 / numQuadColumns, 1 / numQuadRows];
|
||||||
|
|
||||||
const rippleType = config.rippleTypeName in rippleTypes ? rippleTypes[config.rippleTypeName] : -1;
|
const rippleType = config.rippleTypeName in rippleTypes ? rippleTypes[config.rippleTypeName] : -1;
|
||||||
const cycleStyle = config.cycleStyleName in cycleStyles ? cycleStyles[config.cycleStyleName] : 0;
|
const cycleStyle = config.cycleStyleName in cycleStyles ? cycleStyles[config.cycleStyleName] : 0;
|
||||||
const slantVec = [Math.cos(config.slant), Math.sin(config.slant)];
|
const slantVec = [Math.cos(config.slant), Math.sin(config.slant)];
|
||||||
@@ -49,9 +55,9 @@ export default (regl, config) => {
|
|||||||
"rippleSpeed",
|
"rippleSpeed",
|
||||||
"rippleThickness",
|
"rippleThickness",
|
||||||
"resurrectingCodeRatio",
|
"resurrectingCodeRatio",
|
||||||
// rain vertex
|
// rain render vertex
|
||||||
"forwardSpeed",
|
"forwardSpeed",
|
||||||
// rain render
|
// rain render fragment
|
||||||
"glyphEdgeCrop",
|
"glyphEdgeCrop",
|
||||||
"isPolar",
|
"isPolar",
|
||||||
]),
|
]),
|
||||||
@@ -62,6 +68,7 @@ export default (regl, config) => {
|
|||||||
numQuadColumns,
|
numQuadColumns,
|
||||||
quadSize,
|
quadSize,
|
||||||
volumetric,
|
volumetric,
|
||||||
|
|
||||||
rippleType,
|
rippleType,
|
||||||
cycleStyle,
|
cycleStyle,
|
||||||
slantVec,
|
slantVec,
|
||||||
@@ -106,15 +113,6 @@ export default (regl, config) => {
|
|||||||
.map((_, x) => Array(numVerticesPerQuad).fill([x, y]))
|
.map((_, x) => Array(numVerticesPerQuad).fill([x, y]))
|
||||||
);
|
);
|
||||||
|
|
||||||
const quadCorners = Array(numQuads).fill([
|
|
||||||
[0, 0],
|
|
||||||
[0, 1],
|
|
||||||
[1, 1],
|
|
||||||
[0, 0],
|
|
||||||
[1, 1],
|
|
||||||
[1, 0],
|
|
||||||
]);
|
|
||||||
|
|
||||||
// We render the code into an FBO using MSDFs: https://github.com/Chlumsky/msdfgen
|
// We render the code into an FBO using MSDFs: https://github.com/Chlumsky/msdfgen
|
||||||
const renderVert = loadText("../shaders/render.vert");
|
const renderVert = loadText("../shaders/render.vert");
|
||||||
const renderFrag = loadText("../shaders/render.frag");
|
const renderFrag = loadText("../shaders/render.frag");
|
||||||
@@ -122,10 +120,8 @@ export default (regl, config) => {
|
|||||||
blend: {
|
blend: {
|
||||||
enable: true,
|
enable: true,
|
||||||
func: {
|
func: {
|
||||||
srcRGB: "src alpha",
|
src: "one",
|
||||||
srcAlpha: 1,
|
dst: "one",
|
||||||
dstRGB: "dst alpha",
|
|
||||||
dstAlpha: 1,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
vert: regl.prop("vert"),
|
vert: regl.prop("vert"),
|
||||||
@@ -144,7 +140,7 @@ export default (regl, config) => {
|
|||||||
|
|
||||||
attributes: {
|
attributes: {
|
||||||
aPosition: quadPositions,
|
aPosition: quadPositions,
|
||||||
aCorner: quadCorners,
|
aCorner: Array(numQuads).fill(quadVertices),
|
||||||
},
|
},
|
||||||
count: numQuads * numVerticesPerQuad,
|
count: numQuads * numVerticesPerQuad,
|
||||||
|
|
||||||
@@ -165,8 +161,6 @@ export default (regl, config) => {
|
|||||||
primary: output,
|
primary: output,
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
const time = Date.now();
|
|
||||||
|
|
||||||
update({ frag: updateFrag.text() });
|
update({ frag: updateFrag.text() });
|
||||||
regl.clear({
|
regl.clear({
|
||||||
depth: 1,
|
depth: 1,
|
||||||
|
|||||||
Reference in New Issue
Block a user