当前位置: 首页>>代码示例>>C++>>正文


C++ piglit_is_extension_supported函数代码示例

本文整理汇总了C++中piglit_is_extension_supported函数的典型用法代码示例。如果您正苦于以下问题:C++ piglit_is_extension_supported函数的具体用法?C++ piglit_is_extension_supported怎么用?C++ piglit_is_extension_supported使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了piglit_is_extension_supported函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: piglit_init

void
piglit_init(int argc, char **argv)
{
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(-1.25, 1.25, -1.25, 1.25, -1, 1);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();

	glShadeModel(GL_FLAT);
	glPixelStorei(GL_PACK_ALIGNMENT, 1);

	glFrontFace(GL_CW);
	glCullFace(GL_FRONT);
	glEnable(GL_CULL_FACE);

	if (piglit_is_extension_supported("GL_ARB_provoking_vertex")) {
		provoking_vertex_first = true;
	}
	else if (piglit_is_extension_supported("GL_EXT_provoking_vertex")) {
		provoking_vertex_first = true;
	}

	if (provoking_vertex_first) {
		GLboolean k;
		glGetBooleanv(GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT, &k);
		quads_follows_pv_convention = k;
	}
}
开发者ID:BNieuwenhuizen,项目名称:piglit,代码行数:29,代码来源:clipflat.c

示例2: piglit_init

void
piglit_init(int argc, char **argv)
{
	GLint max_samples;
	GLuint rb;

	piglit_require_extension("GL_EXT_framebuffer_multisample");

	if (piglit_is_extension_supported("GL_ARB_internalformat_query")) {
		printf("ARB_internalformat_query is supported and "
		       "redefines this behavior; skipping\n");
		piglit_report_result(PIGLIT_SKIP);
	}
	if (piglit_is_extension_supported("GL_ARB_texture_multisample")) {
		printf("ARB_texture_multisample is supposed and "
		       "redefines this behavior; skipping\n");
		piglit_report_result(PIGLIT_SKIP);
	}

	glGetIntegerv(GL_MAX_SAMPLES, &max_samples);

	glGenRenderbuffersEXT(1, &rb);
	glBindRenderbufferEXT(GL_RENDERBUFFER, rb);

	glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER,
					    max_samples + 1,
					    GL_RGBA,
					    1, 1);
	if (!piglit_check_gl_error(GL_INVALID_VALUE))
		piglit_report_result(PIGLIT_FAIL);

	glDeleteRenderbuffersEXT(1, &rb);

	piglit_report_result(PIGLIT_PASS);
}
开发者ID:ThirteenFish,项目名称:piglit,代码行数:35,代码来源:negative-max-samples.c

示例3: atomic_counters_supported

bool
atomic_counters_supported(GLenum shader_stage)
{
        int n = 0;

        switch (shader_stage) {
        case GL_NONE:
        case GL_FRAGMENT_SHADER:
                return true;

        case GL_VERTEX_SHADER:
                glGetIntegerv(GL_MAX_VERTEX_ATOMIC_COUNTERS, &n);
                return n;

        case GL_GEOMETRY_SHADER:
                if (piglit_get_gl_version() >= 32)
                        glGetIntegerv(GL_MAX_GEOMETRY_ATOMIC_COUNTERS, &n);
                return n;

        case GL_TESS_CONTROL_SHADER:
                if (piglit_is_extension_supported("GL_ARB_tessellation_shader"))
                        glGetIntegerv(GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS, &n);
                return n;

        case GL_TESS_EVALUATION_SHADER:
                if (piglit_is_extension_supported("GL_ARB_tessellation_shader"))
                        glGetIntegerv(GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS,
                                      &n);
                return n;

        default:
                assert(!"Unreachable");
                abort();
        }
}
开发者ID:aphogat,项目名称:piglit,代码行数:35,代码来源:common.c

示例4: require_GL_features

/**
 * Ensures the driver supports the required extensions, GL, and GLSL versions.
 * If it doesn't, report PIGLIT_SKIP and exit the test.
 */
