When you use GL_LINES, you draw just the black lines. Then, to fill each shape, you can use this GL_POLYGON in the glBegin call and you can define a polygon composed of 1 through N vertices. Take care that each shape is convex or divide it until you obtain several convex polygon.

To texture, each polygon, you have to compute texture coordinates at each vertex and give it to glTexCoord function.