changed viewport clearing to use the alpha value of the clear color, and made the transparent bg option of viewport force a clear color of 0,0,0,0

This commit is contained in:
romulox_x 2015-02-21 13:57:12 -08:00
parent 1d7337ba10
commit 2ac767b1f5
2 changed files with 7 additions and 2 deletions

View file

@ -4280,7 +4280,7 @@ void RasterizerGLES2::clear_viewport(const Color& p_color) {
} }
glEnable(GL_SCISSOR_TEST); glEnable(GL_SCISSOR_TEST);
glClearColor(p_color.r,p_color.g,p_color.b,1.0); glClearColor(p_color.r,p_color.g,p_color.b,p_color.a);
glClear(GL_COLOR_BUFFER_BIT); //should not clear if anything else cleared.. glClear(GL_COLOR_BUFFER_BIT); //should not clear if anything else cleared..
glDisable(GL_SCISSOR_TEST); glDisable(GL_SCISSOR_TEST);
}; };

View file

@ -6641,7 +6641,12 @@ void VisualServerRaster::_draw_viewport(Viewport *p_viewport,int p_ofs_x, int p_
//clear the viewport black because of no camera? i seriously should.. //clear the viewport black because of no camera? i seriously should..
if (p_viewport->render_target_clear_on_new_frame || p_viewport->render_target_clear) { if (p_viewport->render_target_clear_on_new_frame || p_viewport->render_target_clear) {
rasterizer->clear_viewport(clear_color); if (p_viewport->transparent_bg) {
rasterizer->clear_viewport(Color(0,0,0,0));
}
else {
rasterizer->clear_viewport(clear_color);
}
p_viewport->render_target_clear=false; p_viewport->render_target_clear=false;
} }
} }