Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        在27天前关闭。
                                                                                            
                
        
我正在阅读SDL_CreateTexture函数,我对于为“ Uint32格式”参数选择哪个参数感到非常困惑。有很多枚举值,我不知道选择哪个以及为什么。我不知道为什么SDL_PIXELFORMAT_UNKNOWN似乎是个好主意。是吗?

最佳答案

好的,所以您的问题没有提供足够的上下文来真正告诉您在这里做什么。


您想实现什么?
您已经尝试了什么?
它会引发错误吗?


我将尝试为您提供一些一般性提示:
纹理只是一个大数组,所有像素一个接一个地保存,一行一行,从左到右,从上到下读取(至少通常是这样)。
该数组的长度为:
length_in_bytes = w * h * nBytesOfPixel;
因此,要为纹理正确分配内存并正确地将字节解释为像素颜色,需要像素中的字节数(在这种情况下为位数)。
要通知SDL_CreateTexture,您必须提供以下Pixelformat值之一。如有疑问,请使用SDL_PIXELFORMAT_RGBA8888,它可以覆盖您的所有库基一段时间,并且可以轻松地从其他任何地方进行翻译。顾名思义,它将每个像素保存为4个字节,每种颜色按1个字节保存:红色,绿色,蓝色,Alpha。 Alpha用于透明度。

如果将此与其他一些候选对象进行比较,则可能会看到它们的属性。


例如,SDL_PIXELFORMAT_BGR888交换了B和R通道,没有alpha通道。

关于c++ - 使用SDL_PIXELFORMAT_UNKNOWN好吗? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59761119/

10-10 15:57