Mercurial > octave
changeset 26468:bdf03ab385c2 stable
Use facealpha for surface objects with uniform facecolor and lighting (bug #55384).
* gl-render.cc (opengl_renderer::draw_surface): Apply facealpha value to all
facecolor modes also with lighting.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Sun, 06 Jan 2019 18:01:52 +0100 |
parents | 6595716a7f33 |
children | bf835b1d04b1 |
files | libinterp/corefcn/gl-render.cc |
diffstat | 1 files changed, 2 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/gl-render.cc Sun Jan 06 16:41:20 2019 +0100 +++ b/libinterp/corefcn/gl-render.cc Sun Jan 06 18:01:52 2019 +0100 @@ -2489,6 +2489,7 @@ if (fa_mode == 0) { fa = props.get_facealpha_double (); + cb[3] = fa; if (fc_mode == UNIFORM || fc_mode == TEXTURE) { m_glfcns.glColor4d (fcolor(0), fcolor(1), fcolor(2), fa); @@ -2562,7 +2563,6 @@ // FIXME: is there a smarter way to do this? for (int k = 0; k < 3; k++) cb[k] = c(j-1, i-1, k); - cb[3] = fa; m_glfcns.glColor4fv (cb); if (fl_mode > 0) @@ -2593,7 +2593,6 @@ { for (int k = 0; k < 3; k++) cb[k] = c(j-1, i, k); - cb[3] = fa; m_glfcns.glColor4fv (cb); if (fl_mode > 0) @@ -2624,7 +2623,6 @@ { for (int k = 0; k < 3; k++) cb[k] = c(j, i, k); - cb[3] = fa; m_glfcns.glColor4fv (cb); if (fl_mode > 0) @@ -2654,7 +2652,6 @@ { for (int k = 0; k < 3; k++) cb[k] = c(j, i-1, k); - cb[3] = fa; m_glfcns.glColor4fv (cb); if (fl_mode > 0) @@ -2698,6 +2695,7 @@ { if (props.get_edgealpha_double () == 1) { + cb[3] = 1.0; // edgealpha isn't implemented yet if (ec_mode == UNIFORM) { m_glfcns.glColor3dv (ecolor.data ());