diff --git a/config.cpp b/config.cpp index bdc0df26..a3079dbc 100644 --- a/config.cpp +++ b/config.cpp @@ -2083,6 +2083,9 @@ EX void show_color_dialog() { dialog::addColorItem(XLAT("background"), backcolor << 8, 'b'); dialog::add_action([] () { dialog::openColorDialog(backcolor); dialog::colorAlpha = false; dialog::dialogflags |= sm::SIDE; }); + + if(WDIM == 2 && GDIM == 3 && hyperbolic) + dialog::addBoolItem_action(XLAT("cool fog effect"), context_fog, 'B'); dialog::addColorItem(XLAT("foreground"), forecolor << 8, 'f'); dialog::add_action([] () { dialog::openColorDialog(forecolor); dialog::colorAlpha = false; dialog::dialogflags |= sm::SIDE; }); diff --git a/shaders.cpp b/shaders.cpp index 018217d2..c1ed9b56 100644 --- a/shaders.cpp +++ b/shaders.cpp @@ -269,7 +269,7 @@ shared_ptr write_shader(flagtype shader_flags) { if(!skip_t) { vmain += "mediump vec4 t = uMV * aPosition;\n"; vmain += coordinator; - if(GDIM == 3 && WDIM == 2) { + if(GDIM == 3 && WDIM == 2 && hyperbolic && context_fog) { vsh += "uniform mediump mat4 uRadarTransform;\n" "uniform mediump sampler2D tAirMap;\n" @@ -362,6 +362,7 @@ void display_data::set_projection(int ed, ld shift) { if(sol && solv_all) id |= 1; if(in_h2xe()) id |= 1; if(in_s2xe()) id |= 2; + if(WDIM == 2 && GDIM == 3 && hyperbolic && context_fog) id |= 1; shared_ptr selected; if(matched_programs.count(id)) selected = matched_programs[id]; diff --git a/sky.cpp b/sky.cpp index c8b23ea6..71c80c12 100644 --- a/sky.cpp +++ b/sky.cpp @@ -2,6 +2,8 @@ namespace hr { +EX bool context_fog = true; + EX ld camera_level; #if MAXMDIM >= 4 && CAP_GL