#define USE_FIX_VERSION false

#if USE_FIX_VERSION
#include "GyverOLEDFix.h"
#else
#include "GyverOLED.h"
#endif

GyverOLED<SSD1306_128x64, OLED_BUFFER> oled;


void setup() {
  oled.init();
  oled.clear();

  // ************************************** ПРОБЛЕМА #49 **************************************
  drawLine(0, 0, 1, 0);
  oled.rect(0, 2, 6, 8, OLED_FILL);
  drawLine(0, 10, 1, 0);
  oled.rect(0, 12, 6, 18, OLED_STROKE);
  drawLine(0, 20, 1, 0);
  oled.roundRect(0, 22, 6, 28, OLED_FILL);
  drawLine(0, 30, 1, 0);
  oled.roundRect(0, 32, 6, 38, OLED_STROKE);
  drawLine(0, 40, 1, 0);
  drawLine(10, 0, 0, 1);
  oled.update();
  // ************************************** ПРОБЛЕМА неполного частичного обновления **********
  oled.roundRect(0, 42, 6, 48, OLED_STROKE);
  oled.update(0, 42, 6, 48);
}

void loop() {
}

void drawLine(int x, int y, char vecX, char vecY){
  for(int i = 0; i < 128; i+=2) {
    oled.dot(x + i * vecX, y + i * vecY, 1);
  }
}