Browse Source

Test: simplify Query tests.

Don't use external resources for *two line* shaders, don't setup whole
framebuffer pipeline just to use transform feedback.
pull/77/head
Vladimír Vondruš 12 years ago
parent
commit
57bf08b929
  1. 16
      src/Magnum/Test/CMakeLists.txt
  2. 27
      src/Magnum/Test/PrimitiveQueryGLTest.cpp
  3. 3
      src/Magnum/Test/QueryGLTestFiles/MyShader.frag
  4. 5
      src/Magnum/Test/QueryGLTestFiles/MyShader.vert
  5. 7
      src/Magnum/Test/QueryGLTestFiles/resources.conf
  6. 13
      src/Magnum/Test/SampleQueryGLTest.cpp

16
src/Magnum/Test/CMakeLists.txt

@ -51,6 +51,7 @@ if(BUILD_GL_TESTS)
corrade_add_test(FramebufferGLTest FramebufferGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES})
corrade_add_test(MeshGLTest MeshGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES})
corrade_add_test(RenderbufferGLTest RenderbufferGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES})
corrade_add_test(SampleQueryGLTest SampleQueryGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES})
corrade_add_test(TextureGLTest TextureGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES})
corrade_add_test(TimeQueryGLTest TimeQueryGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES})
@ -60,18 +61,6 @@ if(BUILD_GL_TESTS)
${AbstractShaderProgramGLTest_RES}
LIBRARIES ${GL_TEST_LIBRARIES})
corrade_add_resource(QueryGLTest_RES QueryGLTestFiles/resources.conf)
if(NOT MAGNUM_TARGET_GLES2)
corrade_add_test(PrimitiveQueryGLTest
PrimitiveQueryGLTest.cpp
${QueryGLTest_RES}
LIBRARIES ${GL_TEST_LIBRARIES})
endif()
corrade_add_test(SampleQueryGLTest
SampleQueryGLTest.cpp
${QueryGLTest_RES}
LIBRARIES ${GL_TEST_LIBRARIES})
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/configure.h)
include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
@ -79,8 +68,9 @@ if(BUILD_GL_TESTS)
if(NOT MAGNUM_TARGET_GLES2)
corrade_add_test(BufferImageGLTest BufferImageGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES})
corrade_add_test(TextureArrayGLTest TextureArrayGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES})
corrade_add_test(MultisampleTextureGLTest MultisampleTextureGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES})
corrade_add_test(PrimitiveQueryGLTest PrimitiveQueryGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES})
corrade_add_test(TextureArrayGLTest TextureArrayGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES})
endif()
if(NOT MAGNUM_TARGET_GLES)

27
src/Magnum/Test/PrimitiveQueryGLTest.cpp

@ -28,12 +28,10 @@
#include "Magnum/AbstractShaderProgram.h"
#include "Magnum/Buffer.h"
#include "Magnum/Framebuffer.h"
#include "Magnum/Mesh.h"
#include "Magnum/PrimitiveQuery.h"
#include "Magnum/Renderbuffer.h"
#include "Magnum/RenderbufferFormat.h"
#include "Magnum/Shader.h"
#include "Magnum/Math/Vector2.h"
#include "Magnum/Test/AbstractOpenGLTester.h"
namespace Magnum { namespace Test {
@ -61,28 +59,19 @@ void PrimitiveQueryGLTest::query() {
typedef Attribute<0, Vector2> Position;
explicit MyShader() {
Utility::Resource rs("QueryGLTest");
Shader vert(Version::GL210, Shader::Type::Vertex);
Shader frag(Version::GL210, Shader::Type::Fragment);
vert.addSource(rs.get("MyShader.vert"));
frag.addSource(rs.get("MyShader.frag"));
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({vert, frag}));
attachShaders({vert, frag});
CORRADE_INTERNAL_ASSERT_OUTPUT(vert.addSource(
"attribute lowp vec4 position;\n"
"void main() {\n"
" gl_Position = position;\n"
"}\n").compile());
attachShader(vert);
CORRADE_INTERNAL_ASSERT_OUTPUT(link());
}
} shader;
Renderbuffer renderbuffer;
renderbuffer.setStorage(RenderbufferFormat::RGBA8, Vector2i(32));
Framebuffer framebuffer({{}, Vector2i(32)});
framebuffer.attachRenderbuffer(Framebuffer::ColorAttachment(0), renderbuffer);
constexpr Vector2 data[9];
Buffer vertices;
vertices.setData(data, BufferUsage::StaticDraw);
@ -97,7 +86,7 @@ void PrimitiveQueryGLTest::query() {
PrimitiveQuery q{PrimitiveQuery::Target::PrimitivesGenerated};
q.begin();
framebuffer.bind(FramebufferTarget::ReadDraw);
Renderer::enable(Renderer::Feature::RasterizerDiscard);
mesh.draw(shader);
q.end();

3
src/Magnum/Test/QueryGLTestFiles/MyShader.frag

@ -1,3 +0,0 @@
void main() {
gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
}

5
src/Magnum/Test/QueryGLTestFiles/MyShader.vert

@ -1,5 +0,0 @@
attribute lowp vec4 position;
void main() {
gl_Position = position;
}

7
src/Magnum/Test/QueryGLTestFiles/resources.conf

@ -1,7 +0,0 @@
group=QueryGLTest
[file]
filename=MyShader.vert
[file]
filename=MyShader.frag

13
src/Magnum/Test/SampleQueryGLTest.cpp

@ -67,8 +67,6 @@ namespace {
#ifndef DOXYGEN_GENERATING_OUTPUT
MyShader::MyShader() {
Utility::Resource rs("QueryGLTest");
#ifndef MAGNUM_TARGET_GLES
Shader vert(Version::GL210, Shader::Type::Vertex);
Shader frag(Version::GL210, Shader::Type::Fragment);
@ -77,8 +75,15 @@ MyShader::MyShader() {
Shader frag(Version::GLES200, Shader::Type::Fragment);
#endif
vert.addSource(rs.get("MyShader.vert"));
frag.addSource(rs.get("MyShader.frag"));
vert.addSource(
"attribute lowp vec4 position;\n"
"void main() {\n"
" gl_Position = position;\n"
"}\n");
frag.addSource(
"void main() {\n"
" gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\n"
"}\n");
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({vert, frag}));

Loading…
Cancel
Save