SDL-1.2.15 中的那些文件夹是什么

What are those folders in SDL-1.2.15

我正在尝试了解 SDL-1.2.15 的源代码,并了解它如何在 windows 上呈现内容。但是我找不到渲染发生的地方。我查看了 SDL-1.2.15/src/video 文件夹,里面有很多子文件夹,但我不知道其中任何一个代表什么。自己看看。

aalib/        directfb/  ipod/       os2fslib/  quartz/     windib/
ataricommon/  dummy/     maccommon/  photon/    riscos/     windx5/
bwindow/      fbcon/     macdsp/     picogui/   svga/       wscons/
caca/         gapi/      macrom/     ps2gs/     symbian/    x11/
dc/           gem/       nanox/      ps3/       vgl/        xbios/
dga/          ggi/       nds/        qtopia/    wincommon/  Xext/

这在某处记录了吗?这是一个非常受欢迎的库,所以它可能有文档记录,对吧?正确的?如果您连源代码都看不懂,找不到您正在使用的函数,那有什么意义呢。

首先,为什么不是SDL2?

这些是不同的 SDL 视频驱动程序。您可以通过调用 SDL_VideoDriverName 来获取您的程序使用的驱动程序。将使用哪个驱动程序由目标平台(例如操作系统 - 大多数驱动程序是特定于平台的)、环境变量 SDL_VIDEODRIVER 或调用端决定的。

虽然并非所有名称都是不言自明的,但它们包含一些提示。 directfb、fbcon(帧缓冲区控制台)和 X(x11、Xext)是 Linux (unix) 上的输出层。

win开头的表示他们是Windows。更具体地说,windib 应该是关于设备独立位图 (DIB) 的,dx5 是关于 DirectX 5 的,而 wincommon 是关于一些常见的东西的。实际上,使用 grep 显示(仅)这些文件夹包含 Windows-特定代码:

grep -r windows.h src/video/*
[ lists files in the win* folders ]

您也可以在 Windows 上编译包并查看编译了哪些文件(哪些文件夹包含目标文件)

但是,要了解它的实际作用,您应该研究您感兴趣的函数(例如 SDL_BlitSurface),查看它的实现,然后查看它的函数的实现使用。从 SDL_video.h 开始(注意 SDL_BlitSurface 只是一个定义)。

您应该使用一些工具来搜索代码库。 Grep 或一些 IDE。或者两者兼而有之。