PowerVR Graphics SDK v5.3.1 Release.

Native SDK: Removed the host compilation of glslangValidator when cross compiling as this had the potential to fail quite easily. This also required a dependency of host toolsets for cross compiled builds which wasn’t desirable. For cross-compiled builds we now download the matching glslang binary release package (https://github.com/KhronosGroup/glslang/releases/) for the host platform and extract it into the correct place (SDK/bin). Only do this if a glslangValidator binary isn’t already in the host bin directory meaning the step will only happen if a cross compiled build is the first build of the SDK on a particular host platform. Removed duplicated code for downloading external projects using a common function defined in cmake/Functions.cmake. Removed disabling of ENABLE_HLSL, ENABLE_OPT, ENABLE_AMD_EXTENSIONS and ENABLE_NV_EXTENSIONS. Fixed an issue in equi_to_cube.py where the displayed width and height of the generated map were half of their real dimensions. Tweaked CMake options to better facilitate MinGW Win32 builds. Building for iOS now supports code signing through build command line. PVRFrame: Added support for EGL_EXT_swap_buffers_with_damage/EGL_KHR_swap_buffers_with_damage. Added support for EGL_KHR_partial_update. Fixed a possible crash on OSX in eglQuerySurface.
parent 44ef2151
......@@ -2,28 +2,48 @@
option(USE_SANITIZER_FLAGS "Use sanitzer flags" OFF)
include(CheckCXXCompilerFlag)
#some optimizations for windows
if (WIN32)
#Get rid of the "this function is unsafe" warning in Visual Studio
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
#Get rid of the "this function is unsafe" warning in Visual Studio
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
#Enable Link Time Code Generation/Whole program optimization
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG" CACHE INTERNAL "")
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /LTCG" CACHE INTERNAL "")
set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} /LTCG" CACHE INTERNAL "")
set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} /LTCG" CACHE INTERNAL "")
set(CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO} /LTCG" CACHE INTERNAL "")
set(CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL "${CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL} /LTCG" CACHE INTERNAL "")
add_compile_options("$<$<NOT:$<CONFIG:DEBUG>>:/GL>")
# Support parallel builds
add_compile_options("/MP")
# Enable "Just My Code" feature introduced in MSVC 15.8 (Visual Studio 2017)
# See https://blogs.msdn.microsoft.com/vcblog/2018/06/29/announcing-jmc-stepping-in-visual-studio/
#
# For MSVC version numbering used here, see:
# https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "19.15" )
add_compile_options("$<$<CONFIG:DEBUG>:/JMC>")
endif()
# Add the all-important fast-math flag
CHECK_CXX_COMPILER_FLAG(/fp:fast COMPILER_SUPPORTS_FAST_MATH)
if(COMPILER_SUPPORTS_FAST_MATH)
add_compile_options("$<$<CONFIG:RELEASE>:/fp:fast>")
endif()
endif()
#Enable Link Time Code Generation/Whole program optimization
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG" CACHE INTERNAL "")
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /LTCG" CACHE INTERNAL "")
set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} /LTCG" CACHE INTERNAL "")
set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} /LTCG" CACHE INTERNAL "")
set(CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO} /LTCG" CACHE INTERNAL "")
set(CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL "${CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL} /LTCG" CACHE INTERNAL "")
add_compile_options("$<$<NOT:$<CONFIG:DEBUG>>:/GL>")
add_definitions(/MP)
if(MINGW)
SET(_WIN32_WINNT 0x0600 CACHE INTERNAL "Setting _WIN32_WINNT to 0x0600 for Windows Vista APIs")
SET(WINVER 0x0600 CACHE INTERNAL "Setting WINVER to 0x0600 for Windows Vista APIs")
# Enable "Just My Code" feature introduced in MSVC 15.8 (Visual Studio 2017)
# See https://blogs.msdn.microsoft.com/vcblog/2018/06/29/announcing-jmc-stepping-in-visual-studio/
#
# For MSVC version numbering used here, see:
# https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "19.15" )
add_compile_options("$<$<CONFIG:DEBUG>:/JMC>")
add_definitions(-D_WIN32_WINNT=${_WIN32_WINNT})
add_definitions(-DWINVER=${WINVER})
endif()
else()
if (APPLE)
......@@ -45,7 +65,7 @@ else()
#Make sure we are not getting the "reorder constructor parameters" warning
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations -Wno-reorder" CACHE INTERNAL "")
include(CheckCXXCompilerFlag)
# workaround an issue observed when using the optimation flag "-ftree-slp-vectorize" which is enabled when using the optimisation level "-O3" with gcc versions < 4.9.
if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
CHECK_CXX_COMPILER_FLAG(-fno-tree-slp-vectorize COMPILER_SUPPORTS_TREE_SLP_VECTORIZE)
......@@ -54,9 +74,11 @@ else()
endif()
endif()
# Add the all-important fast-math flag
CHECK_CXX_COMPILER_FLAG(-ffast-math COMPILER_SUPPORTS_FAST_MATH)
if(COMPILER_SUPPORTS_FAST_MATH)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ffast-math" CACHE INTERNAL "")
if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") OR (CMAKE_CXX_COMPILER_ID MATCHES "GNU"))
CHECK_CXX_COMPILER_FLAG(-ffast-math COMPILER_SUPPORTS_FAST_MATH)
if(COMPILER_SUPPORTS_FAST_MATH)
add_compile_options("$<$<CONFIG:RELEASE>:-ffast-math>")
endif()
endif()
# Use Gold Linker by default when it is supported
......
# This file provides various functions used by the PowerVR SDK build files
set(FUNCTIONS_INTERNAL_DIR ${CMAKE_CURRENT_LIST_DIR} CACHE INTERNAL "")
function(add_subdirectory_if_not_already_included TARGET SUBDIR_FOLDER SUBDIR_BIN_FOLDER)
if (NOT TARGET ${TARGET})
add_subdirectory(${SUBDIR_FOLDER} ${SUBDIR_BIN_FOLDER} EXCLUDE_FROM_ALL)
endif()
endfunction(add_subdirectory_if_not_already_included)
function(add_platform_specific_resource_files INPUT_SRC_FILES INPUT_RESOURCE_FILES)
if (WIN32)
set(RESOURCE_LIST "")
foreach(RESOURCE ${${INPUT_RESOURCE_FILES}})
get_filename_component(RESOURCE_NAME ${RESOURCE} NAME)
file(RELATIVE_PATH RESOURCE ${CMAKE_CURRENT_SOURCE_DIR}/cmake-resources ${RESOURCE})
file(TO_NATIVE_PATH "${RESOURCE}" RESOURCE)
string(REPLACE "\\" "\\\\" RESOURCE "${RESOURCE}")
set(RESOURCE_LIST ${RESOURCE_LIST} "${RESOURCE_NAME} RCDATA \"${RESOURCE}\"\n")
endforeach()
string(REPLACE ";" "" RESOURCE_LIST "${RESOURCE_LIST}")
configure_file(${SDK_ROOT}/res/Windows/Resources.rc.in ${CMAKE_CURRENT_SOURCE_DIR}/cmake-resources/Resources.rc)
#Add the resource files needed for windows (icons, asset files etc).
list(APPEND ${INPUT_SRC_FILES}
"${SDK_ROOT}/res/Windows/shared.rc"
"${SDK_ROOT}/res/Windows/resource.h"
"${CMAKE_CURRENT_SOURCE_DIR}/cmake-resources/Resources.rc")
elseif(APPLE)
if (IOS)
set(INFO_PLIST_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake-resources/iOS_Info.plist" PARENT_SCOPE)
file(GLOB ICONS LIST_DIRECTORIES false ${SDK_ROOT}/res/iOS/* ${SDK_ROOT}/res/iOS/OpenGLES/*)
list(APPEND ${INPUT_RESOURCE_FILES} ${ICONS})
else()
set(INFO_PLIST_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake-resources/macOS_Info.plist" PARENT_SCOPE)
list(APPEND ${INPUT_RESOURCE_FILES} "${CMAKE_CURRENT_SOURCE_DIR}/cmake-resources/MainMenu.xib")
endif()
source_group(Resources FILES ${${INPUT_RESOURCE_FILES}})
set_source_files_properties(${${INPUT_RESOURCE_FILES}} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
endif()
SET(${INPUT_SRC_FILES} ${${INPUT_SRC_FILES}} PARENT_SCOPE)
SET(${INPUT_RESOURCE_FILES} ${${INPUT_RESOURCE_FILES}} PARENT_SCOPE)
endfunction()
function(add_platform_specific_executable EXECUTABLE_NAME INPUT_SRC_FILES INPUT_RESOURCE_FILES)
if (WIN32)
add_executable(${EXECUTABLE_NAME} WIN32 ${INPUT_SRC_FILES})
elseif (ANDROID)
add_library(${EXECUTABLE_NAME} SHARED ${INPUT_SRC_FILES})
# Force export ANativeActivity_onCreate(),
# Refer to: https://github.com/android-ndk/ndk/issues/381
set_target_properties(${EXECUTABLE_NAME} PROPERTIES LINK_FLAGS " -u ANativeActivity_onCreate")
elseif (APPLE)
if (IOS)
add_executable(${EXECUTABLE_NAME} MACOSX_BUNDLE ${INPUT_SRC_FILES} ${INPUT_RESOURCE_FILES})
else ()
list(APPEND FRAMEWORK_FILES "${EXTERNAL_LIB_FOLDER}/libEGL.dylib" "${EXTERNAL_LIB_FOLDER}/libGLESv2.dylib")
set_source_files_properties(${FRAMEWORK_FILES} PROPERTIES MACOSX_PACKAGE_LOCATION Frameworks)
source_group(Frameworks FILES ${FRAMEWORK_FILES})
add_executable(${EXECUTABLE_NAME} MACOSX_BUNDLE ${INPUT_SRC_FILES} ${INPUT_RESOURCE_FILES} ${FRAMEWORK_FILES})
endif ()
set_target_properties(${EXECUTABLE_NAME} PROPERTIES RESOURCE "${INPUT_RESOURCE_FILES}")
set_target_properties(${EXECUTABLE_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${INFO_PLIST_FILE}")
elseif (UNIX OR QNX)
add_executable(${EXECUTABLE_NAME} ${INPUT_SRC_FILES})
endif()
endfunction()
# CAUTION - For this rule to work, the asset files must actually be added as sources to the executable
function(add_rule_copy_assets_to_asset_folder INPUT_RESOURCE_FILES INPUT_OUTPUT_FOLDER)
if (UNIX OR QNX)
#Copy all assets to the Assets folder in order for the executable to be able to locate it
foreach(ASSET_FILE_PATH ${INPUT_RESOURCE_FILES})
get_filename_component(ASSET_FILE_NAME ${ASSET_FILE_PATH} NAME)
add_custom_command(
OUTPUT ${INPUT_OUTPUT_FOLDER}/${ASSET_FILE_NAME}
PRE_BUILD
MAIN_DEPENDENCY ${ASSET_FILE_PATH}
COMMAND ${CMAKE_COMMAND} -E copy ${ASSET_FILE_PATH} ${INPUT_OUTPUT_FOLDER}/${ASSET_FILE_NAME}
COMMENT "${CMAKE_PROJECT_NAME}: Copying ${ASSET_FILE_PATH} to ${INPUT_OUTPUT_FOLDER}/${ASSET_FILE_NAME}"
)
endforeach()
endif() #All other platforms package: Windows resources, MacOS package, Android Assets etc.
endfunction()
function(get_glslang_validator_type out_glslang_validator_type INPUT_SHADER_NAME)
if(${INPUT_SHADER_NAME} MATCHES ".fsh$")
set(${out_glslang_validator_type} frag PARENT_SCOPE)
elseif(${INPUT_SHADER_NAME} MATCHES ".vsh$")
set(${out_glslang_validator_type} vert PARENT_SCOPE)
elseif(${INPUT_SHADER_NAME} MATCHES ".csh$")
set(${out_glslang_validator_type} comp PARENT_SCOPE)
elseif(${INPUT_SHADER_NAME} MATCHES ".gsh$")
set(${out_glslang_validator_type} geom PARENT_SCOPE)
elseif(${INPUT_SHADER_NAME} MATCHES ".tcsh$")
set(${out_glslang_validator_type} tesc PARENT_SCOPE)
elseif(${INPUT_SHADER_NAME} MATCHES ".tesh$")
set(${out_glslang_validator_type} tese PARENT_SCOPE)
endif()
endfunction(get_glslang_validator_type)
function(add_rule_generate_spirv_from_shaders INPUT_SHADER_NAMES)
#GENERATE A PRE-BUILD STEP FOR COMPILING GLSL TO SPIRV
foreach(SHADER ${INPUT_SHADER_NAMES})
get_filename_component(SHADER_NAME ${SHADER} NAME)
get_glslang_validator_type(SHADER_TYPE SHADER_NAME)
set (GLSLANG_VALIDATOR_COMPILE_CURRENT_COMMAND glslangValidator -V ${CMAKE_CURRENT_SOURCE_DIR}/${SHADER_NAME} -o ${CMAKE_CURRENT_SOURCE_DIR}/${SHADER_NAME}.spv -S ${SHADER_TYPE})
add_custom_command(
DEPENDS glslangValidator
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${SHADER_NAME}.spv
PRE_BUILD
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/${SHADER_NAME}
COMMAND echo ${GLSLANG_VALIDATOR_COMPILE_CURRENT_COMMAND}
COMMAND ${GLSLANG_VALIDATOR_COMPILE_CURRENT_COMMAND}
COMMENT "${PROJECT_NAME}: Compiling ${SHADER_NAME} to ${SHADER_NAME}.spv"
)
endforeach()
endfunction(add_rule_generate_spirv_from_shaders)
function(download_external_project external_project_name external_project_cmake_files_dir external_project_src_dir external_project_download_dir external_project_url external_project_byproducts)
# See here for details: https://crascit.com/2015/07/25/cmake-gtest/
configure_file(${FUNCTIONS_INTERNAL_DIR}/external_project_download.cmake ${external_project_cmake_files_dir}/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" -D "CMAKE_MAKE_PROGRAM:FILE=${CMAKE_MAKE_PROGRAM}" .
WORKING_DIRECTORY "${external_project_cmake_files_dir}"
RESULT_VARIABLE download_configure_result
OUTPUT_VARIABLE download_configure_output
ERROR_VARIABLE download_configure_output)
if(download_configure_result)
message(FATAL_ERROR "${external_project_name} download configure step failed (${download_configure_result}): ${download_configure_output}")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} --build .
WORKING_DIRECTORY "${external_project_cmake_files_dir}"
RESULT_VARIABLE download_build_result
OUTPUT_VARIABLE download_build_output
ERROR_VARIABLE download_build_output)
if(download_build_result)
message(FATAL_ERROR "${external_project_name} download build step failed (${download_build_result}): ${download_build_output}")
endif()
# This file provides various functions used by the PowerVR SDK build files
set(FUNCTIONS_INTERNAL_DIR ${CMAKE_CURRENT_LIST_DIR} CACHE INTERNAL "")
function(add_subdirectory_if_not_already_included TARGET SUBDIR_FOLDER SUBDIR_BIN_FOLDER)
if(NOT TARGET ${TARGET})
add_subdirectory(${SUBDIR_FOLDER} ${SUBDIR_BIN_FOLDER} EXCLUDE_FROM_ALL)
endif()
endfunction(add_subdirectory_if_not_already_included)
function(add_platform_specific_resource_files INPUT_SRC_FILES INPUT_RESOURCE_FILES)
if(WIN32)
set(RESOURCE_LIST "")
foreach(RESOURCE ${${INPUT_RESOURCE_FILES}})
get_filename_component(RESOURCE_NAME ${RESOURCE} NAME)
file(RELATIVE_PATH RESOURCE ${CMAKE_CURRENT_SOURCE_DIR}/cmake-resources ${RESOURCE})
file(TO_NATIVE_PATH "${RESOURCE}" RESOURCE)
string(REPLACE "\\" "\\\\" RESOURCE "${RESOURCE}")
set(RESOURCE_LIST ${RESOURCE_LIST} "${RESOURCE_NAME} RCDATA \"${RESOURCE}\"\n")
endforeach()
string(REPLACE ";" "" RESOURCE_LIST "${RESOURCE_LIST}")
configure_file(${SDK_ROOT}/res/Windows/Resources.rc.in ${CMAKE_CURRENT_SOURCE_DIR}/cmake-resources/Resources.rc)
#Add the resource files needed for windows (icons, asset files etc).
list(APPEND ${INPUT_SRC_FILES}
"${SDK_ROOT}/res/Windows/shared.rc"
"${SDK_ROOT}/res/Windows/resource.h")
if (NOT(RESOURCE_LIST STREQUAL ""))
list(APPEND ${INPUT_SRC_FILES} "${CMAKE_CURRENT_SOURCE_DIR}/cmake-resources/Resources.rc")
endif()
elseif(APPLE)
if(IOS)
set(INFO_PLIST_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake-resources/iOS_Info.plist" PARENT_SCOPE)
file(GLOB ICONS LIST_DIRECTORIES false ${SDK_ROOT}/res/iOS/* ${SDK_ROOT}/res/iOS/OpenGLES/*)
list(APPEND ${INPUT_RESOURCE_FILES} ${ICONS})
else()
set(INFO_PLIST_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake-resources/macOS_Info.plist" PARENT_SCOPE)
list(APPEND ${INPUT_RESOURCE_FILES} "${CMAKE_CURRENT_SOURCE_DIR}/cmake-resources/MainMenu.xib")
endif()
source_group(Resources FILES ${${INPUT_RESOURCE_FILES}})
set_source_files_properties(${${INPUT_RESOURCE_FILES}} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
endif()
SET(${INPUT_SRC_FILES} ${${INPUT_SRC_FILES}} PARENT_SCOPE)
SET(${INPUT_RESOURCE_FILES} ${${INPUT_RESOURCE_FILES}} PARENT_SCOPE)
endfunction()
function(add_platform_specific_executable EXECUTABLE_NAME INPUT_SRC_FILES INPUT_RESOURCE_FILES)
if(WIN32)
add_executable(${EXECUTABLE_NAME} WIN32 ${INPUT_SRC_FILES})
if(MINGW)
# The following fixes "crt0_c.c:(.text.startup+0x2e): undefined reference to `WinMain'" seen when linking with mingw.
# Without the following mingw fails to find WinMain as it is defined in PVRShell but the symbol has not been marked as an unresolved symbol. The fix is to mark WinMain as unresolved which ensures that WinMain is not stripped.
set_target_properties(${EXECUTABLE_NAME} PROPERTIES LINK_FLAGS " -u WinMain")
endif()
elseif(ANDROID)
add_library(${EXECUTABLE_NAME} SHARED ${INPUT_SRC_FILES})
# Force export ANativeActivity_onCreate(),
# Refer to: https://github.com/android-ndk/ndk/issues/381
set_target_properties(${EXECUTABLE_NAME} PROPERTIES LINK_FLAGS " -u ANativeActivity_onCreate")
elseif(APPLE)
if(IOS)
add_executable(${EXECUTABLE_NAME} MACOSX_BUNDLE ${INPUT_SRC_FILES} ${INPUT_RESOURCE_FILES})
if (CODE_SIGN_IDENTITY)
set_target_properties (${EXECUTABLE_NAME} PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${CODE_SIGN_IDENTITY}")
endif()
if (DEVELOPMENT_TEAM_ID)
set_target_properties (${EXECUTABLE_NAME} PROPERTIES XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "${DEVELOPMENT_TEAM_ID}")
endif()
else ()
list(APPEND FRAMEWORK_FILES "${EXTERNAL_LIB_FOLDER}/libEGL.dylib" "${EXTERNAL_LIB_FOLDER}/libGLESv2.dylib")
set_source_files_properties(${FRAMEWORK_FILES} PROPERTIES MACOSX_PACKAGE_LOCATION Frameworks)
source_group(Frameworks FILES ${FRAMEWORK_FILES})
add_executable(${EXECUTABLE_NAME} MACOSX_BUNDLE ${INPUT_SRC_FILES} ${INPUT_RESOURCE_FILES} ${FRAMEWORK_FILES})
endif()
set_target_properties(${EXECUTABLE_NAME} PROPERTIES RESOURCE "${INPUT_RESOURCE_FILES}")
set_target_properties(${EXECUTABLE_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${INFO_PLIST_FILE}")
elseif(UNIX OR QNX)
add_executable(${EXECUTABLE_NAME} ${INPUT_SRC_FILES})
endif()
endfunction()
# CAUTION - For this rule to work, the asset files must actually be added as sources to the executable
function(add_rule_copy_assets_to_asset_folder INPUT_RESOURCE_FILES INPUT_OUTPUT_FOLDER)
if((UNIX OR QNX) AND NOT APPLE)
#Copy all assets to the Assets folder in order for the executable to be able to locate it
foreach(ASSET_FILE_PATH ${INPUT_RESOURCE_FILES})
get_filename_component(ASSET_FILE_NAME ${ASSET_FILE_PATH} NAME)
add_custom_command(
OUTPUT ${INPUT_OUTPUT_FOLDER}/${ASSET_FILE_NAME}
PRE_BUILD
MAIN_DEPENDENCY ${ASSET_FILE_PATH}
COMMAND ${CMAKE_COMMAND} -E copy ${ASSET_FILE_PATH} ${INPUT_OUTPUT_FOLDER}/${ASSET_FILE_NAME}
COMMENT "${CMAKE_PROJECT_NAME}: Copying ${ASSET_FILE_PATH} to ${INPUT_OUTPUT_FOLDER}/${ASSET_FILE_NAME}"
)
endforeach()
endif() #All other platforms package: Windows resources, MacOS package, Android Assets etc.
endfunction()
function(get_glslang_validator_type out_glslang_validator_type INPUT_SHADER_NAME)
if(${INPUT_SHADER_NAME} MATCHES ".fsh$")
set(${out_glslang_validator_type} frag PARENT_SCOPE)
elseif(${INPUT_SHADER_NAME} MATCHES ".vsh$")
set(${out_glslang_validator_type} vert PARENT_SCOPE)
elseif(${INPUT_SHADER_NAME} MATCHES ".csh$")
set(${out_glslang_validator_type} comp PARENT_SCOPE)
elseif(${INPUT_SHADER_NAME} MATCHES ".gsh$")
set(${out_glslang_validator_type} geom PARENT_SCOPE)
elseif(${INPUT_SHADER_NAME} MATCHES ".tcsh$")
set(${out_glslang_validator_type} tesc PARENT_SCOPE)
elseif(${INPUT_SHADER_NAME} MATCHES ".tesh$")
set(${out_glslang_validator_type} tese PARENT_SCOPE)
endif()
endfunction(get_glslang_validator_type)
function(add_rule_generate_spirv_from_shaders INPUT_SHADER_NAMES)
#GENERATE A PRE-BUILD STEP FOR COMPILING GLSL TO SPIRV
foreach(SHADER ${INPUT_SHADER_NAMES})
get_filename_component(SHADER_NAME ${SHADER} NAME)
get_glslang_validator_type(SHADER_TYPE SHADER_NAME)
set (GLSLANG_VALIDATOR_COMPILE_CURRENT_COMMAND glslangValidator -V ${CMAKE_CURRENT_SOURCE_DIR}/${SHADER_NAME} -o ${CMAKE_CURRENT_SOURCE_DIR}/${SHADER_NAME}.spv -S ${SHADER_TYPE})
add_custom_command(
DEPENDS glslangValidator
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${SHADER_NAME}.spv
PRE_BUILD
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/${SHADER_NAME}
COMMAND echo ${GLSLANG_VALIDATOR_COMPILE_CURRENT_COMMAND}
COMMAND ${GLSLANG_VALIDATOR_COMPILE_CURRENT_COMMAND}
COMMENT "${PROJECT_NAME}: Compiling ${SHADER_NAME} to ${SHADER_NAME}.spv"
)
endforeach()
endfunction(add_rule_generate_spirv_from_shaders)
function(download_external_project external_project_name external_project_cmake_files_dir external_project_src_dir external_project_download_dir external_project_url external_project_byproducts)
# See here for details: https://crascit.com/2015/07/25/cmake-gtest/
configure_file(${FUNCTIONS_INTERNAL_DIR}/external_project_download.cmake ${external_project_cmake_files_dir}/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" -D "CMAKE_MAKE_PROGRAM:FILE=${CMAKE_MAKE_PROGRAM}" .
WORKING_DIRECTORY "${external_project_cmake_files_dir}"
RESULT_VARIABLE download_configure_result
OUTPUT_VARIABLE download_configure_output
ERROR_VARIABLE download_configure_output)
if(download_configure_result)
message(FATAL_ERROR "${external_project_name} download configure step failed (${download_configure_result}): ${download_configure_output}")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} --build .
WORKING_DIRECTORY "${external_project_cmake_files_dir}"
RESULT_VARIABLE download_build_result
OUTPUT_VARIABLE download_build_output
ERROR_VARIABLE download_build_output)
if(download_build_result)
message(FATAL_ERROR "${external_project_name} download build step failed (${download_build_result}): ${download_build_output}")
endif()
endfunction(download_external_project)
\ No newline at end of file
......@@ -13,8 +13,11 @@ if (WIN32)
set(FRAMEWORK_LIB_FOLDER "${SDK_ROOT}/framework/lib/Windows_x86_${PROJECT_ARCH}/$<CONFIG>" CACHE INTERNAL "")
set(FRAMEWORK_CMAKE_FILES_FOLDER "${SDK_ROOT}/framework/lib/Windows_x86_${PROJECT_ARCH}/cmake" CACHE INTERNAL "")
set(SCOPE_LIB_FOLDER "${SDK_ROOT}/lib/Windows_x86_${PROJECT_ARCH}" CACHE INTERNAL "")
set(SCOPE_STATIC_LIBRARY_PREFIX "" CACHE INTERNAL "")
set(SCOPE_STATIC_LIBRARY_SUFFIX ".lib" CACHE INTERNAL "")
set(SCOPE_SHARED_LIBRARY_PREFIX "" CACHE INTERNAL "")
set(SCOPE_SHARED_LIBRARY_SUFFIX ".dll" CACHE INTERNAL "")
set(EXTERNAL_CMAKE_FILES_FOLDER "${SDK_ROOT}/lib/Windows_x86_${PROJECT_ARCH}/cmake" CACHE INTERNAL "")
set(EXTERNAL_CMAKE_FILES_FOLDER_DEBUG "${SDK_ROOT}/lib/Windows_x86_${PROJECT_ARCH}/cmake" CACHE INTERNAL "")
set(EXTERNAL_LIB_FOLDER "${SDK_ROOT}/lib/Windows_x86_${PROJECT_ARCH}" CACHE INTERNAL "")
set(EXTERNAL_LIB_CONFIG_FOLDER "${EXTERNAL_LIB_FOLDER}/$<CONFIG>" CACHE INTERNAL "")
set(EXTERNAL_DEBUG_LIB_FOLDER "${EXTERNAL_LIB_FOLDER}/Debug" CACHE INTERNAL "")
......@@ -23,8 +26,11 @@ elseif (ANDROID)
set(FRAMEWORK_LIB_FOLDER "${SDK_ROOT}/framework/lib/Android/${CMAKE_BUILD_TYPE}/${ANDROID_ABI}" CACHE INTERNAL "")
set(FRAMEWORK_CMAKE_FILES_FOLDER "${SDK_ROOT}/framework/lib/Android/${CMAKE_BUILD_TYPE}/${ANDROID_ABI}/cmake" CACHE INTERNAL "")
set(SCOPE_LIB_FOLDER "${SDK_ROOT}/lib/Android/${ANDROID_ABI}" CACHE INTERNAL "")
set(SCOPE_STATIC_LIBRARY_PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}" CACHE INTERNAL "")
set(SCOPE_STATIC_LIBRARY_SUFFIX "${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE INTERNAL "")
set(SCOPE_SHARED_LIBRARY_PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}" CACHE INTERNAL "")
set(SCOPE_SHARED_LIBRARY_SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
set(EXTERNAL_CMAKE_FILES_FOLDER "${SDK_ROOT}/lib/Android/${CMAKE_BUILD_TYPE}/${ANDROID_ABI}/cmake" CACHE INTERNAL "")
set(EXTERNAL_CMAKE_FILES_FOLDER_DEBUG "${SDK_ROOT}/lib/Android/Debug/${ANDROID_ABI}/cmake" CACHE INTERNAL "")
set(EXTERNAL_LIB_FOLDER "${SDK_ROOT}/lib/Android" CACHE INTERNAL "")
set(EXTERNAL_LIB_CONFIG_FOLDER "${EXTERNAL_LIB_FOLDER}/${CMAKE_BUILD_TYPE}/${ANDROID_ABI}" CACHE INTERNAL "")
set(EXTERNAL_DEBUG_LIB_FOLDER "${EXTERNAL_LIB_FOLDER}/Debug/${ANDROID_ABI}" CACHE INTERNAL "")
......@@ -38,6 +44,10 @@ elseif (APPLE)
set(FRAMEWORK_LIB_FOLDER "${SDK_ROOT}/framework/lib/${PLATFORM_FOLDER}/$<CONFIG>" CACHE INTERNAL "")
set(FRAMEWORK_CMAKE_FILES_FOLDER "${SDK_ROOT}/framework/lib/${PLATFORM_FOLDER}/cmake" CACHE INTERNAL "")
set(SCOPE_LIB_FOLDER "${SDK_ROOT}/lib/${PLATFORM_FOLDER}" CACHE INTERNAL "")
set(SCOPE_STATIC_LIBRARY_PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}" CACHE INTERNAL "")
set(SCOPE_STATIC_LIBRARY_SUFFIX "${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE INTERNAL "")
set(SCOPE_SHARED_LIBRARY_PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}" CACHE INTERNAL "")
set(SCOPE_SHARED_LIBRARY_SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
set(EXTERNAL_CMAKE_FILES_FOLDER "${SDK_ROOT}/lib/${PLATFORM_FOLDER}/cmake" CACHE INTERNAL "")
set(EXTERNAL_LIB_FOLDER "${SDK_ROOT}/lib/${PLATFORM_FOLDER}" CACHE INTERNAL "")
set(EXTERNAL_LIB_CONFIG_FOLDER "${EXTERNAL_LIB_FOLDER}/$<CONFIG>" CACHE INTERNAL "")
......@@ -47,8 +57,11 @@ elseif (UNIX)
set(FRAMEWORK_LIB_FOLDER "${SDK_ROOT}/framework/lib/${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR}/${CMAKE_BUILD_TYPE}${WS}" CACHE INTERNAL "")
set(FRAMEWORK_CMAKE_FILES_FOLDER "${SDK_ROOT}/framework/lib/${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR}/${CMAKE_BUILD_TYPE}${WS}/cmake" CACHE INTERNAL "")
set(SCOPE_LIB_FOLDER "${SDK_ROOT}/lib/${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR}" CACHE INTERNAL "")
set(EXTERNAL_CMAKE_FILES_FOLDER "${SDK_ROOT}/lib/${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR}/${CMAKE_BUILD_TYPE}/cmake" CACHE INTERNAL "")
set(EXTERNAL_CMAKE_FILES_FOLDER_DEBUG "${SDK_ROOT}/lib/${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR}/Debug/cmake" CACHE INTERNAL "")
set(SCOPE_STATIC_LIBRARY_PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}" CACHE INTERNAL "")
set(SCOPE_STATIC_LIBRARY_SUFFIX "${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE INTERNAL "")
set(SCOPE_SHARED_LIBRARY_PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}" CACHE INTERNAL "")
set(SCOPE_SHARED_LIBRARY_SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
set(EXTERNAL_CMAKE_FILES_FOLDER "${SDK_ROOT}/lib/${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR}/${CMAKE_BUILD_TYPE}${WS}/cmake" CACHE INTERNAL "")
set(EXTERNAL_LIB_FOLDER "${SDK_ROOT}/lib/${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR}" CACHE INTERNAL "")
set(EXTERNAL_LIB_CONFIG_FOLDER "${EXTERNAL_LIB_FOLDER}/${CMAKE_BUILD_TYPE}" CACHE INTERNAL "")
set(EXTERNAL_DEBUG_LIB_FOLDER "${EXTERNAL_LIB_FOLDER}/Debug" CACHE INTERNAL "")
......
......@@ -45,7 +45,6 @@
<li class="toctree-l1"><a class="reference internal" href="Introduction.html">The PowerVR SDK</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Build Instructions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Framework.html">PowerVR SDK Framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesOpenGLES.html">OpenGLES Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesVulkan.html">Vulkan Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="Documentation.html">Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="Licence.html">EULA</a></li>
......@@ -134,22 +133,26 @@ Alternatively the CMakeLists.txt and android-build folder can be used to incorpo
<h2><a class="toc-backref" href="#id8">Platform setup</a><a class="headerlink" href="#platform-setup" title="Permalink to this headline"></a></h2>
<div class="section" id="android">
<h3><a class="toc-backref" href="#id9">Android</a><a class="headerlink" href="#android" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li>Download and install the Android SDK or command-line only Android build tools</li>
<ul>
<li><p class="first">Download and install the Android SDK or command-line only Android build tools</p>
</li>
<li><dl class="first docutils">
<dt>Through the Android SDK Manager, either via Android Studio or command-line SDK manager, install the following packages:</dt>
<dd><ul class="first last">
<li>Android NDK bundle</li>
<li><p class="first">Android NDK bundle</p>
</li>
<li><dl class="first docutils">
<dt>The Android SDK Platform package for API level 26 (used as our targetSdkVersion)</dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li>The Android SDK Build-Tools version 28 (used as our compileSdkVersion)</li>
</ul>
</dd>
</dl>
</li>
<li>CMake</li>
<li>LLDB [optional] - only required for on-device debugging</li>
<li><p class="first">CMake</p>
</li>
<li><p class="first">LLDB [optional] - only required for on-device debugging</p>
</li>
</ul>
</dd>
</dl>
......@@ -158,10 +161,10 @@ Alternatively the CMakeLists.txt and android-build folder can be used to incorpo
</div>
<div class="section" id="windows-linux-and-macos">
<h3><a class="toc-backref" href="#id10">Windows, Linux and macOS</a><a class="headerlink" href="#windows-linux-and-macos" title="Permalink to this headline"></a></h3>
<ul class="simple">
<ul>
<li><dl class="first docutils">
<dt>Download and install <a class="reference external" href="https://cmake.org/download">CMake</a></dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li>Version 3.3 or above is required.</li>
</ul>
</dd>
......@@ -170,10 +173,10 @@ Alternatively the CMakeLists.txt and android-build folder can be used to incorpo
</ul>
<div class="section" id="windows">
<h4>Windows<a class="headerlink" href="#windows" title="Permalink to this headline"></a></h4>
<ul class="simple">
<ul>
<li><dl class="first docutils">
<dt>Download and install Visual Studio</dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li>Versions supports 2015, 2017, 2019</li>
<li>Community versions should suffice with more capable versions also being supported.</li>
</ul>
......@@ -182,7 +185,7 @@ Alternatively the CMakeLists.txt and android-build folder can be used to incorpo
</li>
<li><dl class="first docutils">
<dt>The SDK has been built and tested on Windows 10 using Visual Studio versions 2015, 2017 and 2019.</dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li>Other versions of Windows may also work.</li>
<li>Other Windows-based build systems may also work - Makefiles etc..</li>
</ul>
......@@ -193,10 +196,10 @@ Alternatively the CMakeLists.txt and android-build folder can be used to incorpo
</div>
<div class="section" id="linux">
<h4>Linux<a class="headerlink" href="#linux" title="Permalink to this headline"></a></h4>
<ul class="simple">
<ul>
<li><dl class="first docutils">
<dt>Ensure system installed packages including build tools, window systems etc. are installed appropriately</dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li>This may include X11 packages, Wayland packages, libc++, libdl, and other libraries depending on the build configuration.</li>
</ul>
</dd>
......@@ -204,7 +207,7 @@ Alternatively the CMakeLists.txt and android-build folder can be used to incorpo
</li>
<li><dl class="first docutils">
<dt>The SDK has been built and tested on Ubuntu 16.04 and Ubuntu 18.04 LTS versions.</dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li>Other Linux distributions may also work natively else adaptions should be straightforward.</li>
</ul>
</dd>
......@@ -229,8 +232,8 @@ Alternatively the CMakeLists.txt and android-build folder can be used to incorpo
<p>Several options can be used to customise the build of the SDK or to control which modules/examples are built. Some of these options are binary enable/disable whilst others require the use of strings as inputs.
The following table outlines the various options available:</p>
<p>The following build options can be passed to CMake via the command line using the <code class="docutils literal notranslate"><span class="pre">-D[PARAM_NAME]=[PARAM_VALUE]</span></code> syntax alternatively these parameters can be configured using the CMake GUI.</p>
<span id="table1"></span><table border="1" class="docutils" id="id1">
<caption><span class="caption-number">Table 1 </span><span class="caption-text">CMake Build Options</span><a class="headerlink" href="#id1" title="Permalink to this table"></a></caption>
<table border="1" class="docutils" id="id1">
<span id="table1"></span><caption><span class="caption-number">Table 1 </span><span class="caption-text">CMake Build Options</span><a class="headerlink" href="#id1" title="Permalink to this table"></a></caption>
<colgroup>
<col width="9%" />
<col width="3%" />
......@@ -288,8 +291,8 @@ The following table outlines the various options available:</p>
</tbody>
</table>
<p>The following build options can be passed via gradle using the <code class="docutils literal notranslate"><span class="pre">-P[PARAM_NAME]=[PARAM_VALUE]</span></code> syntax.</p>
<span id="table2"></span><table border="1" class="docutils" id="id2">
<caption><span class="caption-number">Table 2 </span><span class="caption-text">Gradle Build Options</span><a class="headerlink" href="#id2" title="Permalink to this table"></a></caption>
<table border="1" class="docutils" id="id2">
<span id="table2"></span><caption><span class="caption-number">Table 2 </span><span class="caption-text">Gradle Build Options</span><a class="headerlink" href="#id2" title="Permalink to this table"></a></caption>
<colgroup>
<col width="11%" />
<col width="19%" />
......@@ -337,13 +340,13 @@ For cross-compiling, The SDK includes a number of CMake toolchain files in <code
Toolchains are passed directly to the CMake command-line: <code class="docutils literal notranslate"><span class="pre">cmake</span> <span class="pre">../..</span> <span class="pre">-DCMAKE_TOOLCHAIN_FILE=[path-to-sdk]/cmake/toolchains/Linux-gcc-armv8.cmake</span></code></p>
<dl class="docutils">
<dt>The SDK provides toolchain files for the following architectures/platforms:</dt>
<dd><ul class="first last simple">
<dd><ul class="first last">
<li><dl class="first docutils">
<dt>ios</dt>
<dd><ul class="first last">
<li><dl class="first docutils">
<dt>Linux</dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li>armv7</li>
<li>armv7hf</li>
<li>armv8</li>
......@@ -357,7 +360,7 @@ Toolchains are passed directly to the CMake command-line: <code class="docutils
</li>
<li><dl class="first docutils">
<dt>QNX</dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li>aarch64le</li>
<li>armle-v7</li>
<li>x86_32</li>
......@@ -443,10 +446,10 @@ Building the project is performed by calling <code class="docutils literal notra
<p>The easiest way to build, run, and debug Android applications is to download and use Android Studio from Google. This is highly recommended, if nothing else for the easy on-device debugging that it offers.
Alternatively building from the command-line is also very easy. The <code class="docutils literal notranslate"><span class="pre">gradle</span> <span class="pre">wrapper</span></code> is used to avoid downloading and installing <code class="docutils literal notranslate"><span class="pre">gradle</span></code>. The wrapper is a small script located in the corresponding <code class="docutils literal notranslate"><span class="pre">build-android</span></code> folder. The wrapper will automatically download (if not present) the required Gradle version and run it.
<strong>Note:</strong> Using the Gradle wrapper is optional, Gradle can still be downloaded, installed and used manually.</p>
<ul class="simple">
<ul>
<li><dl class="first docutils">
<dt>To build from Android Studio, use the <code class="docutils literal notranslate"><span class="pre">Import</span> <span class="pre">project</span></code> dialog, and select the desired <code class="docutils literal notranslate"><span class="pre">build-android</span></code> folder for the SDK, a particular example or a framework module.</dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li>The required Gradle build scripts will be found in the <code class="docutils literal notranslate"><span class="pre">[path-to-sdk]/build-android</span></code> folder, in each example’s corresponding <code class="docutils literal notranslate"><span class="pre">build-android</span></code> folder or in the framework module’s corresponding <code class="docutils literal notranslate"><span class="pre">build-android</span></code> folder.</li>
<li>Android Studio will prompt for any missing packages when attempting to build.</li>
</ul>
......@@ -455,7 +458,7 @@ Alternatively building from the command-line is also very easy. The <code class=
</li>
<li><dl class="first docutils">
<dt>To build from command-line, navigate to the <code class="docutils literal notranslate"><span class="pre">build-android</span></code> folder and run <code class="docutils literal notranslate"><span class="pre">gradlew</span> <span class="pre">assemble[Debug/Release]</span></code></dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li>Create a <code class="docutils literal notranslate"><span class="pre">local.properties</span></code> file, and add the line <code class="docutils literal notranslate"><span class="pre">sdk-dir=[path-to-the-ANDROID-sdk]</span></code>, or add an environment variable <code class="docutils literal notranslate"><span class="pre">ANDROID_HOME=[path-to-the-ANDROID-sdk]</span></code>.</li>
</ul>
</dd>
......
......@@ -41,7 +41,6 @@
<li class="toctree-l1"><a class="reference internal" href="Introduction.html">The PowerVR SDK</a></li>
<li class="toctree-l1"><a class="reference internal" href="Build.html">Build Instructions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Framework.html">PowerVR SDK Framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesOpenGLES.html">OpenGLES Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesVulkan.html">Vulkan Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="Documentation.html">Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="Licence.html">EULA</a></li>
......
......@@ -45,7 +45,6 @@
<li class="toctree-l1"><a class="reference internal" href="Introduction.html">The PowerVR SDK</a></li>
<li class="toctree-l1"><a class="reference internal" href="Build.html">Build Instructions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Framework.html">PowerVR SDK Framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesOpenGLES.html">OpenGLES Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesVulkan.html">Vulkan Examples</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="Licence.html">EULA</a></li>
......
......@@ -15,7 +15,7 @@
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/img_style.js"></script>
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Vulkan Examples" href="ExamplesVulkan.html" />
<link rel="next" title="Documentation" href="Documentation.html" />
<link rel="prev" title="PowerVR SDK Framework" href="Framework.html" />
<div id="GlobalHeaderContainer">
<div id="GlobalHeader">
......@@ -30,7 +30,7 @@
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="ExamplesVulkan.html" title="Vulkan Examples"
<a href="Documentation.html" title="Documentation"
accesskey="N">next</a></li>
<li class="right" >
<a href="Framework.html" title="PowerVR SDK Framework"
......@@ -46,7 +46,6 @@
<li class="toctree-l1"><a class="reference internal" href="Build.html">Build Instructions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Framework.html">PowerVR SDK Framework</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">OpenGLES Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesVulkan.html">Vulkan Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="Documentation.html">Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="Licence.html">EULA</a></li>
<li class="toctree-l1"><a class="reference internal" href="Contact.html">Contact Us</a></li>
......@@ -525,16 +524,17 @@ in this case using Open Street Map (OSM) data.</p>
</div>
<div class="section" id="id48">
<h3>Controls<a class="headerlink" href="#id48" title="Permalink to this headline"></a></h3>
<ul class="simple">
<ul>
<li><dl class="first docutils">
<dt>Quit- Close demo</dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li>Left/Right- Decrease/increase number of particles</li>
</ul>
</dd>
</dl>
</li>
<li>Up/Down- Switch between GPU compute and CPU particle system implementation.</li>
<li><p class="first">Up/Down- Switch between GPU compute and CPU particle system implementation.</p>
</li>
</ul>
</div>
</div>
......@@ -619,7 +619,7 @@ in this case using Open Street Map (OSM) data.</p>
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="ExamplesVulkan.html" title="Vulkan Examples"
<a href="Documentation.html" title="Documentation"
>next</a></li>
<li class="right" >
<a href="Framework.html" title="PowerVR SDK Framework"
......
......@@ -16,7 +16,7 @@
<script type="text/javascript" src="_static/img_style.js"></script>
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Documentation" href="Documentation.html" />
<link rel="prev" title="OpenGLES Examples" href="ExamplesOpenGLES.html" />
<link rel="prev" title="PowerVR SDK Framework" href="Framework.html" />
<div id="GlobalHeaderContainer">
<div id="GlobalHeader">
<div class="logo">
......@@ -33,7 +33,7 @@
<a href="Documentation.html" title="Documentation"
accesskey="N">next</a></li>
<li class="right" >
<a href="ExamplesOpenGLES.html" title="OpenGLES Examples"
<a href="Framework.html" title="PowerVR SDK Framework"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PowerVR SDK Browser documentation</a> &#187;</li>
</ul>
......@@ -45,7 +45,6 @@
<li class="toctree-l1"><a class="reference internal" href="Introduction.html">The PowerVR SDK</a></li>
<li class="toctree-l1"><a class="reference internal" href="Build.html">Build Instructions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Framework.html">PowerVR SDK Framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesOpenGLES.html">OpenGLES Examples</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Vulkan Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="Documentation.html">Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="Licence.html">EULA</a></li>
......@@ -634,16 +633,17 @@ in this case using Open Street Map (OSM) data.</p>
</div>
<div class="section" id="id59">
<h3>Controls<a class="headerlink" href="#id59" title="Permalink to this headline"></a></h3>
<ul class="simple">
<ul>
<li><dl class="first docutils">
<dt>Quit- Close demo</dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li>Left/Right- Decrease/increase number of particles</li>
</ul>
</dd>
</dl>
</li>
<li>Up/Down- Switch between GPU Compute and CPU Particle System implementation.</li>
<li><p class="first">Up/Down- Switch between GPU Compute and CPU Particle System implementation.</p>
</li>
</ul>
</div>
</div>
......@@ -731,7 +731,7 @@ in this case using Open Street Map (OSM) data.</p>
<a href="Documentation.html" title="Documentation"
>next</a></li>
<li class="right" >
<a href="ExamplesOpenGLES.html" title="OpenGLES Examples"
<a href="Framework.html" title="PowerVR SDK Framework"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PowerVR SDK Browser documentation</a> &#187;</li>
</ul>
......
......@@ -15,7 +15,7 @@
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/img_style.js"></script>
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="OpenGLES Examples" href="ExamplesOpenGLES.html" />
<link rel="next" title="Vulkan Examples" href="ExamplesVulkan.html" />
<link rel="prev" title="Build Instructions" href="Build.html" />
<div id="GlobalHeaderContainer">
<div id="GlobalHeader">
......@@ -30,7 +30,7 @@
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="ExamplesOpenGLES.html" title="OpenGLES Examples"
<a href="ExamplesVulkan.html" title="Vulkan Examples"
accesskey="N">next</a></li>
<li class="right" >
<a href="Build.html" title="Build Instructions"
......@@ -45,7 +45,6 @@
<li class="toctree-l1"><a class="reference internal" href="Introduction.html">The PowerVR SDK</a></li>
<li class="toctree-l1"><a class="reference internal" href="Build.html">Build Instructions</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">PowerVR SDK Framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesOpenGLES.html">OpenGLES Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesVulkan.html">Vulkan Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="Documentation.html">Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="Licence.html">EULA</a></li>
......@@ -125,10 +124,10 @@
<ol class="arabic">
<li><p class="first">Create a <code class="docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code> for the platform. This could be your own, or one of the SDK example’s <code class="docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code> to use as a base. For example: <code class="docutils literal notranslate"><span class="pre">examples/Vulkan/Intermediate/Bumpmap/CMakeLists.txt</span></code>.</p>
<p>In more detail:</p>
<ul class="simple">
<ul>
<li><dl class="first docutils">
<dt>Add include directories:</dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li><code class="docutils literal notranslate"><span class="pre">[SDK]/framework</span></code></li>
<li><code class="docutils literal notranslate"><span class="pre">[SDK]/include</span></code></li>
</ul>
......@@ -137,7 +136,7 @@
</li>
<li><dl class="first docutils">
<dt>Add CMake dependencies using <code class="docutils literal notranslate"><span class="pre">add_subdirectory</span></code>:</dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li>(If Vulkan) <code class="docutils literal notranslate"><span class="pre">[SDK]/framework/PVRVk</span></code></li>
<li>(If Vulkan) <code class="docutils literal notranslate"><span class="pre">[SDK]/framework/PVRUtils/Vulkan</span></code></li>
<li>(If OpenGL ES) <code class="docutils literal notranslate"><span class="pre">[SDK]/framework/PVRUtils/OpenGLES</span></code></li>
......@@ -148,10 +147,11 @@
</dd>
</dl>
</li>
<li>Alternatively, build the Framework modules as described, and add depependencies to them with <code class="docutils literal notranslate"><span class="pre">target_link_libraries</span></code></li>
<li><p class="first">Alternatively, build the Framework modules as described, and add depependencies to them with <code class="docutils literal notranslate"><span class="pre">target_link_libraries</span></code></p>
</li>
<li><dl class="first docutils">
<dt>Link against other libraries:</dt>
<dd><ul class="first last">
<dd><ul class="first last simple">
<li>(Optional) <code class="docutils literal notranslate"><span class="pre">[SDK]/libs/[Platform]/[Other</span> <span class="pre">libraries,</span> <span class="pre">e.g.</span> <span class="pre">PVRScope]</span></code></li>
</ul>
</dd>
......@@ -196,7 +196,7 @@
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="ExamplesOpenGLES.html" title="OpenGLES Examples"
<a href="ExamplesVulkan.html" title="Vulkan Examples"
>next</a></li>
<li class="right" >
<a href="Build.html" title="Build Instructions"
......
......@@ -45,7 +45,6 @@
<li class="toctree-l1 current"><a class="current reference internal" href="#">The PowerVR SDK</a></li>
<li class="toctree-l1"><a class="reference internal" href="Build.html">Build Instructions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Framework.html">PowerVR SDK Framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesOpenGLES.html">OpenGLES Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesVulkan.html">Vulkan Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="Documentation.html">Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="Licence.html">EULA</a></li>
......
......@@ -45,7 +45,6 @@
<li class="toctree-l1"><a class="reference internal" href="Introduction.html">The PowerVR SDK</a></li>
<li class="toctree-l1"><a class="reference internal" href="Build.html">Build Instructions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Framework.html">PowerVR SDK Framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesOpenGLES.html">OpenGLES Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesVulkan.html">Vulkan Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="Documentation.html">Documentation</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">EULA</a></li>
......
......@@ -41,7 +41,6 @@
<li class="toctree-l1"><a class="reference internal" href="Introduction.html">The PowerVR SDK</a></li>
<li class="toctree-l1"><a class="reference internal" href="Build.html">Build Instructions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Framework.html">PowerVR SDK Framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesOpenGLES.html">OpenGLES Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesVulkan.html">Vulkan Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="Documentation.html">Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="Licence.html">EULA</a></li>
......@@ -75,7 +74,6 @@
<li class="toctree-l1"><a class="reference internal" href="Introduction.html">The PowerVR SDK</a></li>
<li class="toctree-l1"><a class="reference internal" href="Build.html">Build Instructions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Framework.html">PowerVR SDK Framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesOpenGLES.html">OpenGLES Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesVulkan.html">Vulkan Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="Documentation.html">Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="Licence.html">EULA</a></li>
......
......@@ -46,7 +46,6 @@
<li class="toctree-l1"><a class="reference internal" href="Introduction.html">The PowerVR SDK</a></li>
<li class="toctree-l1"><a class="reference internal" href="Build.html">Build Instructions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Framework.html">PowerVR SDK Framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesOpenGLES.html">OpenGLES Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="ExamplesVulkan.html">Vulkan Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="Documentation.html">Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="Licence.html">EULA</a></li>
......
Search.setIndex({docnames:["Build","Contact","Documentation","ExamplesOpenGLES","ExamplesVulkan","Framework","Introduction","Licence","index"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:54},filenames:["Build.rst","Contact.rst","Documentation.rst","ExamplesOpenGLES.rst","ExamplesVulkan.rst","Framework.rst","Introduction.rst","Licence.rst","index.rst"],objects:{},objnames:{},objtypes:{},terms:{"19x19":[3,4],"3x3":3,"64bit":0,"abstract":[1,4,5,6],"case":[3,4],"class":[3,4,5],"default":[0,4,6],"enum":5,"export":1,"final":[3,4],"function":[3,4,5],"import":[0,4,5,6],"public":[1,4],"return":[3,4],"static":[3,5],"switch":[3,4],"transient":[4,6],"while":[3,4],For:[0,3,4,5,6],LTS:0,PLS:[3,4],The:[0,1,2,3,4,5,7,8],Then:5,There:[0,5,6],These:[0,2,3,4,5],UIs:[3,4],Use:[4,5],Uses:3,Using:0,With:[3,4],aarch64l:0,about:[5,7],abov:[0,3],acceler:6,access:[0,1,2,3,4,6],account:5,accur:6,achiev:[0,3,4],across:5,act:[3,4],action1:[3,4],action2:[3,4],activ:0,actual:[4,5],adapt:0,add:[0,3,4,5],add_subdirectori:5,added:6,adding:[4,5],addit:1,addition:6,advanc:[0,3,4],advantag:[3,4],after:[3,4],against:5,agnost:[3,4,5],agreement:[1,7],aid:3,aim:6,aka:[3,4],albedo:[3,4],algorithm:[3,4],alia:0,alias:[0,3,4],align:[3,4,5],all:[0,1,3,4,5],alloc:4,allow:[3,4,5,6,7],almost:4,along:[3,4],alreadi:6,also:[0,1,2,3,4,5],altern:[0,3,4,5,6],although:4,alwai:5,amount:[3,4],analysi:1,anchor:[3,4],android:[3,5,6],android_abi:0,android_hom:0,ani:[0,3,4,5,6],anim:[3,4,5],answer:1,anti:[3,4],anywher:[0,6],api:[0,1,5,6],appar:4,appear:[3,4],appl:0,appli:[3,4],applic:[0,1,3,4,6],approach:[3,4],appropri:0,approxim:[3,4],arc:0,architectur:[0,1,3,4,6],area:1,arm64:0,armeabi:0,arml:0,armv7:0,armv7hf:0,armv8:0,around:[3,4],ask:[1,6,7],assembl:0,assembledebug:0,asset:[1,4,5],assign:[3,4],asynchron:4,attach:[3,4,6],attempt:0,attribut:[3,4],auto:5,automat:[0,3,5,6],automot:1,avail:[0,3,4],averag:[3,4,6],avoid:[0,4],ax64:0,backbuff:5,bandwidth:[3,4,6],base:[0,1,3,4,5,6],baselin:4,basic:[3,4,5,6],bat:6,batch:[3,4],becom:[0,4],been:[0,3,4],behaviour:6,being:[0,3,4],below:[0,5],best:1,between:[3,4,5],beyond:5,bilinear:[3,4],bin:[0,5],binari:[0,6],bit:[0,6],blend:[3,4],block:5,blog:4,bloom:[3,4],blur:[3,4,6],boilerpl:6,bone:[3,4],both:[0,3,4,5,6],brdf:[3,4],bridg:1,brighter:[3,4],brows:5,buffer:[3,4,5],build:[1,8],build_exampl:0,build_framework:0,build_opengles_exampl:0,build_vulkan_exampl:0,built:[0,3,4,5,6],bump:[3,4],bumpi:4,bumpmap:[3,5],bundl:0,calcul:[3,4,5],call:[0,3,4,6],camera:[3,4,5],can:[0,3,4,5,6,7],cannot:[0,6],canyon:1,capabl:[0,6],centr:3,certif:0,chang:[0,1,3,4,5,6],charact:[3,4],chip:[1,3,4],choos:0,chromat:4,clang:5,clean:4,click:7,clip:[3,4],clone:0,close:[3,4],cmake:[5,6],cmake_build_typ:0,cmakefil:5,cmakelist:[0,5],code:[3,4,5,6,7],codebas:6,collect:[3,4,5,6],colour:[3,4],com:[0,4,6],combin:[3,4],command:[0,3,4],comment:0,common:[1,5],commonli:0,commun:[0,1,3,4,6],compani:1,compat:5,compil:[0,5],compilesdkvers:0,complet:[3,4,5,6],complex:[3,4,5],complic:4,composit:[3,4],comprehens:1,comput:[2,3,4,6],concis:5,confidenti:1,configur:5,conjunct:1,connect:[3,4],consid:[4,5,6],consider:0,consist:[1,5,6,7],construct:[3,4],constructor:4,consum:[1,4],contact:8,contain:[0,3,4,5],context:[3,5],control:0,conveni:[0,5],convent:[0,3,4],convolut:[3,4],coordin:[3,4],copi:[5,6],core:5,correct:5,correspond:[0,4,6],could:[4,5],count:[0,4,5],counter:[3,4],coupl:6,cours:4,cover:7,cpp:5,cpu:[3,4,5],creat:[0,1,3,4,6],createinputassemblyfromxxxxxx:5,createxxxxbufferfromxxxx:5,creation:[3,4,5],crisp:4,cross:[1,5],cubic:[3,4],cull:[3,4],custom:[1,3,4],customis:0,cut:1,cycl:[3,4],darwin:0,data:[3,4,5],dcmake_toolchain_fil:0,debug:0,declar:5,decreas:[0,3,4],dedic:1,defer:[3,4],deferredshad:6,defin:[3,4,5],definit:5,demo:[3,4],demonstr:[1,3,4,6],denable_arc:0,depend:[3,4,5,6],depepend:5,deploy:6,describ:[4,5],descript:5,design:1,desir:[0,3],desktop:[0,3,5,6],detail:[0,1,3,4,5,6],detect:3,determin:0,determinist:4,develop:[0,1,2,3,4,5,6],devic:[0,3,4,5],dialog:0,differ:[0,3,4,5],difficult:[3,4],diffus:[3,4],digit:1,dilat:3,dios_platform:0,dir:0,direct:[3,4],directli:[0,5],directori:[0,5,6],disabl:[0,3,4],disappear:6,disclosur:1,discuss:1,dispers:4,displai:[3,4],distort:3,distribut:0,divid:[4,5],dll:6,doc:2,document:[0,5,7,8],doe:6,done:4,doubl:[3,4],down:[3,4],download:1,downsampl:[3,4],draw:[3,4,5,6],drive:1,driven:1,dropdown:0,dual:[3,4],dummi:[3,5],duplic:4,dure:[0,4,6],duti:[3,4],dynam:[3,4,5],each:[0,3,4,5],ear:[3,4],eas:[4,5],easi:[0,5],easier:[5,6],easiest:0,eclips:0,edg:[1,3],edit:[0,3,4],effect:[1,3,4,5],effici:[1,3,4],egl:[3,6],either:[0,3,4],electron:1,element:[3,4],els:0,embed:1,emboss:3,emiss:[3,4],emul:[1,6],enabl:[0,1,3,4],enable_arc:0,end:[3,7],engin:[1,6],enhanc:6,enquiri:1,ensur:[0,5],enterpris:1,entir:[3,4],entri:0,environ:[0,1,3,4,6],equat:[3,4],equiti:1,erod:3,esc:[3,4],essenti:5,etc:[0,6],eula:8,even:6,event:5,everi:[0,3,4,5],everyth:[3,4,5],exampl:[0,1,5,6,7,8],example_api:0,example_nam:0,except:[0,4],execut:[0,6],exist:[0,6],experiment:6,explain:5,explicitli:0,explor:1,extens:[2,3,4,6],extern:0,externalproject_add:0,extrem:[3,4],eye:3,fallback:3,familiar:0,far:[3,4],fast:[3,4],fbo:3,featur:[1,3,4],feed:3,few:[0,3,4],fewer:[3,4],figur:5,file:[0,1,2,3,4,5],filenam:6,filter:[3,4],find:1,firm:1,first:3,focu:[1,6],folder:[0,2,5,6],follow:[0,3,4,5],format:[2,5],forward:1,found:[0,4,6,7],fragment:[3,4],frame:[3,4],framebuff:[3,4],framework:[0,4,6,7,8],frequent:7,from:[0,1,2,3,4,5,6],full:[3,4,7],fulli:0,further:[3,4],gaussian:[3,4,6],gcc:0,gener:[1,3,4,5],geometri:[3,4],get:[1,3,5],git:0,given:[0,3,4],gl_ext_shader_pixel_local_storag:3,gl_img_framebuffer_downsampl:3,gl_img_texture_filter_cub:3,gl_ovr_multiview:3,glframebuffertexture2ddownsampleimg:3,global:0,glossi:[3,4],glsl:2,glslang:0,glslang_install_dir:0,glslang_validator_install_dir:0,glslangvalid:0,gltf:[3,4,5],gnu:5,golden:2,googl:0,gpgpu:[3,4],gpu:[0,1,3,4],gradl:[5,6],gradle_user_hom:0,gradlew:[0,6],graph:[3,4],graphic:[0,1,4],great:1,grlaa:[3,4],group:[3,4],gui:[0,3,4],guid:[1,3,4,5],half:3,halv:4,handl:[3,4],hardwar:[2,3,6],has:[0,3,4,6],have:[0,5],heavili:[3,4],height:[3,4],helloapi:6,help:[1,4,6],helper:[1,4,5],hemispher:4,here:[6,7],high:[3,4],highli:[0,3,4,7],highlight:[3,4],host:0,how:[0,3,4,6],http:[0,4],hybrid:[3,4],iOS:[3,5],ibl:[3,4],ibo:5,identifi:0,illumin:4,imag:[3,4],imgframebufferdownsampl:6,imgtec:[0,6],imgtexturefiltercub:6,immedi:[3,4],implement:[1,3,4,5,6],improv:6,includ:[0,1,2,3,4,5,6],incorpor:0,increas:[3,4],independ:1,individu:[0,3,4],inform:[0,5],infrastructur:1,initialis:[3,4],input:[0,3,4],instal:6,instanc:[3,4,5,6],instead:[0,3,4,5],instruct:[2,6,8],integr:[3,4],intend:[3,6],intens:[3,4],intent:3,interact:[3,4,6],interest:[3,4,5],interfac:[3,4,5],intermedi:[3,4,5],intern:0,interoper:3,introduc:[3,4],introducingpvrshel:6,introducingpvrutil:5,invers:3,invert:3,involv:5,ios:0,ios_platform:0,iot:1,iphoneo:0,issu:1,item:6,its:[0,3,4,5],java:5,join:0,just:4,kari:4,kawas:[3,4],kei:[0,5,6],kernel:3,key_alia:0,key_password:0,keychain:0,keystor:0,keystore_password:0,kick:4,known:[0,3,4],lambert:[3,4],languag:[2,4,5],larg:[3,4],largest:1,later:[3,4],latest:6,launch:0,layer:1,layout:5,lazili:4,left:[0,3,4,6],lens:3,level:[0,2,3,4,6],lib:[5,6],libc:0,libdl:0,libegl:6,libgles_cm:6,libglesv2:6,librari:[0,1,3,4,5,6],licens:[1,7],lifecycl:4,lifetim:5,light:[3,4,5],like:1,line:[0,1,3,4],linear:[3,4],link:5,linux:[5,6],list:[2,3,4],lldb:0,load:[1,3,4,5],local:[0,3,4,6],locat:[0,3,5],lod:4,look:4,loop:[5,6],lot:4,low:[2,3],lower:[3,4],lowest:6,mac:0,machin:0,maco:[5,6],mai:[0,3,4,6],main:[4,6],maintain:4,major:5,make:[0,1,3,4,5,6,7],manag:[0,4,5],mani:5,manual:[0,3,4,6],map:[3,4,5],mariu:[3,4],mark:[3,4],match:0,materi:5,math:1,matric:[3,4],matrix:[3,4],mean:[3,4,5],mechan:5,member:[0,5],memori:[3,4,5],menu:0,mesh:5,metal:[3,4],microsoft:0,migrat:1,mind:1,minim:4,minsizerel:0,mipmap:[3,4],mips_32:0,mips_64:0,miss:0,mit:7,mkdir:0,mmg:[3,4],mobil:[1,5],model:[3,4,5],modern:[4,5],modif:[3,4],modifi:6,modul:[0,5],modulenam:5,more:[0,1,5,6],most:[1,3,4],mostli:6,msvc:0,much:[5,6],multi:0,multimedia:1,multipl:[3,4],multithread:0,must:[0,3,4],name:[3,4,5],namespac:5,nativ:[0,5,6],native_sdk:0,navig:[0,2,3,4,5,6],nda:1,ndc:[3,4],ndk:0,necessari:[0,3,6],need:[0,1,5,6],neglig:[3,4],newdemo:[3,4],next:[3,4,6],non:[1,3,4],normal:[0,3,4,5],nosign:0,note:[0,3],noth:0,nullw:0,number:[0,3,4,5],object:[3,4,5],off:1,offer:[0,4],offlin:[3,4],offset:5,often:0,onc:[3,4],one:[0,1,3,4,5],ones:0,onli:[0,3,4,5,6],onlin:[1,6],onto:[3,4],open:[0,3,4,6],opencl:3,opengl:[0,2,5,6,8],openli:1,optim:[3,4,6],optimis:[1,2,3,4,6],option:5,orbit:[3,4],order:0,ordin:4,origin:[3,4],os64:0,osm:[3,4],other:[0,1,3,4,5,6],otherwis:6,our:[0,1,6],ourselv:1,outlin:[0,3,4],output:[0,3,4],outstand:1,over:[1,3,4],overhead:4,overrid:0,overview:2,own:[0,1,5],packag:[0,1],pad:5,page:[0,2,4],palett:[3,4],pandroid_abi:0,paper:1,paraboloid:4,param_nam:0,param_valu:0,paramet:[0,4],pars:[3,4],part:[0,3,4,5,6],particl:[3,4],particular:0,particularli:5,partner:1,pass:[0,3,4],password:0,path:[0,6],pattern:[3,4],paus:[3,4],pbr:[3,4],pdf:4,per:[0,3,4,5],perceiv:4,perfectli:4,perform:[0,1,2,3,4,6],permiss:[3,7],perturb:4,pfx:[2,4,5],phenomena:[3,4],physic:[3,4],pipelin:5,pixel:[3,4,6],place:[0,1,3,4],platform:[1,3,4,5,6],pleas:[1,5,6,7],plenti:1,pnosign:0,pod:[2,3,4,5],point:[0,3,4],polygon:[3,4],popul:5,portal:0,possibl:[0,5,6],post:[3,4],power:[1,3,4],powervr:[0,2,3,4,8],pre:[3,4,5,6],prebuilt:0,precis:5,prefer:0,present:[0,5,6],previou:[3,4],pride:1,primit:[3,4],print:5,prior:6,privat:1,process:[3,4],processor:1,produc:[3,4],product:[1,6],program:0,project:5,prompt:0,properti:[3,4],prototyp:1,provid:[0,1,2,3,4,5,6],provis:0,pseudo:6,purpos:5,pvr:[2,3,4,5],pvrasset:[3,4],pvrcamera:3,pvrperfserv:[3,4],pvrpfx:6,pvrscope:[3,4,5],pvrshell:[3,4],pvrtune:[3,4],pvrutil:[3,4],pvrutilsgl:5,pvrutilsvk:5,pvrvk:4,qnx:0,quad:4,quaternion:[3,4],question:[1,7],queue:4,quickli:4,quit:[3,4],rang:1,rapid:1,raster:[3,4],rather:4,ratio:[3,4],raw:[3,4],read:[1,3,4],real:[3,4,6],reason:0,rebuild:0,recalcul:4,recommend:[0,1,2],recomput:[3,4],rectangular:4,recycl:4,reder:[3,4],reduc:6,refer:[0,2,3,4,5],reflect:4,refract:4,region:[3,4],releas:[0,1],relev:[2,5,6],relwithdebinfo:0,remain:4,remot:[3,4],remov:[3,4,6],render:[0,2,3,4,5],rendermanag:4,replac:0,replic:6,reproduc:[3,4],request:6,requir:[0,3,4,5],resolut:[3,4],resourc:1,respect:0,respons:4,rest:[3,4,5],result:[3,4],retriev:[3,4],revolut:1,right:[3,4],road:[3,4],root:[0,5,6],rotat:[3,4],rough:[3,4],rule:2,run:[0,3,4,6],s2013:4,s2013_pbs_epic_notes_v2:4,same:[0,4,5],sampl:[3,4,6],sampler:[3,4],satifi:0,scaffold:5,scale:[3,4],scenario:4,scene:[3,4,5],scheme:0,scope:5,screen:[0,3,4,6],screenshot:[3,4],script:[0,5,6],sdk:[0,2,8],second:[3,4],secondari:4,section:[1,6],see:[0,1,5,6],select:[0,3,4,6],selfshadow:4,separ:[0,3,4,5],server:0,set:[0,2,3,4,5,6],setup:5,sever:[0,3,4],shade:[3,4],shader:[3,4,5,6],shell:[3,4],ship:5,should:[0,5],show:[3,4,6],showcas:[3,4],shown:[3,5],side:[3,4,5],siggraph2015:[3,4],sign:1,silicon:1,similar:[3,4,5],similarli:5,simpl:[3,4],simplic:4,simplifi:5,simul:[0,3,4],singl:[0,3,4,5],size:[3,4,5],skeleton:5,skybox:4,slide:[3,4,6],small:[0,3,4],smaller:6,smooth:[3,4],soc:1,softwar:7,solut:0,some:0,someth:6,sourc:[0,5,6,7],special:3,specif:[0,3,4,5,6],specifi:[0,3,4],specular:[3,4],speed:[0,6],sphere:[3,4],split:3,spot:4,sprite:[3,4,5],ssbo:5,start:1,statist:[3,4],statu:[3,4],std140:5,step:[0,3,4,5],stereoscop:3,still:0,storag:[3,4,6],store:[3,4],straightforward:0,stream:4,street:[3,4],strength:5,strictli:[3,4],string:0,strong:1,strongli:5,structur:3,structuredbufferview:5,structuredmemoryview:5,studio:5,style:[3,4,5],subfold:0,submiss:4,submit:[3,4],subpass:4,subsequ:[3,4],suffic:0,suit:1,suitabl:[3,4],suppli:5,support:[0,2,3,4,5,6],surfac:[4,5],surprisingli:5,swapchain:[4,5],sweet:4,syntax:0,system32:6,system:[0,1,3,4,5,6],syswow64:6,tabl:0,take:[3,4,5],target:[1,3,4,5],target_link_librari:5,targetsdkvers:0,task:[3,4,5],team:1,techniqu:[2,3,4,6],tent:[3,4],termin:[3,4],test:[0,5],text:[3,4,5],textur:[3,4,5],than:[0,3,4],thei:[5,6],them:[0,4,5,6],themselv:6,therefor:5,thi:[0,2,3,4,5,6],those:[0,3,4],thread:4,three:4,through:[0,3,4,5],ticket:1,tile:[3,4],time:[0,3,4,6],tip:1,togeth:[3,4],tool:[0,7],toolchain:0,top:[0,6],tradit:[3,4],transform:[3,4],translat:[3,4],triangl:[3,4],triangul:[3,4],truncat:[3,4],tutori:[3,4],two:[3,4,5,6],txt:[0,5],type:[0,5],typic:5,ubo:5,ubuntu:0,uirender:[3,4,5],uirenderer:[3,4],under:0,underli:[4,5],understand:5,unicod:[3,4],unifi:3,uninterest:6,unrestrict:7,upload:5,upon:5,usabl:4,usag:0,use:[0,3,4,5,6,7],useabl:4,used:[0,3,4,5],useful:[3,5],user:[3,4,7],usernam:0,uses:[0,3,4,6],using:[0,3,4,6],usual:[0,5],util:[1,3,4,5,6],v7a:0,v8a:0,valid:0,vallei:1,valu:[0,3,4,5],variabl:[0,3,4,6],variant:0,variou:[0,3,4],vbo:5,vector:[3,4],veri:[0,1,3,4,5],versa:6,version:[0,5,6],vertex:[3,4,5],via:0,vice:6,video:[3,4],view:7,visibl:4,visit:6,visual:5,vk_img_filter_cub:4,volum:[3,4],vulkan:[0,5,6,8],wai:[0,1],warfar:[3,4],wayland:0,weight:[3,4],well:[1,5,7],what:[0,5,6],whatev:0,when:[3,4,5,6],where:[0,3,5,6],whether:0,which:[0,3,4,5,6],whilst:[0,3,4],white:1,whole:0,wide:[0,3,4,6],width:[3,4],windir:6,window:[3,4,5,6],wish:5,without:[0,3,4,5,6],work:[0,3,4,5],workflow:[3,4],world:[1,3,4],would:[1,3,4],wrap:6,wrapper:[0,5,6],wreckless:[3,4],wrinkl:4,write:[3,4,5],written:5,www:[0,6],x11:0,x64:0,x86:0,x86_32:0,x86_64:0,xcb:0,xcodebuild:0,xml:[3,4],you:[0,1,7],your:[0,1,5]},titles:["Build Instructions","Contact Us","Documentation","OpenGLES Examples","Vulkan Examples","PowerVR SDK Framework","The PowerVR SDK","EULA","Contents"],titleterms:{The:6,abi:0,android:0,api:[3,4],apk:0,applic:5,architectur:2,build:[0,5,6],bumpmap:4,cmake:0,compili:0,configur:0,contact:1,content:8,control:[3,4],creat:5,cross:0,deferredshad:[3,4],deferredshadingpfx:4,depend:0,descript:[3,4],document:[1,2],download:0,driver:6,eula:7,exampl:[3,4],exampleui:4,faq:7,forum:1,framework:5,gaussianblur:[3,4],gener:0,github:0,glass:4,gnomehord:4,gradl:0,graphic:6,guid:2,guidelin:5,helloapi:[3,4],iOS:0,imagebasedlight:[3,4],imagin:1,img_framebuffer_downsampl:3,imgtexturefiltercub:[3,4],index:0,instal:0,instruct:0,introducingpvrcamera:3,introducingpvrshel:[3,4],introducingpvrutil:[3,4],introducingpvrvk:4,introducinguirender:[3,4],linux:0,maco:0,makefil:0,multisampl:4,multithread:4,multiviewvr:3,navigation2d:[3,4],navigation3d:[3,4],note:6,openclexampl:3,opengl:3,option:0,overview:5,particlesystem:[3,4],platform:0,portal:1,postprocess:[3,4],powervr:[1,5,6,7],project:0,properti:0,pvrasset:5,pvrcamera:5,pvrcore:5,pvrscopeexampl:[3,4],pvrscoperemot:[3,4],pvrshell:5,pvrutil:5,pvrvframe:6,pvrvk:5,quickstart:0,recommend:5,releas:6,repositori:0,sdk:[1,5,6,7],setup:0,sign:0,skin:[3,4],specif:2,studio:0,support:1,target:0,technolog:1,tool:1,unix:0,using:5,visual:0,vulkan:4,when:0,whitepap:2,window:0,xcode:0}})
\ No newline at end of file
Search.setIndex({docnames:["Build","Contact","Documentation","ExamplesVulkan","Framework","Introduction","Licence","index"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:54},filenames:["Build.rst","Contact.rst","Documentation.rst","ExamplesVulkan.rst","Framework.rst","Introduction.rst","Licence.rst","index.rst"],objects:{},objnames:{},objtypes:{},terms:{"19x19":3,"3x3":[],"64bit":0,"abstract":[1,3,4,5],"case":3,"class":[3,4],"default":[0,3,5],"enum":4,"export":1,"final":3,"function":[3,4],"import":[0,3,4,5],"public":[1,3],"return":3,"static":4,"switch":3,"transient":[3,5],"while":3,For:[0,3,4,5],LTS:0,PLS:3,The:[0,1,2,3,4,6,7],Then:4,There:[0,4,5],These:[0,2,3,4],UIs:3,Use:[3,4],Uses:[],Using:0,With:3,aarch64l:0,about:[4,6],abov:0,acceler:5,access:[0,1,2,3,5],account:4,accur:5,achiev:[0,3],across:4,act:3,action1:3,action2:3,activ:0,actual:[3,4],adapt:0,add:[0,3,4],add_subdirectori:4,added:5,adding:[3,4],addit:1,addition:5,advanc:[0,3],advantag:3,after:3,against:4,agnost:[3,4],agreement:[1,6],aid:[],aim:5,aka:3,albedo:3,algorithm:3,alia:0,alias:[0,3],align:[3,4],all:[0,1,3,4],alloc:3,allow:[3,4,5,6],almost:3,along:3,alreadi:5,also:[0,1,2,3,4],altern:[0,3,4,5],although:3,alwai:4,amount:3,analysi:1,anchor:3,android:[4,5],android_abi:0,android_hom:0,ani:[0,3,4,5],anim:[3,4],answer:1,anti:3,anywher:[0,5],api:[0,1,4,5],appar:3,appear:3,appl:0,appli:3,applic:[0,1,3,5],approach:3,appropri:0,approxim:3,arc:0,architectur:[0,1,3,5],area:1,arm64:0,armeabi:0,arml:0,armv7:0,armv7hf:0,armv8:0,around:3,ask:[1,5,6],assembl:0,assembledebug:0,asset:[1,3,4],assign:3,asynchron:3,attach:[3,5],attempt:0,attribut:3,auto:4,automat:[0,4,5],automot:1,avail:[0,3],averag:[3,5],avoid:[0,3],ax64:0,backbuff:4,bandwidth:[3,5],base:[0,1,3,4,5],baselin:3,basic:[3,4,5],bat:5,batch:3,becom:[0,3],been:[0,3],behaviour:5,being:[0,3],below:[0,4],best:1,between:[3,4],beyond:4,bilinear:3,bin:[0,4],binari:[0,5],bit:[0,5],blend:3,block:4,blog:3,bloom:3,blur:[3,5],boilerpl:5,bone:3,both:[0,3,4,5],brdf:3,bridg:1,brighter:3,brows:4,buffer:[3,4],build:[1,7],build_exampl:0,build_framework:0,build_opengles_exampl:0,build_vulkan_exampl:0,built:[0,3,4,5],bump:3,bumpi:3,bumpmap:4,bundl:0,calcul:[3,4],call:[0,3,5],camera:[3,4],can:[0,3,4,5,6],cannot:[0,5],canyon:1,capabl:[0,5],centr:[],certif:0,chang:[0,1,3,4,5],charact:3,chip:[1,3],choos:0,chromat:3,clang:4,clean:3,click:6,clip:3,clone:0,close:3,cmake:[4,5],cmake_build_typ:0,cmakefil:4,cmakelist:[0,4],code:[3,4,5,6],codebas:5,collect:[3,4,5],colour:3,com:[0,3,5],combin:3,command:[0,3],comment:0,common:[1,4],commonli:0,commun:[0,1,3,5],compani:1,compat:4,compil:[0,4],compilesdkvers:0,complet:[3,4,5],complex:[3,4],complic:3,composit:3,comprehens:1,comput:[2,3,5],concis:4,confidenti:1,configur:4,conjunct:1,connect:3,consid:[3,4,5],consider:0,consist:[1,4,5,6],construct:3,constructor:3,consum:[1,3],contact:7,contain:[0,3,4],context:4,control:0,conveni:[0,4],convent:[0,3],convolut:3,coordin:3,copi:[4,5],core:4,correct:4,correspond:[0,3,5],could:[3,4],count:[0,3,4],counter:3,coupl:5,cours:3,cover:6,cpp:4,cpu:[3,4],creat:[0,1,3,5],createinputassemblyfromxxxxxx:4,createxxxxbufferfromxxxx:4,creation:[3,4],crisp:3,cross:[1,4],cubic:3,cull:3,custom:[1,3],customis:0,cut:1,cycl:3,darwin:0,data:[3,4],dcmake_toolchain_fil:0,debug:0,declar:4,decreas:[0,3],dedic:1,defer:3,deferredshad:5,defin:[3,4],definit:4,demo:3,demonstr:[1,3,5],denable_arc:0,depend:[3,4,5],depepend:4,deploy:5,describ:[3,4],descript:4,design:1,desir:0,desktop:[0,4,5],detail:[0,1,3,4,5],detect:[],determin:0,determinist:3,develop:[0,1,2,3,4,5],devic:[0,3,4],dialog:0,differ:[0,3,4],difficult:3,diffus:3,digit:1,dilat:[],dios_platform:0,dir:0,direct:3,directli:[0,4],directori:[0,4,5],disabl:[0,3],disappear:5,disclosur:1,discuss:1,dispers:3,displai:3,distort:[],distribut:0,divid:[3,4],dll:5,doc:2,document:[0,4,6,7],doe:5,done:3,doubl:3,down:3,download:1,downsampl:3,draw:[3,4,5],drive:1,driven:1,dropdown:0,dual:3,dummi:4,duplic:3,dure:[0,3,5],duti:3,dynam:[3,4],each:[0,3,4],ear:3,eas:[3,4],easi:[0,4],easier:[4,5],easiest:0,eclips:0,edg:1,edit:[0,3],effect:[1,3,4],effici:[1,3],egl:5,either:[0,3],electron:1,element:3,els:0,embed:1,emboss:[],emiss:3,emul:[1,5],enabl:[0,1,3],enable_arc:0,end:6,engin:[1,5],enhanc:5,enquiri:1,ensur:[0,4],enterpris:1,entir:3,entri:0,environ:[0,1,3,5],equat:3,equiti:1,erod:[],esc:3,essenti:4,etc:[0,5],eula:7,even:5,event:4,everi:[0,3,4],everyth:[3,4],exampl:[0,1,4,5,6,7],example_api:0,example_nam:0,except:[0,3],execut:[0,5],exist:[0,5],experiment:5,explain:4,explicitli:0,explor:1,extens:[2,3,5],extern:0,externalproject_add:0,extrem:3,eye:[],fallback:[],familiar:0,far:3,fast:3,fbo:[],featur:[1,3],feed:[],few:[0,3],fewer:3,figur:4,file:[0,1,2,3,4],filenam:5,filter:3,find:1,firm:1,first:[],focu:[1,5],folder:[0,2,4,5],follow:[0,3,4],format:[2,4],forward:1,found:[0,3,5,6],fragment:3,frame:3,framebuff:3,framework:[0,3,5,6,7],frequent:6,from:[0,1,2,3,4,5],full:[3,6],fulli:0,further:3,gaussian:[3,5],gcc:0,gener:[1,3,4],geometri:3,get:[1,4],git:0,given:[0,3],gl_ext_shader_pixel_local_storag:[],gl_img_framebuffer_downsampl:[],gl_img_texture_filter_cub:[],gl_ovr_multiview:[],glframebuffertexture2ddownsampleimg:[],global:0,glossi:3,glsl:2,glslang:0,glslang_install_dir:0,glslang_validator_install_dir:0,glslangvalid:0,gltf:[3,4],gnu:4,golden:2,googl:0,gpgpu:3,gpu:[0,1,3],gradl:[4,5],gradle_user_hom:0,gradlew:[0,5],graph:3,graphic:[0,1,3],great:1,grlaa:3,group:3,gui:[0,3],guid:[1,3,4],half:[],halv:3,handl:3,hardwar:[2,5],has:[0,3,5],have:[0,4],heavili:3,height:3,helloapi:5,help:[1,3,5],helper:[1,3,4],hemispher:3,here:[5,6],high:3,highli:[0,3,6],highlight:3,host:0,how:[0,3,5],http:[0,3],hybrid:3,iOS:4,ibl:3,ibo:4,identifi:0,illumin:3,imag:3,imgframebufferdownsampl:5,imgtec:[0,5],imgtexturefiltercub:5,immedi:3,implement:[1,3,4,5],improv:5,includ:[0,1,2,3,4,5],incorpor:0,increas:3,independ:1,individu:[0,3],inform:[0,4],infrastructur:1,initialis:3,input:[0,3],instal:5,instanc:[3,4,5],instead:[0,3,4],instruct:[2,5,7],integr:3,intend:5,intens:3,intent:[],interact:[3,5],interest:[3,4],interfac:[3,4],intermedi:[3,4],intern:0,interoper:[],introduc:3,introducingpvrshel:5,introducingpvrutil:4,invers:[],invert:[],involv:4,ios:0,ios_platform:0,iot:1,iphoneo:0,issu:1,item:5,its:[0,3,4],java:4,join:0,just:3,kari:3,kawas:3,kei:[0,4,5],kernel:[],key_alia:0,key_password:0,keychain:0,keystor:0,keystore_password:0,kick:3,known:[0,3],lambert:3,languag:[2,3,4],larg:3,largest:1,later:3,latest:5,launch:0,layer:1,layout:4,lazili:3,left:[0,3,5],lens:[],level:[0,2,3,5],lib:[4,5],libc:0,libdl:0,libegl:5,libgles_cm:5,libglesv2:5,librari:[0,1,3,4,5],licens:[1,6],lifecycl:3,lifetim:4,light:[3,4],like:1,line:[0,1,3],linear:3,link:4,linux:[4,5],list:[2,3],lldb:0,load:[1,3,4],local:[0,3,5],locat:[0,4],lod:3,look:3,loop:[4,5],lot:3,low:2,lower:3,lowest:5,mac:0,machin:0,maco:[4,5],mai:[0,3,5],main:[3,5],maintain:3,major:4,make:[0,1,3,4,5,6],manag:[0,3,4],mani:4,manual:[0,3,5],map:[3,4],mariu:3,mark:3,match:0,materi:4,math:1,matric:3,matrix:3,mean:[3,4],mechan:4,member:[0,4],memori:[3,4],menu:0,mesh:4,metal:3,microsoft:0,migrat:1,mind:1,minim:3,minsizerel:0,mipmap:3,mips_32:0,mips_64:0,miss:0,mit:6,mkdir:0,mmg:3,mobil:[1,4],model:[3,4],modern:[3,4],modif:3,modifi:5,modul:[0,4],modulenam:4,more:[0,1,4,5],most:[1,3],mostli:5,msvc:0,much:[4,5],multi:0,multimedia:1,multipl:3,multithread:0,must:[0,3],name:[3,4],namespac:4,nativ:[0,4,5],native_sdk:0,navig:[0,2,3,4,5],nda:1,ndc:3,ndk:0,necessari:[0,5],need:[0,1,4,5],neglig:3,newdemo:3,next:[3,5],non:[1,3],normal:[0,3,4],nosign:0,note:0,noth:0,nullw:0,number:[0,3,4],object:[3,4],off:1,offer:[0,3],offlin:3,offset:4,often:0,onc:3,one:[0,1,3,4],ones:0,onli:[0,3,4,5],onlin:[1,5],onto:3,open:[0,3,5],opencl:[],opengl:[0,2,4,5],openli:1,optim:[3,5],optimis:[1,2,3,5],option:4,orbit:3,order:0,ordin:3,origin:3,os64:0,osm:3,other:[0,1,3,4,5],otherwis:5,our:[0,1,5],ourselv:1,outlin:[0,3],output:[0,3],outstand:1,over:[1,3],overhead:3,overrid:0,overview:2,own:[0,1,4],packag:[0,1],pad:4,page:[0,2,3],palett:3,pandroid_abi:0,paper:1,paraboloid:3,param_nam:0,param_valu:0,paramet:[0,3],pars:3,part:[0,3,4,5],particl:3,particular:0,particularli:4,partner:1,pass:[0,3],password:0,path:[0,5],pattern:3,paus:3,pbr:3,pdf:3,per:[0,3,4],perceiv:3,perfectli:3,perform:[0,1,2,3,5],permiss:6,perturb:3,pfx:[2,3,4],phenomena:3,physic:3,pipelin:4,pixel:[3,5],place:[0,1,3],platform:[1,3,4,5],pleas:[1,4,5,6],plenti:1,pnosign:0,pod:[2,3,4],point:[0,3],polygon:3,popul:4,portal:0,possibl:[0,4,5],post:3,power:[1,3],powervr:[0,2,3,7],pre:[3,4,5],prebuilt:0,precis:4,prefer:0,present:[0,4,5],previou:3,pride:1,primit:3,print:4,prior:5,privat:1,process:3,processor:1,produc:3,product:[1,5],program:0,project:4,prompt:0,properti:3,prototyp:1,provid:[0,1,2,3,4,5],provis:0,pseudo:5,purpos:4,pvr:[2,3,4],pvrasset:3,pvrcamera:[],pvrperfserv:3,pvrpfx:5,pvrscope:[3,4],pvrshell:3,pvrtune:3,pvrutil:3,pvrutilsgl:4,pvrutilsvk:4,pvrvk:3,qnx:0,quad:3,quaternion:3,question:[1,6],queue:3,quickli:3,quit:3,rang:1,rapid:1,raster:3,rather:3,ratio:3,raw:3,read:[1,3],real:[3,5],reason:0,rebuild:0,recalcul:3,recommend:[0,1,2],recomput:3,rectangular:3,recycl:3,reder:3,reduc:5,refer:[0,2,3,4],reflect:3,refract:3,region:3,releas:[0,1],relev:[2,4,5],relwithdebinfo:0,remain:3,remot:3,remov:[3,5],render:[0,2,3,4],rendermanag:3,replac:0,replic:5,reproduc:3,request:5,requir:[0,3,4],resolut:3,resourc:1,respect:0,respons:3,rest:[3,4],result:3,retriev:3,revolut:1,right:3,road:3,root:[0,4,5],rotat:3,rough:3,rule:2,run:[0,3,5],s2013:3,s2013_pbs_epic_notes_v2:3,same:[0,3,4],sampl:[3,5],sampler:3,satifi:0,scaffold:4,scale:3,scenario:3,scene:[3,4],scheme:0,scope:4,screen:[0,3,5],screenshot:3,script:[0,4,5],sdk:[0,2,7],second:3,secondari:3,section:[1,5],see:[0,1,4,5],select:[0,3,5],selfshadow:3,separ:[0,3,4],server:0,set:[0,2,3,4,5],setup:4,sever:[0,3],shade:3,shader:[3,4,5],shell:3,ship:4,should:[0,4],show:[3,5],showcas:3,shown:4,side:[3,4],siggraph2015:3,sign:1,silicon:1,similar:[3,4],similarli:4,simpl:3,simplic:3,simplifi:4,simul:[0,3],singl:[0,3,4],size:[3,4],skeleton:4,skybox:3,slide:[3,5],small:[0,3],smaller:5,smooth:3,soc:1,softwar:6,solut:0,some:0,someth:5,sourc:[0,4,5,6],special:[],specif:[0,3,4,5],specifi:[0,3],specular:3,speed:[0,5],sphere:3,split:[],spot:3,sprite:[3,4],ssbo:4,start:1,statist:3,statu:3,std140:4,step:[0,3,4],stereoscop:[],still:0,storag:[3,5],store:3,straightforward:0,stream:3,street:3,strength:4,strictli:3,string:0,strong:1,strongli:4,structur:[],structuredbufferview:4,structuredmemoryview:4,studio:4,style:[3,4],subfold:0,submiss:3,submit:3,subpass:3,subsequ:3,suffic:0,suit:1,suitabl:3,suppli:4,support:[0,2,3,4,5],surfac:[3,4],surprisingli:4,swapchain:[3,4],sweet:3,syntax:0,system32:5,system:[0,1,3,4,5],syswow64:5,tabl:0,take:[3,4],target:[1,3,4],target_link_librari:4,targetsdkvers:0,task:[3,4],team:1,techniqu:[2,3,5],tent:3,termin:3,test:[0,4],text:[3,4],textur:[3,4],than:[0,3],thei:[4,5],them:[0,3,4,5],themselv:5,therefor:4,thi:[0,2,3,4,5],those:[0,3],thread:3,three:3,through:[0,3,4],ticket:1,tile:3,time:[0,3,5],tip:1,togeth:3,tool:[0,6],toolchain:0,top:[0,5],tradit:3,transform:3,translat:3,triangl:3,triangul:3,truncat:3,tutori:3,two:[3,4,5],txt:[0,4],type:[0,4],typic:4,ubo:4,ubuntu:0,uirender:[3,4],uirenderer:3,under:0,underli:[3,4],understand:4,unicod:3,unifi:[],uninterest:5,unrestrict:6,upload:4,upon:4,usabl:3,usag:0,use:[0,3,4,5,6],useabl:3,used:[0,3,4],useful:4,user:[3,6],usernam:0,uses:[0,3,5],using:[0,3,5],usual:[0,4],util:[1,3,4,5],v7a:0,v8a:0,valid:0,vallei:1,valu:[0,3,4],variabl:[0,3,5],variant:0,variou:[0,3],vbo:4,vector:3,veri:[0,1,3,4],versa:5,version:[0,4,5],vertex:[3,4],via:0,vice:5,video:3,view:6,visibl:3,visit:5,visual:4,vk_img_filter_cub:3,volum:3,vulkan:[0,4,5,7],wai:[0,1],warfar:3,wayland:0,weight:3,well:[1,4,6],what:[0,4,5],whatev:0,when:[3,4,5],where:[0,4,5],whether:0,which:[0,3,4,5],whilst:[0,3],white:1,whole:0,wide:[0,3,5],width:3,windir:5,window:[3,4,5],wish:4,without:[0,3,4,5],work:[0,3,4],workflow:3,world:[1,3],would:[1,3],wrap:5,wrapper:[0,4,5],wreckless:3,wrinkl:3,write:[3,4],written:4,www:[0,5],x11:0,x64:0,x86:0,x86_32:0,x86_64:0,xcb:0,xcodebuild:0,xml:3,you:[0,1,6],your:[0,1,4]},titles:["Build Instructions","Contact Us","Documentation","Vulkan Examples","PowerVR SDK Framework","The PowerVR SDK","EULA","Contents"],titleterms:{The:5,abi:0,android:0,api:3,apk:0,applic:4,architectur:2,build:[0,4,5],bumpmap:3,cmake:0,compili:0,configur:0,contact:1,content:7,control:3,creat:4,cross:0,deferredshad:3,deferredshadingpfx:3,depend:0,descript:3,document:[1,2],download:0,driver:5,eula:6,exampl:3,exampleui:3,faq:6,forum:1,framework:4,gaussianblur:3,gener:0,github:0,glass:3,gnomehord:3,gradl:0,graphic:5,guid:2,guidelin:4,helloapi:3,iOS:0,imagebasedlight:3,imagin:1,img_framebuffer_downsampl:[],imgtexturefiltercub:3,index:0,instal:0,instruct:0,introducingpvrcamera:[],introducingpvrshel:3,introducingpvrutil:3,introducingpvrvk:3,introducinguirender:3,linux:0,maco:0,makefil:0,multisampl:3,multithread:3,multiviewvr:[],navigation2d:3,navigation3d:3,note:5,openclexampl:[],opengl:[],option:0,overview:4,particlesystem:3,platform:0,portal:1,postprocess:3,powervr:[1,4,5,6],project:0,properti:0,pvrasset:4,pvrcamera:4,pvrcore:4,pvrscopeexampl:3,pvrscoperemot:3,pvrshell:4,pvrutil:4,pvrvframe:5,pvrvk:4,quickstart:0,recommend:4,releas:5,repositori:0,sdk:[1,4,5,6],setup:0,sign:0,skin:3,specif:2,studio:0,support:1,target:0,technolog:1,tool:1,unix:0,using:4,visual:0,vulkan:3,when:0,whitepap:2,window:0,xcode:0}})
\ No newline at end of file
docs/images/WelcomeGraphic.png

473 KB | W: | H:

docs/images/WelcomeGraphic.png

232 KB | W: | H:

docs/images/WelcomeGraphic.png
docs/images/WelcomeGraphic.png
docs/images/WelcomeGraphic.png
docs/images/WelcomeGraphic.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -86,6 +86,16 @@ elseif (APPLE)
add_executable(OpenGLESHelloAPI MACOSX_BUNDLE ${SRC_FILES} ${ASSET_FILES} ${FRAMEWORK_FILES})
set_target_properties(OpenGLESHelloAPI PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${INFO_PLIST_FILE}")
set_target_properties(OpenGLESHelloAPI PROPERTIES RESOURCE "${ASSET_FILES}")
if(IOS)
if(CODE_SIGN_IDENTITY)
set_target_properties(OpenGLESHelloAPI PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${CODE_SIGN_IDENTITY}")
endif()
if(DEVELOPMENT_TEAM_ID)
set_target_properties(OpenGLESHelloAPI PROPERTIES XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "${DEVELOPMENT_TEAM_ID}")
endif()
endif()
elseif (UNIX)
set(WS_DEFINE "")
if(NOT WS) #We support building for several Windowing Systems. Typical desktop systems support X11 and Wayland is catching on. NullWS is used by some development platforms/ testchip.
......
......@@ -7,6 +7,8 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT OpenGLESIntroducingPVRShell)
set(ASSET_FOLDER ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Assets_OpenGLESIntroducingPVRShell)
set(SRC_FILES EglContext.h OpenGLESIntroducingPVRShell.cpp)
if(IOS)
......@@ -15,8 +17,6 @@ else()
list(APPEND SRC_FILES EglContext.cpp)
endif()
set(ASSET_FOLDER ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Assets_OpenGLESIntroducingPVRShell)
# Adds Windows resouces.rc, macOS plists etc. For MacOS/iOS, also set the opengl dynamic libs in the "frameworks" group
add_platform_specific_resource_files(SRC_FILES RESOURCE_FILES)
......
......@@ -52,8 +52,8 @@ add_rule_copy_assets_to_asset_folder("${RESOURCE_FILES}" "${ASSET_FOLDER}")
target_link_libraries(OpenGLESPVRScopeExample
PVRShell
PVRUtilsGles
${SCOPE_LIB_FOLDER}/${CMAKE_STATIC_LIBRARY_PREFIX}PVRScopeDeveloper${CMAKE_STATIC_LIBRARY_SUFFIX}
${SCOPE_LIB_FOLDER}/${SCOPE_STATIC_LIBRARY_PREFIX}PVRScopeDeveloper${SCOPE_STATIC_LIBRARY_SUFFIX}
)
if(WIN32)
add_custom_command(TARGET OpenGLESPVRScopeExample POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SCOPE_LIB_FOLDER}/${CMAKE_SHARED_LIBRARY_PREFIX}PVRScopeDeveloper${CMAKE_SHARED_LIBRARY_SUFFIX}" $<TARGET_FILE_DIR:OpenGLESPVRScopeExample>)
add_custom_command(TARGET OpenGLESPVRScopeExample POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SCOPE_LIB_FOLDER}/${SCOPE_SHARED_LIBRARY_PREFIX}PVRScopeDeveloper${SCOPE_SHARED_LIBRARY_SUFFIX}" $<TARGET_FILE_DIR:OpenGLESPVRScopeExample>)
endif()
\ No newline at end of file
......@@ -48,8 +48,8 @@ add_rule_copy_assets_to_asset_folder("${RESOURCE_FILES}" "${ASSET_FOLDER}")
target_link_libraries(OpenGLESPVRScopeRemote
PVRShell
PVRUtilsGles
${SCOPE_LIB_FOLDER}/${CMAKE_STATIC_LIBRARY_PREFIX}PVRScopeDeveloper${CMAKE_STATIC_LIBRARY_SUFFIX}
${SCOPE_LIB_FOLDER}/${SCOPE_STATIC_LIBRARY_PREFIX}PVRScopeDeveloper${SCOPE_STATIC_LIBRARY_SUFFIX}
)
if(WIN32)
add_custom_command(TARGET OpenGLESPVRScopeRemote POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SCOPE_LIB_FOLDER}/${CMAKE_SHARED_LIBRARY_PREFIX}PVRScopeDeveloper${CMAKE_SHARED_LIBRARY_SUFFIX}" $<TARGET_FILE_DIR:OpenGLESPVRScopeRemote>)
add_custom_command(TARGET OpenGLESPVRScopeRemote POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SCOPE_LIB_FOLDER}/${SCOPE_SHARED_LIBRARY_PREFIX}PVRScopeDeveloper${SCOPE_SHARED_LIBRARY_SUFFIX}" $<TARGET_FILE_DIR:OpenGLESPVRScopeRemote>)
endif()
\ No newline at end of file
......@@ -446,7 +446,7 @@ public:
if (_hostLib)
{
#if _WIN32
void* pFn = GetProcAddress(_hostLib, functionName);
void* pFn = reinterpret_cast<void*>(GetProcAddress(_hostLib, functionName));
if (pFn == NULL)
{
Log(true, "Could not get function %s", functionName);
......
......@@ -68,8 +68,8 @@ add_rule_copy_assets_to_asset_folder("${RESOURCE_FILES}" "${ASSET_FOLDER}")
target_link_libraries(VulkanPVRScopeExample
PVRShell
PVRUtilsVk
${SCOPE_LIB_FOLDER}/${CMAKE_STATIC_LIBRARY_PREFIX}PVRScopeDeveloper${CMAKE_STATIC_LIBRARY_SUFFIX}
${SCOPE_LIB_FOLDER}/${SCOPE_STATIC_LIBRARY_PREFIX}PVRScopeDeveloper${SCOPE_STATIC_LIBRARY_SUFFIX}
)
if(WIN32)
add_custom_command(TARGET VulkanPVRScopeExample POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SCOPE_LIB_FOLDER}/${CMAKE_SHARED_LIBRARY_PREFIX}PVRScopeDeveloper${CMAKE_SHARED_LIBRARY_SUFFIX}" $<TARGET_FILE_DIR:VulkanPVRScopeExample>)
add_custom_command(TARGET VulkanPVRScopeExample POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SCOPE_LIB_FOLDER}/${SCOPE_SHARED_LIBRARY_PREFIX}PVRScopeDeveloper${SCOPE_SHARED_LIBRARY_SUFFIX}" $<TARGET_FILE_DIR:VulkanPVRScopeExample>)
endif()
\ No newline at end of file
......@@ -66,8 +66,8 @@ add_rule_copy_assets_to_asset_folder("${RESOURCE_FILES}" "${ASSET_FOLDER}")
target_link_libraries(VulkanPVRScopeRemote
PVRShell
PVRUtilsVk
${SCOPE_LIB_FOLDER}/${CMAKE_STATIC_LIBRARY_PREFIX}PVRScopeDeveloper${CMAKE_STATIC_LIBRARY_SUFFIX}
${SCOPE_LIB_FOLDER}/${SCOPE_STATIC_LIBRARY_PREFIX}PVRScopeDeveloper${SCOPE_STATIC_LIBRARY_SUFFIX}
)
if(WIN32)
add_custom_command(TARGET VulkanPVRScopeRemote POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SCOPE_LIB_FOLDER}/${CMAKE_SHARED_LIBRARY_PREFIX}PVRScopeDeveloper${CMAKE_SHARED_LIBRARY_SUFFIX}" $<TARGET_FILE_DIR:VulkanPVRScopeRemote>)
add_custom_command(TARGET VulkanPVRScopeRemote POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SCOPE_LIB_FOLDER}/${SCOPE_SHARED_LIBRARY_PREFIX}PVRScopeDeveloper${SCOPE_SHARED_LIBRARY_SUFFIX}" $<TARGET_FILE_DIR:VulkanPVRScopeRemote>)
endif()
\ No newline at end of file
cmake_minimum_required(VERSION 3.3)
include(ExternalProject)
project(external_glslangValidator-download NONE)
# Setup the ExternalProject_Add call for glslangValidator
ExternalProject_Add(external_glslangValidator
PREFIX ${glslangValidator_PREFIX}
SOURCE_DIR ${EXTERNAL_RELEASE_BIN_FOLDER}
UPDATE_COMMAND ""
URL ${glslangValidator_URL}
DOWNLOAD_DIR ${glslang_DOWNLOAD_DIR}
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)
\ No newline at end of file
......@@ -9,8 +9,12 @@
#endif
#if defined(_WIN32)
#define WIN32_LEAN_AND_MIN_AND_MAX
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#ifndef NOMINMAX
#define NOMINMAX
#endif
#include <Windows.h>
#include <tchar.h>
#include <Winbase.h>
......@@ -24,9 +28,9 @@
#if defined(__ANDROID__)
#define _ANDROID 1
#include <android/log.h>
#define Log_Info(...) ((void)__android_log_print(ANDROID_LOG_INFO, "com.imgtec.vk", __VA_ARGS__))
#define Log_Warning(...) ((void)__android_log_print(ANDROID_LOG_WARN, "com.imgtec.vk", __VA_ARGS__))
#define Log_Error(...) ((void)__android_log_print(ANDROID_LOG_ERROR, "com.imgtec.vk", __VA_ARGS__))
#define Log_Info(...) ((void)__android_log_print(ANDROID_LOG_INFO, "com.imgtec", __VA_ARGS__))
#define Log_Warning(...) ((void)__android_log_print(ANDROID_LOG_WARN, "com.imgtec", __VA_ARGS__))
#define Log_Error(...) ((void)__android_log_print(ANDROID_LOG_ERROR, "com.imgtec", __VA_ARGS__))
#elif defined(_WIN32)
static const char* procAddressMessageTypes[] = {
"INFORMATION: ",
......@@ -143,11 +147,7 @@ inline void* getLibraryFunction(pvr::lib::LIBTYPE hostLib, const char* pszName)
{
if (hostLib)
{
#if defined(UNDER_CE)
return win32::GetProcAddressA(hostLib, pszName);
#else
return GetProcAddress(hostLib, pszName);
#endif
return reinterpret_cast<void*>(GetProcAddress(hostLib, pszName));
}
return nullptr;
}
......
......@@ -21,15 +21,15 @@
*****************************************************************************/
#define PVRSDK_VERSION "5.1"
#define PVRSDK_BUILD "19.1@5389795"
#define PVRSDK_BUILD "19.1@5437651"
#define PVRVERSION_MAJ "19"
#define PVRVERSION_MIN "1"
#define PVRVERSION_BRANCH "191"
#define PVRVERSION_BRANCH_DEC "19.1"
#define PVRVERSION_BRANCH_NAME "REL/19.1"
#define PVRVERSION_BUILD "5389795"
#define PVRVERSION_BUILD_HI "538"
#define PVRVERSION_BUILD_LO "9795"
#define PVRVERSION_BUILD "5437651"
#define PVRVERSION_BUILD_HI "543"
#define PVRVERSION_BUILD_LO "7651"
#define PVRSDK_COPYRIGHT_TXT "Copyright (c) Imagination Technologies Ltd. All Rights Reserved."
......
......@@ -14,3 +14,5 @@
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
#define SDK_ICON 101
......@@ -55,7 +55,7 @@ END
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
ICON ICON DISCARDABLE "sdk.ico"
SDK_ICON ICON DISCARDABLE "sdk.ico"
/////////////////////////////////////////////////////////////////////////////
//
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment