My old code used the following construct:
Code:
uint16_t x1, y1, w, h;
    oldZval = Zval;
    String newstr = "XXXXXXXXXXXX"; 
    tft.setFont(DroidSansMono_18);
    tft.setTextColor(ILI9341_GREEN, thisGREY);
    tft.getTextBounds(newstr, cxgZ, cygZ, &x1, &y1, &w, &h);
    tft.fillRect(x1, y1-1, w, h+1, thisGREY);
cxgZ and cygZ are int16_t. It worked fine until recently. Now I am getting a warning that there is a problem.
Code:
/home/bruce/Arduino/ELS_IDE2/DRO.ino: In function 'void updateZ()':
/home/bruce/Arduino/ELS_IDE2/DRO.ino:23:43: warning: invalid conversion from 'uint16_t*' {aka 'short unsigned int*'} to 'int16_t*' {aka 'short int*'} [-fpermissive]
   23 |     tft.getTextBounds(newstr, cxgZ, cygZ, &x1, &y1, &w, &h);
      |                                           ^~~
      |                                           |
      |                                           uint16_t* {aka short unsigned int*}
If I look up the method it seems there are two of them with the same name, but differing number of arguments.
Code:
  void getTextBounds(const uint8_t *buffer, uint16_t len, int16_t x, int16_t y, int16_t *x1, int16_t *y1, uint16_t *w, uint16_t *h);
  void getTextBounds(const char *string, int16_t x, int16_t y, int16_t *x1, int16_t *y1, uint16_t *w, uint16_t *h);
What is the recommended way of getting this to work again? newstr was just a dummy so I'd be able to fill the rectangle.

Boy updated libs & IDE is a bugger. Shouldn't have done that... Changing 12 things at once - what a terrible idea.