Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/core
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2024-12-31 14:49:51 +1100
committerKae <80987908+Novaenia@users.noreply.github.com>2024-12-31 14:49:51 +1100
commit874ab3dd48a53c0cda6bb1faaeea27b52d2c1df2 (patch)
tree86c2d0d24e98b849f6bd7dd1e7abdb95baed4abe /source/core
parent9beadf3e2c6f06f43259e48629598fe77c365797 (diff)
?saturation discrepancies: fixed mostly on GCC, 100% (seemingly?) on Clang
Diffstat (limited to 'source/core')
-rw-r--r--source/core/CMakeLists.txt4
-rw-r--r--source/core/StarColor.cpp3
-rw-r--r--source/core/StarImageScaling.cpp3
-rw-r--r--source/core/StarImageScaling.hpp2
4 files changed, 6 insertions, 6 deletions
diff --git a/source/core/CMakeLists.txt b/source/core/CMakeLists.txt
index 16cf576..3d00baf 100644
--- a/source/core/CMakeLists.txt
+++ b/source/core/CMakeLists.txt
@@ -231,10 +231,6 @@ IF(STAR_PRECOMPILED_HEADERS)
TARGET_PRECOMPILE_HEADERS (star_core PUBLIC StarPch.hpp)
ENDIF()
-IF(STAR_COMPILER STREQUAL "gnu")
- SET_SOURCE_FILES_PROPERTIES(StarImageScaling.cpp PROPERTIES COMPILE_FLAGS "-O2 -fno-trapping-math -fno-unsafe-math-optimizations")
-ENDIF()
-
IF(STAR_USE_JEMALLOC AND JEMALLOC_IS_PREFIXED)
SET_SOURCE_FILES_PROPERTIES(StarMemory.cpp PROPERTIES
COMPILE_DEFINITIONS STAR_JEMALLOC_IS_PREFIXED
diff --git a/source/core/StarColor.cpp b/source/core/StarColor.cpp
index 7da8dd4..4eb726c 100644
--- a/source/core/StarColor.cpp
+++ b/source/core/StarColor.cpp
@@ -322,6 +322,8 @@ Vec3F Color::toRgbF() const {
return Vec3F(redF(), greenF(), blueF());
}
+#pragma GCC push_options
+#pragma GCC optimize("-fno-fast-math")
Vec4F Color::toHsva() const {
float h, s, v;
@@ -365,6 +367,7 @@ Vec4F Color::toHsva() const {
return Vec4F(h, s, v, alphaF());
}
+#pragma GCC pop_options
String Color::toHex() const {
auto rgba = toRgba();
diff --git a/source/core/StarImageScaling.cpp b/source/core/StarImageScaling.cpp
index 96837aa..aa94359 100644
--- a/source/core/StarImageScaling.cpp
+++ b/source/core/StarImageScaling.cpp
@@ -33,8 +33,7 @@ Image scaleBilinear(Image const& srcImage, Vec2F const& scale) {
auto ipart = Vec2I::floor(pos);
auto fpart = pos - Vec2F(ipart);
- auto result = lerp(fpart[1], lerp(fpart[0], Vec4F(srcImage.clamp(ipart[0], ipart[1])), Vec4F(srcImage.clamp(ipart[0] + 1, ipart[1]))), lerp(fpart[0],
- Vec4F(srcImage.clamp(ipart[0], ipart[1] + 1)), Vec4F(srcImage.clamp(ipart[0] + 1, ipart[1] + 1))));
+ auto result = lerp(fpart[1], lerp(fpart[0], Vec4F(srcImage.clamp(ipart[0], ipart[1])), Vec4F(srcImage.clamp(ipart[0] + 1, ipart[1]))), lerp(fpart[0], Vec4F(srcImage.clamp(ipart[0], ipart[1] + 1)), Vec4F(srcImage.clamp(ipart[0] + 1, ipart[1] + 1))));
destImage.set({x, y}, Vec4B(result));
}
diff --git a/source/core/StarImageScaling.hpp b/source/core/StarImageScaling.hpp
index 6a7271b..d758169 100644
--- a/source/core/StarImageScaling.hpp
+++ b/source/core/StarImageScaling.hpp
@@ -1,3 +1,5 @@
+#pragma once
+
namespace Star {
STAR_CLASS(Image);