Skip to content

Latest commit

 

History

57 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vulkan Triangle

该项目是使用纯 Vulkan 接口在 WindowsLinuxmacOS 平台下渲染一个三角形的示例程序。只用于学习,禁止用于商业。

说明

不需要配置任何环境,直接使用 CMake 导出工程编译即可。

将会输出 VulkanTriangle.exe 可执行程序。

Note

Linux 需要配置如下依赖库:

sudo apt install libx11-dev       //cmake
sudo apt install libxrandr-dev    //glfw 
sudo apt install libxinerama-dev  //glfw 
sudo apt install libxcursor-dev   //glfw 
sudo apt install libxi-dev        //glfw 
sudo apt install libwayland-dev   //build 
sudo apt install build-essential  //build
sudo apt install freeglut3-dev    //build 

作者

FuXii

开源项目

日志

2026/8/24

  • 更新 VulkanTriangleDynamicRendering 绘制三角形。增加 image layout 还未同步转换。

  • 更新 VulkanTriangleDynamicRendering 绘制三角形。增加 synchronization2 特性检查和激活。

2026/8/21

  • 更新 VulkanTriangleDynamicRendering 检查动态渲染依赖扩展和特性并激活。

  • 更新 VulkanTriangleDynamicRendering 加载动态渲染函数。

  • 更新 VulkanTriangleDynamicRendering 绘制三角形。(image view layout 还未同步转换)

2026/8/20

  • 增加 VulkanTriangleDynamicRendering 计划使用动态渲染( DynamicRendering )绘制三角形。

2026/8/19

  • 优化调用顺序,增加 void ResizeSurface(uint32_t width, uint32_t height) 成员函数。

  • 移除 void CreateSurface(void *window, uint32_t width, uint32_t height) 成员函数。

2026/5/29

  • 研究尝试适配 鸿蒙 6

  • 更新 Vulkan 头文件版本到 1.4.352

  • 更新 VulkanTriangle.h/cpp 适配 Open/HarmonyOS

  • 更新 napi_init_10/19/20.cpp 适配 VulkanTriangle

2026/5/26

  • 尝试重构三角渲染。

  • 重构使用 VulkanTriangle.h/cpp 进行三角渲染。

2026/5/25

  • 研究尝试适配 鸿蒙 5

2026/5/22

  • 研究尝试适配 鸿蒙 4

2026/5/22

  • 适配窗口大小为零或最小化的情况。

2026/4/30

  • 增加对 Push Constants 使用,使得三角形大小随时间变化。

  • 更新 triangle.vert 使用 Push Constants 改变三角形大小。

  • 适配 Linux 窗口大小发生变化。

2025/8/14

  • 移除 CMakeLists.txt 中的 target_link_directories 的使用。冗余。

  • README.md 增加 Linux 环境下的配置说明。

2024/11/25

  • 动态适配 Swapchain 纹素的格式和空间,而不是单独选配某些格式。
  • TODO: 当所有的 Swapchain 格式都不支持 Color Attachment 时,考虑找到支持拷贝的格式,并使用拷贝显示渲染结果

2024/11/22

  • 增加动态适配 Swapchain 纹素的格式和空间,而不是写死。
  • Note:需要判断 Surface 打头第一个格式是否支持 COLOR_ATTACHMENT

2024/11/18

  • 尝试适配 Swapchain 大小改变。

*优化代码结构

2024/11/15

  • MacOS 系统成功编译。

2024/11/14

  • 动态判断加载 LayerExtension

  • 适配了一版 苹果 系统,还未进行测试,不知是否可行。

2024/11/13

成功适配 Deepin V23

  • 安装如下
libx11-dev
libxrandr-dev 
libxinerama-dev
libxcursor-dev
libxi-dev
freeglut3-dev
  • VK_LAYER_KHRONOS_validation 验证层找不到,非必须,目前暂时注释掉,修改意见: 增加 vkEnumerateInstanceLayerProperties(...) 的使用。

  • vkGetPhysicalDeviceSurfaceCapabilitiesKHR(...) 获取到的 VkSurfaceCapabilitiesKHR::minImageCount 不为 0VkSurfaceCapabilitiesKHR::maxImageCount0

test

增加了如下判断

vk_swapchain_create_info_khr.minImageCount = std::max(vk_surface_capabilities_khrminImageCount, vk_surface_capabilities_khr.maxImageCount);

About

A very simple and complete example of a Vulkan triangle

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages