diff options
| author | Japa Illo | 2012-02-13 22:59:56 +0530 |
|---|---|---|
| committer | Japa Illo | 2012-02-13 22:59:56 +0530 |
| commit | aa921e71bd1a551ced19d29051439e88d2330975 (patch) | |
| tree | 4cf6797ead59fef54b004d2ef0aab1bcb198720c /WorldSegment.cpp | |
| parent | 78f13e7490e78098152af2c6771dc63b09808f46 (diff) | |
| download | stonesense-aa921e71bd1a551ced19d29051439e88d2330975.tar.gz stonesense-aa921e71bd1a551ced19d29051439e88d2330975.tar.bz2 stonesense-aa921e71bd1a551ced19d29051439e88d2330975.tar.xz | |
Zoom and enhance!
Signed-off-by: Japa Illo <japa.mala.illo@gmail.com>
Diffstat (limited to 'WorldSegment.cpp')
| -rw-r--r-- | WorldSegment.cpp | 43 |
1 files changed, 4 insertions, 39 deletions
diff --git a/WorldSegment.cpp b/WorldSegment.cpp index b6f616c..a1a3197 100644 --- a/WorldSegment.cpp +++ b/WorldSegment.cpp @@ -4,7 +4,6 @@ #include "ContentLoader.h"
-ALLEGRO_BITMAP * level = 0;
ALLEGRO_BITMAP * fog = 0;
Block* WorldSegment::getBlock(int32_t x, int32_t y, int32_t z){
@@ -209,45 +208,26 @@ void WorldSegment::drawAllBlocks(){ if(!fog)
{
fog = al_create_bitmap(al_get_bitmap_width(temp), al_get_bitmap_height(temp));
- level = al_create_bitmap(al_get_bitmap_width(temp), al_get_bitmap_height(temp));
al_set_target_bitmap(fog);
- al_clear_to_color(premultiply(al_map_rgba_f(config.fogr, config.fogg, config.fogb, 1)));
- al_set_target_bitmap(level);
- int op, src, dst, alpha_op, alpha_src, alpha_dst;
- al_get_separate_blender(&op, &src, &dst, &alpha_op, &alpha_src, &alpha_dst);
- al_set_separate_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ZERO,ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ZERO);
- al_clear_to_color(al_map_rgba(0,0,0,0));
- al_set_separate_blender(op, src, dst, alpha_op, alpha_src, alpha_dst);
+ 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))))
{
+ al_destroy_bitmap(fog);
fog = al_create_bitmap(al_get_bitmap_width(temp), al_get_bitmap_height(temp));
- level = al_create_bitmap(al_get_bitmap_width(temp), al_get_bitmap_height(temp));
al_set_target_bitmap(fog);
- al_clear_to_color(premultiply(al_map_rgba_f(config.fogr, config.fogg, config.fogb, 1)));
- al_set_target_bitmap(level);
- int op, src, dst, alpha_op, alpha_src, alpha_dst;
- al_get_separate_blender(&op, &src, &dst, &alpha_op, &alpha_src, &alpha_dst);
- al_set_separate_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ZERO,ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ZERO);
- al_clear_to_color(al_map_rgba(0,0,0,0));
- al_set_separate_blender(op, src, dst, alpha_op, alpha_src, alpha_dst);
+ 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_set_target_bitmap(level);
+ al_draw_bitmap(fog, 0, 0, 0);
}
- int op, src, dst, alpha_op, alpha_src, alpha_dst;
- al_get_separate_blender(&op, &src, &dst, &alpha_op, &alpha_src, &alpha_dst);
- al_set_separate_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ZERO,ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ZERO);
- al_clear_to_color(al_map_rgba(0,0,0,0));
- al_set_separate_blender(op, src, dst, alpha_op, alpha_src, alpha_dst);
if(vsz == vszmax-1)
{
if (config.show_osd) DrawCurrentLevelOutline(true);
}
if(config.dayNightCycle)
al_hold_bitmap_drawing(true);
- al_set_separate_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_INVERSE_ALPHA, ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_INVERSE_ALPHA);
for(int32_t vsx=1; vsx < vsxmax; vsx++)
{
for(int32_t vsy=1; vsy < vsymax; vsy++)
@@ -285,21 +265,6 @@ void WorldSegment::drawAllBlocks(){ }
}
al_hold_bitmap_drawing(false);
-
- if(config.fogenable && config.foga)
- {
- float actual_alpha = vszmax - vsz; //distance from the top
- actual_alpha/=config.foga;
- if(actual_alpha > 1.0) actual_alpha = 1.0;
- al_set_target_bitmap(level);
- int op, src, dst, alpha_op, alpha_src, alpha_dst;
- al_get_separate_blender(&op, &src, &dst, &alpha_op, &alpha_src, &alpha_dst);
- al_set_separate_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_INVERSE_ALPHA, ALLEGRO_ADD, ALLEGRO_ZERO, ALLEGRO_ONE);
- al_draw_tinted_bitmap(fog, al_map_rgba_f(actual_alpha,actual_alpha,actual_alpha,actual_alpha), 0,0,0);
- al_set_separate_blender(op, src, dst, alpha_op, alpha_src, alpha_dst);
- al_set_target_bitmap(temp);
- al_draw_bitmap(level, 0,0,0);
- }
}
if(config.showRenderStatus)
SetTitle("Stonesense");
|
