Commit 0f5aa063 authored by Maciej Suminski's avatar Maciej Suminski
Browse files

Fixed stroke semicircles drawing using shaderless OpenGL backend.

parent 6dc79cf1
Loading
Loading
Loading
Loading
+36 −41
Original line number Original line Diff line number Diff line
@@ -1024,15 +1024,11 @@ void OPENGL_GAL::drawStrokedSemiCircle( const VECTOR2D& aCenterPoint, double aRa
    else
    else
    {
    {
        // Compute the factors for the unit circle
        // Compute the factors for the unit circle
        double outerScale = lineWidth / aRadius / 2;
        double innerScale = 1.0 - lineWidth / aRadius;
        double innerScale = -outerScale;
        outerScale += 1.0;
        innerScale += 1.0;


        if( innerScale < outerScale )
        {
        Save();
        Save();
        Translate( aCenterPoint );
        Translate( aCenterPoint );
        Scale( VECTOR2D( aRadius, aRadius ) );
        Rotate( aAngle );
        Rotate( aAngle );


        // Draw the outline
        // Draw the outline
@@ -1062,11 +1058,11 @@ void OPENGL_GAL::drawStrokedSemiCircle( const VECTOR2D& aCenterPoint, double aRa
            }
            }


            vertex3( circle[i].x * innerScale,      circle[i].y * innerScale,       layerDepth );
            vertex3( circle[i].x * innerScale,      circle[i].y * innerScale,       layerDepth );
                vertex3( circle[i].x * outerScale, circle[i].y * outerScale, layerDepth );
            vertex3( circle[i].x,                   circle[i].y,                    layerDepth );
            vertex3( circle[next].x * innerScale,   circle[next].y * innerScale,    layerDepth );
            vertex3( circle[next].x * innerScale,   circle[next].y * innerScale,    layerDepth );


                vertex3( circle[i].x * outerScale, circle[i].y * outerScale, layerDepth );
            vertex3( circle[i].x,                   circle[i].y,                    layerDepth );
                vertex3( circle[next].x * outerScale, circle[next].y * outerScale, layerDepth );
            vertex3( circle[next].x,                circle[next].y,                 layerDepth );
            vertex3( circle[next].x * innerScale,   circle[next].y * innerScale,    layerDepth );
            vertex3( circle[next].x * innerScale,   circle[next].y * innerScale,    layerDepth );
        }
        }


@@ -1075,7 +1071,6 @@ void OPENGL_GAL::drawStrokedSemiCircle( const VECTOR2D& aCenterPoint, double aRa
        Restore();
        Restore();
    }
    }
}
}
}




// FIXME Optimize
// FIXME Optimize