Lines Matching +full:triangle +full:- +full:v2
7 // http://www.apache.org/licenses/LICENSE-2.0
50 const bool triangle = state.isDrawTriangle; in generate() local
52 const int V0 = OFFSET(Triangle, v0); in generate()
53 const int V1 = (triangle || line) ? OFFSET(Triangle, v1) : OFFSET(Triangle, v0); in generate()
54 …const int V2 = triangle ? OFFSET(Triangle, v2) : (line ? OFFSET(Triangle, v1) : OFFSET(Triangle, v… in generate() local
58 Pointer<Byte> v2 = tri + V2; in generate() local
65 X[2] = *Pointer<Int>(v2 + OFFSET(Vertex, projected.x)); in generate()
69 Y[2] = *Pointer<Int>(v2 + OFFSET(Vertex, projected.y)); in generate()
74 if(triangle) in generate()
84 Float A = (y0 - y2) * x1 + (y2 - y1) * x0 + (y1 - y0) * x2; // Area in generate()
88 *Pointer<Int>(v2 + OFFSET(Vertex, w)); in generate()
90 A = IfThenElse(w0w1w2 < 0, -A, A); in generate()
125 If(m != 0 || Bool(!triangle)) // Clipped triangle; reproject in generate()
203 Xq[i] = Xq[i] - *Pointer<Int>(constants + OFFSET(Constants, Xf) + q * sizeof(int)); in generate()
204 Yq[i] = Yq[i] - *Pointer<Int>(constants + OFFSET(Constants, Yf) + q * sizeof(int)); in generate()
211 …Pointer<Byte> leftEdge = Pointer<Byte>(primitive + OFFSET(Primitive, outline->left)) + q * sizeof(… in generate()
212 …Pointer<Byte> rightEdge = Pointer<Byte>(primitive + OFFSET(Primitive, outline->right)) + q * sizeo… in generate()
220 For(Int y = yMin - 1, y < yMax + 1, y++) in generate()
236 edge(primitive, data, Xq[i + 1 - d], Yq[i + 1 - d], Xq[i + d], Yq[i + d], q); in generate()
250 …ort>(leftEdge + (yMax - 1) * sizeof(Primitive::Span)) == *Pointer<Short>(rightEdge + (yMax - 1) * … in generate()
260 …*Pointer<Short>(leftEdge + (yMin - 1) * sizeof(Primitive::Span)) = *Pointer<Short>(leftEdge + yMin… in generate()
261 …*Pointer<Short>(rightEdge + (yMin - 1) * sizeof(Primitive::Span)) = *Pointer<Short>(leftEdge + yMi… in generate()
262 …*Pointer<Short>(leftEdge + yMax * sizeof(Primitive::Span)) = *Pointer<Short>(leftEdge + (yMax - 1)… in generate()
263 …htEdge + yMax * sizeof(Primitive::Span)) = *Pointer<Short>(leftEdge + (yMax - 1) * sizeof(Primitiv… in generate()
271 if(triangle) in generate()
275 Float y2 = *Pointer<Float>(v2 + OFFSET(Vertex, y)); in generate()
279 conditionalRotate1(yMin == y1, v0, v1, v2); in generate()
280 conditionalRotate2(yMin == y2, v0, v1, v2); in generate()
284 if(triangle) in generate()
288 Float w2 = *Pointer<Float>(v2 + OFFSET(Vertex, w)); in generate()
292 conditionalRotate1(wMax == w1, v0, v1, v2); in generate()
293 conditionalRotate2(wMax == w2, v0, v1, v2); in generate()
298 Float w2 = *Pointer<Float>(v2 + OFFSET(Vertex, w)); in generate()
311 Int X2 = *Pointer<Int>(v2 + OFFSET(Vertex, projected.x)); in generate()
315 Int Y2 = *Pointer<Int>(v2 + OFFSET(Vertex, projected.y)); in generate()
319 X2 = X1 + Y1 - Y0; in generate()
320 Y2 = Y1 + X0 - X1; in generate()
328 X1 -= X0; in generate()
329 Y1 -= Y0; in generate()
331 X2 -= X0; in generate()
332 Y2 -= Y0; in generate()
340 Float a = x1 * y2 - x2 * y1; in generate()
355 M[0].x = (y1 * w2 - y2 * w1) * D; in generate()
356 M[0].y = (x2 * w1 - x1 * w2) * D; in generate()
361 M[1].y = -x2 * A; in generate()
365 M[2].x = -y1 * A; in generate()
384 Float z2 = *Pointer<Float>(v2 + OFFSET(Vertex, projected.z)); in generate()
386 z1 -= z0; in generate()
387 z2 -= z0; in generate()
400 Float D = *Pointer<Float>(data + OFFSET(DrawData, depthRange)) / (x1 * y2 - x2 * y1); in generate()
402 A = (y2 * z1 - y1 * z2) * D; in generate()
403 B = (x1 * z2 - x2 * z1) * D; in generate()
425 // TODO(b/139341727): Pre-multiply the constant depth bias factor by the minimum in generate()
428 // TODO(b/139341727): When there's a fixed-point depth buffer and no depth bias clamp, in generate()
429 // the constant depth bias factor could be added to 'depthNear', eliminating the per- in generate()
434 else // Floating-point depth buffer in generate()
436 // "For floating-point depth buffers, there is no single minimum resolvable difference. in generate()
439 // the number of bits in the floating-point mantissa, the minimum resolvable difference, in generate()
440 // r, for the given primitive is defined as r = 2^(e-n)." in generate()
483 setupGradient(primitive, tri, w012, M, v0, v1, v2, in generate()
494 setupGradient(primitive, tri, w012, M, v0, v1, v2, in generate()
502 setupGradient(primitive, tri, w012, M, v0, v1, v2, in generate()
514 …> &primitive, Pointer<Byte> &triangle, Float4 &w012, Float4 (&m)[3], Pointer<Byte> &v0, Pointer<By… in setupGradient() argument
521 i.z = *Pointer<Float>(v2 + attribute); in setupGradient()
541 int leadingVertex = OFFSET(Triangle, v0); in setupGradient()
542 Float C = *Pointer<Float>(triangle + leadingVertex + attribute); in setupGradient()
574 Pointer<Byte> leftEdge = primitive + q * sizeof(Primitive) + OFFSET(Primitive, outline->left); in edge()
575 Pointer<Byte> rightEdge = primitive + q * sizeof(Primitive) + OFFSET(Primitive, outline->right); in edge()
579 Int DX12 = X2 - X1; in edge()
580 Int DY12 = Y2 - Y1; in edge()
585 Int X = DX12 * ((y1 << subPixB) - Y1) + (X1 & subPixM) * DY12; in edge()
587 Int d = X % FDY12; // Error-term in edge()
588 Int ceil = -d >> 31; // Ceiling division: remainder <= 0 in edge()
589 x -= ceil; in edge()
590 d -= ceil & FDY12; in edge()
592 Int Q = FDX12 / FDY12; // Edge-step in edge()
593 Int R = FDX12 % FDY12; // Error-step in edge()
598 Int D = FDY12; // Error-overflow in edge()
611 Int overflow = -d >> 31; in edge()
613 d -= D & overflow; in edge()
614 x -= overflow; in edge()
623 …outine::conditionalRotate1(Bool condition, Pointer<Byte> &v0, Pointer<Byte> &v1, Pointer<Byte> &v2) in conditionalRotate1() argument
632 v1 = v2; in conditionalRotate1()
633 v2 = vX; in conditionalRotate1()
638 v1 = IfThenElse(condition, v2, v1); in conditionalRotate1()
639 v2 = IfThenElse(condition, vX, v2); in conditionalRotate1()
643 …outine::conditionalRotate2(Bool condition, Pointer<Byte> &v0, Pointer<Byte> &v1, Pointer<Byte> &v2) in conditionalRotate2() argument
650 vX = v2; in conditionalRotate2()
651 v2 = v1; in conditionalRotate2()
656 Pointer<Byte> vX = v2; in conditionalRotate2()
657 v2 = IfThenElse(condition, v1, v2); in conditionalRotate2()