Das von da oben ist eher ein Prototyp als was brauchbares zur zeit (bzw. so ziemlich für das Flammenbild ausgelegt).
Die interessanten Linien der source gibts schon im Code beispiele da oben + ein paar die dem pixels holen.
Ein RPG::Image ladet ein bild hoch, und die farben werden per RPG::Image:ixels geholt und dann mit dem von das entsprechende pixel des RPG::screen->canvas kombiniert (durch dem scanline Methode).
Sprich:
Code:
RPG::Image* image;
...
uint16_t* pixels = image->pixels;
uint16_t* scanline = RPG::screen->canvas->getScanline(y)
...
uint16_t src = scanline[x];
uint16_t dst = RPG::Canvas::convert24To16Bit(image->palette[pixels[img_index]]);
... // und dann das addieren von da oben
scanline[x] = (r << 11) | (g << 5) | b;
Der richtige Sourcecode kommt erst wenn ich es fertig habe, oder zumindest viel näher dran bin es fertig zu machen. Was für ein lösung ich verwenden werde ist sowieso noch nicht gewiss