| 733 | } |
| 734 | |
| 735 | Vec2 Director::convertToUI(const Vec2& glPoint) |
| 736 | { |
| 737 | Mat4 transform; |
| 738 | GLToClipTransform(&transform); |
| 739 | |
| 740 | Vec4 clipCoord; |
| 741 | // Need to calculate the zero depth from the transform. |
| 742 | Vec4 glCoord(glPoint.x, glPoint.y, 0.0, 1); |
| 743 | transform.transformVector(glCoord, &clipCoord); |
| 744 | |
| 745 | /* |
| 746 | BUG-FIX #5506 |
| 747 | |
| 748 | a = (Vx, Vy, Vz, 1) |
| 749 | b = (a×M)T |
| 750 | Out = 1 ⁄ bw(bx, by, bz) |
| 751 | */ |
| 752 | |
| 753 | clipCoord.x = clipCoord.x / clipCoord.w; |
| 754 | clipCoord.y = clipCoord.y / clipCoord.w; |
| 755 | clipCoord.z = clipCoord.z / clipCoord.w; |
| 756 | |
| 757 | Vec2 glSize = _renderView->getDesignResolutionSize(); |
| 758 | float factor = 1.0f / glCoord.w; |
| 759 | return Vec2(glSize.width * (clipCoord.x * 0.5f + 0.5f) * factor, |
| 760 | glSize.height * (-clipCoord.y * 0.5f + 0.5f) * factor); |
| 761 | } |
| 762 | |
| 763 | const Vec2& Director::getWinSize() const |
| 764 | { |
no test coverage detected