I can reproduce the issue in the following Docker container:
FROM centos:7
USER root
RUN yum install -q -y epel-release && \
yum install -q -y root
CMD /bin/bash
with the usual sudo docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix command. Could you check? (you’ll see OpenGL errors, I don’t have them on my pc…)
Interesting feature: if I save the canvas as PDF the transparency is drawn correctly
Ah ! that’s why it does not work. OpenGL is mandatory in that case.
Yes PDF output is an independent module I implemented in ROOT as the TPDF class. It is completely disconnected from the screen display. I implemented transparency in that class.
These are the errors you’ll get in the container when starting ROOT:
libGL error: MESA-LOADER: failed to retrieve device information
libGL error: unable to load driver: i915_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i915
libGL error: failed to open drm device: No such file or directory
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
And I’ve always had them within my CentOS containers, I remember struggling a lot in the past to get rid of them but never succeeded (all the OpenGL stuff is correctly installed as a dependency of the EPEL7 ROOT rpm)… Also, as I said, I don’t get any of those errors in my CentOS7 physical machine.
Moreover, despite of the errors, I’ve never encountered any kind of issue by running ROOT graphics from containers (maybe until now…?)