本文整理汇总了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;
}
}
示例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);
}
示例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();
}
}
示例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);
}
示例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;
}
示例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);
}
示例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);
}
}
示例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);
}
示例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);
}
}
示例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);
}
}
示例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);
}
示例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));
}
示例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;
}
示例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;
}
示例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");
}