On 13-09-15 6:02 AM, Andreas Maunz wrote:
The other write* options seem to limited to me. I am looking for a way
to obtain a PS, or at least a PNG, since I develop a web application on
a server that needs to grab the screenshot and create a written report
with it. Starting my Xvfb like this:

Xvfb :5 -screen 0 640x480x24 -ac +extension GLX +render -noreset -fbdir
/tmp/foobar

I can easily run glxgears and obtain nice snapshots of the gears via
'xwud -in /tmp/foobar/Xvfb_screen0'. However, it just won't work for
rgl! Given my test.R script with (taken from the doc of bg()):

That does make it sound like an rgl problem.


library('rgl')
rgl.open()
foo<-readline('Enter to cont')
bg3d("white")
foo<-readline('Enter to cont')
rgl.bg <http://rgl.bg>(sphere=TRUE, color=c("black","green"), lit=FALSE,
back="lines" )
foo<-readline('Enter to cont')
rgl.bg <http://rgl.bg>(sphere=TRUE,
texture=system.file("textures/sunsleep.png", package="rgl"), back="filled" )
foo<-readline('Enter to cont')

I can skip through the steps and check at each with xwud, but it just
manages to draw the white background. The two last steps fail
completely, I only receive a black screen. Sane for plot3d(), for example.

Please help, if you can, it would be quite important to have this
functionality

I can't reproduce any of this, since I'm working on Windows, a system without Xvfb, and Mac OSX, where your Xvfb command fails with this error

_XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.

(followed by a sequence of other errors). So I'd like to fix this, but it just doesn't look feasible. Perhaps you know some X11 expert who can tell you what rgl is doing wrong?

Duncan Murdoch


Thanks
Andreas



On Wed, Sep 11, 2013 at 6:19 PM, Duncan Murdoch
<murdoch.dun...@gmail.com <mailto:murdoch.dun...@gmail.com>> wrote:

    On 11/09/2013 11:44 AM, Andreas Maunz wrote:

        I am running Xvfb now with

        -fbdir /some/path and
        -extension RANDR

        but rgl.snapshot is still not working.

        Any other idea? Since I can display the webGL successfully in
        firefox (so comes out correct), I assume there should be some
        way of converting it on the server side to some (vector) graphic
        file format?


    The .html file that writeWebGL produces could be considered to be
    that, but it's really mostly Javascript code, and I don't know
    anything other than a browser that can display it.  If you look at
    ?writeWebGL, you'll see links to various other ?write* files; they
    are all vector formats, but are all more limited than writeWebGL in
    what they can record.

    Duncan Murdoch


        Thanks
        Andreas




        On Tue, Sep 10, 2013 at 6:38 PM, Duncan Murdoch
        <murdoch.dun...@gmail.com <mailto:murdoch.dun...@gmail.com>
        <mailto:murdoch.duncan@gmail.__com
        <mailto:murdoch.dun...@gmail.com>>> wrote:

             On 10/09/2013 10:58 AM, Andreas Maunz wrote:

                 Hi all,

                 I have a shiny app, in which I want to use rgl's snapshot
                 function. I am
                 running Xvfb on my server so that rgl works. I start my
        shiny
                 app as
                 follows:

                 echo "Checking for Xvfb..."
                 pgrep -U username Xvfb > /dev/null 2>&1

                 if [ "$?" -gt 0 ]; then
                    echo "Starting Xvfb..."
                    Xvfb :7 -screen 0 1280x1024x24 &
                    sleep 2
                 fi

                 echo "...starting shiny"
                 export DISPLAY=":7"; R --no-save --no-restore -e
                 "library('shiny');
                 runApp('/path/to/app', port=8101)"

                 In the app, I do plot3d(), generate webGL and send the
        results
                 to the
                 browser. But the rgl.snapshot or rgl.postscript
        functionality
                 do not work,
                 i.e. they produce black or empty images. I assume this
        is due
                 to Xvfb. Any
                 chance I can create snapshots?


             rgl.snapshot requires the X server to maintain a frame
        buffer that
             it can read.   It looks as though something is going wrong with
             yours.  I don't use a system with Xvfb, so I can't really help,
             but you could try Googling to see if that turns anything up.

             rgl.postscript shouldn't need the X server, but it is
        limited in
             what it can display.

             Duncan Murdoch





______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to