Эти функции делают копию браша\текстуры с оригинального, ибо возвращаемый адрес каждый раз новый, ну и это подтверждает быдлокод из b3dsdk:
Brush *bbGetSurfaceBrush( Surface *s ){
Brush *br=d_new Brush( s->getBrush() );
brush_set.insert( br );
return br;
}
Texture *bbGetBrushTexture( Brush *b,int index ){
debugBrush(b);
Texture *tex=d_new Texture(b->getTexture(index));
texture_set.insert( tex );
return tex;
}