transparency fix attempt

This commit is contained in:
Justin Scofield
2022-09-11 09:53:48 -05:00
parent 1acc027380
commit 904166ee25
3 changed files with 14 additions and 9 deletions

View File

@@ -106,9 +106,14 @@ void Bitmap::CreateTexture(std::shared_ptr<SDL_Renderer> renderer) {
void Bitmap::ApplyPalette(const SNESPalette &palette) { void Bitmap::ApplyPalette(const SNESPalette &palette) {
palette_ = palette; palette_ = palette;
for (int i = 0; i < palette.size_; ++i) { for (int i = 0; i < palette.size_; ++i) {
surface_->format->palette->colors[i].r = palette.GetColor(i).rgb.x; if (palette.GetColor(i).transparent) {
surface_->format->palette->colors[i].g = palette.GetColor(i).rgb.y; surface_->format->palette->colors[i].a = 0;
surface_->format->palette->colors[i].b = palette.GetColor(i).rgb.z; } else {
surface_->format->palette->colors[i].r = palette.GetColor(i).rgb.x;
surface_->format->palette->colors[i].g = palette.GetColor(i).rgb.y;
surface_->format->palette->colors[i].b = palette.GetColor(i).rgb.z;
surface_->format->palette->colors[i].a = 255;
}
} }
} }

View File

@@ -45,7 +45,9 @@ struct SNESColor {
void setRgb(ImVec4); void setRgb(ImVec4);
void setSNES(snes_color); void setSNES(snes_color);
void setSNES(uint16_t); void setSNES(uint16_t);
void setTransparent(bool t) { transparent = t; }
bool transparent = false;
uint16_t snes = 0; uint16_t snes = 0;
ImVec4 rgb; ImVec4 rgb;
}; };

View File

@@ -134,10 +134,9 @@ void SetColorsPalette(ROM& rom, int index, gfx::SNESPalette& current,
current.Create(new_palette); current.Create(new_palette);
// ColorPalette pal = GFX.editort16Bitmap.Palette; // ColorPalette pal = GFX.editort16Bitmap.Palette;
// for (int i = 0; i < 256; i++) { for (int i = 0; i < 256; i++) {
// pal.Entries[i] = new_palette[i]; current[(i / 16) * 16].setTransparent(true);
// pal.Entries[(i / 16) * 16] = Color.Transparent; }
// }
// GFX.mapgfx16Bitmap.Palette = pal; // GFX.mapgfx16Bitmap.Palette = pal;
// GFX.mapblockset16Bitmap.Palette = pal; // GFX.mapblockset16Bitmap.Palette = pal;
@@ -334,8 +333,7 @@ void OverworldMap::LoadPalette() {
uchar pal0 = 0; uchar pal0 = 0;
uchar pal1 = uchar pal1 = rom_[core::overworldMapPaletteGroup + (area_palette_ * 4)];
rom_[core::overworldMapPaletteGroup + (area_palette_ * 4)]; // aux1
uchar pal2 = uchar pal2 =
rom_[core::overworldMapPaletteGroup + (area_palette_ * 4) + 1]; // aux2 rom_[core::overworldMapPaletteGroup + (area_palette_ * 4) + 1]; // aux2
uchar pal3 = rom_[core::overworldMapPaletteGroup + (area_palette_ * 4) + uchar pal3 = rom_[core::overworldMapPaletteGroup + (area_palette_ * 4) +