slxargs library bug
Posted by: mosari
Hi Guys
I try to interrogate a compiled shader using slxargs library but my program halt with access violation error.
I use win32 platform and vc 8 to compile my program.
To find the problem I reduce my program to something like this:
char* myShader = "smoeshader.slx";
Slo_SetShader(myShader);
Slo_EndShader();
Call stack said me the access violation happened in Slo_SetShader() function. I
searched the slxargs library source codes for anything like null pointers but nothing find. in 1.4 version I compiled this
program without any error and I have this problem in 1.6 version.
I know aqsltell utility has been built without any error but
could you test it again or show me a solution.
Cheers
Mostafa Ari


Posted by: pgregory
I've looked into this and the
I've looked into this and the problem is related to the use of the slxargs library in the style of the sloargs library.
To elaborate, we've tried to mimic the behaviour of Pixar's sloargs interface to a degree so that tools written to that API will work more readily with Aqsis. However, there is one oversight it seems. The slxargs library needs extra information relating to DSO shadeops that sloargs doesn't need, and as the Aqis slo API is implemented in terms of the slx API, this causes a problem. The problem is that the search path for DSO shadeops isn't being initialised.
The workaround is to do the following...
SLX_SetDSOPath("");...before trying to call Slo_SetShader(). You'll need to #include "slx.h" if you haven't already.
I've tested this and it seems to work fine. I'll make sure that a bug is submitted with this information, and it'll get fixed for 1.6.1.
Paul
Paul C. Gregory