Texture mapping on a polygon

Looks like the colors are getting interpolated after being mapped which makes the result show the polygon’s underlying triangulation, you can identify this with the long edge joining (-2, -0.5) and (0, 0).

Can you try interpolating before mapping? Call m_polyDataMapper->SetInterpolateScalarsBeforeMapping(true);