gpt4 book ai didi

c++ - 纹理像素操作中更新方法的内存管理

转载 作者:太空宇宙 更新时间:2023-11-04 13:08:54 24 4
gpt4 key购买 nike

传递给 Texture 类 (SFML) 中的更新方法的像素数组是如何在内存方面进行管理的?这些是我的一些猜测:

  1. 在纹理实例中保存了一个弱指针;这意味着需要保留一个指向自己的像素数组的指针并自行管理。

  2. 数组由纹理复制和管理(这也意味着每次再次调用更新方法时,将释放之前的)。

第二个猜测将证明 this 多次更新纹理:

auto newPixels = new sf::Uint8[WIDTH * HEIGHT * 4];
... //do stuff to pixels
texture.update(newPixels);

每次更新纹理时像素都会重新分配。否则(如果像素只是存储为弱指针而不是管理/取消分配/分配)将需要一种不同的方法,其中像素由用户管理...

提前感谢任何答案:)

最佳答案

SFML 是开源的。您无需在这里猜测或询问。您可以自己阅读:

https://github.com/SFML/SFML/blob/master/src/SFML/Graphics/Texture.cpp#L390

具体来说,指针传递给glTexSubImage2D OpenGL 方法。

关于c++ - 纹理像素操作中更新方法的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40829180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com