diff options
| author | Japa | 2011-03-05 17:07:51 +0000 |
|---|---|---|
| committer | Japa | 2011-03-05 17:07:51 +0000 |
| commit | fcb3c1858a749013fc56c0f31ae6e604cbab97e5 (patch) | |
| tree | 5a49219f72a3887ea7384524a87b036f580fded4 /WorldSegment.cpp | |
| parent | 189820b91ca21ed7da4e8063be0c932bbfc92e8f (diff) | |
| download | stonesense-fcb3c1858a749013fc56c0f31ae6e604cbab97e5.tar.gz stonesense-fcb3c1858a749013fc56c0f31ae6e604cbab97e5.tar.bz2 stonesense-fcb3c1858a749013fc56c0f31ae6e604cbab97e5.tar.xz | |
Fixed some color stuff arising from allegro's shift to premultiplied alpha.
Diffstat (limited to 'WorldSegment.cpp')
| -rw-r--r-- | WorldSegment.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/WorldSegment.cpp b/WorldSegment.cpp index e9c3a74..c8801e4 100644 --- a/WorldSegment.cpp +++ b/WorldSegment.cpp @@ -199,9 +199,6 @@ void WorldSegment::drawAllBlocks(){ int32_t vsymax = viewedSegment->sizey-1;
int32_t vszmax = viewedSegment->sizez-1; // grabbing one tile +z more than we should for tile rules
//al_hold_bitmap_drawing(true);
- int op, src, dst, alpha_op, alpha_src, alpha_dst;
- ALLEGRO_COLOR color;
- al_get_separate_blender(&op, &src, &dst, &alpha_op, &alpha_src, &alpha_dst);
for(int32_t vsz=0; vsz < vszmax; vsz++)
{
@@ -213,7 +210,7 @@ void WorldSegment::drawAllBlocks(){ {
fog = al_create_bitmap(al_get_bitmap_width(temp), al_get_bitmap_height(temp));
al_set_target_bitmap(fog);
- al_clear_to_color(al_map_rgb(config.fogr, config.fogg, config.fogb));
+ al_clear_to_color(premultiply(al_map_rgba_f(config.fogr, config.fogg, config.fogb, config.foga)));
al_set_target_bitmap(temp);
}
if(!((al_get_bitmap_width(fog) == al_get_bitmap_width(temp)) && (al_get_bitmap_height(fog) == al_get_bitmap_height(temp))))
@@ -221,10 +218,10 @@ void WorldSegment::drawAllBlocks(){ al_destroy_bitmap(fog);
fog = al_create_bitmap(al_get_bitmap_width(temp), al_get_bitmap_height(temp));
al_set_target_bitmap(fog);
- al_clear_to_color(al_map_rgb(config.fogr, config.fogg, config.fogb));
+ al_clear_to_color(al_map_rgba_f(config.fogr*config.foga, config.fogg*config.foga, config.fogb*config.foga, config.foga));
al_set_target_bitmap(temp);
}
- al_draw_tinted_bitmap(fog, al_map_rgba(255, 255, 255, config.foga), 0, 0, 0);
+ al_draw_bitmap(fog, 0, 0, 0);
}
if(vsz == vszmax-1)
{
|
