Hello Johannes,
On 2016-07-01 01:53, Johannes wrote:
> On 01.07.2016 01:14, Carsten Neumann wrote:
>>> and the problem is gone for me. Could you check that in your setup please.
>>
>> hmm, it now is non-deterministic, i.e. sometimes it works sometimes it
>> does not. I suspect that is because the texture contents are indeed
>> undefined.
>> Ideally we would have a way to issue a glClearTex{Sub,}Image call to
>> initialize the texture content.
>>
> Could you elaborate a little at which place do you think that this api
> should be called.
I suspect the problem is that the texture memory is not initialized,
because there is no data specified for the OSG::Image used with the
OSG::TextureObjChunk - which is mostly fine since these textures are
used as render targets before they are read for the first time - except
for the adaptive luminance texture from the previous frame (which has
undefined content on the very first frame).
For this texture we would need a way to initialize it when it is
created. I haven't thought through all the consequences, but one way to
do this is add a field SFVector4f "ClearValues" to TextureObjChunk and
if the Image has no data issue the glClearTexImage call when creating
the OpenGL texture object in TextureObjChunk::handleTexture.
> First, why do you do not accept the nullptr instead of macro NULL? Do we
> really have to support such ancient compilers from the pre c++11 time?
On linux it is more about the default compiler dialect. GCC 6.1
(released 2016-04) is the first release that switched the default to
C++14 (previous C++98). So while it had full support for C++11 for a
long time it is not enabled by default.
That means system compiler for distributions that are widely used at
this point in time need an extra compiler switch to compile C++11 code.
> Second, you did make a change in OSGStateOverride.cpp from a
> const_iterator to a mutable iterator. What was the reason for that change?
The overload of std::vector<T>::erase() that takes a const_iterator
overload is a C++11 addition, before erase() required a iterator
argument, see http://en.cppreference.com/w/cpp/container/vector/erase
> Third, I'm still hoping for a CMake build system solution for the
> AntTweakBar library, that allows me to easily integrate the library in
> the generated example projects. Do you have an idea how to setup things
> for that. If not, however, I will take some time to come up with a
> solution, hopefully.
I haven't gotten around to that. If you want to take a stab at it that
would certainly be appreciated. It should be possible to model this
after the existing external dependencies (e.g. image format libs). So
add a OSG_CONFIGURE_ANTTWEAKBAR macro to
CMake/OSGConfigurePackages.cmake and call find_package() from there. For
more details I'll have to dive back into the build system myself, been a
while that I looked at it.
Cheers,
Carsten
------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users