Merge remote-tracking branch 'ryzomcore/core4' into ryzomclassic-develop

ryzomclassic-develop
kaetemi 3 years ago
commit 87971fde0d
No known key found for this signature in database
GPG Key ID: 9873C4D40BB479BC

@ -0,0 +1,81 @@
# Locate Lua library
# This module defines
# LUA54_FOUND, if false, do not try to link to Lua
# LUA_LIBRARIES
# LUA_INCLUDE_DIR, where to find lua.h
# LUA_VERSION_STRING, the version of Lua found (since CMake 2.8.8)
#
# Note that the expected include convention is
# #include "lua.h"
# and not
# #include <lua/lua.h>
# This is because, the lua location is not standardized and may exist
# in locations other than lua/
#=============================================================================
# Copyright 2007-2009 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
find_path(LUA_INCLUDE_DIR lua.h
HINTS
ENV LUA_DIR
PATH_SUFFIXES include/lua54 include/lua5.4 include/lua-5.4 include/lua include
PATHS
~/Library/Frameworks
/Library/Frameworks
/sw # Fink
/opt/local # DarwinPorts
/opt/csw # Blastwave
/opt
)
find_library(LUA_LIBRARY
NAMES lua54 lua5.4 lua-5.4 lua
HINTS
ENV LUA_DIR
PATH_SUFFIXES lib
PATHS
~/Library/Frameworks
/Library/Frameworks
/sw
/opt/local
/opt/csw
/opt
)
if(LUA_LIBRARY)
# include the math library for Unix
if(UNIX AND NOT APPLE AND NOT BEOS)
find_library(LUA_MATH_LIBRARY m)
set( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries")
# For Windows and Mac, don't need to explicitly include the math library
else()
set( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries")
endif()
endif()
if(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/lua.h")
file(STRINGS "${LUA_INCLUDE_DIR}/lua.h" lua_version_str REGEX "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua .+\"")
string(REGEX REPLACE "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([^\"]+)\".*" "\\1" LUA_VERSION_STRING "${lua_version_str}")
unset(lua_version_str)
endif()
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if
# all listed variables are TRUE
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua54
REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR
VERSION_VAR LUA_VERSION_STRING)
mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARIES LUA_LIBRARY LUA_MATH_LIBRARY)

@ -10,6 +10,19 @@ MACRO(FIND_CORRECT_LUA_VERSION)
IF(LUABIND_LIBRARY_RELEASE MATCHES "\\.so") IF(LUABIND_LIBRARY_RELEASE MATCHES "\\.so")
INCLUDE(CheckDepends) INCLUDE(CheckDepends)
# check for Lua 5.4
SET(LUA54_LIBRARIES liblua5.4 liblua-5.4 liblua.so.5.4)
FOREACH(_LIB ${LUA54_LIBRARIES})
CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE _LIB LUALIB_FOUND)
IF(LUALIB_FOUND)
MESSAGE(STATUS "Luabind is using Lua 5.4")
FIND_PACKAGE(Lua54 REQUIRED)
BREAK()
ENDIF()
ENDFOREACH()
IF(NOT LUALIB_FOUND)
# check for Lua 5.3 # check for Lua 5.3
SET(LUA53_LIBRARIES liblua5.3 liblua-5.3 liblua.so.5.3) SET(LUA53_LIBRARIES liblua5.3 liblua-5.3 liblua.so.5.3)
@ -21,6 +34,7 @@ MACRO(FIND_CORRECT_LUA_VERSION)
BREAK() BREAK()
ENDIF() ENDIF()
ENDFOREACH() ENDFOREACH()
ENDIF()
IF(NOT LUALIB_FOUND) IF(NOT LUALIB_FOUND)
# check for Lua 5.2 # check for Lua 5.2

@ -438,7 +438,7 @@ namespace NLGUI
if (bg.repeatX == CSS_VALUE_ROUND) if (bg.repeatX == CSS_VALUE_ROUND)
{ {
sint numTiles = std::max(1, (sint)std::round((float)areaW / texW)); sint numTiles = std::max(1, (sint)std::ceil(((float)areaW / texW) - 0.5f));
texW = areaW / numTiles; texW = areaW / numTiles;
if (bg.height.isAuto() && bg.repeatY != CSS_VALUE_ROUND) if (bg.height.isAuto() && bg.repeatY != CSS_VALUE_ROUND)
{ {
@ -449,7 +449,7 @@ namespace NLGUI
if (bg.repeatY == CSS_VALUE_ROUND) if (bg.repeatY == CSS_VALUE_ROUND)
{ {
sint numTiles = std::max(1, (sint)std::round((float)areaH / texH)); sint numTiles = std::max(1, (sint)std::ceil(((float)areaH / texH) - 0.5f));
texH = areaH / numTiles; texH = areaH / numTiles;
if (bg.width.isAuto() && bg.repeatX != CSS_VALUE_ROUND) if (bg.width.isAuto() && bg.repeatX != CSS_VALUE_ROUND)
{ {

@ -30,9 +30,10 @@ namespace NLGUI
bool CSSLength::parseValue(const std::string &value, bool allowPercent, bool allowNegative) bool CSSLength::parseValue(const std::string &value, bool allowPercent, bool allowNegative)
{ {
static const std::set<std::string> knownUnits = { static const std::string knownUnitsArr[] = {
"%", "rem", "em", "px", "pt", "vw", "vh", "vi", "vb", "vmin", "vmax" "%", "rem", "em", "px", "pt", "vw", "vh", "vi", "vb", "vmin", "vmax"
}; };
static const std::set<std::string> knownUnits(knownUnitsArr, &knownUnitsArr[sizeof(knownUnitsArr) / sizeof(knownUnitsArr[0])]);
std::string::size_type pos = 0; std::string::size_type pos = 0;
std::string::size_type len = value.size(); std::string::size_type len = value.size();

@ -208,9 +208,10 @@ namespace NLGUI
// *************************************************************************** // ***************************************************************************
bool getCssLength (float &value, std::string &unit, const std::string &str, bool neg) bool getCssLength (float &value, std::string &unit, const std::string &str, bool neg)
{ {
static const std::set<std::string> knownUnits = { static const std::string knownUnitsArr[] = {
"%", "rem", "em", "px", "pt", "vw", "vh", "vi", "vb", "vmin", "vmax" "%", "rem", "em", "px", "pt", "vw", "vh", "vi", "vb", "vmin", "vmax"
}; };
static const std::set<std::string> knownUnits(knownUnitsArr, &knownUnitsArr[sizeof(knownUnitsArr) / sizeof(knownUnitsArr[0])]);
std::string::size_type pos = 0; std::string::size_type pos = 0;
std::string::size_type len = str.size(); std::string::size_type len = str.size();

Loading…
Cancel
Save