uint8_t Adafruit_SharpMem::getPixel(uint16_t x, uint16_t y)
{
  if((x >= _width) || (y >= _height)) return 0; // <0 test not needed, unsigned

  switch(rotation) {
   case 1:
    _swap_uint16_t(x, y);
    x = WIDTH  - 1 - x;
    break;
   case 2:
    x = WIDTH  - 1 - x;
    y = HEIGHT - 1 - y;
    break;
   case 3:
    _swap_uint16_t(x, y);
    y = HEIGHT - 1 - y;
    break;
   default:
    break;
  }

  #if defined __AVR__
    return sharpmem_buffer[(y*SHARPMEM_LCDWIDTH + x) / 8] &
      pgm_read_byte(&set[x & 7]) ? 1 : 0;
  #else
    return sharpmem_buffer[(y*SHARPMEM_LCDWIDTH + x) /8] & (1 << x % 8) ? 1 : 0;
  #endif
}
예제 #2
0
uint8_t SharpMemory::getPixel(uint16_t x, uint16_t y) {
  if((x < 0) || (x >= DISPLAY_WIDTH) || (y < 0) || (y >= DISPLAY_HEIGHT)) return false;
  
    switch(rotation) {
        case 1:
            _swap_uint16_t(x, y);
            x = WIDTH  - 1 - x;
            break;
        case 2:
            x = WIDTH  - 1 - x;
            y = HEIGHT - 1 - y;
            break;
        case 3:
            _swap_uint16_t(x, y);
            y = HEIGHT - 1 - y;
            break;
    }
    
    return !(frameBuffer[y][x/8] & set[x % 8]) ? BLACK : WHITE;
}