我在尝试制作程序纹理时遇到问题,SFML
我有这个代码
sf::Texture* CreateTexture(int w, int h){
sf::Image tempImage;
sf::Texture* Tex = new sf::Texture();
Tex->create(w,h);
sf::Uint8 *pixelData = GeneratePNoise(w,h);
tempImage.create(w, h, pixelData);
Tex->update(tempImage);
//Tex->loadFromImage(tempImage);
return Tex;
}
sf::Uint8* GeneratePNoise(int w,int h){
std::vector<sf::Uint8> data(w*h*4);
for (int i=0;i<w*h*4;i++){
data[i]=128;
if (i+1%4)data[i]=255;
}
return data.data();
}
sf::Texture CreateTexturens(int w, int h){
sf::Image tempImage;
sf::Texture Tex;
Tex.create(w,h);
sf::Uint8 *pixelData = GeneratePNoise(w,h);
tempImage.create(w, h, pixelData);
Tex.update(tempImage);
return Tex;
}
我也有使用上述代码的代码
void Star::createStar(){
sf::CircleShape star(r,30);
star.setPosition(x,y);
sf::Texture* t = CreateTexture(256,256);
star.setTexture(t,false);
std::cout << "Done!"<<std::endl;
}
这似乎没有渲染任何东西,我相信它是关于围绕创建和应用纹理的代码,感谢所有帮助!