JSFiddle - React, Tailwind, and code Playground

by XGundam05

HTML

<pre>
void renderMirrors(void){
  double eq[] = {0.0, 0.0, -1.0, 172.0};

  glPushMatrix();

  glColorMask(0, 0, 0, 0);

  glEnable(GL_STENCIL_TEST);
  glStencilFunc(GL_ALWAYS, 1, 1);
  glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);

  glDisable(GL_DEPTH_TEST);
  glEnable(GL_CULL_FACE);

  // Stencil in the mirrors
  glCallList(mirrorList);

  glDisable(GL_CULL_FACE);
  glEnable(GL_DEPTH_TEST);
  
  glColorMask(1, 1, 1, 1);

  glStencilFunc(GL_EQUAL, 1, 1);
  glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);

  // We're hardcoding the mirror stuffs
  // because the model stuff is hardcoded
  glEnable(GL_CLIP_PLANE0);
  glClipPlane(GL_CLIP_PLANE0, eq);
  glTranslatef(0.0, 0.0, 344.0);
  glScalef(1.0, 1.0, -1.0);

  // Need to set lights to mirrored here

  if (gPolygons){
    if (gLighting)
      glEnable(GL_LIGHTING);
    else
      glDisable(GL_LIGHTING);
    glCallList(gPolyList);
    glDisable(GL_LIGHTING);
  }

  glDisable(GL_CLIP_PLANE0);
  glDisable(GL_STENCIL_TEST);

  glPopMatrix();

  // Need to reset lights

  glEnable(GL_BLEND);
  glDisable(GL_LIGHTING);
  glBlendFuncSeparate(0, 1, 0, 1);
  glCallList(mirrorList);
  glDisable(GL_BLEND);
}
</pre>