transparency fix attempt
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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) +
|
||||||
|
|||||||
Reference in New Issue
Block a user