//all value in the stencil buffer is 0 if not
// glClearStencil(0x0);
//glClear(GL_STENCIL_BUFFER_BIT);
glColorMask(GL_FALSE,GL_FALSE,GL_FALSE,GL_FALSE);
glEnable(GL_STENCIL_TEST);
glStencilFunc(GL_ALWAYS,0x1,0x1);
glStencilOp(GL_KEEP,GL_INVERT,GL_INVERT);
glDrawArrays(GL_TRIANGLE_FAN,0,m_Vertices.size());
// Now the value of the stencil if 0x1 (one) inside your irregular shape
glStencilFunc(GL_NOTEQUAL,0x1,0x1);
glStencilOp(GL_KEEP,GL_KEEP,GL_KEEP);
glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_TRUE);
draw_your_grid()
glDisable(GL_STENCIL_TEST);