Refactor the XCAA vertex shaders themselves, now that the common XCAA

infrastructure has been refactored
This commit is contained in:
Patrick Walton 2017-12-02 13:13:54 -08:00
parent dc5e3a0093
commit 7e0d003a95
4 changed files with 34 additions and 37 deletions

View File

@ -67,15 +67,14 @@ void main() {
leftNormalAngle,
rightNormalAngle,
uEmboldenAmount)) {
controlPointPosition = dilatePosition(controlPointPosition,
controlPointNormalAngle,
uEmboldenAmount);
controlPointPosition = hintPosition(controlPointPosition, uHints);
controlPointPosition = transformVertexPositionAffine(controlPointPosition,
pathTransformST,
pathTransformExt);
controlPointPosition = transformVertexPosition(controlPointPosition, uTransform);
controlPointPosition = convertClipToScreenSpace(controlPointPosition, uFramebufferSize);
controlPointPosition = computeECAAPosition(controlPointPosition,
controlPointNormalAngle,
uEmboldenAmount,
uHints,
pathTransformST,
pathTransformExt,
uTransform,
uFramebufferSize);
}
float depth = convertPathIndexToViewportDepthValue(pathID);

View File

@ -50,11 +50,11 @@ void main() {
pathTransformST,
pathTransformExt,
uTransform)) {
controlPointPosition = transformVertexPositionAffine(controlPointPosition,
pathTransformST,
pathTransformExt);
controlPointPosition = transformVertexPosition(controlPointPosition, uTransform);
controlPointPosition = convertClipToScreenSpace(controlPointPosition, uFramebufferSize);
controlPointPosition = transformECAAPositionToScreenSpace(controlPointPosition,
pathTransformST,
pathTransformExt,
uTransform,
uFramebufferSize);
}
float depth = convertPathIndexToViewportDepthValue(pathID);

View File

@ -28,25 +28,22 @@ void main() {
vec4 transformST = fetchFloat4Data(uPathTransformST, pathID, uPathTransformSTDimensions);
vec2 upperLeftPosition = hintPosition(aUpperLeftPosition, uHints);
vec2 lowerRightPosition = hintPosition(aLowerRightPosition, uHints);
upperLeftPosition = transformVertexPositionST(upperLeftPosition, transformST);
lowerRightPosition = transformVertexPositionST(lowerRightPosition, transformST);
upperLeftPosition = transformVertexPositionST(upperLeftPosition, uTransformST);
lowerRightPosition = transformVertexPositionST(lowerRightPosition, uTransformST);
upperLeftPosition = convertClipToScreenSpace(upperLeftPosition, uFramebufferSize);
lowerRightPosition = convertClipToScreenSpace(lowerRightPosition, uFramebufferSize);
vec4 roundedExtents = vec4(floor(upperLeftPosition.x), ceil(upperLeftPosition.y),
ceil(lowerRightPosition));
vec2 position = mix(roundedExtents.xy, roundedExtents.zw, aQuadPosition);
position = convertScreenToClipSpace(position, uFramebufferSize);
float depth = convertPathIndexToViewportDepthValue(pathID);
gl_Position = vec4(position, depth, 1.0);
vec2 upperLeftPosition = computeMCAAPosition(aUpperLeftPosition,
uHints,
transformST,
uTransformST,
uFramebufferSize);
vec2 lowerRightPosition = computeMCAAPosition(aLowerRightPosition,
uHints,
transformST,
uTransformST,
uFramebufferSize);
vHorizontalExtents = vec2(upperLeftPosition.x, lowerRightPosition.x);
vec4 extents = vec4(upperLeftPosition.x, ceil(upperLeftPosition.y), lowerRightPosition);
vec2 position = computeXCAAClipSpaceQuadPosition(extents, aQuadPosition, uFramebufferSize);
float depth = convertPathIndexToViewportDepthValue(pathID);
gl_Position = vec4(position, depth, 1.0);
}

View File

@ -45,10 +45,11 @@ void main() {
transformST,
uTransformST,
uHints)) {
controlPointPosition = hintPosition(aControlPointPosition, uHints);
controlPointPosition = transformVertexPositionST(controlPointPosition, transformST);
controlPointPosition = transformVertexPositionST(controlPointPosition, uTransformST);
controlPointPosition = convertClipToScreenSpace(controlPointPosition, uFramebufferSize);
controlPointPosition = computeMCAAPosition(controlPointPosition,
uHints,
transformST,
uTransformST,
uFramebufferSize);
}
float depth = convertPathIndexToViewportDepthValue(pathID);