Я только начал изучать SDL2 в Linux. Я читаю самый первый учебник от LazyFoo и вижу этот код:
//The window we'll be rendering to
SDL_Window* window = NULL;
Где я могу найти определение SDL_Window
, чтобы прочитать об этом?
Я только начал изучать SDL2 в Linux. Я читаю самый первый учебник от 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 Исходный код:, а не в "Библиотеках разработки" :') в качестве:
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;
};
Однако, если вы не занимаетесь разработкой/отладкой SDL, эта информация практически бесполезна и, что наиболее важно, может измениться в любом будущем выпуске. Также самая интересная часть - указатель на SDL_WindowUserData
- зависит от платформы и зависит от разных ОС и видеодрайверов SDL.
Вместо этого следует использовать video API SDL2.