-
Notifications
You must be signed in to change notification settings - Fork 500
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
windows platform support #114
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
cmake_minimum_required(VERSION 3.2) | ||
project(infinigen) | ||
|
||
set(CONDA_DIR $ENV{CONDA_PREFIX}) | ||
find_program(Python_EXECUTABLE python PATHS ${CONDA_DIR} ~/desktop/.conda NO_DEFAULT_PATH) | ||
if(NOT Python_EXECUTABLE) | ||
message(FATAL_ERROR "Python executable not found in conda environment") | ||
endif() | ||
message(STATUS "Python executable found at ${Python_EXECUTABLE}") | ||
get_filename_component(CONDA_ROOT ${Python_EXECUTABLE} DIRECTORY) | ||
set(CONDA_INDICATOR_DIRECTORY ${CONDA_ROOT}/Library/include) | ||
|
||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/worldgen) | ||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/worldgen/terrain) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,338 @@ | ||
From a7742455b2341b0603a431eca0200827eacb51d6 Mon Sep 17 00:00:00 2001 | ||
From: XingShuo <[email protected]> | ||
Date: Fri, 28 Jul 2023 14:23:16 +0800 | ||
Subject: [PATCH] patch1 | ||
|
||
--- | ||
worldgen/terrain/assets/landtiles/core.py | 2 +- | ||
worldgen/terrain/source/cpu/elements/atmosphere.cpp | 2 +- | ||
worldgen/terrain/source/cpu/elements/ground.cpp | 2 +- | ||
worldgen/terrain/source/cpu/elements/landtiles.cpp | 2 +- | ||
worldgen/terrain/source/cpu/elements/mountains.cpp | 2 +- | ||
.../terrain/source/cpu/elements/upsidedown_mountains.cpp | 2 +- | ||
worldgen/terrain/source/cpu/elements/voronoi_rocks.cpp | 2 +- | ||
worldgen/terrain/source/cpu/elements/warped_rocks.cpp | 2 +- | ||
worldgen/terrain/source/cpu/elements/waterbody.cpp | 2 +- | ||
worldgen/terrain/source/cpu/meshing/visibility_test.cpp | 2 +- | ||
worldgen/terrain/source/cpu/surfaces/chunkyrock.cpp | 2 +- | ||
worldgen/terrain/source/cpu/surfaces/cobble_stone.cpp | 2 +- | ||
worldgen/terrain/source/cpu/surfaces/cracked_ground.cpp | 2 +- | ||
worldgen/terrain/source/cpu/surfaces/dirt.cpp | 2 +- | ||
worldgen/terrain/source/cpu/surfaces/ice.cpp | 2 +- | ||
worldgen/terrain/source/cpu/surfaces/mountain.cpp | 2 +- | ||
worldgen/terrain/source/cpu/surfaces/mud.cpp | 2 +- | ||
worldgen/terrain/source/cpu/surfaces/sand.cpp | 2 +- | ||
worldgen/terrain/source/cpu/surfaces/sandstone.cpp | 2 +- | ||
worldgen/terrain/source/cpu/surfaces/snow.cpp | 2 +- | ||
worldgen/terrain/source/cpu/surfaces/soil.cpp | 2 +- | ||
worldgen/terrain/source/cpu/surfaces/stone.cpp | 2 +- | ||
worldgen/terrain/utils/ctype_util.py | 8 +++++++- | ||
23 files changed, 29 insertions(+), 23 deletions(-) | ||
|
||
diff --git a/worldgen/terrain/assets/landtiles/core.py b/worldgen/terrain/assets/landtiles/core.py | ||
index aa2d075..5360b30 100644 | ||
--- a/worldgen/terrain/assets/landtiles/core.py | ||
+++ b/worldgen/terrain/assets/landtiles/core.py | ||
@@ -83,7 +83,7 @@ def assets_to_data( | ||
N=2048, | ||
do_smooth=False, | ||
): | ||
- preset_name = str(folder).split("/")[-2] | ||
+ preset_name = str(folder).replace("\\", "/").split("/")[-2] | ||
data = {} | ||
if land_process is None: path = folder/f"{AssetFile.Heightmap}.exr" | ||
elif land_process == Process.Snowfall: path = folder/f"{Process.Snowfall}.{AssetFile.Heightmap}.exr" | ||
diff --git a/worldgen/terrain/source/cpu/elements/atmosphere.cpp b/worldgen/terrain/source/cpu/elements/atmosphere.cpp | ||
index b78308d..1a26cb7 100644 | ||
--- a/worldgen/terrain/source/cpu/elements/atmosphere.cpp | ||
+++ b/worldgen/terrain/source/cpu/elements/atmosphere.cpp | ||
@@ -15,7 +15,7 @@ extern "C" { | ||
) { | ||
using namespace data; | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
atmosphere( | ||
positions[idx], sdfs + idx, meta_param, | ||
d_i_params, d_f_params, second_d_i_params, second_d_f_params | ||
diff --git a/worldgen/terrain/source/cpu/elements/ground.cpp b/worldgen/terrain/source/cpu/elements/ground.cpp | ||
index 8744d5c..78f2c95 100644 | ||
--- a/worldgen/terrain/source/cpu/elements/ground.cpp | ||
+++ b/worldgen/terrain/source/cpu/elements/ground.cpp | ||
@@ -19,7 +19,7 @@ extern "C" { | ||
int n_auxiliaries = 1; | ||
if (auxs == NULL) n_auxiliaries = 0; | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This type change should be made to be a single type that is multiplatform. Is size_t not supported on windows? If so we should use a different type, but it should be some other unsigned int type rather than a signed int. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, I received error C3016: 'idx': the index variable in the OpenMP 'for' statement must be a signed integer when compiling with MSVC 19. Can we replace this type with a macro and let CMake determine this type for different platforms? |
||
ground( | ||
positions[idx], sdfs + idx, auxs + n_auxiliaries * idx, meta_param, | ||
d_i_params, d_f_params, second_d_i_params, second_d_f_params | ||
diff --git a/worldgen/terrain/source/cpu/elements/landtiles.cpp b/worldgen/terrain/source/cpu/elements/landtiles.cpp | ||
index 09c15cd..c6bead5 100644 | ||
--- a/worldgen/terrain/source/cpu/elements/landtiles.cpp | ||
+++ b/worldgen/terrain/source/cpu/elements/landtiles.cpp | ||
@@ -19,7 +19,7 @@ extern "C" { | ||
int n_auxiliaries = 3; | ||
if (auxs == NULL) n_auxiliaries = 0; | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
landtiles( | ||
positions[idx], sdfs + idx, auxs + n_auxiliaries * idx, meta_param, | ||
d_i_params, d_f_params, second_d_i_params, second_d_f_params | ||
diff --git a/worldgen/terrain/source/cpu/elements/mountains.cpp b/worldgen/terrain/source/cpu/elements/mountains.cpp | ||
index f5156f7..6e0cf23 100644 | ||
--- a/worldgen/terrain/source/cpu/elements/mountains.cpp | ||
+++ b/worldgen/terrain/source/cpu/elements/mountains.cpp | ||
@@ -16,7 +16,7 @@ extern "C" { | ||
) { | ||
using namespace data; | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
mountains(positions[idx], sdfs + idx, d_i_params, d_f_params); | ||
} | ||
} | ||
diff --git a/worldgen/terrain/source/cpu/elements/upsidedown_mountains.cpp b/worldgen/terrain/source/cpu/elements/upsidedown_mountains.cpp | ||
index 3cade49..71fe855 100644 | ||
--- a/worldgen/terrain/source/cpu/elements/upsidedown_mountains.cpp | ||
+++ b/worldgen/terrain/source/cpu/elements/upsidedown_mountains.cpp | ||
@@ -18,7 +18,7 @@ extern "C" { | ||
int n_auxiliaries = 1; | ||
if (auxs == NULL) n_auxiliaries = 0; | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
upsidedown_mountains(positions[idx], sdfs + idx, auxs + n_auxiliaries * idx, d_i_params, d_f_params); | ||
} | ||
} | ||
diff --git a/worldgen/terrain/source/cpu/elements/voronoi_rocks.cpp b/worldgen/terrain/source/cpu/elements/voronoi_rocks.cpp | ||
index a8ab822..f3d2d1b 100644 | ||
--- a/worldgen/terrain/source/cpu/elements/voronoi_rocks.cpp | ||
+++ b/worldgen/terrain/source/cpu/elements/voronoi_rocks.cpp | ||
@@ -18,7 +18,7 @@ extern "C" { | ||
int n_auxiliaries = 2; | ||
if (auxs == NULL) n_auxiliaries = 0; | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
voronoi_rocks( | ||
positions[idx], sdfs + idx, auxs + n_auxiliaries * idx, meta_param, second_meta_param, | ||
d_i_params, d_f_params, second_d_i_params, second_d_f_params, third_d_i_params, third_d_f_params | ||
diff --git a/worldgen/terrain/source/cpu/elements/warped_rocks.cpp b/worldgen/terrain/source/cpu/elements/warped_rocks.cpp | ||
index 11d2936..0efd6b6 100644 | ||
--- a/worldgen/terrain/source/cpu/elements/warped_rocks.cpp | ||
+++ b/worldgen/terrain/source/cpu/elements/warped_rocks.cpp | ||
@@ -19,7 +19,7 @@ extern "C" { | ||
int n_auxiliaries = 1; | ||
if (auxs == NULL) n_auxiliaries = 0; | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
warped_rocks( | ||
positions[idx], sdfs + idx, auxs + n_auxiliaries * idx, meta_param, | ||
d_i_params, d_f_params, second_d_i_params, second_d_f_params | ||
diff --git a/worldgen/terrain/source/cpu/elements/waterbody.cpp b/worldgen/terrain/source/cpu/elements/waterbody.cpp | ||
index 9733931..08a9c9e 100644 | ||
--- a/worldgen/terrain/source/cpu/elements/waterbody.cpp | ||
+++ b/worldgen/terrain/source/cpu/elements/waterbody.cpp | ||
@@ -17,7 +17,7 @@ extern "C" { | ||
int n_auxiliaries = 1; | ||
if (auxs == NULL) n_auxiliaries = 0; | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
waterbody( | ||
positions[idx], sdfs + idx, auxs + n_auxiliaries * idx, meta_param, second_meta_param, | ||
d_i_params, d_f_params, second_d_i_params, second_d_f_params, third_d_i_params, third_d_f_params | ||
diff --git a/worldgen/terrain/source/cpu/meshing/visibility_test.cpp b/worldgen/terrain/source/cpu/meshing/visibility_test.cpp | ||
index 5aae9c1..3146413 100644 | ||
--- a/worldgen/terrain/source/cpu/meshing/visibility_test.cpp | ||
+++ b/worldgen/terrain/source/cpu/meshing/visibility_test.cpp | ||
@@ -488,7 +488,7 @@ void convex_hull_cutting_update() { | ||
bool aligned_flag = 1; | ||
for (int iv = 0; iv < 3; iv++) | ||
aligned_flag &= aligned[iv * 2] || aligned[iv * 2 + 1]; | ||
- if (not aligned_flag) { | ||
+ if (! aligned_flag) { | ||
mesh::visibility[f] = 1; | ||
continue; | ||
} | ||
diff --git a/worldgen/terrain/source/cpu/surfaces/chunkyrock.cpp b/worldgen/terrain/source/cpu/surfaces/chunkyrock.cpp | ||
index 4dba551..8c826bb 100644 | ||
--- a/worldgen/terrain/source/cpu/surfaces/chunkyrock.cpp | ||
+++ b/worldgen/terrain/source/cpu/surfaces/chunkyrock.cpp | ||
@@ -19,7 +19,7 @@ extern "C" { | ||
float3_nonbuiltin *offsets | ||
) { | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
geo_rocks( | ||
positions[idx], normals[idx], f_params, f3_params, f4_params, | ||
offsets + idx | ||
diff --git a/worldgen/terrain/source/cpu/surfaces/cobble_stone.cpp b/worldgen/terrain/source/cpu/surfaces/cobble_stone.cpp | ||
index 080f05a..2d50335 100644 | ||
--- a/worldgen/terrain/source/cpu/surfaces/cobble_stone.cpp | ||
+++ b/worldgen/terrain/source/cpu/surfaces/cobble_stone.cpp | ||
@@ -18,7 +18,7 @@ extern "C" { | ||
float3_nonbuiltin *offsets | ||
) { | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
geo_cobblestone( | ||
positions[idx], normals[idx], f_params, f4_params, | ||
offsets + idx | ||
diff --git a/worldgen/terrain/source/cpu/surfaces/cracked_ground.cpp b/worldgen/terrain/source/cpu/surfaces/cracked_ground.cpp | ||
index e3d5e84..37f47ac 100644 | ||
--- a/worldgen/terrain/source/cpu/surfaces/cracked_ground.cpp | ||
+++ b/worldgen/terrain/source/cpu/surfaces/cracked_ground.cpp | ||
@@ -17,7 +17,7 @@ extern "C" { | ||
float3_nonbuiltin *offsets | ||
) { | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
geo_cracked_ground( | ||
positions[idx], normals[idx], f_params, | ||
offsets + idx | ||
diff --git a/worldgen/terrain/source/cpu/surfaces/dirt.cpp b/worldgen/terrain/source/cpu/surfaces/dirt.cpp | ||
index 26407f8..95ba218 100644 | ||
--- a/worldgen/terrain/source/cpu/surfaces/dirt.cpp | ||
+++ b/worldgen/terrain/source/cpu/surfaces/dirt.cpp | ||
@@ -18,7 +18,7 @@ extern "C" { | ||
float3_nonbuiltin *offsets | ||
) { | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
geo_dirt( | ||
positions[idx], normals[idx], f_params, f3_params, | ||
offsets + idx | ||
diff --git a/worldgen/terrain/source/cpu/surfaces/ice.cpp b/worldgen/terrain/source/cpu/surfaces/ice.cpp | ||
index 85fd111..4f3e526 100644 | ||
--- a/worldgen/terrain/source/cpu/surfaces/ice.cpp | ||
+++ b/worldgen/terrain/source/cpu/surfaces/ice.cpp | ||
@@ -17,7 +17,7 @@ extern "C" { | ||
float3_nonbuiltin *offsets | ||
) { | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
geo_ice( | ||
positions[idx], normals[idx], f_params, | ||
offsets + idx | ||
diff --git a/worldgen/terrain/source/cpu/surfaces/mountain.cpp b/worldgen/terrain/source/cpu/surfaces/mountain.cpp | ||
index f70040a..ecebbb0 100644 | ||
--- a/worldgen/terrain/source/cpu/surfaces/mountain.cpp | ||
+++ b/worldgen/terrain/source/cpu/surfaces/mountain.cpp | ||
@@ -18,7 +18,7 @@ extern "C" { | ||
float3_nonbuiltin *offsets | ||
) { | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
geo_MOUNTAIN( | ||
positions[idx], normals[idx], f_params, f3_params, | ||
offsets + idx | ||
diff --git a/worldgen/terrain/source/cpu/surfaces/mud.cpp b/worldgen/terrain/source/cpu/surfaces/mud.cpp | ||
index c40ba47..acdf0f6 100644 | ||
--- a/worldgen/terrain/source/cpu/surfaces/mud.cpp | ||
+++ b/worldgen/terrain/source/cpu/surfaces/mud.cpp | ||
@@ -17,7 +17,7 @@ extern "C" { | ||
float3_nonbuiltin *offsets | ||
) { | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
geo_mud( | ||
positions[idx], normals[idx], f_params, | ||
offsets + idx | ||
diff --git a/worldgen/terrain/source/cpu/surfaces/sand.cpp b/worldgen/terrain/source/cpu/surfaces/sand.cpp | ||
index 50ba327..3d447cd 100644 | ||
--- a/worldgen/terrain/source/cpu/surfaces/sand.cpp | ||
+++ b/worldgen/terrain/source/cpu/surfaces/sand.cpp | ||
@@ -18,7 +18,7 @@ extern "C" { | ||
float3_nonbuiltin *offsets | ||
) { | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
geo_SAND( | ||
positions[idx], normals[idx], f_params, f3_params, | ||
offsets + idx | ||
diff --git a/worldgen/terrain/source/cpu/surfaces/sandstone.cpp b/worldgen/terrain/source/cpu/surfaces/sandstone.cpp | ||
index 78d3ed4..9221ed8 100644 | ||
--- a/worldgen/terrain/source/cpu/surfaces/sandstone.cpp | ||
+++ b/worldgen/terrain/source/cpu/surfaces/sandstone.cpp | ||
@@ -18,7 +18,7 @@ extern "C" { | ||
float3_nonbuiltin *offsets | ||
) { | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
geometry_sandstone( | ||
positions[idx], normals[idx], f_params, f3_params, | ||
offsets + idx | ||
diff --git a/worldgen/terrain/source/cpu/surfaces/snow.cpp b/worldgen/terrain/source/cpu/surfaces/snow.cpp | ||
index 6b69dee..5ae5e76 100644 | ||
--- a/worldgen/terrain/source/cpu/surfaces/snow.cpp | ||
+++ b/worldgen/terrain/source/cpu/surfaces/snow.cpp | ||
@@ -16,7 +16,7 @@ extern "C" { | ||
float3_nonbuiltin *offsets | ||
) { | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
geo_snowtexture( | ||
positions[idx], normals[idx], | ||
offsets + idx | ||
diff --git a/worldgen/terrain/source/cpu/surfaces/soil.cpp b/worldgen/terrain/source/cpu/surfaces/soil.cpp | ||
index d16b842..703dfae 100644 | ||
--- a/worldgen/terrain/source/cpu/surfaces/soil.cpp | ||
+++ b/worldgen/terrain/source/cpu/surfaces/soil.cpp | ||
@@ -18,7 +18,7 @@ extern "C" { | ||
float3_nonbuiltin *offsets | ||
) { | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
geometry_soil( | ||
positions[idx], normals[idx], f_params, f4_params, | ||
offsets + idx | ||
diff --git a/worldgen/terrain/source/cpu/surfaces/stone.cpp b/worldgen/terrain/source/cpu/surfaces/stone.cpp | ||
index 7542680..817478f 100644 | ||
--- a/worldgen/terrain/source/cpu/surfaces/stone.cpp | ||
+++ b/worldgen/terrain/source/cpu/surfaces/stone.cpp | ||
@@ -19,7 +19,7 @@ extern "C" { | ||
float3_nonbuiltin *offsets | ||
) { | ||
#pragma omp parallel for | ||
- for (size_t idx = 0; idx < size; idx++) { | ||
+ for (int idx = 0; idx < size; idx++) { | ||
geo_stone( | ||
positions[idx], normals[idx], f_params, f3_params, f4_params, | ||
offsets + idx | ||
diff --git a/worldgen/terrain/utils/ctype_util.py b/worldgen/terrain/utils/ctype_util.py | ||
index 71862a7..009e68c 100644 | ||
--- a/worldgen/terrain/utils/ctype_util.py | ||
+++ b/worldgen/terrain/utils/ctype_util.py | ||
@@ -25,4 +25,10 @@ def register_func(me, dll, name, argtypes=[], restype=None, caller_name=None): | ||
func.restype = restype | ||
|
||
def load_cdll(path): | ||
- return CDLL(Path(sys.path[-1]) / path, mode=RTLD_LOCAL) | ||
\ No newline at end of file | ||
+ if sys.platform == 'win32': | ||
+ #replace suffix .so to .dll | ||
+ path = Path(path) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this can be included into the main repo rather than a .patch file |
||
+ path = path.with_suffix('.dll') | ||
+ | ||
+ _path:Path = Path(sys.path[-1]) / path | ||
+ return CDLL(_path.as_posix(), mode=RTLD_LOCAL) | ||
\ No newline at end of file | ||
-- | ||
2.34.1.windows.1 | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
cmake_minimum_required(VERSION 3.2) | ||
project(worldgen) | ||
|
||
add_custom_target(worldgen_python_ext | ||
COMMAND ${Python_EXECUTABLE} setup_linux.py build_ext --inplace | ||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/assets/creatures/geometry/cpp_utils | ||
COMMENT "Building Python extension NURBSE" | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mazeyu This path manipulation should be done with pathlib Path().parts[-2], which is multiplatform and would avoid the need for a windows only .patch file