In etwa so:
Code:
void setTexturePixel(ITexture texture, void *data, int x, int y, SColor color)
{
ECOLOR_FORMAT format = texture->getColorFormat();
if (texture->getColorFormat() == ECF_A8R8G8B8)
{
unsigned int *data32 = data;
data32[x + y * texture->getSize().width] = color.color;
}
else if (texture->getColorFormat() == ECF_A1R5G5B5)
{
unsigned short *data16 = data;
data16[x + y * texture->getSize().width] = color.toA1R5G5B5();
}
//Hier die anderen Formate bearbeiten
else if (...)
{
}
}
[...]
//Im Programm:
void *texturedata = texture->lock()
//Hier mit den Texturdaten arbeiten
//zB:
setTexturePixel(texture, texturedata, 5, 5, SColor(255, 0, 255, 255));
texture->unlock();
Der Code wird so wahrscheinlich nicht funktionieren, ich habe ihn hier jetzt schnell hingetippt, versuch, ihn zu verstehen und getTexturePixel selber zu implementieren...