Special Texture Stretching without deformation
The Nine Patches algorithm is a really nice and powerful solution if you are using textures but I ended up by using a fully procedural solution.

I am just drawing a round box like this.

float udRoundBox( vec3 p, vec3 b, float r )
{
  return length(max(abs(p)-b,0.0))-r;
}


You can simply avoid the 3rd dimension if you don't need it.
This method comes from the Distance function article from Inigo Quilez.