Ive invented a new idea which works great!!!!!!!, you render a screen and it takes "x amount of cpu power", if you put this scene in to our quadscreen effect then it would make sense to render the first scene at only quarter of the size as its going in to a quadscreen, now it's only "1/4 of x cpu power". drop this in to another quadscreen and it then only "1/16 of x cpu power" saving so much on the graphic cpu
*******************************************************************************************************************
Ive found a bug with live whenever you drop a bunch of fresh mp3's on to session view which no .asd file has been produced.
when they are being scanned, my opengl shaders(filters) will not load until the FIRST mp3 file has been scanned, then everything is ok.
Im loading my shaders as dll resources which are just text files, these are loaded in to global memory just like any other dll resource before I extract the text and use it within my system.
what is hapening is when I get the size of the dll resource, im receiving a value a few bytes too large so the text has a few extra characters on the end screwing everything up.
My system runs as a windows service communicating with my vst plugins using component object technology(COM). So it's using the same memory space as live.
heres the code im using to load a dll resource, so the ableton team knows what i am using and what possibly they are doing wrong in there own code.
Code: Select all
class AVAResourceStream
{
public:
AVAResourceStream ()
: resData (0)
, resSize (0)
{
}
~AVAResourceStream ()
{
}
unsigned long open (HMODULE hModule, char* resourceType, long resourceID)
{
HRSRC rsrc = FindResource (hModule, MAKEINTRESOURCE (resourceID), resourceType);
if (rsrc)
{
resSize = SizeofResource (hModule, rsrc);
HGLOBAL resDataLoad = LoadResource (hModule, rsrc);
if (resDataLoad)
{
resData = LockResource (resDataLoad);
return resSize;
}
}
return 0;
}
void read (unsigned char* ptr)
{
memcpy (ptr, ((unsigned char*)resData), resSize);
}
protected:
HGLOBAL resData;
unsigned long resSize;
};
Im using the above class like so:
Code: Select all
AVAResourceStream resStream;
char* shaderData;
long resSize = resStream.open(hModule, "CG", currentShader);
if (resSize > 0)
{
shaderData = new char[resSize];
resStream.read(shaderData);
}
resSize is an extra few bytes in size whenever the FIRST FRESH mp3 file is being scanned for bpm info etc.
I hope this info helps the ableton team
Take a wireframe sphere:
add some stars, colors provided by our pattern sequencer:
Add regression:
stick it all in a quadscreen:
