| /* |
| * Samples.h |
| * |
| * Copyright (c) 2015-2020 The Brenwill Workshop Ltd. (http://www.brenwill.com) |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| |
| /** |
| * Loads the appropriate sample code, as indicated by the appropriate compiler build setting below. |
| * |
| * To select a sample to run, define one (and only one) of the macros below, either by adding |
| * a #define XXX statement at the top of this file, or more flexibily, by adding the macro value |
| * to the Preprocessor Macros (aka GCC_PREPROCESSOR_DEFINITIONS) compiler setting. |
| * |
| * To add a compiler setting, select the project in the Xcode Project Navigator panel, |
| * select the Build Settings panel, and add the value to the Preprocessor Macros |
| * (aka GCC_PREPROCESSOR_DEFINITIONS) entry. |
| * |
| * If you choose to add a #define statement to this file, be sure to clear the existing macro |
| * from the Preprocessor Macros (aka GCC_PREPROCESSOR_DEFINITIONS) compiler setting in Xcode. |
| * |
| * Each of the `API-Samples` demos loads SPIR-V shader code from a file. Before running |
| * any of these demos, generate these SPIR-V files from a command line as follows: |
| * |
| * cd MoltenVK/Demos/LunarG-VulkanSamples/API-Samples |
| * ./generateSPIRVShaders |
| * |
| * You only need to do this step once. It generates the SPIR-V shader code files for all of these demos. |
| */ |
| |
| #include <MoltenVK/mvk_vulkan.h> |
| |
| // Rename main() in sample file so it won't conflict with the application main() |
| #define main(argc, argv) sample_main(argc, argv) |
| |
| |
| #ifdef MVK_SAMP_15_draw_cube |
| # define _5_draw_cube_vert __draw_cube_vert |
| # define _5_draw_cube_frag __draw_cube_frag |
| # include "../VulkanSamples/API-Samples/15-draw_cube/15-draw_cube.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_copy_blit_image |
| # include "../VulkanSamples/API-Samples/copy_blit_image/copy_blit_image.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_draw_subpasses |
| # include "../VulkanSamples/API-Samples/draw_subpasses/draw_subpasses.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_draw_textured_cube |
| # include "../VulkanSamples/API-Samples/draw_textured_cube/draw_textured_cube.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_dynamic_uniform |
| # include "../VulkanSamples/API-Samples/dynamic_uniform/dynamic_uniform.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_immutable_sampler |
| # include "../VulkanSamples/API-Samples/immutable_sampler/immutable_sampler.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_input_attachment |
| # include "../VulkanSamples/API-Samples/input_attachment/input_attachment.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_memory_barriers |
| # include "../VulkanSamples/API-Samples/memory_barriers/memory_barriers.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_multiple_sets |
| # include "../VulkanSamples/API-Samples/multiple_sets/multiple_sets.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_multithreaded_command_buffers |
| # include "../VulkanSamples/API-Samples/multithreaded_command_buffers/multithreaded_command_buffers.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_occlusion_query |
| # include "../VulkanSamples/API-Samples/occlusion_query/occlusion_query.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_pipeline_cache |
| # include "../VulkanSamples/API-Samples/pipeline_cache/pipeline_cache.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_push_constants |
| # include "../VulkanSamples/API-Samples/push_constants/push_constants.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_push_descriptors |
| # include "../VulkanSamples/API-Samples/push_descriptors/push_descriptors.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_secondary_command_buffer |
| # include "../VulkanSamples/API-Samples/secondary_command_buffer/secondary_command_buffer.cpp" |
| #endif |
| |
| #ifdef MVK_SAMP_separate_image_sampler |
| # include "../VulkanSamples/API-Samples/separate_image_sampler/separate_image_sampler.cpp" |
| #endif |
| |
| // Does not run on macOS, which does not support textures in host-coherent memory. |
| #ifdef MVK_SAMP_texel_buffer |
| # include "../VulkanSamples/API-Samples/texel_buffer/texel_buffer.cpp" |
| #endif |
| |
| |
| |