我在哪里可以找到 'SDL_Window' 的定义
Where can I find the definition of 'SDL_Window'
我刚刚在 Linux 开始学习 SDL2。我正在阅读 LazyFoo 的第一个教程,我看到有代码:
//The window we'll be rendering to
SDL_Window* window = NULL;
在哪里可以找到 SDL_Window
的定义以便阅读它?
这个结构没有暴露给用户端; SDL_video.h
文件包含它的前向声明:
typedef struct SDL_Window SDL_Window;
前向声明意味着您只能将其用作指针类型,因为实际的数据布局对您是隐藏的。
实际类型 struct SDL_Window
当前在 src/video/SDL_sysvideo.h
中声明(在 SDL Source Code: 中,而不是在 'Development Libraries:' 中)为:
struct SDL_Window
{
const void *magic;
Uint32 id;
char *title;
SDL_Surface *icon;
int x, y;
int w, h;
int min_w, min_h;
int max_w, max_h;
Uint32 flags;
Uint32 last_fullscreen_flags;
/* Stored position and size for windowed mode */
SDL_Rect windowed;
SDL_DisplayMode fullscreen_mode;
float brightness;
Uint16 *gamma;
Uint16 *saved_gamma; /* (just offset into gamma) */
SDL_Surface *surface;
SDL_bool surface_valid;
SDL_bool is_hiding;
SDL_bool is_destroying;
SDL_WindowShaper *shaper;
SDL_HitTest hit_test;
void *hit_test_data;
SDL_WindowUserData *data;
void *driverdata;
SDL_Window *prev;
SDL_Window *next;
};
但是,如果您不是 developing/debugging SDL,则此信息几乎没有用,而且最重要的是,可能会在未来的任何版本中更改。同样最有趣的部分 - 指向 SDL_WindowUserData
的指针 - 是特定于平台的,并且在不同的操作系统和 SDL 视频驱动程序之间有所不同。
您应该改用 SDL2 video API。
我刚刚在 Linux 开始学习 SDL2。我正在阅读 LazyFoo 的第一个教程,我看到有代码:
//The window we'll be rendering to
SDL_Window* window = NULL;
在哪里可以找到 SDL_Window
的定义以便阅读它?
这个结构没有暴露给用户端; SDL_video.h
文件包含它的前向声明:
typedef struct SDL_Window SDL_Window;
前向声明意味着您只能将其用作指针类型,因为实际的数据布局对您是隐藏的。
实际类型 struct SDL_Window
当前在 src/video/SDL_sysvideo.h
中声明(在 SDL Source Code: 中,而不是在 'Development Libraries:' 中)为:
struct SDL_Window
{
const void *magic;
Uint32 id;
char *title;
SDL_Surface *icon;
int x, y;
int w, h;
int min_w, min_h;
int max_w, max_h;
Uint32 flags;
Uint32 last_fullscreen_flags;
/* Stored position and size for windowed mode */
SDL_Rect windowed;
SDL_DisplayMode fullscreen_mode;
float brightness;
Uint16 *gamma;
Uint16 *saved_gamma; /* (just offset into gamma) */
SDL_Surface *surface;
SDL_bool surface_valid;
SDL_bool is_hiding;
SDL_bool is_destroying;
SDL_WindowShaper *shaper;
SDL_HitTest hit_test;
void *hit_test_data;
SDL_WindowUserData *data;
void *driverdata;
SDL_Window *prev;
SDL_Window *next;
};
但是,如果您不是 developing/debugging SDL,则此信息几乎没有用,而且最重要的是,可能会在未来的任何版本中更改。同样最有趣的部分 - 指向 SDL_WindowUserData
的指针 - 是特定于平台的,并且在不同的操作系统和 SDL 视频驱动程序之间有所不同。
您应该改用 SDL2 video API。