namespace ViewportArray
{
-/** Check if extension is supported
- *
- * @param context Test context
- * @param extension_name Name of extension
- *
- * @return true if extension is supported, false otherwise
- **/
-bool Utils::isExtensionSupported(deqp::Context& context, const GLchar* extension_name)
-{
- const std::vector<std::string>& extensions = context.getContextInfo().getExtensions();
-
- if (std::find(extensions.begin(), extensions.end(), extension_name) == extensions.end())
- {
- return false;
- }
-
- return true;
-}
-
-/** Check if GL context meets version requirements
- *
- * @param gl Functions
- * @param required_major Minimum required MAJOR_VERSION
- * @param required_minor Minimum required MINOR_VERSION
- *
- * @return true if GL context version is at least as requested, false otherwise
- **/
-bool Utils::isGLVersionAtLeast(const glw::Functions& gl, glw::GLint required_major, glw::GLint required_minor)
-{
- glw::GLint major = 0;
- glw::GLint minor = 0;
-
- gl.getIntegerv(GL_MAJOR_VERSION, &major);
- gl.getIntegerv(GL_MINOR_VERSION, &minor);
-
- GLU_EXPECT_NO_ERROR(gl.getError(), "GetIntegerv");
-
- if (major > required_major)
- {
- /* Major is higher than required one */
- return true;
- }
- else if (major == required_major)
- {
- if (minor >= required_minor)
- {
- /* Major is equal to required one */
- /* Minor is higher than or equal to required one */
- return true;
- }
- else
- {
- /* Major is equal to required one */
- /* Minor is lower than required one */
- return false;
- }
- }
- else
- {
- /* Major is lower than required one */
- return false;
- }
-}
-
-/** Replace first occurance of <token> with <text> in <string> starting at <search_posistion>
- *
- * @param token Token string
- * @param search_position Position at which find will start, it is updated to position at which replaced text ends
- * @param text String that will be used as replacement for <token>
- * @param string String to work on
- **/
-void Utils::replaceToken(const glw::GLchar* token, size_t& search_position, const glw::GLchar* text,
- std::string& string)
-{
- const size_t text_length = strlen(text);
- const size_t token_length = strlen(token);
- const size_t token_position = string.find(token, search_position);
-
- string.replace(token_position, token_length, text, text_length);
-
- search_position = token_position + text_length;
-}
-
-/** Replace all occurances of <token> with <text> in <string>
- *
- * @param token Token string
- * @param text String that will be used as replacement for <token>
- * @param string String to work on
- **/
-void Utils::replaceAllTokens(const glw::GLchar* token, const glw::GLchar* text, std::string& string)
-{
- const size_t text_length = strlen(text);
- const size_t token_length = strlen(token);
-
- size_t search_position = 0;
-
- while (1)
- {
- const size_t token_position = string.find(token, search_position);
-
- if (std::string::npos == token_position)
- {
- break;
- }
-
- search_position = token_position + text_length;
-
- string.replace(token_position, token_length, text, text_length);
- }
-}
-
/** Constructor.
*
* @param context CTS context.
*
* @param context Test context
**/
-APIErrors::APIErrors(deqp::Context& context) : TestCase(context, "api_errors", "Test verifies error generated by API")
+APIErrors::APIErrors(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : TestCaseBase(context, extParams, "api_errors", "Test verifies error generated by API")
{
/* Nothing to be done here */
}
*
* @param context Test context
**/
-Queries::Queries(deqp::Context& context) : TestCase(context, "queries", "Test verifies initial state of API")
+Queries::Queries(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : TestCaseBase(context, extParams, "queries", "Test verifies initial state of API")
{
/* Nothing to be done here */
}
for (GLint i = 0; i < max_viewports; ++i)
{
- gl.getIntegeri_v(GL_VIEWPORT, i, &data[i * 4]);
+ gl.getIntegeri_v(GL_SCISSOR_BOX, i, &data[i * 4]);
GLU_EXPECT_NO_ERROR(gl.getError(), "getIntegeri_v");
}
* at least [-32768, 32767];
*/
{
- if ((-32768.0f < viewport_bounds_range[0]) || (32768.0f > viewport_bounds_range[1]))
+ if ((-32768.0f < viewport_bounds_range[0]) || (32767.0f > viewport_bounds_range[1]))
{
m_context.getTestContext().getLog()
<< tcu::TestLog::Message << "Invalid VIEWPORT_BOUNDS_RANGE: " << viewport_bounds_range[0] << " : "
- << viewport_bounds_range[1] << " expected at least: -32768.0f : 32768.0f" << tcu::TestLog::EndMessage;
+ << viewport_bounds_range[1] << " expected at least: -32768.0f : 32767.0f" << tcu::TestLog::EndMessage;
test_result = false;
}
*
* @param context Test context
**/
-ViewportAPI::ViewportAPI(deqp::Context& context)
- : TestCase(context, "viewport_api", "Test verifies that \viewport api\" works as expected")
+ViewportAPI::ViewportAPI(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : TestCaseBase(context, extParams, "viewport_api", "Test verifies that \viewport api\" works as expected")
{
/* Nothing to be done here */
}
*
* @param context Test context
**/
-ScissorAPI::ScissorAPI(deqp::Context& context)
- : TestCase(context, "scissor_api", "Test verifies that \"scissor api\" works as expected")
+ScissorAPI::ScissorAPI(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : TestCaseBase(context, extParams, "scissor_api", "Test verifies that \"scissor api\" works as expected")
{
/* Nothing to be done here */
}
*
* @param context Test context
**/
-DepthRangeAPI::DepthRangeAPI(deqp::Context& context)
- : TestCase(context, "depth_range_api", "Test verifies that \"depth range api\" works as expected")
+DepthRangeAPI::DepthRangeAPI(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : TestCaseBase(context, extParams, "depth_range_api", "Test verifies that \"depth range api\" works as expected")
{
/* Nothing to be done here */
}
*
* @param context Test context
**/
-ScissorTestStateAPI::ScissorTestStateAPI(deqp::Context& context)
- : TestCase(context, "scissor_test_state_api",
- "Test verifies that \"enable/disable api\" works as expected for scissor test")
+ScissorTestStateAPI::ScissorTestStateAPI(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : TestCaseBase(context, extParams, "scissor_test_state_api",
+ "Test verifies that \"enable/disable api\" works as expected for scissor test")
{
/* Nothing to be done here */
}
* @param test_name Test name
* @param test_description Test description
**/
-DrawTestBase::DrawTestBase(deqp::Context& context, const GLchar* test_name, const GLchar* test_description)
- : TestCase(context, test_name, test_description)
+DrawTestBase::DrawTestBase(deqp::Context& context, const glcts::ExtParameters& extParams, const GLchar* test_name,
+ const GLchar* test_description)
+ : TestCaseBase(context, extParams, test_name, test_description)
{
/* Nothing to be done here */
}
*
* @param context Test context
**/
-DrawToSingleLayerWithMultipleViewports::DrawToSingleLayerWithMultipleViewports(deqp::Context& context)
- : DrawTestBase(context, "draw_to_single_layer_with_multiple_viewports",
+DrawToSingleLayerWithMultipleViewports::DrawToSingleLayerWithMultipleViewports(deqp::Context& context,
+ const glcts::ExtParameters& extParams)
+ : DrawTestBase(context, extParams, "draw_to_single_layer_with_multiple_viewports",
"Test verifies that multiple viewports can be used to draw to single layer")
{
/* Nothing to be done here */
*
* @param context Test context
**/
-DynamicViewportIndex::DynamicViewportIndex(deqp::Context& context)
- : DrawTestBase(context, "dynamic_viewport_index",
+DynamicViewportIndex::DynamicViewportIndex(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : DrawTestBase(context, extParams, "dynamic_viewport_index",
"Test verifies that gl_ViewportIndex can be assigned with dynamic value")
{
/* Nothing to be done here */
*
* @param context Test context
**/
-DrawMulitpleViewportsWithSingleInvocation::DrawMulitpleViewportsWithSingleInvocation(deqp::Context& context)
- : DrawTestBase(context, "draw_mulitple_viewports_with_single_invocation",
+DrawMulitpleViewportsWithSingleInvocation::DrawMulitpleViewportsWithSingleInvocation(
+ deqp::Context& context, const glcts::ExtParameters& extParams)
+ : DrawTestBase(context, extParams, "draw_mulitple_viewports_with_single_invocation",
"Test verifies that single invocation can output to multiple viewports")
{
/* Nothing to be done here */
*
* @param context Test context
**/
-ViewportIndexSubroutine::ViewportIndexSubroutine(deqp::Context& context)
- : DrawTestBase(context, "viewport_index_subroutine",
+ViewportIndexSubroutine::ViewportIndexSubroutine(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : DrawTestBase(context, extParams, "viewport_index_subroutine",
"Test verifies subroutines can be used to output data to specific viewport")
{
/* Nothing to be done here */
*
* @param context Test context
**/
-DrawMultipleLayers::DrawMultipleLayers(deqp::Context& context)
- : DrawTestBase(context, "draw_multiple_layers",
+DrawMultipleLayers::DrawMultipleLayers(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : DrawTestBase(context, extParams, "draw_multiple_layers",
"Test verifies that single viewport affects multiple layers in the same way")
{
/* Nothing to be done here */
* @param test_name Test name
* @param test_description Test description
**/
-DrawMultipleLayers::DrawMultipleLayers(deqp::Context& context, const GLchar* test_name, const GLchar* test_description)
- : DrawTestBase(context, test_name, test_description)
+DrawMultipleLayers::DrawMultipleLayers(deqp::Context& context, const glcts::ExtParameters& extParams,
+ const GLchar* test_name, const GLchar* test_description)
+ : DrawTestBase(context, extParams, test_name, test_description)
{
/* Nothing to be done here */
}
* @param test_name Test name
* @param test_description Test description
**/
-Scissor::Scissor(deqp::Context& context)
- : DrawMultipleLayers(context, "scissor", "Test verifies that scissor test is applied as expected")
+Scissor::Scissor(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : DrawMultipleLayers(context, extParams, "scissor", "Test verifies that scissor test is applied as expected")
{
/* Nothing to be done here */
}
* @param test_name Test name
* @param test_description Test description
**/
-ScissorZeroDimension::ScissorZeroDimension(deqp::Context& context)
- : DrawMultipleLayers(context, "scissor_zero_dimension",
+ScissorZeroDimension::ScissorZeroDimension(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : DrawMultipleLayers(context, extParams, "scissor_zero_dimension",
"Test verifies that scissor test discard all fragments when width and height is set to zero")
{
/* Nothing to be done here */
* @param test_name Test name
* @param test_description Test description
**/
-ScissorClear::ScissorClear(deqp::Context& context)
- : DrawMultipleLayers(context, "scissor_clear",
+ScissorClear::ScissorClear(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : DrawMultipleLayers(context, extParams, "scissor_clear",
"Test verifies that Clear is affected only by settings of scissor test in first viewport")
{
/* Nothing to be done here */
* @param test_name Test name
* @param test_description Test description
**/
-DepthRange::DepthRange(deqp::Context& context)
- : DrawTestBase(context, "depth_range", "Test verifies that depth range is applied as expected")
+DepthRange::DepthRange(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : DrawTestBase(context, extParams, "depth_range", "Test verifies that depth range is applied as expected")
{
/* Nothing to be done here */
}
* @param test_name Test name
* @param test_description Test description
**/
-DepthRangeDepthTest::DepthRangeDepthTest(deqp::Context& context)
- : DrawTestBase(context, "depth_range_depth_test",
+DepthRangeDepthTest::DepthRangeDepthTest(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : DrawTestBase(context, extParams, "depth_range_depth_test",
"Test verifies that depth test work as expected with multiple viewports")
{
/* Nothing to be done here */
* @param test_name Test name
* @param test_description Test description
**/
-ProvokingVertex::ProvokingVertex(deqp::Context& context)
- : DrawTestBase(context, "provoking_vertex", "Test verifies that provoking vertex work as expected")
+ProvokingVertex::ProvokingVertex(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : DrawTestBase(context, extParams, "provoking_vertex", "Test verifies that provoking vertex work as expected")
{
/* Nothing to be done here */
}
*
* @param context Rendering context.
**/
-ViewportArrayTests::ViewportArrayTests(deqp::Context& context)
- : TestCaseGroup(context, "viewport_array", "Verifies \"viewport_array\" functionality")
+ViewportArrayTests::ViewportArrayTests(deqp::Context& context, const glcts::ExtParameters& extParams)
+ : TestCaseGroupBase(context, extParams, "viewport_array", "Verifies \"viewport_array\" functionality")
{
/* Left blank on purpose */
}
**/
void ViewportArrayTests::init(void)
{
- addChild(new ViewportArray::APIErrors(m_context));
- addChild(new ViewportArray::Queries(m_context));
- addChild(new ViewportArray::ViewportAPI(m_context));
- addChild(new ViewportArray::ScissorAPI(m_context));
- addChild(new ViewportArray::DepthRangeAPI(m_context));
- addChild(new ViewportArray::ScissorTestStateAPI(m_context));
- addChild(new ViewportArray::DrawToSingleLayerWithMultipleViewports(m_context));
- addChild(new ViewportArray::DynamicViewportIndex(m_context));
- addChild(new ViewportArray::DrawMulitpleViewportsWithSingleInvocation(m_context));
- addChild(new ViewportArray::ViewportIndexSubroutine(m_context));
- addChild(new ViewportArray::DrawMultipleLayers(m_context));
- addChild(new ViewportArray::Scissor(m_context));
- addChild(new ViewportArray::ScissorZeroDimension(m_context));
- addChild(new ViewportArray::ScissorClear(m_context));
- addChild(new ViewportArray::DepthRange(m_context));
- addChild(new ViewportArray::DepthRangeDepthTest(m_context));
- addChild(new ViewportArray::ProvokingVertex(m_context));
+ addChild(new ViewportArray::APIErrors(m_context, m_extParams));
+ addChild(new ViewportArray::Queries(m_context, m_extParams));
+ addChild(new ViewportArray::ViewportAPI(m_context, m_extParams));
+ addChild(new ViewportArray::ScissorAPI(m_context, m_extParams));
+ addChild(new ViewportArray::DepthRangeAPI(m_context, m_extParams));
+ addChild(new ViewportArray::ScissorTestStateAPI(m_context, m_extParams));
+ addChild(new ViewportArray::DrawToSingleLayerWithMultipleViewports(m_context, m_extParams));
+ addChild(new ViewportArray::DynamicViewportIndex(m_context, m_extParams));
+ addChild(new ViewportArray::DrawMulitpleViewportsWithSingleInvocation(m_context, m_extParams));
+ addChild(new ViewportArray::ViewportIndexSubroutine(m_context, m_extParams));
+ addChild(new ViewportArray::DrawMultipleLayers(m_context, m_extParams));
+ addChild(new ViewportArray::Scissor(m_context, m_extParams));
+ addChild(new ViewportArray::ScissorZeroDimension(m_context, m_extParams));
+ addChild(new ViewportArray::ScissorClear(m_context, m_extParams));
+ addChild(new ViewportArray::DepthRange(m_context, m_extParams));
+ addChild(new ViewportArray::DepthRangeDepthTest(m_context, m_extParams));
+ addChild(new ViewportArray::ProvokingVertex(m_context, m_extParams));
}
} /* glcts namespace */