POV-Ray : Newsgroups : povray.general : Stream output files must reside in same directory as image output file. : Re: Stream output files must reside in same directory as image outputfile. Server Time
6 May 2024 17:00:43 EDT (-0400)
  Re: Stream output files must reside in same directory as image outputfile.  
From: Le Forgeron
Date: 22 Mar 2016 14:05:39
Message: <56f18973@news.povray.org>
Le 22/03/2016 18:22, dick balaska a écrit :
> This seems like a rather obtuse restriction.
> I'm running PovClipse with povray 3.7 and PovClipse generates a .ini file with:
> 
> Input_File_Name="C:\home\dick\workspace\runtime-EclipseApplication\b\scene\test.pov"
> Output_File_Name="c:\tmp\test.png"
>
Debug_File="C:\home\dick\workspace\runtime-EclipseApplication\b\.metadata\povray_console_debug.txt"
> 
> Everything in .metadata is magic invisible foo. i.e. the povray streams get
swallowed up by the gui.  But I don't want it to swallow up the output .png file. ;)
> 
> I'm not sure what to do about this.
> 

It's a choice made in source/frontend/renderfrontend.cpp, circa line 286. with
variation on the operating system:
The path must not have a volume and must not have any directory component.

unix: non empty volume for path starting with "/", directory components are separated
with ulterior "/".
windows: non empty volume are either "<letter>:" or start with "\\".
Drive letter must be absolute path (so third char is "/") and relative \\ path are not
supported.

With current choice, one possibility on unix would be to create a symlink in picture
directory to have the text file somewhere else (create a dangling link, then render):

Input_File_Name="mesh2sdl.pov"
Output_File_Name="zoo/mesh2sdl.png"
Debug_File="debug.txt"

$ ls -lR
.:
total 232
-rw-rw-r-- 1 jerome jerome     90 mars  22 18:52 mesh2sdl.ini
-rw-rw-r-- 1 jerome jerome  97256 mars  19 05:30 mesh2sdl.png
-rw-r--r-- 1 jerome jerome   1554 mars  19 05:30 mesh2sdl.pov
-rw-rw-r-- 1 jerome jerome 122098 mars  19 05:14 meshsdl.png
-rw-r--r-- 1 jerome jerome   1782 mars  19 05:14 meshsdl.pov
drwxrwxr-x 3 jerome jerome   4096 mars  22 18:53 zoo

./zoo:
total 28
lrwxrwxrwx 1 jerome jerome    16 mars  22 18:53 debug.txt -> foobar/debug.txt
drwxrwxr-x 2 jerome jerome  4096 mars  22 18:53 foobar
-rw-rw-r-- 1 jerome jerome 24434 mars  22 18:53 mesh2sdl.png

./zoo/foobar:
total 0
-rw-rw-r-- 1 jerome jerome 0 mars  22 18:53 debug.txt

So... kind of not a big problem... for unix.

The purpose of the code in renderfrontend is to avoid messing with filesystem (against
offensive scene):
if you allow a scene to write in c:\Windows\whatever.dll, you can kill the operating
system.
(for default installation, in English; I know some German user which use a different
directory)

I do not know if you can perform the same link trick on Windows... not available here
for test.

If you cannot, either you find a way for eclipse to look at the rendering directory,
or you will need your own compilation with a patch to avoid such check (and that's
dangerous).


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.