summaryrefslogtreecommitdiff
path: root/WorldSegment.cpp
diff options
context:
space:
mode:
authorJapa2011-03-05 17:07:51 +0000
committerJapa2011-03-05 17:07:51 +0000
commitfcb3c1858a749013fc56c0f31ae6e604cbab97e5 (patch)
tree5a49219f72a3887ea7384524a87b036f580fded4 /WorldSegment.cpp
parent189820b91ca21ed7da4e8063be0c932bbfc92e8f (diff)
downloadstonesense-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.cpp9
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)
{