I have situation like this:

Polygon on this example is made from 3 quads and 1 triangle. I want to texture them all, result should be one visible texture on all of them (like on third picture), not 4 visible textures like on second picture. Is this possible?
Also, is there better way of making polygons than "connecting" many quads and triangles?
1.You basically want to sample a texture based on the screen position, so just do that with texture coordinates.
2. No, OpenGL can only draw triangles. Even a quad is just two triangles as far as OpenGL is concerned. In the later versions GL_QUADS is deprecated.