void
require_GL_features(enum shader_target test_stage)
{
	int tex_units;

	piglit_require_GLSL_version(shader_version);

	if (swizzling)
		piglit_require_extension("GL_EXT_texture_swizzle");

	switch (sampler.internal_format) {
	case GL_RGBA32I:
	case GL_RGBA16I:
		piglit_require_extension("GL_EXT_texture_integer");
		break;
	case GL_RGBA32UI:
	case GL_RGBA16UI:
		if (piglit_is_extension_supported("GL_EXT_gpu_shader4"))
			piglit_require_gl_version(21);
		else
			piglit_require_gl_version(30);
		break;
	case GL_RGBA32F:
	case GL_RGBA16F:
		piglit_require_extension("GL_ARB_texture_float");
		break;
	}

	switch (sampler.target) {
	case GL_TEXTURE_CUBE_MAP_ARRAY:
		piglit_require_extension("GL_ARB_texture_cube_map_array");
		break;
	case GL_TEXTURE_1D_ARRAY:
	case GL_TEXTURE_2D_ARRAY:
		piglit_require_extension("GL_EXT_texture_array");
		break;
	case GL_TEXTURE_CUBE_MAP:
		if (is_shadow_sampler()) {
			if (piglit_is_extension_supported("GL_EXT_gpu_shader4"))
				piglit_require_gl_version(21);
			else
				piglit_require_gl_version(30);
		}
		break;
	case GL_TEXTURE_RECTANGLE:
		piglit_require_extension("GL_ARB_texture_rectangle");
		break;
	case GL_TEXTURE_BUFFER:
		piglit_require_extension("GL_ARB_texture_buffer_object");
		break;
	case GL_TEXTURE_2D_MULTISAMPLE:
	case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
		piglit_require_extension("GL_ARB_texture_multisample");
	}

	/* If testing in the VS, check for VS texture units */
	glGetIntegerv(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, &tex_units);
	if (test_stage == VS && tex_units <= 0)
		piglit_report_result(PIGLIT_SKIP);
}
开发者ID:RAOF,项目名称:piglit,代码行数:64,代码来源:common.c

示例5: test_subroutine_stages_compute

/* Test subroutine uniform location query with compute. */
static bool
test_subroutine_stages_compute()
{
	GLuint prog, i;

	if (!piglit_is_extension_supported("GL_ARB_shader_subroutine")) {
		piglit_report_subtest_result(PIGLIT_SKIP, __func__);
		return true;
	}

	if (!piglit_is_extension_supported("GL_ARB_compute_shader")) {
		piglit_report_subtest_result(PIGLIT_SKIP, __func__);
		return true;
	}

        prog = piglit_build_simple_program_multiple_shaders(
                     GL_COMPUTE_SHADER, compute_subroutine_text,
                     0);

	glUseProgram(prog);

	/* Iterate through all valid subroutine enums passing invalid name. */
	for (i = 0; i < (sizeof(valid_enums_sub_com)/sizeof(GLenum)); i++) {
		glGetProgramResourceLocation(prog, valid_enums_sub_com[i],
                                             "name");
			if (!piglit_check_gl_error(GL_NO_ERROR))
				piglit_report_result(PIGLIT_FAIL);
	}

	CHECK_SUB(COMPUTE);

	piglit_report_subtest_result(PIGLIT_PASS, __func__);
	return true;
}
开发者ID:Jul13t,项目名称:piglit,代码行数:35,代码来源:resource-location.c

示例6: piglit_init

PIGLIT_GL_TEST_CONFIG_END

void
piglit_init(int argc, char **argv)
{
	bool pass;

        /* We can create depth/stencil textures if either:
         * 1. We have GL 3.0 or later
         * 2. We have GL_EXT_packed_depth_stencil and GL_ARB_depth_texture
         */
	if (piglit_get_gl_version() < 30
	    && !(piglit_is_extension_supported("GL_EXT_packed_depth_stencil") &&
		 piglit_is_extension_supported("GL_ARB_depth_texture"))) {
		printf("OpenGL 3.0 or GL_EXT_packed_depth_stencil + "
		       "GL_ARB_depth_texture is required.\n");
		piglit_report_result(PIGLIT_SKIP);
	}

	pass = test_format(GL_DEPTH24_STENCIL8_EXT,
			   GL_DEPTH_STENCIL_EXT,
			   GL_UNSIGNED_INT_24_8_EXT,
			   4);

	piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
}
开发者ID:BNieuwenhuizen,项目名称:piglit,代码行数:26,代码来源:depth-stencil.c

示例7: piglit_init

void
piglit_init(int argc, char **argv)
{
	if (!piglit_is_extension_supported("GL_ARB_shader_objects") || !piglit_is_extension_supported("GL_ARB_vertex_shader") || !piglit_is_extension_supported("GL_ARB_fragment_shader")) {
		printf("Requires ARB_shader_objects and ARB_{vertex,fragment}_shader\n");
		piglit_report_result(PIGLIT_SKIP);
	}
}
开发者ID:RAOF,项目名称:piglit,代码行数:8,代码来源:glsl-uniform-out-of-bounds.c

示例8: piglit_init

