If no pic was available, it will still draw a rectangle. It will be filled with the UI texture, which will look terrible. How about:
    if (ginfo) {
      bool hasPic = false;
      if (ginfo->pic1Texture) {
        ginfo->pic1Texture->Bind(0);
        hasPic = true;
      } else if (ginfo->pic0Texture) {
        // Draw pic0 if pic1 is not available
        ginfo->pic0Texture->Bind(0);
        hasPic = true;
      }
      if (hasPic) {
        uint32_t color .....