gpt4 book ai didi

c++ - SDL DisplayFormat 做矩形

转载 作者:行者123 更新时间:2023-11-27 23:26:55 29 4
gpt4 key购买 nike

我是 SDL 和 C++ 的新手。

然而,当我在图像上执行 DisplayFormat 以加快 blitting 时,它会使它成为一个矩形。

SDL_Surface* tempImage = NULL;

// The image that will be used (optimized)
image = NULL;

image = IMG_Load( filename.c_str() );

if ( tempImage != NULL )
{
// Create optimization
image = SDL_DisplayFormat( tempImage ); // Makes the circle an rectangle

// Free the old image
SDL_FreeSurface( tempImage );
}

这是为什么呢?如果我不执行 DisplayFormat,则在 blitted 时圆圈仍然是圆圈。

最佳答案

这是因为您要将图像转换成的显示格式不支持透明像素。您必须将视频模式设置为每像素 32 位,如下所示:

SDL_Init(SDL_INIT_EVERYTHING);
SDL_Surface *window = SDL_SetVideoMode(width, height, 32, flags);

// ...

您还需要将 SDL_DisplayFormat 更改为 SDL_DisplayFormatAlpha

关于c++ - SDL DisplayFormat 做矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8618597/

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