diff --git a/CMakeLists.txt b/CMakeLists.txt index c9b85d00aa9aaa8bbcb31dff9ccab43227010809..3985d27f53ae9095beebc43cd69b7e199ab7bc26 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,5 +21,15 @@ list(APPEND lava_pack_shaders ) set(lava_pack_shaders "${lava_pack_shaders}" CACHE INTERNAL "lava_pack_shaders") +find_package(ZLIB REQUIRED) +link_directories(${ZLIB_INCLUDE_DIRS}) +target_link_libraries(lava-vr PUBLIC ${ZLIB_LIBRARIES}) + target_include_directories(lava-vr PUBLIC ./src) -target_link_libraries(lava-vr PUBLIC lava lava-extras-openvr lava-extras-pipeline lava-extras-geometry lava-extras-pack lava-extras-imgui z) +target_link_libraries(lava-vr PUBLIC lava lava-extras-openvr lava-extras-pipeline lava-extras-geometry lava-extras-pack lava-extras-imgui zlib) + +if (TARGET glm_static) + target_link_libraries(lava-vr PRIVATE glm_static) +else() + message( FATAL_ERROR "Lava-VR requires glm_static as a target. Please make sure to add it using something like 'add_subdirectory('lava/extern/glm/glm')' before including lava-vr." ) +endif() \ No newline at end of file diff --git a/src/lava-vr/VRMesh.cc b/src/lava-vr/VRMesh.cc index 310b581803acdc2e72890d8af9fa9e3c7d38632f..8d29b5a41a599f6b9c1bc8e66c420cf89f12af80 100644 --- a/src/lava-vr/VRMesh.cc +++ b/src/lava-vr/VRMesh.cc @@ -1,6 +1,7 @@ #include "VRMesh.hh" #include <exception> #include <iostream> +#include <assert.h> #include <zlib.h> #include <assimp/Importer.hpp> @@ -107,10 +108,10 @@ VRMesh VRMesh::readFromFile(const std::string &filename) { result.vertices.resize(header.num_verts); gzread(file, result.vertices.data(), - uint(sizeof(Vertex) * header.num_verts)); + uint32_t(sizeof(Vertex) * header.num_verts)); result.indices.resize(header.num_indcs); gzread(file, result.indices.data(), - uint(sizeof(uint32_t) * header.num_indcs)); + uint32_t(sizeof(uint32_t) * header.num_indcs)); if (header.has_color_texture) { result.colorTexture = readTexture(file); @@ -151,7 +152,7 @@ VRMesh VRMesh::readFromObj(const std::string &objfile, aiMesh *theMesh = importScene->mMeshes[0]; auto uv = theMesh->mTextureCoords[0]; - for (unsigned int i = 0; i < theMesh->mNumVertices; ++i) { + for (uint32_t i = 0; i < theMesh->mNumVertices; ++i) { Vertex v; v.position.x = theMesh->mVertices[i].x; v.position.y = theMesh->mVertices[i].y; @@ -164,10 +165,10 @@ VRMesh VRMesh::readFromObj(const std::string &objfile, result.vertices.push_back(v); } - for (unsigned int i_f = 0; i_f < theMesh->mNumFaces; ++i_f) { + for (uint32_t i_f = 0; i_f < theMesh->mNumFaces; ++i_f) { assert(theMesh->mFaces[i_f].mNumIndices == 3 && "Only triangles for now please"); - for (unsigned int i_i = 0; i_i < 3; ++i_i) { + for (uint32_t i_i = 0; i_i < 3; ++i_i) { uint32_t currentVertexIndex = (uint32_t)theMesh->mFaces[i_f].mIndices[i_i]; result.indices.push_back(currentVertexIndex);