显示器与窗口管理(CategoryVideo)
SDL 的视频子系统主要负责对底层操作系统的窗口管理进行抽象封装。你可以创建窗口、以多种方式管理窗口、将其设为全屏模式,并在窗口发生相关事件(如鼠标或键盘与窗口交互)时获取事件通知。
视频子系统还会对 OpenGL 中部分平台相关的差异进行抽象,例如:上下文创建、缓冲区交换等。这对你的应用程序可能至关重要,但你完全不必强制使用 OpenGL。事实上,SDL 也可以为这些窗口提供渲染能力:既可以使用易用的 2D API,也可以使用功能更强大的 GPU API。
当然,SDL 也可以完全不介入渲染流程,直接为你提供窗口句柄,让你自行直接使用 Vulkan、Direct3D、Metal 或其他任何你喜欢的图形 API。
视频子系统因功能需求覆盖范围很广,因此值得浏览一遍函数列表以了解可用功能。不过大多数应用只需创建窗口并监听事件即可,建议从 SDL_CreateWindow() 和 SDL_PollEvent() 开始使用。
函数
- SDL_CreatePopupWindow(创建弹出窗口)
- SDL_CreateWindow(创建窗口)
- SDL_CreateWindowWithProperties(按属性创建窗口)
- SDL_DestroyWindow(销毁窗口)
- SDL_DestroyWindowSurface(销毁窗口表面)
- SDL_DisableScreenSaver(禁用屏幕保护程序)
- SDL_EGL_GetCurrentConfig(获取当前 EGL 配置)
- SDL_EGL_GetCurrentDisplay(获取当前 EGL 显示)
- SDL_EGL_GetProcAddress(获取 EGL 函数地址)
- SDL_EGL_GetWindowSurface(获取 EGL 窗口表面)
- SDL_EGL_SetAttributeCallbacks(设置 EGL 属性回调)
- SDL_EnableScreenSaver(启用屏幕保护程序)
- SDL_FlashWindow(闪烁窗口)
- SDL_GetClosestFullscreenDisplayMode(获取最接近的全屏显示模式)
- SDL_GetCurrentDisplayMode(获取当前显示模式)
- SDL_GetCurrentDisplayOrientation(获取当前显示方向)
- SDL_GetCurrentVideoDriver(获取当前视频驱动)
- SDL_GetDesktopDisplayMode(获取桌面显示模式)
- SDL_GetDisplayBounds(获取显示器边界)
- SDL_GetDisplayContentScale(获取显示内容缩放比例)
- SDL_GetDisplayForPoint(获取点所在的显示器)
- SDL_GetDisplayForRect(获取矩形所在的显示器)
- SDL_GetDisplayForWindow(获取窗口所在的显示器)
- SDL_GetDisplayName(获取显示器名称)
- SDL_GetDisplayProperties(获取显示器属性)
- SDL_GetDisplays(获取所有显示器)
- SDL_GetDisplayUsableBounds(获取显示器可用区域边界)
- SDL_GetFullscreenDisplayModes(获取所有全屏显示模式)
- SDL_GetGrabbedWindow(获取捕获输入的窗口)
- SDL_GetNaturalDisplayOrientation(获取显示器自然方向)
- SDL_GetNumVideoDrivers(获取视频驱动数量)
- SDL_GetPrimaryDisplay(获取主显示器)
- SDL_GetSystemTheme(获取系统主题)
- SDL_GetVideoDriver(获取指定序号的视频驱动)
- SDL_GetWindowAspectRatio(获取窗口宽高比)
- SDL_GetWindowBordersSize(获取窗口边框大小)
- SDL_GetWindowDisplayScale(获取窗口所在显示器缩放)
- SDL_GetWindowFlags(获取窗口标志)
- SDL_GetWindowFromID(通过 ID 获取窗口)
- SDL_GetWindowFullscreenMode(获取窗口全屏模式)
- SDL_GetWindowICCProfile(获取窗口 ICC 色彩配置文件)
- SDL_GetWindowID(获取窗口 ID)
- SDL_GetWindowKeyboardGrab(获取窗口键盘捕获状态)
- SDL_GetWindowMaximumSize(获取窗口最大尺寸)
- SDL_GetWindowMinimumSize(获取窗口最小尺寸)
- SDL_GetWindowMouseGrab(获取窗口鼠标捕获状态)
- SDL_GetWindowMouseRect(获取窗口鼠标限制矩形)
- SDL_GetWindowOpacity(获取窗口不透明度)
- SDL_GetWindowParent(获取父窗口)
- SDL_GetWindowPixelDensity(获取窗口像素密度)
- SDL_GetWindowPixelFormat(获取窗口像素格式)
- SDL_GetWindowPosition(获取窗口位置)
- SDL_GetWindowProgressState(获取窗口进度条状态)
- SDL_GetWindowProgressValue(获取窗口进度条值)
- SDL_GetWindowProperties(获取窗口属性)
- SDL_GetWindows(获取所有窗口)
- SDL_GetWindowSafeArea(获取窗口安全区域)
- SDL_GetWindowSize(获取窗口大小)
- SDL_GetWindowSizeInPixels(获取窗口像素大小)
- SDL_GetWindowSurface(获取窗口表面)
- SDL_GetWindowSurfaceVSync(获取窗口表面垂直同步状态)
- SDL_GetWindowTitle(获取窗口标题)
- SDL_GL_CreateContext(创建 OpenGL 上下文)
- SDL_GL_DestroyContext(销毁 OpenGL 上下文)
- SDL_GL_ExtensionSupported(检查 OpenGL 扩展是否支持)
- SDL_GL_GetAttribute(获取 OpenGL 属性)
- SDL_GL_GetCurrentContext(获取当前 OpenGL 上下文)
- SDL_GL_GetCurrentWindow(获取当前 OpenGL 上下文所属窗口)
- SDL_GL_GetProcAddress(获取 OpenGL 函数地址)
- SDL_GL_GetSwapInterval(获取 OpenGL 交换间隔)
- SDL_GL_LoadLibrary(加载 OpenGL 库)
- SDL_GL_MakeCurrent(将上下文设为当前)
- SDL_GL_ResetAttributes(重置 OpenGL 属性)
- SDL_GL_SetAttribute(设置 OpenGL 属性)
- SDL_GL_SetSwapInterval(设置 OpenGL 交换间隔)
- SDL_GL_SwapWindow(交换 OpenGL 窗口缓冲区)
- SDL_GL_UnloadLibrary(卸载 OpenGL 库)
- SDL_HideWindow(隐藏窗口)
- SDL_MaximizeWindow(最大化窗口)
- SDL_MinimizeWindow(最小化窗口)
- SDL_RaiseWindow(激活并前置窗口)
- SDL_RestoreWindow(恢复窗口)
- SDL_ScreenSaverEnabled(查询屏幕保护是否启用)
- SDL_SetWindowAlwaysOnTop(设置窗口置顶)
- SDL_SetWindowAspectRatio(设置窗口宽高比)
- SDL_SetWindowBordered(设置窗口是否有边框)
- SDL_SetWindowFillDocument(设置窗口填充文档模式)
- SDL_SetWindowFocusable(设置窗口是否可获得焦点)
- SDL_SetWindowFullscreen(设置窗口全屏)
- SDL_SetWindowFullscreenMode(设置窗口全屏模式)
- SDL_SetWindowHitTest(设置窗口点击测试回调)
- SDL_SetWindowIcon(设置窗口图标)
- SDL_SetWindowKeyboardGrab(设置窗口键盘捕获)
- SDL_SetWindowMaximumSize(设置窗口最大尺寸)
- SDL_SetWindowMinimumSize(设置窗口最小尺寸)
- SDL_SetWindowModal(设置窗口为模态)
- SDL_SetWindowMouseGrab(设置窗口鼠标捕获)
- SDL_SetWindowMouseRect(设置窗口鼠标限制矩形)
- SDL_SetWindowOpacity(设置窗口不透明度)
- SDL_SetWindowParent(设置父窗口)
- SDL_SetWindowPosition(设置窗口位置)
- SDL_SetWindowProgressState(设置窗口进度条状态)
- SDL_SetWindowProgressValue(设置窗口进度条值)
- SDL_SetWindowResizable(设置窗口是否可缩放)
- SDL_SetWindowShape(设置窗口透明形状)
- SDL_SetWindowSize(设置窗口大小)
- SDL_SetWindowSurfaceVSync(设置窗口表面垂直同步)
- SDL_SetWindowTitle(设置窗口标题)
- SDL_ShowWindow(显示窗口)
- SDL_ShowWindowSystemMenu(显示窗口系统菜单)
- SDL_SyncWindow(同步窗口状态)
- SDL_UpdateWindowSurface(更新窗口表面)
- SDL_UpdateWindowSurfaceRects(批量更新窗口表面区域)
- SDL_WindowHasSurface(检查窗口是否有表面)
数据类型
- SDL_DisplayID(显示器 ID)
- SDL_DisplayModeData(显示模式数据)
- SDL_EGLAttrib(EGL 属性)
- SDL_EGLAttribArrayCallback(EGL 属性数组回调)
- SDL_EGLConfig(EGL 配置)
- SDL_EGLDisplay(EGL 显示)
- SDL_EGLint(EGL 整数类型)
- SDL_EGLIntArrayCallback(EGL 整数数组回调)
- SDL_EGLSurface(EGL 表面)
- SDL_GLContext(OpenGL 上下文)
- SDL_GLContextFlag(OpenGL 上下文标志)
- SDL_GLContextReleaseFlag(OpenGL 上下文释放标志)
- SDL_GLContextResetNotification(OpenGL 上下文重置通知)
- SDL_GLProfile(OpenGL 配置文件)
- SDL_HitTest(点击测试回调)
- SDL_Window(窗口)
- SDL_WindowFlags(窗口标志)
- SDL_WindowID(窗口 ID)
结构体
- SDL_DisplayMode(显示模式)
枚举
- SDL_DisplayOrientation(显示器方向)
- SDL_FlashOperation(窗口闪烁操作)
- SDL_GLAttr(OpenGL 属性)
- SDL_HitTestResult(点击测试结果)
- SDL_ProgressState(进度条状态)
- SDL_SystemTheme(系统主题)
宏
- SDL_PROP_GLOBAL_VIDEO_WAYLAND_WL_DISPLAY_POINTER(Wayland 显示指针全局属性)
- SDL_WINDOWPOS_CENTERED(窗口位置居中)
- SDL_WINDOWPOS_CENTERED_DISPLAY(指定显示器窗口居中)
- SDL_WINDOWPOS_CENTERED_MASK(窗口居中掩码)
- SDL_WINDOWPOS_ISCENTERED(判断窗口是否居中)
- SDL_WINDOWPOS_ISUNDEFINED(判断窗口位置是否未定义)
- SDL_WINDOWPOS_UNDEFINED(窗口位置未定义)
- SDL_WINDOWPOS_UNDEFINED_DISPLAY(指定显示器窗口位置未定义)
- SDL_WINDOWPOS_UNDEFINED_MASK(窗口位置未定义掩码)
[API 分类首页(CategoryAPICategory)]
评论一下?