[PD] 3d fractals was Re: access to pd table from another application

Billy Stiltner billy.stiltner at gmail.com
Thu Mar 31 07:02:59 CEST 2011


On 3/30/11, Mathieu Bouchard <matju at artengine.ca> wrote:

> I have no use for that. The code I write nowadays does not work on
> anything else than the GNU compilers. I also had good knowledge of 16-bit
> DOS stuff back then, but chose to try to forget it.
>
> The only thing I want to do relative to MS compilers, is know how to call
> GEM functions from GridFlow, where GEM is compiled by VC++, and GridFlow
> is compiled by MinGW. This is (probably) required to get [#from_pix],
> [#to_pix] and [gemdead] to work again on Windows.

Here is the MingW docs for how to do that but the link to reimp
appears to be dead.
http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs


If you could reverse engineer this it might work. Appears the stack is
reversed and the segments are in diferent chunks.
http://www.mmowned.com/forums/world-of-warcraft/bots-programs/memory-editing/281008-gcc-thiscall-calling-convention-linux-win32-mingw.html


Indeed the GEM exports are declared like this
# define GEM_EXPORT __declspec(dllexport)

The thing to do is use vc++ to compile to assembly language an  export function.
Then get gcc to compile the corresponding import function.

Look at the differences and make some inline assembly code to compensate.
Here is a reference from the gcc vcc+ veiwpoint.
http://wyw.dcweb.cn/stdcall.htm




> I am unsufficiently sophisticated for that kind of technology. Instead, I
> settled for using Linux.

Ha Ha likewise on the unsufficiently.

>
> What do you mean by « not correct » ?
>
>>   newx = ((x * x) - (y * y) - (z *z)) +k;
>
> for newx=0, x²-y²-z² = -k, hyberboloïd equation (revolution of hyperbola
> around x axis)
>
>>   newy = ((y *x) + (x *y)) +l;
>
> y*x = x*y, so for newy=0, 2*x*y = -l, another hyperbola formula
> (diagonally), but this one has translation symmetry instead, along z axis
> (because z is not used in this formula)
>
>>   newz = ((z * x) + (x * z)) +m;
>
> similar thing. but those * above are not products of floats, tell me right
> away.


Hopefully the compiler understood.

I have also used the quaternion with W removed.

Here are my notes on the matter.


**********************START OF HISTORY
1996 Formula:

 newx=((x*x)-(y*y)-(z*z))+k;
 newy=((x*y)+(x*y))+l;
 newz=(x*z)+(x*z)+m;



More information about the Pd-list mailing list