thats exactly it
there is not command i can find that specifically does bitmaps that are included
this is the commands in the tetris one
its slightly different in that its TV.screen
void setCell(char x, char y,char bx, char by, char c, char f) {
int index = bx/8 + x/2 + by*W/8 + y*4*W/8;
if (c) {
if (x & 1) {
TV.screen[index] &= 0b11110000;
TV.screen[index] |= 0b00001110;
index+=W/8;
TV.screen[index] &= 0b11110000;
TV.screen[index] |= 0b00001010;
if (f) TV.screen[index] &= 0b11111011;
index+=W/8;
TV.screen[index] &= 0b11110000;
TV.screen[index] |= 0b00001110;
index+=W/8;
TV.screen[index] &= 0b11110000;
}
and this is in the asteroids
void overlaybitmap(uint8_t x, uint8_t y, const unsigned char * bmp,
uint16_t i, uint8_t width, uint8_t lines) {
uint8_t temp, lshift, rshift, save, xtra;
uint16_t si = 0;
rshift = x&7;
lshift = 8-rshift;
if (width == 0) {
width = pgm_read_byte((uint32_t)(bmp) + i);
i++;
}
if (lines == 0) {
lines = pgm_read_byte((uint32_t)(bmp) + i);
i++;
}
if (width&7) {
xtra = width&7;
width = width/8;
width++;
}
else {
xtra = 8;
width = width/8;
}
for (uint8_t l = 0; l < lines; l++) {
si = ((y + l) % display.vres())*display.hres() + x/8;
//si = (y + l)*display.hres + x/8;
if (width == 1)
temp = 0xff >> rshift + xtra;
else
temp = 0;
save = display.screen[si];
temp = pgm_read_byte((uint32_t)(bmp) + i++);
display.screen[si++] |= temp >> rshift;
for ( uint16_t b = i + width-1; i < b; i++) {
if (si % display.hres() == 0) {
// wrapped around to the left side
si -= display.hres();
}
save = display.screen[si];
display.screen[si] |= temp << lshift;
temp = pgm_read_byte((uint32_t)(bmp) + i);
display.screen[si++] |= temp >> rshift;
}
if (si % display.hres == 0) {
// wrapped around to the left side
si -= display.hres;
}
if (rshift + xtra < 8)
display.screen[si-1] |= (save & (0xff >> rshift + xtra)); //test me!!!
display.screen[si] |= temp << lshift;
}
} // end of bitmap
im confused because in the tetris one it takes all the necissary information to make the bitmaps
(in tetris it seems to be laying out the squares for where one of three things could be a full square, a ghost square or a empty square)
and it has all the cordinate info for the bitmap here
int index = bx/8 + x/2 + by*W/8 + y*4*W/8;
BUT instead of having it all nice and seperated like whats required in the OLED library it adds it all together BUT WHY i dont geddit because then it becomes an indecipherable mess of numbers
i have tried doing the numbers on paper and switching to binary and the like but nothing seems to work
i have also looked in the tv library files and it does not mention anything about a screen command
as for if this is bitmap
it is
but how? i do not know