@ -1416,64 +1416,14 @@ void MeshVisualizerGLTest::construct2D() {
void MeshVisualizerGLTest : : construct2DAsync ( ) {
void MeshVisualizerGLTest : : construct2DAsync ( ) {
constexpr struct {
auto compileState = MeshVisualizerGL2D : : compile ( MeshVisualizerGL2D : : Flag : : Wireframe | MeshVisualizerGL2D : : Flag : : NoGeometryShader ) ;
const char * name ;
CORRADE_COMPARE ( compileState . flags ( ) , MeshVisualizerGL2D : : Flag : : Wireframe | MeshVisualizerGL2D : : Flag : : NoGeometryShader ) ;
MeshVisualizerGL2D : : Flags flags ;
} data {
" wireframe w/o GS " , MeshVisualizerGL2D : : Flag : : Wireframe | MeshVisualizerGL2D : : Flag : : NoGeometryShader
} ;
setTestCaseDescription ( data . name ) ;
# ifndef MAGNUM_TARGET_GLES
if ( ( data . flags & MeshVisualizerGL2D : : Flag : : InstancedObjectId ) & & ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : EXT : : gpu_shader4 > ( ) )
CORRADE_SKIP ( GL : : Extensions : : EXT : : gpu_shader4 : : string ( ) < < " is not supported. " ) ;
# endif
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
if ( data . flags > = MeshVisualizerGL2D : : Flag : : PrimitiveIdFromVertexId & &
# ifndef MAGNUM_TARGET_GLES
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GL300 )
# else
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GLES300 )
# endif
) CORRADE_SKIP ( " gl_VertexID not supported. " ) ;
# endif
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
if ( data . flags & MeshVisualizerGL2D : : Flag : : PrimitiveId & & ! ( data . flags > = MeshVisualizerGL2D : : Flag : : PrimitiveIdFromVertexId ) & &
# ifndef MAGNUM_TARGET_GLES
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GL320 )
# else
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GLES320 )
# endif
) CORRADE_SKIP ( " gl_PrimitiveID not supported. " ) ;
# endif
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
if ( ( data . flags & MeshVisualizerGL2D : : Flag : : Wireframe ) & & ! ( data . flags & MeshVisualizerGL2D : : Flag : : NoGeometryShader ) ) {
# ifndef MAGNUM_TARGET_GLES
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : ARB : : geometry_shader4 > ( ) )
CORRADE_SKIP ( GL : : Extensions : : ARB : : geometry_shader4 : : string ( ) < < " is not supported. " ) ;
# else
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : EXT : : geometry_shader > ( ) )
CORRADE_SKIP ( GL : : Extensions : : EXT : : geometry_shader : : string ( ) < < " is not supported. " ) ;
# endif
# ifdef MAGNUM_TARGET_GLES
if ( GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : NV : : shader_noperspective_interpolation > ( ) )
CORRADE_INFO ( " Using " < < GL : : Extensions : : NV : : shader_noperspective_interpolation : : string ( ) ) ;
# endif
}
# endif
auto compileState = MeshVisualizerGL2D : : compile ( data . flags ) ;
CORRADE_COMPARE ( compileState . flags ( ) , data . flags ) ;
while ( ! compileState . isLinkFinished ( ) )
while ( ! compileState . isLinkFinished ( ) )
Utility : : System : : sleep ( 100 ) ;
Utility : : System : : sleep ( 100 ) ;
MeshVisualizerGL2D shader { std : : move ( compileState ) } ;
MeshVisualizerGL2D shader { std : : move ( compileState ) } ;
CORRADE_COMPARE ( shader . flags ( ) , data . flags ) ;
CORRADE_COMPARE ( shader . flags ( ) , MeshVisualizerGL2D : : Flag : : Wireframe | MeshVisualizerGL2D : : Flag : : NoGeometryShader ) ;
CORRADE_VERIFY ( shader . isLinkFinished ( ) ) ;
CORRADE_VERIFY ( shader . isLinkFinished ( ) ) ;
CORRADE_VERIFY ( shader . id ( ) ) ;
CORRADE_VERIFY ( shader . id ( ) ) ;
{
{
@ -1566,85 +1516,23 @@ void MeshVisualizerGLTest::constructUniformBuffers2D() {
void MeshVisualizerGLTest : : constructUniformBuffers2DAsync ( ) {
void MeshVisualizerGLTest : : constructUniformBuffers2DAsync ( ) {
constexpr struct {
const char * name ;
MeshVisualizerGL2D : : Flags flags ;
UnsignedInt materialCount , drawCount ;
} data {
" multidraw with wireframe w/o GS and vertex ID " , MeshVisualizerGL2D : : Flag : : MultiDraw | MeshVisualizerGL2D : : Flag : : Wireframe | MeshVisualizerGL2D : : Flag : : NoGeometryShader | MeshVisualizerGL2D : : Flag : : VertexId , 8 , 55
} ;
setTestCaseDescription ( data . name ) ;
# ifndef MAGNUM_TARGET_GLES
# ifndef MAGNUM_TARGET_GLES
if ( ( data . flags & MeshVisualizerGL2D : : Flag : : InstancedObjectId ) & & ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : EXT : : gpu_shader4 > ( ) )
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : ARB : : uniform_buffer_object > ( ) )
CORRADE_SKIP ( GL : : Extensions : : EXT : : gpu_shader4 : : string ( ) < < " is not supported. " ) ;
# endif
# ifndef MAGNUM_TARGET_WEBGL
if ( data . flags > = MeshVisualizerGL2D : : Flag : : PrimitiveIdFromVertexId & &
# ifndef MAGNUM_TARGET_GLES
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GL300 )
# else
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GLES300 )
# endif
) CORRADE_SKIP ( " gl_VertexID not supported. " ) ;
# endif
# ifndef MAGNUM_TARGET_WEBGL
if ( data . flags & MeshVisualizerGL2D : : Flag : : PrimitiveId & & ! ( data . flags > = MeshVisualizerGL2D : : Flag : : PrimitiveIdFromVertexId ) & &
# ifndef MAGNUM_TARGET_GLES
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GL320 )
# else
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GLES320 )
# endif
) CORRADE_SKIP ( " gl_PrimitiveID not supported. " ) ;
# endif
# ifndef MAGNUM_TARGET_WEBGL
if ( ( data . flags & MeshVisualizerGL2D : : Flag : : Wireframe ) & & ! ( data . flags & MeshVisualizerGL2D : : Flag : : NoGeometryShader ) ) {
# ifndef MAGNUM_TARGET_GLES
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : ARB : : geometry_shader4 > ( ) )
CORRADE_SKIP ( GL : : Extensions : : ARB : : geometry_shader4 : : string ( ) < < " is not supported. " ) ;
# else
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : EXT : : geometry_shader > ( ) )
CORRADE_SKIP ( GL : : Extensions : : EXT : : geometry_shader : : string ( ) < < " is not supported. " ) ;
# endif
# ifdef MAGNUM_TARGET_GLES
if ( GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : NV : : shader_noperspective_interpolation > ( ) )
CORRADE_INFO ( " Using " < < GL : : Extensions : : NV : : shader_noperspective_interpolation : : string ( ) ) ;
# endif
}
# endif
# ifndef MAGNUM_TARGET_GLES
if ( data . flags & MeshVisualizerGL2D : : Flag : : UniformBuffers & & ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : ARB : : uniform_buffer_object > ( ) )
CORRADE_SKIP ( GL : : Extensions : : ARB : : uniform_buffer_object : : string ( ) < < " is not supported. " ) ;
CORRADE_SKIP ( GL : : Extensions : : ARB : : uniform_buffer_object : : string ( ) < < " is not supported. " ) ;
# endif
# endif
if ( data . flags > = MeshVisualizerGL2D : : Flag : : MultiDraw ) {
auto compileState = MeshVisualizerGL2D : : compile ( MeshVisualizerGL2D : : Flag : : UniformBuffers | MeshVisualizerGL2D : : Flag : : Wireframe | MeshVisualizerGL2D : : Flag : : NoGeometryShader , 8 , 55 ) ;
# ifndef MAGNUM_TARGET_GLES
CORRADE_COMPARE ( compileState . flags ( ) , MeshVisualizerGL2D : : Flag : : UniformBuffers | MeshVisualizerGL2D : : Flag : : Wireframe | MeshVisualizerGL2D : : Flag : : NoGeometryShader ) ;
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : ARB : : shader_draw_parameters > ( ) )
CORRADE_COMPARE ( compileState . materialCount ( ) , 8 ) ;
CORRADE_SKIP ( GL : : Extensions : : ARB : : shader_draw_parameters : : string ( ) < < " is not supported. " ) ;
CORRADE_COMPARE ( compileState . drawCount ( ) , 55 ) ;
# elif !defined(MAGNUM_TARGET_WEBGL)
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : ANGLE : : multi_draw > ( ) )
CORRADE_SKIP ( GL : : Extensions : : ANGLE : : multi_draw : : string ( ) < < " is not supported. " ) ;
# else
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : WEBGL : : multi_draw > ( ) )
CORRADE_SKIP ( GL : : Extensions : : WEBGL : : multi_draw : : string ( ) < < " is not supported. " ) ;
# endif
}
auto compileState = MeshVisualizerGL2D : : compile ( data . flags , data . materialCount , data . drawCount ) ;
CORRADE_COMPARE ( compileState . flags ( ) , data . flags ) ;
CORRADE_COMPARE ( compileState . materialCount ( ) , data . materialCount ) ;
CORRADE_COMPARE ( compileState . drawCount ( ) , data . drawCount ) ;
while ( ! compileState . isLinkFinished ( ) )
while ( ! compileState . isLinkFinished ( ) )
Utility : : System : : sleep ( 100 ) ;
Utility : : System : : sleep ( 100 ) ;
MeshVisualizerGL2D shader { std : : move ( compileState ) } ;
MeshVisualizerGL2D shader { std : : move ( compileState ) } ;
CORRADE_COMPARE ( shader . flags ( ) , data . flags ) ;
CORRADE_COMPARE ( shader . flags ( ) , MeshVisualizerGL2D : : Flag : : UniformBuffers | MeshVisualizerGL2D : : Flag : : Wireframe | MeshVisualizerGL2D : : Flag : : NoGeometryShader ) ;
CORRADE_COMPARE ( shader . materialCount ( ) , 8 ) ;
CORRADE_COMPARE ( shader . drawCount ( ) , 55 ) ;
CORRADE_VERIFY ( shader . isLinkFinished ( ) ) ;
CORRADE_VERIFY ( shader . isLinkFinished ( ) ) ;
CORRADE_VERIFY ( shader . id ( ) ) ;
CORRADE_VERIFY ( shader . id ( ) ) ;
{
{
@ -1718,64 +1606,15 @@ void MeshVisualizerGLTest::construct3D() {
}
}
void MeshVisualizerGLTest : : construct3DAsync ( ) {
void MeshVisualizerGLTest : : construct3DAsync ( ) {
constexpr struct {
auto compileState = MeshVisualizerGL3D : : compile ( MeshVisualizerGL3D : : Flag : : Wireframe | MeshVisualizerGL3D : : Flag : : NoGeometryShader ) ;
const char * name ;
CORRADE_COMPARE ( compileState . flags ( ) , MeshVisualizerGL3D : : Flag : : Wireframe | MeshVisualizerGL3D : : Flag : : NoGeometryShader ) ;
MeshVisualizerGL3D : : Flags flags ;
} data {
" wireframe w/o GS " , MeshVisualizerGL3D : : Flag : : Wireframe | MeshVisualizerGL3D : : Flag : : NoGeometryShader
} ;
setTestCaseDescription ( data . name ) ;
# ifndef MAGNUM_TARGET_GLES
if ( ( data . flags & MeshVisualizerGL3D : : Flag : : InstancedObjectId ) & & ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : EXT : : gpu_shader4 > ( ) )
CORRADE_SKIP ( GL : : Extensions : : EXT : : gpu_shader4 : : string ( ) < < " is not supported. " ) ;
# endif
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
if ( data . flags > = MeshVisualizerGL3D : : Flag : : PrimitiveIdFromVertexId & &
# ifndef MAGNUM_TARGET_GLES
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GL300 )
# else
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GLES300 )
# endif
) CORRADE_SKIP ( " gl_VertexID not supported. " ) ;
# endif
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
if ( data . flags & MeshVisualizerGL3D : : Flag : : PrimitiveId & & ! ( data . flags > = MeshVisualizerGL3D : : Flag : : PrimitiveIdFromVertexId ) & &
# ifndef MAGNUM_TARGET_GLES
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GL320 )
# else
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GLES320 )
# endif
) CORRADE_SKIP ( " gl_PrimitiveID not supported. " ) ;
# endif
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
if ( ( ( data . flags & MeshVisualizerGL3D : : Flag : : Wireframe ) & & ! ( data . flags & MeshVisualizerGL3D : : Flag : : NoGeometryShader ) ) | | ( data . flags & ( MeshVisualizerGL3D : : Flag : : TangentDirection | MeshVisualizerGL3D : : Flag : : BitangentDirection | MeshVisualizerGL3D : : Flag : : BitangentFromTangentDirection | MeshVisualizerGL3D : : Flag : : NormalDirection ) ) ) {
# ifndef MAGNUM_TARGET_GLES
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : ARB : : geometry_shader4 > ( ) )
CORRADE_SKIP ( GL : : Extensions : : ARB : : geometry_shader4 : : string ( ) < < " is not supported. " ) ;
# else
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : EXT : : geometry_shader > ( ) )
CORRADE_SKIP ( GL : : Extensions : : EXT : : geometry_shader : : string ( ) < < " is not supported. " ) ;
# endif
# ifdef MAGNUM_TARGET_GLES
if ( GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : NV : : shader_noperspective_interpolation > ( ) )
CORRADE_INFO ( " Using " < < GL : : Extensions : : NV : : shader_noperspective_interpolation : : string ( ) ) ;
# endif
}
# endif
auto compileState = MeshVisualizerGL3D : : compile ( data . flags ) ;
CORRADE_COMPARE ( compileState . flags ( ) , data . flags ) ;
while ( ! compileState . isLinkFinished ( ) )
while ( ! compileState . isLinkFinished ( ) )
Utility : : System : : sleep ( 100 ) ;
Utility : : System : : sleep ( 100 ) ;
MeshVisualizerGL3D shader { data . flags } ;
// TODO: FIXME MeshVisualizerGL3D shader{std::move(compileState)};
CORRADE_COMPARE ( shader . flags ( ) , data . flags ) ;
MeshVisualizerGL3D shader { MeshVisualizerGL3D : : Flag : : Wireframe | MeshVisualizerGL3D : : Flag : : NoGeometryShader } ;
CORRADE_COMPARE ( shader . flags ( ) , MeshVisualizerGL3D : : Flag : : Wireframe | MeshVisualizerGL3D : : Flag : : NoGeometryShader ) ;
CORRADE_VERIFY ( compileState . isLinkFinished ( ) ) ;
CORRADE_VERIFY ( compileState . isLinkFinished ( ) ) ;
CORRADE_VERIFY ( shader . id ( ) ) ;
CORRADE_VERIFY ( shader . id ( ) ) ;
{
{
@ -1872,80 +1711,27 @@ void MeshVisualizerGLTest::constructUniformBuffers3DAsync() {
MeshVisualizerGL3D : : Flags flags ;
MeshVisualizerGL3D : : Flags flags ;
UnsignedInt materialCount , drawCount ;
UnsignedInt materialCount , drawCount ;
} data {
} data {
" multidraw with wireframe w/o GS and vertex ID " , MeshVisualizerGL3D : : Flag : : MultiDraw | MeshVisualizerGL3D : : Flag : : Wireframe | MeshVisualizerGL3D : : Flag : : NoGeometryShader | MeshVisualizerGL3D : : Flag : : VertexId , 6 , 28
" multiple materials, draws " , MeshVisualizerGL3D : : Flag : : UniformBuffers | MeshVisualizerGL3D : : Flag : : Wireframe | MeshVisualizerGL3D : : Flag : : NoGeometryShader , 8 , 55
} ;
} ;
setTestCaseDescription ( data . name ) ;
setTestCaseDescription ( data . name ) ;
# ifndef MAGNUM_TARGET_GLES
# ifndef MAGNUM_TARGET_GLES
if ( ( data . flags & MeshVisualizerGL3D : : Flag : : InstancedObjectId ) & & ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : EXT : : gpu_shader4 > ( ) )
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : ARB : : uniform_buffer_object > ( ) )
CORRADE_SKIP ( GL : : Extensions : : EXT : : gpu_shader4 : : string ( ) < < " is not supported. " ) ;
# endif
# ifndef MAGNUM_TARGET_WEBGL
if ( data . flags > = MeshVisualizerGL3D : : Flag : : PrimitiveIdFromVertexId & &
# ifndef MAGNUM_TARGET_GLES
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GL300 )
# else
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GLES300 )
# endif
) CORRADE_SKIP ( " gl_VertexID not supported. " ) ;
# endif
# ifndef MAGNUM_TARGET_WEBGL
if ( data . flags & MeshVisualizerGL3D : : Flag : : PrimitiveId & & ! ( data . flags > = MeshVisualizerGL3D : : Flag : : PrimitiveIdFromVertexId ) & &
# ifndef MAGNUM_TARGET_GLES
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GL320 )
# else
! GL : : Context : : current ( ) . isVersionSupported ( GL : : Version : : GLES320 )
# endif
) CORRADE_SKIP ( " gl_PrimitiveID not supported. " ) ;
# endif
# ifndef MAGNUM_TARGET_WEBGL
if ( ( ( data . flags & MeshVisualizerGL3D : : Flag : : Wireframe ) & & ! ( data . flags & MeshVisualizerGL3D : : Flag : : NoGeometryShader ) ) | | ( data . flags & ( MeshVisualizerGL3D : : Flag : : TangentDirection | MeshVisualizerGL3D : : Flag : : BitangentDirection | MeshVisualizerGL3D : : Flag : : BitangentFromTangentDirection | MeshVisualizerGL3D : : Flag : : NormalDirection ) ) ) {
# ifndef MAGNUM_TARGET_GLES
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : ARB : : geometry_shader4 > ( ) )
CORRADE_SKIP ( GL : : Extensions : : ARB : : geometry_shader4 : : string ( ) < < " is not supported. " ) ;
# else
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : EXT : : geometry_shader > ( ) )
CORRADE_SKIP ( GL : : Extensions : : EXT : : geometry_shader : : string ( ) < < " is not supported. " ) ;
# endif
# ifdef MAGNUM_TARGET_GLES
if ( GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : NV : : shader_noperspective_interpolation > ( ) )
CORRADE_INFO ( " Using " < < GL : : Extensions : : NV : : shader_noperspective_interpolation : : string ( ) ) ;
# endif
}
# endif
# ifndef MAGNUM_TARGET_GLES
if ( data . flags & MeshVisualizerGL3D : : Flag : : UniformBuffers & & ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : ARB : : uniform_buffer_object > ( ) )
CORRADE_SKIP ( GL : : Extensions : : ARB : : uniform_buffer_object : : string ( ) < < " is not supported. " ) ;
CORRADE_SKIP ( GL : : Extensions : : ARB : : uniform_buffer_object : : string ( ) < < " is not supported. " ) ;
# endif
# endif
if ( data . flags > = MeshVisualizerGL3D : : Flag : : MultiDraw ) {
auto compileState = MeshVisualizerGL3D : : compile ( MeshVisualizerGL3D : : Flag : : UniformBuffers | MeshVisualizerGL3D : : Flag : : Wireframe | MeshVisualizerGL3D : : Flag : : NoGeometryShader , 8 , 55 ) ;
# ifndef MAGNUM_TARGET_GLES
CORRADE_COMPARE ( compileState . flags ( ) , MeshVisualizerGL3D : : Flag : : UniformBuffers | MeshVisualizerGL3D : : Flag : : Wireframe | MeshVisualizerGL3D : : Flag : : NoGeometryShader ) ;
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : ARB : : shader_draw_parameters > ( ) )
CORRADE_COMPARE ( compileState . materialCount ( ) , 8 ) ;
CORRADE_SKIP ( GL : : Extensions : : ARB : : shader_draw_parameters : : string ( ) < < " is not supported. " ) ;
CORRADE_COMPARE ( compileState . drawCount ( ) , 55 ) ;
# elif !defined(MAGNUM_TARGET_WEBGL)
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : ANGLE : : multi_draw > ( ) )
CORRADE_SKIP ( GL : : Extensions : : ANGLE : : multi_draw : : string ( ) < < " is not supported. " ) ;
# else
if ( ! GL : : Context : : current ( ) . isExtensionSupported < GL : : Extensions : : WEBGL : : multi_draw > ( ) )
CORRADE_SKIP ( GL : : Extensions : : WEBGL : : multi_draw : : string ( ) < < " is not supported. " ) ;
# endif
}
auto compileState = MeshVisualizerGL3D : : compile ( data . flags , data . materialCount , data . drawCount ) ;
CORRADE_COMPARE ( compileState . flags ( ) , data . flags ) ;
CORRADE_COMPARE ( compileState . materialCount ( ) , data . materialCount ) ;
CORRADE_COMPARE ( compileState . drawCount ( ) , data . drawCount ) ;
while ( ! compileState . isLinkFinished ( ) )
while ( ! compileState . isLinkFinished ( ) )
Utility : : System : : sleep ( 100 ) ;
Utility : : System : : sleep ( 100 ) ;
MeshVisualizerGL3D shader { std : : move ( compileState ) } ;
MeshVisualizerGL3D shader { std : : move ( compileState ) } ;
CORRADE_COMPARE ( shader . flags ( ) , data . flags ) ;
CORRADE_COMPARE ( shader . flags ( ) , MeshVisualizerGL3D : : Flag : : UniformBuffers | MeshVisualizerGL3D : : Flag : : Wireframe | MeshVisualizerGL3D : : Flag : : NoGeometryShader ) ;
CORRADE_COMPARE ( compileState . materialCount ( ) , 8 ) ;
CORRADE_COMPARE ( compileState . drawCount ( ) , 55 ) ;
CORRADE_VERIFY ( shader . isLinkFinished ( ) ) ;
CORRADE_VERIFY ( shader . isLinkFinished ( ) ) ;
CORRADE_VERIFY ( shader . id ( ) ) ;
CORRADE_VERIFY ( shader . id ( ) ) ;
{
{