The screenshot OCC feature is implemented in the V3d_View class (the Dump
method). Below is copied/pasted the part of the V3d_View.hxx header that
defines the prototype for this method:

//! dump the full contents of the view with a <br>
//!          different scale according  to the required sheet <br>
//!          paper   size  (format)  and  the    ratio <br>
//!          width/height of the view. <br>
//!          and returns FALSE when the dump has failed <br>
//!  Warning : the file name extension must be one of <br>
//!             ".xwd",".gif",".bmp" both on UNIX or WNT <br>
//!          but make becarefull about the time to dump and <br>
//!          resulting file size especially for the A0 format, <br>
//!          GIF format generates very small <br>
//!          files, BMP and XWD generates big files <br>
//!          (4 to 6 times more than GIF). <br>
//!          Time to generates the files is very short with XWD <br>
//!          files and 2 or 4 times more for other format. <br>
//!          NOTE that you can use after any standard system utility <br>
//!          for editing or sending the image file to a laser printer. <br>
//!          (i.e: Microsoft Photo Editor on Windows system <br>
//!           or Image Viewer on SUN system) <br>
Standard_EXPORT   Standard_Boolean Dump(const Standard_CString
aFile,const Aspect_FormatOfSheetPaper aFormat) ;


This is how is implemented the display in pythonOCC (Display3d.cpp file):

// Create V3dViewer and V3d_View
myV3dViewer = new V3d_Viewer( gd , (short* const)"viewer" );
printf("Viewer created.\n");
myV3dViewer->Init();
myV3dViewer->SetDefaultLights();
myV3dViewer->SetLightOn();
myV3dView = myV3dViewer->CreateView();
myV3dView->SetWindow(myWindow);

To be created, a V3d_View just requires that the graphic Device is
initialized. The last line ( myV3dView->SetWindow(myWindow);) just tells
that the view should be rendered in myWindow.

So here is my answer to your question: it might be possible to create a
'screenshot' (or an OpenGL dump actually) to a file without any X window, by
only creating a graphic device, V3d_Viewer and V3d_View. It's just has to be
tested, which I'm going to do right now.

Thomas

2009/12/9 Simon Loic <simon1l...@gmail.com>

> Good point, although generating the web page for the samples won't be an
> every day activity.
> Normally, it's possible to achieve off-screen rendering with openGL. As for
> pythonOCC, OCC (that use openGL eventually) I don't know if this option is
> available. Tomas will surely know more about it.
> Loïc
>
>
> On Wed, Dec 9, 2009 at 12:19 AM, Bryan Bishop <kanz...@gmail.com> wrote:
>
>> On Tue, Dec 8, 2009 at 5:12 PM, Simon Loic wrote:
>> > One other question remains, how to automatically create screenshots for
>> all
>> > the samples? Shall we add a new function in every sample (eg
>> > CreateScreenShots) ?
>>
>> Does anyone know how to do this *without* requiring X to be installed
>> and running? Right now the screenshot functions require the window to
>> be open, and if you switch to something else while the screenshot is
>> being taken, that other window will be in the way in the saved
>> screenshot. Thanks.
>>
>> - Bryan
>> http://heybryan.org/
>> 1 512 203 0507
>>
>> _______________________________________________
>> Pythonocc-users mailing list
>> Pythonocc-users@gna.org
>> https://mail.gna.org/listinfo/pythonocc-users
>>
>
>
> _______________________________________________
> Pythonocc-users mailing list
> Pythonocc-users@gna.org
> https://mail.gna.org/listinfo/pythonocc-users
>
>
_______________________________________________
Pythonocc-users mailing list
Pythonocc-users@gna.org
https://mail.gna.org/listinfo/pythonocc-users

Reply via email to