diff options
| -rw-r--r-- | SConstruct | 4 | ||||
| -rw-r--r-- | core/image.cpp | 33 | ||||
| -rw-r--r-- | core/io/compression.cpp | 2 | ||||
| -rw-r--r-- | editor/doc/doc_dump.cpp | 2 | ||||
| -rw-r--r-- | editor/editor_themes.cpp | 2 | ||||
| -rw-r--r-- | scene/resources/material.h | 4 | 
6 files changed, 26 insertions, 21 deletions
diff --git a/SConstruct b/SConstruct index 1898e0b5d3..f1587e0280 100644 --- a/SConstruct +++ b/SConstruct @@ -322,13 +322,13 @@ if selected_platform in platform_list:          print("WARNING: warnings=yes is deprecated; assuming warnings=all")      if env.msvc: -        disable_nonessential_warnings = ['/wd4267', '/wd4244', '/wd4305', '/wd4800'] # Truncations, narrowing conversions... +        # Truncations, narrowing conversions, signed/unsigned comparisons... +        disable_nonessential_warnings = ['/wd4267', '/wd4244', '/wd4305', '/wd4018', '/wd4800']          if (env["warnings"] == 'extra'):              env.Append(CCFLAGS=['/Wall']) # Implies /W4          elif (env["warnings"] == 'all' or env["warnings"] == 'yes'):              env.Append(CCFLAGS=['/W3'] + disable_nonessential_warnings)          elif (env["warnings"] == 'moderate'): -            # C4244 shouldn't be needed here being a level-3 warning, but it is              env.Append(CCFLAGS=['/W2'] + disable_nonessential_warnings)          else: # 'no'              env.Append(CCFLAGS=['/w']) diff --git a/core/image.cpp b/core/image.cpp index c0002e0cd6..e90ed96499 100644 --- a/core/image.cpp +++ b/core/image.cpp @@ -307,6 +307,7 @@ void Image::_get_mipmap_offset_and_size(int p_mipmap, int &r_offset, int &r_widt  	r_width = w;  	r_height = h;  } +  int Image::get_mipmap_offset(int p_mipmap) const {  	ERR_FAIL_INDEX_V(p_mipmap, get_mipmap_count() + 1, -1); @@ -499,8 +500,6 @@ void Image::convert(Format p_new_format) {  	bool gen_mipmaps = mipmaps; -	//mipmaps=false; -  	_copy_internals_from(new_img);  	if (gen_mipmaps) @@ -799,6 +798,7 @@ void Image::resize(int p_width, int p_height, Interpolation p_interpolation) {  	if (interpolate_mipmaps) {  		dst2.create(p_width, p_height, 0, format);  	} +  	bool had_mipmaps = mipmaps;  	if (interpolate_mipmaps && !had_mipmaps) {  		generate_mipmaps(); @@ -951,6 +951,7 @@ void Image::resize(int p_width, int p_height, Interpolation p_interpolation) {  }  void Image::crop_from_point(int p_x, int p_y, int p_width, int p_height) { +  	if (!_can_modify(format)) {  		ERR_EXPLAIN("Cannot crop in indexed, compressed or custom image formats.");  		ERR_FAIL(); @@ -996,7 +997,7 @@ void Image::crop_from_point(int p_x, int p_y, int p_width, int p_height) {  		}  	} -	if (mipmaps > 0) +	if (has_mipmaps())  		dst.generate_mipmaps();  	_copy_internals_from(dst);  } @@ -1013,10 +1014,10 @@ void Image::flip_y() {  		ERR_FAIL();  	} -	bool gm = mipmaps; - -	if (gm) +	bool used_mipmaps = has_mipmaps(); +	if (used_mipmaps) {  		clear_mipmaps(); +	}  	{  		PoolVector<uint8_t>::Write w = data.write(); @@ -1037,8 +1038,9 @@ void Image::flip_y() {  		}  	} -	if (gm) +	if (used_mipmaps) {  		generate_mipmaps(); +	}  }  void Image::flip_x() { @@ -1048,9 +1050,10 @@ void Image::flip_x() {  		ERR_FAIL();  	} -	bool gm = mipmaps; -	if (gm) +	bool used_mipmaps = has_mipmaps(); +	if (used_mipmaps) {  		clear_mipmaps(); +	}  	{  		PoolVector<uint8_t>::Write w = data.write(); @@ -1071,8 +1074,9 @@ void Image::flip_x() {  		}  	} -	if (gm) +	if (used_mipmaps) {  		generate_mipmaps(); +	}  }  int Image::_get_dst_image_size(int p_width, int p_height, Format p_format, int &r_mipmaps, int p_mipmaps) { @@ -1167,12 +1171,13 @@ void Image::expand_x2_hq2x() {  	ERR_FAIL_COND(!_can_modify(format)); -	Format current = format; -	bool mm = has_mipmaps(); -	if (mm) { +	bool used_mipmaps = has_mipmaps(); +	if (used_mipmaps) {  		clear_mipmaps();  	} +	Format current = format; +  	if (current != FORMAT_RGBA8)  		convert(FORMAT_RGBA8); @@ -1193,7 +1198,7 @@ void Image::expand_x2_hq2x() {  	if (current != FORMAT_RGBA8)  		convert(current); -	if (mipmaps) { +	if (used_mipmaps) {  		generate_mipmaps();  	}  } diff --git a/core/io/compression.cpp b/core/io/compression.cpp index e456a85c65..3c0b6541bd 100644 --- a/core/io/compression.cpp +++ b/core/io/compression.cpp @@ -175,7 +175,7 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_max_size, const uint8_t *p  		} break;  		case MODE_ZSTD: {  			ZSTD_DCtx *dctx = ZSTD_createDCtx(); -			if (zstd_long_distance_matching) ZSTD_DCtx_setMaxWindowSize(dctx, 1 << zstd_window_log_size); +			if (zstd_long_distance_matching) ZSTD_DCtx_setMaxWindowSize(dctx, (size_t)1 << zstd_window_log_size);  			int ret = ZSTD_decompressDCtx(dctx, p_dst, p_dst_max_size, p_src, p_src_size);  			ZSTD_freeDCtx(dctx);  			return ret; diff --git a/editor/doc/doc_dump.cpp b/editor/doc/doc_dump.cpp index 86fd9b436b..f1c337605e 100644 --- a/editor/doc/doc_dump.cpp +++ b/editor/doc/doc_dump.cpp @@ -223,7 +223,7 @@ void DocDump::dump(const String &p_file) {  						hint = "Values: ";  						for (int j = 0; j < arginfo.hint_string.get_slice_count(","); j++) {  							if (j > 0) hint += ", "; -							hint += arginfo.hint_string.get_slice(",", j) + "=" + itos(1 << j); +							hint += arginfo.hint_string.get_slice(",", j) + "=" + itos((uint64_t)1 << j);  						}  						break;  					case PROPERTY_HINT_FILE: hint = "A file:"; break; diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index 9e81051dc2..3cdbc4f188 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -376,7 +376,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {  	//Register icons + font  	// the resolution and the icon color (dark_theme bool) has not changed, so we do not regenerate the icons -	if (p_theme != NULL && fabs(p_theme->get_constant("scale", "Editor") - EDSCALE) < 0.00001 && p_theme->get_constant("dark_theme", "Editor") == dark_theme) { +	if (p_theme != NULL && fabs(p_theme->get_constant("scale", "Editor") - EDSCALE) < 0.00001 && (bool)p_theme->get_constant("dark_theme", "Editor") == dark_theme) {  		// register already generated icons  		for (int i = 0; i < editor_icons_count; i++) {  			theme->set_icon(editor_icons_names[i], "EditorIcons", p_theme->get_icon(editor_icons_names[i], "EditorIcons")); diff --git a/scene/resources/material.h b/scene/resources/material.h index 0154874ae4..cf4d19b5a7 100644 --- a/scene/resources/material.h +++ b/scene/resources/material.h @@ -286,7 +286,7 @@ private:  		mk.key = 0;  		for (int i = 0; i < FEATURE_MAX; i++) {  			if (features[i]) { -				mk.feature_mask |= (1 << i); +				mk.feature_mask |= ((uint64_t)1 << i);  			}  		}  		mk.detail_uv = detail_uv; @@ -295,7 +295,7 @@ private:  		mk.cull_mode = cull_mode;  		for (int i = 0; i < FLAG_MAX; i++) {  			if (flags[i]) { -				mk.flags |= (1 << i); +				mk.flags |= ((uint64_t)1 << i);  			}  		}  		mk.detail_blend_mode = detail_blend_mode;  |