From f0b5772494bc7c7e8464866544ff29b354fa4079 Mon Sep 17 00:00:00 2001 From: saschawillems Date: Sat, 26 Mar 2016 13:46:49 +0100 Subject: [PATCH] Rephrased paragraph on building the examples for the supported platforms --- README.md | 28 ++++++++++++++-------------- images/androidlogo.png | Bin 0 -> 8288 bytes images/linuxlogo.png | Bin 0 -> 11913 bytes images/windowslogo.png | Bin 0 -> 5452 bytes 4 files changed, 14 insertions(+), 14 deletions(-) create mode 100644 images/androidlogo.png create mode 100644 images/linuxlogo.png create mode 100644 images/windowslogo.png diff --git a/README.md b/README.md index 7a0f87639..758476668 100644 --- a/README.md +++ b/README.md @@ -4,30 +4,30 @@ Assorted C++ examples for [Vulkan(tm)](https://www.khronos.org/vulkan/), the new graphics and compute API from Khronos. -## Building +# Building -The repository contains everything required to compile the examples out of the box on windows and Linux. All required dependencies and libraries are included. +The repository contains everything required to compile and build the examples on Windows, Linux and Android. All required dependencies are included. -### Visual Studio -A Visual Studio (2015) solution file for compiling all examples is included with the repository. +## Windows +A Visual Studio solution file for compiling all examples is included with the repository, examples will compile with VS2015 out of the box. -### CMake -For Linux (or if you want to use a different IDE) there is also a a CMakeLists.txt to be used with [CMake](https://cmake.org). +If you're using a different IDE or compiler you can use the provided CMakeLists.txt for use with [CMake](https://cmake.org) to generate a build configuration for your toolchain. -Use it to generate a platform-specific build configuration for building all examples. It should work with different compilers on Windows and Linux (C++11 required). +## Linux -### [Android](android/) +Use the provided the provided CMakeLists.txt for use with [CMake](https://cmake.org) to generate a build configuration for your favorite IDE or compiler. -I'm currently adding Android support to the examples, replacing the initial separate examples. Please see the [Android readme](./android/README.md) on how to build these and a few notes on the platform. +Note that you need [assimp](https://github.com/assimp/assimp) in order to compile the examples for Linux. Either compile and install from the repository, or install libassimp-dev. The example require version 3.2 and up. + +## [Android](android/) + +Building on Android is done using the [Android NDK](http://developer.android.com/tools/sdk/ndk/index.html) and requires adevice that supports Vulkan. Please see the [Android readme](./android/README.md) on how to build these and a few notes on the platform. ## Binaries Precompiled binaries for Windows (x64), Linux (x64) and Android can be [found here](http://vulkan.gpuinfo.org/examples.php). I'll try keep them up-to-date with the repositry. -Note that these only contain the binaries, you still need the repository for the data (shaders, models, textures) and put the binaries into to bin subfolder. - -## Vendor support -The examples have been tested to work on recent NVIDIA and AMD GPUs, but since **most drivers are beta** not all examples may work with all vendors. +Note that these only contain the binaries, you still need the repository for the data (shaders, models, textures) and put the binaries into to bin subfolder. Except for Android, where this is stored inside of the apk. ## API-Version @@ -37,7 +37,7 @@ The examples are build against **API Version 1.0.5** and support **implementatio Additional documentation for several base classes and functionality (e.g. the swap chain) can be found [in this directory](./documentation/additionaldocs.md). -## Examples +# Examples ## [Triangle](triangle/) diff --git a/images/androidlogo.png b/images/androidlogo.png new file mode 100644 index 0000000000000000000000000000000000000000..40bf934bb5867e7d1ffa8e8cc705c4b7f1ba5c25 GIT binary patch literal 8288 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 LZIvn|>+t^oPe^CY literal 0 HcmV?d00001 diff --git a/images/linuxlogo.png b/images/linuxlogo.png new file mode 100644 index 0000000000000000000000000000000000000000..bdc5b1d73e1f860c669819fba0a4c949c93e61b3 GIT binary patch literal 11913 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 literal 0 HcmV?d00001