void
piglit_init(int argc, char**argv)
{
	piglit_require_extension("GL_EXT_framebuffer_object");

	have_extension[0] = GL_TRUE;
	have_extension[EXT_packed_depth_stencil] = piglit_is_extension_supported("GL_EXT_packed_depth_stencil");
	have_extension[ARB_framebuffer_object] = piglit_is_extension_supported("GL_ARB_framebuffer_object");
	have_extension[ARB_texture_rg] = piglit_is_extension_supported("GL_ARB_texture_rg");

	piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE);
}
开发者ID:chrisforbes,项目名称:piglit,代码行数:12,代码来源:fbo-storage-formats.c

示例9: piglit_require_fragment_shader

void
piglit_require_fragment_shader(void)
{
	if (piglit_get_gl_version() >= 20) {
		init_functions_from_core();
	} else if (piglit_is_extension_supported("GL_ARB_shader_objects") && piglit_is_extension_supported("GL_ARB_fragment_shader")) {
		init_functions_from_extension();
	} else {
		printf("GLSL vertex shaders are not supported.\n");
		piglit_report_result(PIGLIT_SKIP);
		exit(1);
	}
}
开发者ID:blaztinn,项目名称:piglit,代码行数:13,代码来源:piglit-shader-gl.c

示例10: piglit_require_GLSL

void
piglit_require_GLSL(void)
{
	if (piglit_get_gl_version() >= 20) {
		init_functions_from_core();
	} else if (piglit_is_extension_supported("GL_ARB_shader_objects") && piglit_is_extension_supported("GL_ARB_shading_language_100")) {
		init_functions_from_extension();
	} else {
		printf("GLSL not supported.\n");
		piglit_report_result(PIGLIT_SKIP);
		exit(1);
	}
}
开发者ID:blaztinn,项目名称:piglit,代码行数:13,代码来源:piglit-shader-gl.c

示例11: piglit_init

void
piglit_init(int argc, char **argv)
{
	if (!piglit_is_extension_supported("GL_ARB_imaging") && !piglit_is_extension_supported("GL_EXT_blend_minmax")) {
		printf("Sorry, this program requires either GL_ARB_imaging or "
		       "GL_EXT_blend_minmax.\n");
		piglit_report_result(PIGLIT_SKIP);
	}

	piglit_require_gl_version(14);

	printf("\nAll 4 quads should be the same color.\n");
	glEnable(GL_BLEND);
}
开发者ID:BNieuwenhuizen,项目名称:piglit,代码行数:14,代码来源:blendminmax.c

示例12: supported_target

static bool
supported_target(unsigned i)
{
	/* Array targets are only supported if GLSL is available.
	 */
	if ((target[i].target == GL_TEXTURE_1D_ARRAY
	     || target[i].target == GL_TEXTURE_2D_ARRAY)
	    && (piglit_get_gl_version() < 20
		&& !piglit_is_extension_supported("GL_ARB_fragment_shader")))
		return false;

	return piglit_get_gl_version() >= target[i].gl_version ||
		(target[i].extension &&
		 piglit_is_extension_supported(target[i].extension));
}
开发者ID:aphogat,项目名称:piglit,代码行数:15,代码来源:copyteximage.c

示例13: check_extensions

static bool
check_extensions(GLuint prog, GLenum programInterface)
{
	/* First check the availability of the extensions */
	if ((programInterface == GL_BUFFER_VARIABLE ||
	    programInterface == GL_SHADER_STORAGE_BLOCK ||
	    prog == prog_stor) &&
	    !piglit_is_extension_supported("GL_ARB_shader_storage_buffer_object")) {
		return false;
	}

	if ((programInterface == GL_VERTEX_SUBROUTINE ||
	     programInterface == GL_GEOMETRY_SUBROUTINE ||
	     programInterface == GL_FRAGMENT_SUBROUTINE ||
	     programInterface == GL_COMPUTE_SUBROUTINE ||
	     programInterface == GL_VERTEX_SUBROUTINE_UNIFORM ||
	     programInterface == GL_GEOMETRY_SUBROUTINE_UNIFORM ||
	     programInterface == GL_FRAGMENT_SUBROUTINE_UNIFORM ||
	     programInterface == GL_COMPUTE_SUBROUTINE_UNIFORM ||
	     programInterface == GL_TESS_CONTROL_SUBROUTINE ||
	     programInterface == GL_TESS_EVALUATION_SUBROUTINE ||
	     programInterface == GL_TESS_CONTROL_SUBROUTINE_UNIFORM ||
	     programInterface == GL_TESS_EVALUATION_SUBROUTINE_UNIFORM ||
	     programInterface == GL_COMPUTE_SUBROUTINE_UNIFORM ||
	     prog == prog_sub || prog == prog_sub_tess) &&
	     !piglit_is_extension_supported("GL_ARB_shader_subroutine")) {
		 return false;
	}

	if ((programInterface == GL_TESS_CONTROL_SUBROUTINE ||
	     programInterface == GL_TESS_EVALUATION_SUBROUTINE ||
	     programInterface == GL_TESS_CONTROL_SUBROUTINE_UNIFORM ||
	     programInterface == GL_TESS_EVALUATION_SUBROUTINE_UNIFORM ||
	     prog == prog_sub_tess) &&
	     !piglit_is_extension_supported("GL_ARB_tessellation_shader")) {
		 return false;
	}

	if ((programInterface == GL_COMPUTE_SUBROUTINE ||
	     programInterface == GL_COMPUTE_SUBROUTINE_UNIFORM ||
	     prog == prog_cs) &&
	     !piglit_is_extension_supported("GL_ARB_compute_shader") &&
	     !piglit_is_extension_supported("GL_ARB_shader_image_load_store")) {
		 return false;
	}

	return true;
}
开发者ID:BNieuwenhuizen,项目名称:piglit,代码行数:48,代码来源:getprogramresourceiv.c

