This project is mainly faced to GUI engineering applications and advanced backend computing, such as X11, Qt, ffmpeg, OpenCV, CUDA and so on. Combining Vulkan with engineering applications, not a pure demo.
- Imaging Proceessing of Vulkan
- Medical Imaging of Vulkan
- Vulkan on Qt (GAMES)
- Vulkan on XWindow (GAMES)
- Vulkan with CUDA
- Vulkan server rendering with ffmpeg
This project is partly based on SaschaWillems's Project, add some functions of cross-platform window operation , deleted MFC code of the main function(WinMain), and provides a unified interface api for cross-platform.
Use sharelib (libvulkanbase.so, libvulkan_basicengine.so) instead of static lib.
For examples of cross-platform api:
int main(int argc,char** argv){
bool debug=false;
StaticTriangle* statictrianglePtr=new StaticTriangle(debug);
statictrianglePtr->initVulkan();
statictrianglePtr->initWindow();
statictrianglePtr->prepare();
statictrianglePtr->renderLoop();
delete statictrianglePtr;
return 1;
}
The libvulkan_basicengine.so also integrates 'stb_image' from https://github.com/JoeyDeVries/LearnOpenGL, supporting jpg and png image loading, and you don't need to generate ktx images for Vulkan Texture now. See 'vulkan_basicengine_texture.h'.
Finally, welcome to clone or fork my project, remember to star if you consider my project is quite good.
Now: Linux(Mainly) Windows(Partly) Planned supported: Mac Android IOS
Vulkan: 1.1.121+
Glm: 0.9.9+
Xcb & Xlib
GLFW3
OpenCV: 4.0+ (Some projects need)
CUDA: 10.0+ (Some projects need)
Qt: 5.12+ (Some projects need)
GCC 7+ using -std=c++17 MSVC 2017
If you don't have GLM, GLI, IMGUI, you need "git submodule update --init" first.
git submodule update --init
Compile
cmake ..
make
make install
The programs will be installed in the {PROJECT_DIR}/bin .
cmake .. -DBUILD_QtExamples=ON
Compile
cmake -G "Visual Studio 14 2015 Win64" -T host=x64 ..
cmake --build . --config Release
cmake --build . --config Release --target INSTALL
The programs will be installed in the {PROJECT_DIR}/Release .
- Simple Examples (doing)
- Advanced Examples
- CUDA and Vulkan
- Qt and Vulkan
- X11 and Vulkan
- Vulkan and deep learning
- Vulkan Server Rendering