Thats pretty simple.
If you start of with a 4 point square, each point will have a xyz coordinate and a texture coordinate (uv) (0-1).
Lets say the bottom left vertex is 0,0,0 and has texture coordinate 0,0 and top right vertex has 1,1,1 and texture coordinate 1,1.
If you subdivide edges and add interior points their xyz coordinates will be between 0 and 1 so their texture coordinates will be the same.
e.g. if you add a point in the middle 0.5,0.5,0 the tc will be 0.5,0.5.
So when you render the triangles with given ccordinates and tc's the shards will retain the correct texture.
ofc. in the real world your squares will have other coordinates then 0,0,0 and 1,1,1 and even other texCoords in the corners. But knowing the coordinates and texCoords in the square
corners you can easily compute the texture coordinates for any point in the square.