TiJoin[XY]1() API introduction

This commit is contained in:
Darryl L. Miles 2025-07-14 13:50:52 +01:00 committed by R. Timothy Edwards
parent a6fd0ed320
commit db8e790aea
2 changed files with 32 additions and 0 deletions

View File

@ -853,6 +853,8 @@ TiFree(
/* Use of 'extern inline' force an emit of inline code at a symbol */
extern inline void TiFreeIf(Tile *tile);
extern inline void TiFree1(Tile **delay1, Tile *tile);
extern inline void TiJoinX1(Tile **delay1, Tile *tile1, Tile *tile2, Plane *plane);
extern inline void TiJoinY1(Tile **delay1, Tile *tile1, Tile *tile2, Plane *plane);
#else
/* To support older compilers (that don't auto emit based on -O level) */
void
@ -868,6 +870,20 @@ TiFree1(Tile **delay1, Tile *tile)
TiFreeIf(*delay1);
*delay1 = tile;
}
void
TiJoinX1(Tile **delay1, Tile *tile1, Tile *tile2, Plane *plane)
{
TiFreeIf(*delay1);
TiJoinX(tile1, tile2, plane);
}
void
TiJoinY1(Tile **delay1, Tile *tile1, Tile *tile2, Plane *plane)
{
TiFreeIf(*delay1);
TiJoinY(tile1, tile2, plane);
}
#endif

View File

@ -264,10 +264,26 @@ TiFree1(Tile **delay1, Tile *tile)
TiFreeIf(*delay1);
*delay1 = tile;
}
inline void
TiJoinX1(Tile **delay1, Tile *tile1, Tile *tile2, Plane *plane)
{
TiFreeIf(*delay1);
TiJoinX(tile1, tile2, plane);
}
inline void
TiJoinY1(Tile **delay1, Tile *tile1, Tile *tile2, Plane *plane)
{
TiFreeIf(*delay1);
TiJoinY(tile1, tile2, plane);
}
#else
/* To support older compilers (that don't auto emit based on -O level) */
extern void TiFreeIf(Tile *tile);
extern void TiFree1(Tile **delay1, Tile *tile);
extern void TiJoinX1(Tile **delay1, Tile *tile1, Tile *tile2, Plane *plane);
extern void TiJoinY1(Tile **delay1, Tile *tile1, Tile *tile2, Plane *plane);
#endif
#define EnclosePoint(tile,point) ((LEFT(tile) <= (point)->p_x ) && \