void renderScene() {
    int currentEye = getCurrentEye();
    ovrGLTexture & eyeTex = eyeTextures[currentEye];
    const ovrSizei & texSize = eyeTex.Texture.Header.TextureSize;
    ovrSizei & renderSize = eyeTex.Texture.Header.RenderViewport.Size;
    renderSize.w = texSize.w * texRes;
    renderSize.h = texSize.h * texRes;
    glViewport(
      0, 
      texSize.h - renderSize.h,
      renderSize.w, renderSize.h);

    glEnable(GL_DEPTH_TEST);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    gl::MatrixStack & mv = gl::Stacks::modelview();
    mv.withPush([&]{
      mv.postMultiply(glm::inverse(player));
      GlUtils::renderSkybox(Resource::IMAGES_SKY_CITY_XNEG_PNG);
      GlUtils::renderFloorGrid(player);
      gl::Stacks::with_push(mv, [&]{
        mv.translate(glm::vec3(0, eyeHeight, 0)).scale(ipd);
        GlUtils::drawColorCube(true);
      });
    });
  }
  void renderScene() {
    int currentEye = getCurrentEye();
    glEnable(GL_DEPTH_TEST);
    glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    MatrixStack & mv = Stacks::modelview();
    MatrixStack & pr = Stacks::projection();
    glUseProgram(0);
    Stacks::withPush([&]{
      pr.top() = getOrthographic();
      pr.top()[1][1] = -pr.top()[1][1];
      //float tr = pr.top()[3].x;
      //pr.identity().translate(tr);

      //glDisable(GL_CULL_FACE);
//      glMatrixMode(GL_PROJECTION);
//      glLoadMatrixf(glm::value_ptr(pr.top()));

//      glMatrixMode(GL_MODELVIEW);
      mv.identity();
//      glLoadMatrixf(glm::value_ptr(mv.top()));
      glm::vec2 cursor = glm::vec2(-0.5, -0.5);
      static Text::FontPtr font =
        GlUtils::getFont(Resource::FONTS_INCONSOLATA_MEDIUM_SDFF);
      font->renderString("World", cursor );
      mv.scale(0.5f);
      cursor = glm::vec2(0);
      GlUtils::drawQuad(glm::vec2(-QUAD_SIZE), glm::vec2(QUAD_SIZE));
      GlUtils::getFont(Resource::FONTS_INCONSOLATA_MEDIUM_SDFF)->
        renderString("Hello", cursor , 12, 100);

    });

    GlUtils::drawAngleTicks();
    /*
    mv.withPush([&]{
      mv.postMultiply(glm::inverse(player));
      GlUtils::renderSkybox(Resource::IMAGES_SKY_CITY_XNEG_PNG);
      GlUtils::renderFloor();
      Stacks::with_push(mv, [&]{
        mv.translate(glm::vec3(0, eyeHeight, 0)).scale(ipd);
        GlUtils::drawColorCube(true);
      });
    });
    */
  }