Compare commits
9 Commits
next
...
version/20
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
17f86567f1 | ||
|
|
059bad1840 | ||
|
|
b7d4acc67d | ||
|
|
af8b27032f | ||
|
|
f76b72e2f3 | ||
|
|
59512aea1f | ||
|
|
96618a2e26 | ||
|
|
635f460dd5 | ||
|
|
36316e8859 |
@@ -165,6 +165,11 @@ if (MSVC)
|
||||
else (EXISTS ${TEST_3RDPARTY_DIR})
|
||||
set(MSVC_3RDPARTY_ROOT NOT_FOUND CACHE PATH "Location where the third-party dependencies are extracted")
|
||||
endif (EXISTS ${TEST_3RDPARTY_DIR})
|
||||
|
||||
# override CMake default RelWithDebInfo flags. This is important to ensure
|
||||
# good performance
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/Zi /O2 /Ob2 /D NDEBUG")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "/Zi /O2 /Ob2 /D NDEBUG")
|
||||
else (MSVC)
|
||||
set(MSVC_3RDPARTY_ROOT NOT_FOUND CACHE PATH "Location where the third-party dependencies are extracted")
|
||||
endif (MSVC)
|
||||
@@ -222,7 +227,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD
|
||||
endif()
|
||||
|
||||
find_package(Boost REQUIRED)
|
||||
set (BOOST_CXX_FLAGS "-DBOOST_BIMAP_DISABLE_SERIALIZATION")
|
||||
set (BOOST_CXX_FLAGS "-DBOOST_BIMAP_DISABLE_SERIALIZATION -DBOOST_NO_STDLIB_CONFIG")
|
||||
include(BoostTestTargets)
|
||||
|
||||
if(SIMGEAR_HEADLESS)
|
||||
@@ -440,15 +445,18 @@ if (CLANG)
|
||||
# fix Boost compilation :(
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
||||
|
||||
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CMAKE_C_FLAGS
|
||||
"${CMAKE_C_FLAGS} -O0 -fno-omit-frame-pointer -fno-inline-functions")
|
||||
set(CMAKE_CXX_FLAGS
|
||||
"${CMAKE_CXX_FLAGS} -O0 -fno-omit-frame-pointer -fno-inline-functions")
|
||||
elseif (ENABLE_SIMD)
|
||||
# override CMake default RelWithDebInfo flags.
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -g -DNDEBUG")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -g -DNDEBUG")
|
||||
|
||||
if (ENABLE_SIMD)
|
||||
if (X86 OR X86_64)
|
||||
set(CMAKE_C_FLAGS_RELEASE "-O3 -msse2 -mfpmath=sse -ftree-vectorize -ftree-slp-vectorize")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -msse2 -mfpmath=sse -ftree-vectorize -ftree-slp-vectorize")
|
||||
|
||||
# propogate to the RelWithDebInfo flags
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE} -g -DNDEBUG")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} -g -DNDEBUG")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -947,10 +947,18 @@ SGRect<int> intersectRect(const SGRect<int>& a, const SGRect<int>& b)
|
||||
}
|
||||
|
||||
image->setColor(color, x, y);
|
||||
auto c = getCanvas().lock();
|
||||
c->enableRendering(true); // force a repaint
|
||||
}
|
||||
|
||||
void Image::dirtyPixels()
|
||||
{
|
||||
osg::ref_ptr<osg::Image> image = _texture->getImage();
|
||||
if (!image)
|
||||
return;
|
||||
image->dirty();
|
||||
auto c = getCanvas().lock();
|
||||
c->enableRendering(true); // force a repaint
|
||||
}
|
||||
|
||||
void Image::allocateImage()
|
||||
{
|
||||
osg::Image* image = new osg::Image;
|
||||
|
||||
@@ -115,6 +115,11 @@ namespace canvas
|
||||
|
||||
void setPixel(int x, int y, const osg::Vec4& color);
|
||||
|
||||
/**
|
||||
* mark the image pixels as modified, so the canvas is re-painted
|
||||
*/
|
||||
void dirtyPixels();
|
||||
|
||||
osg::ref_ptr<osg::Image> getImage() const;
|
||||
|
||||
// void setRow(int row, int offset, )
|
||||
|
||||
@@ -503,7 +503,7 @@ static void setMember(naContext ctx, naRef obj, naRef fld, naRef value)
|
||||
return;
|
||||
}
|
||||
|
||||
if(!IS_HASH(obj)) ERR(ctx, "non-objects have no members");
|
||||
if(!IS_HASH(obj)) naRuntimeError(ctx, "non-object does not have member: %s", naStr_data(fld));
|
||||
naHash_set(obj, fld, value);
|
||||
ctx->opTop -= 2;
|
||||
}
|
||||
|
||||
@@ -113,9 +113,6 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
// disabling old-syle texture compression in favour of the
|
||||
// texture-cache
|
||||
#if 0
|
||||
class SGTexCompressionVisitor : public SGTextureStateAttributeVisitor {
|
||||
public:
|
||||
virtual void apply(int, StateSet::RefAttributePair& refAttr)
|
||||
@@ -146,7 +143,6 @@ public:
|
||||
}
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
class SGTexDataVarianceVisitor : public SGTextureStateAttributeVisitor {
|
||||
public:
|
||||
@@ -644,12 +640,8 @@ osg::Node* OptimizeModelPolicy::optimize(osg::Node* node,
|
||||
SGTexDataVarianceVisitor dataVarianceVisitor;
|
||||
node->accept(dataVarianceVisitor);
|
||||
|
||||
// disabling old-syle texture compression in favour of the
|
||||
// texture-cache
|
||||
#if 0
|
||||
SGTexCompressionVisitor texComp;
|
||||
node->accept(texComp);
|
||||
#endif
|
||||
return node;
|
||||
}
|
||||
|
||||
|
||||
@@ -136,11 +136,19 @@ osg::Vec2d eventToWindowCoords(const osgGA::GUIEventAdapter& ea)
|
||||
|
||||
virtual void update(double dt, int keyModState)
|
||||
{
|
||||
if (!_condition || _condition->test()) {
|
||||
SG_UNUSED(keyModState);
|
||||
if (!_repeatable)
|
||||
return;
|
||||
SG_UNUSED(keyModState);
|
||||
if (_condition && !_condition->test()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_repeatable)
|
||||
return;
|
||||
|
||||
const bool zeroInterval = (_repeatInterval <= 0.0);
|
||||
if (zeroInterval) {
|
||||
// fire once per frame
|
||||
fireBindingList(_bindingsDown);
|
||||
} else {
|
||||
_repeatTime += dt;
|
||||
while (_repeatInterval < _repeatTime) {
|
||||
_repeatTime -= _repeatInterval;
|
||||
@@ -678,12 +686,18 @@ public:
|
||||
if (_hasDragged) {
|
||||
return;
|
||||
}
|
||||
|
||||
_repeatTime += dt;
|
||||
while (_repeatInterval < _repeatTime) {
|
||||
_repeatTime -= _repeatInterval;
|
||||
|
||||
const bool zeroInterval = (_repeatInterval <= 0.0);
|
||||
if (zeroInterval) {
|
||||
// fire once per frame
|
||||
fire(keyModState & osgGA::GUIEventAdapter::MODKEY_SHIFT, _direction);
|
||||
} // of repeat iteration
|
||||
} else {
|
||||
_repeatTime += dt;
|
||||
while (_repeatInterval < _repeatTime) {
|
||||
_repeatTime -= _repeatInterval;
|
||||
fire(keyModState & osgGA::GUIEventAdapter::MODKEY_SHIFT, _direction);
|
||||
} // of repeat iteration
|
||||
}
|
||||
}
|
||||
|
||||
bool hover( const osg::Vec2d& windowPos, const Info& ) override
|
||||
|
||||
@@ -69,29 +69,29 @@ SGSceneFeatures::instance()
|
||||
void
|
||||
SGSceneFeatures::applyTextureCompression(osg::Texture* texture) const
|
||||
{
|
||||
// disable older texture-compression, since it interacts confusingly
|
||||
// with the the runtime texture-cache. We always want to use
|
||||
// 'USE_IMAGE_DATA_FORMAT' when the texture-cache is active, since we
|
||||
// decided whether to compress (or not) prior to this point.
|
||||
#if 0
|
||||
switch (_textureCompression) {
|
||||
case UseARBCompression:
|
||||
texture->setInternalFormatMode(osg::Texture::USE_ARB_COMPRESSION);
|
||||
break;
|
||||
case UseDXT1Compression:
|
||||
texture->setInternalFormatMode(osg::Texture::USE_S3TC_DXT1_COMPRESSION);
|
||||
break;
|
||||
case UseDXT3Compression:
|
||||
texture->setInternalFormatMode(osg::Texture::USE_S3TC_DXT3_COMPRESSION);
|
||||
break;
|
||||
case UseDXT5Compression:
|
||||
texture->setInternalFormatMode(osg::Texture::USE_S3TC_DXT5_COMPRESSION);
|
||||
break;
|
||||
default:
|
||||
texture->setInternalFormatMode(osg::Texture::USE_IMAGE_DATA_FORMAT);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
// if the texture cache is active, always use the file data format
|
||||
if (_TextureCacheActive && _TextureCacheCompressionActive) {
|
||||
texture->setInternalFormatMode(osg::Texture::USE_IMAGE_DATA_FORMAT);
|
||||
} else {
|
||||
// keep the older texture compression working, some people need it
|
||||
switch (_textureCompression) {
|
||||
case UseARBCompression:
|
||||
texture->setInternalFormatMode(osg::Texture::USE_ARB_COMPRESSION);
|
||||
break;
|
||||
case UseDXT1Compression:
|
||||
texture->setInternalFormatMode(osg::Texture::USE_S3TC_DXT1_COMPRESSION);
|
||||
break;
|
||||
case UseDXT3Compression:
|
||||
texture->setInternalFormatMode(osg::Texture::USE_S3TC_DXT3_COMPRESSION);
|
||||
break;
|
||||
case UseDXT5Compression:
|
||||
texture->setInternalFormatMode(osg::Texture::USE_S3TC_DXT5_COMPRESSION);
|
||||
break;
|
||||
default:
|
||||
texture->setInternalFormatMode(osg::Texture::USE_IMAGE_DATA_FORMAT);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
|
||||
Reference in New Issue
Block a user