Fixed bug 4377 - SDL_PIXELFORMAT enum is anonymous, which prevents its use in a templated function
zen3d While trying to build Pixie lisp (https://github.com/pixie-lang/pixie), which uses SDL for multimedia output, the mandelbrot example won't build. The problem is that internally pixie uses a templated function to dump a value, and gcc chokes because SDL_PIXELFORMAT_RGA8888 is an anonymous enum. I solved the problem locally by changing from: enum { SDL_PIXELFORMAT_UNKNOWN, ... etc. ... SDL_PIXELFORMAT_YUYV = ... etc ... }; to: typedef enum { SDL_PIXELFORMAT_UNKNOWN, ... etc. ... SDL_PIXELFORMAT_YUYV = ... etc ... } SDL_PIXELFORMAT_ENUM; The net result of this change is that the enum containing SDL_PIXELFORMAT_* is no longer an anonymous enum and can now be used by a templated function. This local change fixes Pixie lisp for me. I did notice that you use the idiom typedef enum { ... etc ... } SDL_FOO; elsewhere in your code, so that change to SDL_PIXELFORMAT doesn't look like it would have a negative impact.
parent
b815ad56fc
commit
1a4c0d4e17
|
@ -168,7 +168,7 @@ enum
|
|||
((format) && (SDL_PIXELFLAG(format) != 1))
|
||||
|
||||
/* Note: If you modify this list, update SDL_GetPixelFormatName() */
|
||||
enum
|
||||
typedef enum
|
||||
{
|
||||
SDL_PIXELFORMAT_UNKNOWN,
|
||||
SDL_PIXELFORMAT_INDEX1LSB =
|
||||
|
@ -290,7 +290,7 @@ enum
|
|||
SDL_DEFINE_PIXELFOURCC('N', 'V', '2', '1'),
|
||||
SDL_PIXELFORMAT_EXTERNAL_OES = /**< Android video texture format */
|
||||
SDL_DEFINE_PIXELFOURCC('O', 'E', 'S', ' ')
|
||||
};
|
||||
} SDL_PixelFormatEnum;
|
||||
|
||||
typedef struct SDL_Color
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue