Added license and readme files.
@@ -0,0 +1,23 @@ | ||
1 | + Copyright 2016-2019 SOFT-ERG, Przemek Kuczmierczyk (www.softerg.com) | |
2 | + All rights reserved. | |
3 | + | |
4 | + Redistribution and use in source and binary forms, with or without modification, | |
5 | + are permitted provided that the following conditions are met: | |
6 | + | |
7 | + 1. Redistributions of source code must retain the above copyright notice, | |
8 | + this list of conditions and the following disclaimer. | |
9 | + | |
10 | + 2. Redistributions in binary form must reproduce the above copyright notice, | |
11 | + this list of conditions and the following disclaimer in the documentation | |
12 | + and/or other materials provided with the distribution. | |
13 | + | |
14 | + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
15 | + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, | |
16 | + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
17 | + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | |
18 | + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |
19 | + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |
20 | + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | |
21 | + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |
22 | + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, | |
23 | + EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
@@ -0,0 +1,53 @@ | ||
1 | +VPP is a high-level C++ rendering and GPU computation API based on Vulkan. | |
2 | + | |
3 | +Vulkan is the new API for 3D graphics rendering and GPU computation developed | |
4 | +by Khronos Group. | |
5 | + | |
6 | +VPP adds high-level, object-oriented C++ interface over Vulkan. The goal is | |
7 | +to make Vulkan programming easier and more intuitive. VPP provides the following | |
8 | +features: | |
9 | + | |
10 | +- Intuitive, object-oriented abstractions over Vulkan concepts: devices, queues, | |
11 | + render passes, pipelines, shader resources, synchronization objects and others. | |
12 | + | |
13 | +- Isolation from the C-style interface of Vulkan. | |
14 | + | |
15 | +- Easy, conceptual design of render passes and pipelines. | |
16 | + | |
17 | +- Unique ability to write all shader code directly in C++ (as class methods), | |
18 | + without any need to use GLSL or other intermediate language. No separate compiler | |
19 | + passes required. All C++ 14 compliant compilers supported. No compiler extensions | |
20 | + required. No hardware vendor / OS dependencies. All types of shaders supported. | |
21 | + | |
22 | +- C++ shaders are automatically integrated into a pipeline and can access shader | |
23 | + resources in straghtforward, object-oriented manner. Bindings and locations are | |
24 | + automatically generated. Entire Vulkan shader interface is supported. Shaders may | |
25 | + easily access: vertex inputs, uniform buffers, all kinds of image resources, | |
26 | + attachments, push constants, all builtin variables, inter-shader communication variables. | |
27 | + | |
28 | +- C++ shaders can be subject to advanced C++ programming and design techniques: | |
29 | + parametrization, templating, macros, modularization, OO design. | |
30 | + | |
31 | +- Support for multithreading and automatic host synchronization of objects where Vulkan | |
32 | + requires it. | |
33 | + | |
34 | +- Compile-time detection of some Vulkan usage errors. | |
35 | + | |
36 | +- Integration with third party libraries (currently GLM). | |
37 | + | |
38 | +- Easier management of Vulkan extensions with automatic dependency resolving for common | |
39 | + extensions. | |
40 | + | |
41 | +- Selected extension functionality seamlessly built-in into VPP API (e.g. 64-bit atomic | |
42 | + variables). | |
43 | + | |
44 | +Current version (0.8.1 alpha) supports Visual Studio 2015 and 2017 builds. Later versions | |
45 | +are planned to support also Linux and other targets using GCC and CLang toolchains. | |
46 | +VPP itself requires only C++ 14 compliant compiler, no special or vendor-specific technology | |
47 | +is utilised. | |
48 | + | |
49 | +For build instructions, see the HTML documentation in 'docs' subdirectory. Click on "Related | |
50 | +pages" button and select the "How to build and use VPP under Visual Studio" topic. | |
51 | + | |
52 | +The package also includes a set of tests and examples. They are located in 'test' subdirectory. | |
53 | + |