commit | 462e5f71933d2cb48cd0a8f042f6428a6b22807c | [log] [tgz] |
---|---|---|
author | L. David Baron <dbaron@chromium.org> | Mon Jun 07 22:28:21 2021 |
committer | Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Jun 07 22:28:21 2021 |
tree | e54146b07613d71268951ba2bfacdd630caf03c5 | |
parent | 0d601e69ad7756491dba04af4e83848f0779c2ed [diff] |
Keep 3D points in a quad coplanar when clamping them to reasonable values. This is necessary because sending quads that aren't coplanar (or, really, within rounding error of being coplanar) to the plane splitting code (DrawPolygon::SplitPolygon) confuses the plane splitting code (for good reason) and leads to incorrect splits that can leave some pieces undrawn. There are two major pieces to this change: * First, it changes the code that finds the appropriate transition point on an edge that passes between positive and negative w (as part of eliminating the parts of the quad with negative w) to choose a point that is appropriately-clamped rather than nearly-infinite. * Second, it adds new clamping code to clamp any remaining out-of-range values (or the results of the first part if rounding puts them slightly out of range) to clamp by moving them inwards within the plane. Before doing this, if needed, it may also (if none of the plane is close enough to the origin at x=0 and y=0) to move z coordinates on all of the points in the plane a bit closer to z=0. Fixed: 1202695 Change-Id: I82b9510710439a81135559ee7d686480cd1f30ff Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2877604 Reviewed-by: Robert Flack <flackr@chromium.org> Reviewed-by: Kevin Ellis <kevers@chromium.org> Commit-Queue: David Baron <dbaron@chromium.org> Cr-Commit-Position: refs/heads/master@{#889969}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone
! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.