Skip to content

Conversation

johnhaddon
Copy link
Member

These are miscellaneous improvements to IECoreGL to support an improved Viewer in Gaffer. They do break Cortex compatibility, so once merged we can't do a Cortex install until Gaffer is updated too (I believe Gaffer is the only client for the changed API). Once this is merged, I'll need to roll out a new set of prebuilt binary dependencies for Gaffer, so the Travis tests can pass when I make the corresponding Gaffer pull request.

@johnhaddon johnhaddon force-pushed the glImprovements branch 2 times, most recently from 7810293 to b59207c Compare November 19, 2014 19:02
@johnhaddon johnhaddon changed the title IECoreGl Improvements IECoreGL Improvements Nov 19, 2014
@davidsminor
Copy link
Contributor

I found I had to add this code to line 95 of ShaderStateComponent.cpp:

if( !m_parameterMap )
{
    return;
}

Otherwise it would crash when viewing the meshes in a large geometry hierarchy (the main character in our robot show)

@johnhaddon
Copy link
Member Author

Thanks for catching that - I've applied your suggested fix, along with a compilation fix for the recent TIFFImageReader changes.

This takes a bool indicating whether or not to perform the binding.
The HitRecord is a low level class intended for use with the Selector class which represents names as GLuint, so it makes no sense to use a higher level representation. This will allow the Selector to be used with simple integer names where that is more appropriate. Continuing to use the higher level representation is facilitated by the NameStateComponent nameFromGLName() and glNameFromName() methods.

Binary incompatibilities :

- Changed IECoreGL::HitRecord members
It was completely unnecessary, and served only to illustrate my ignorance of the OpenGL API.
This converts a CompoundObject representing a whole block of attributes directly into an IECoreGL::State object. Its current intended use is in Gaffer, where it will allow us to implement a faster Gaffer->GLScene coupling. This does duplicate some functionality from IECoreGL::Renderer, but we're justifying it by the Gaffer refactor being an important step towards a GL scene graph without an awkward Renderer interface in the way.
This allows intrusive_ptr to be used in tbb concurrent unordered containers.
davidsminor added a commit that referenced this pull request Nov 21, 2014
@davidsminor davidsminor merged commit 9e39ecd into ImageEngine:master Nov 21, 2014
@johnhaddon johnhaddon deleted the glImprovements branch November 24, 2014 09:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants