GLfloat matrix[16];
glGetFloatv( GL_MODELVIEW_MATRIX, matrix );
vector3_t right( matrix[0], matrix[4], matrix[8] );
vector3_t up( matrix[1], matrix[5], matrix[9] );
vector3_t p( x,y,z );
//Now create each particle:
glBegin( GL_QUADS );
glTexCoord2f( 0.0f, 0.0f );
glVertex3fv( (p + (right + up ) * -size ).v );
glTexCoord2f( 1.0f, 0.0f );
glVertex3fv( (p + (right - up ) * size ).v );
glTexCoord2f( 1.0f, 1.0f );
glVertex3fv( (p + (right + up ) * size ).v );
glTexCoord2f( 0.0f, 1.0f );
glVertex3fv( (p + ( up - right ) * size ).v );
glEnd();