sdlGetRectAndLineIntersection function rect

bool sdlGetRectAndLineIntersection(
  1. Pointer<SdlRect> rect,
  2. Pointer<Int32> x1,
  3. Pointer<Int32> y1,
  4. Pointer<Int32> x2,
  5. Pointer<Int32> y2,
)

Calculate the intersection of a rectangle and line segment.

This function is used to clip a line segment to a rectangle. A line segment contained entirely within the rectangle or that does not intersect will remain unchanged. A line segment that crosses the rectangle at either or both ends will be clipped to the boundary of the rectangle and the new coordinates saved in X1, Y1, X2, and/or Y2 as necessary.

\param rect an SDL_Rect structure representing the rectangle to intersect. \param X1 a pointer to the starting X-coordinate of the line. \param Y1 a pointer to the starting Y-coordinate of the line. \param X2 a pointer to the ending X-coordinate of the line. \param Y2 a pointer to the ending Y-coordinate of the line. \returns true if there is an intersection, false otherwise.

\threadsafety It is safe to call this function from any thread.

\since This function is available since SDL 3.2.0.

extern SDL_DECLSPEC bool SDLCALL SDL_GetRectAndLineIntersection(const SDL_Rect *rect, int *X1, int *Y1, int *X2, int *Y2)

Implementation

bool sdlGetRectAndLineIntersection(
  Pointer<SdlRect> rect,
  Pointer<Int32> x1,
  Pointer<Int32> y1,
  Pointer<Int32> x2,
  Pointer<Int32> y2,
) {
  final sdlGetRectAndLineIntersectionLookupFunction = _libSdl
      .lookupFunction<
        Uint8 Function(
          Pointer<SdlRect> rect,
          Pointer<Int32> x1,
          Pointer<Int32> y1,
          Pointer<Int32> x2,
          Pointer<Int32> y2,
        ),
        int Function(
          Pointer<SdlRect> rect,
          Pointer<Int32> x1,
          Pointer<Int32> y1,
          Pointer<Int32> x2,
          Pointer<Int32> y2,
        )
      >('SDL_GetRectAndLineIntersection');
  return sdlGetRectAndLineIntersectionLookupFunction(rect, x1, y1, x2, y2) == 1;
}