示例14: test

GLboolean test(void)
{
	GLboolean all_pass = GL_TRUE;
	int npass = 0, total = 0;
	unsigned semantic, blend, logicop, vpmode, fpmode;
	unsigned vpmodes = 1 + !!piglit_is_extension_supported("GL_ARB_vertex_program");
	unsigned fpmodes = 1 + !!piglit_is_extension_supported("GL_ARB_fragment_program");
	unsigned vert_clamp, frag_clamp;

	glFogi(GL_FOG_MODE, GL_LINEAR);

	for (vert_clamp = 0; vert_clamp < (sanity ? 1 : 3); ++vert_clamp)
	for (frag_clamp = sanity ? 1 : 0; frag_clamp < (sanity ? 2 : 3); ++frag_clamp)
	for (semantic = 0; semantic < 2; ++semantic)
	for (blend = 0; blend < 4; ++blend)
	for (logicop = 0; logicop < 2; ++logicop)
	for (vpmode = 0; vpmode < vpmodes; ++vpmode)
	for (fpmode = 0; fpmode < fpmodes; ++fpmode)
	{
		GLboolean pass;

		if (!fpmode && semantic)
			continue;

		pass = test_one(vert_clamp, frag_clamp, semantic,
				blend, logicop, vpmode, fpmode);

		if (pass) {
			npass++;
		}
		else {
#if 0
			/* Enable this code to re-run the failed test.
			 * It's easy to set a breakpoint here to start debugging.
			 */
			pass = test_one(vert_clamp, frag_clamp, semantic,
					blend, logicop, vpmode, fpmode);
#endif
		}

		total++;

		all_pass = all_pass && pass;
	}

	printf("Summary: %i/%i passed.\n", npass, total);
	return all_pass;
}
开发者ID:BNieuwenhuizen,项目名称:piglit,代码行数:48,代码来源:render.c

示例15: piglit_init

void
piglit_init(int argc, char **argv)
{
	int i;
	GLuint vs;

	/* Parse params */
	if (argc != 2)
		print_usage_and_exit(argv[0]);
	for (i = 0; i < ARRAY_SIZE(tests); i++) {
		if (strcmp(argv[1], tests[i].name) == 0) {
			test = &tests[i];
			break;
		}
	}
	if (test == NULL)
		print_usage_and_exit(argv[0]);

	piglit_require_GLSL_version(110);
	if (!piglit_is_extension_supported("GL_NV_primitive_restart") &&
	    piglit_get_gl_version() < 31) {
		printf("GL_NV_primitive_restart or GL 3.1 required\n");
		piglit_report_result(PIGLIT_SKIP);
	}

	vs = piglit_compile_shader_text(GL_VERTEX_SHADER, vs_text);
	prog = piglit_link_simple_program(vs, 0);
	if (!prog)
		piglit_report_result(PIGLIT_FAIL);
	glDeleteShader(vs);
	vertex_attr = glGetAttribLocation(prog, "vertex");
	window_size_loc = glGetUniformLocation(prog, "window_size");
	offset_loc = glGetUniformLocation(prog, "offset");
	color_loc = glGetUniformLocation(prog, "color");
}
开发者ID:ThirteenFish,项目名称:piglit,代码行数:35,代码来源:primitive-restart-draw-mode.c


注:本文中的piglit_is_extension_supported函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。