Rotate Texture Quad in it's Own Space

I’m working in Open GL ES 2.0 in iOS. I have a quad with a texture located at

-1.0, 1.0
-0.5, 1.0
-1.0, 0.333
-0.5, 0.333

When I create a Z axis rotation matrix and multiply it with my position in a GLSL vertex shader, I get a rotation around 0,0 and not inside the texture space. What has to happen in order for this to work? Thanks!

All simple transformations are defined in regard to a coordinate system origin. If you want to rotate around certain point, you should translate that point to the origin, rotate object and again translate to that point. Or draw at the origin, rotate, and then translate to defined point.

OK, I understand the concept of translater->rotate->translate. I’m not sure how to do that, especially in ES 2.0 w/o the glRotate and glTranslate functions.

Got it. In my shader: (projection being my rotation matrix)

gl_Position = (position * projection) + vec4(-0.75, 0.6667, 0.0, 0.0);

and my position is now around 0,0:

-0.25, 0.333
0.25, 0.333
-0.25, -0.333
0.25, -0.333

I’ll move the translation vec4 to a uniform, but this was a quick brute force method for testing. Thanks!