【发布时间】:2015-11-25 00:21:11
【问题描述】:
我正在尝试制作一个简单的图像查看器。我基本上将图像加载到表面中,然后从中创建纹理。
最后,我按照migration guide 执行通常的SDL_RenderClear()、SDL_RenderCopy() 和SDL_RenderPresent()。
这很好用,除了如果我在上面的 3 个渲染调用之前调用 SDL_UpdateTexture(),我会得到一个混乱的图像:
我这样调用 SDL_UpdateTexture():
SDL_UpdateTexture(texture, NULL, image->pixels, image->pitch)
image 是我为图像加载的表面,texture 是我从中创建的纹理。尝试改变音高会导致不同程度的混乱图像。我也尝试使用矩形作为第二个参数,但如果矩形与图像具有相同的尺寸,结果是相同的。如果尺寸较大(例如与窗口相同),则不会发生更新,但不会出现错误。
full code 可用。
我想直接通过image->pixels 操作表面的像素,然后调用SDL_UpdateTexture(),但只要调用SDL_UpdateTexture() 而不进行任何篡改就足以搞砸了。
【问题讨论】: