void GLAPIENTRY _mesa_CreateSamplers(GLsizei count, GLuint *samplers) { GET_CURRENT_CONTEXT(ctx); if (!ctx->Extensions.ARB_direct_state_access) { _mesa_error(ctx, GL_INVALID_OPERATION, "glCreateSamplers(" "GL_ARB_direct_state_access is not supported)"); return; } create_samplers(ctx, count, samplers, "glCreateSamplers"); }
static void create_samplers_err(struct gl_context *ctx, GLsizei count, GLuint *samplers, const char *caller) { if (MESA_VERBOSE & VERBOSE_API) _mesa_debug(ctx, "%s(%d)\n", caller, count); if (count < 0) { _mesa_error(ctx, GL_INVALID_VALUE, "%s(n<0)", caller); return; } create_samplers(ctx, count, samplers, caller); }
void GLAPIENTRY _mesa_CreateSamplers_no_error(GLsizei count, GLuint *samplers) { GET_CURRENT_CONTEXT(ctx); create_samplers(ctx, count, samplers, "glCreateSamplers"); }
void GLAPIENTRY _mesa_GenSamplers(GLsizei count, GLuint *samplers) { GET_CURRENT_CONTEXT(ctx); create_samplers(ctx, count, samplers, "glGenSamplers"); }
Handle<Effect> Effect_provider::load(file::Input_stream& stream, Resource_manager& /*resource_manager*/, uint32_t flags) const { rapidjson::Document root; if (!json::parse(root, stream)) { logging::error("Effect_provider::load(): \"" + stream.name() + "\" could not be loaded: failed to parse the file: " + json::read_error(root, stream)); return nullptr; } rapidjson::Value* techniques_node = nullptr; Constant_buffer_description_container constant_buffer_descriptions; Shader_data_layout data_layout_descriptions; std::vector<Effect_sampler::Description> sampler_descriptions; for (auto n = root.MemberBegin(); n != root.MemberEnd(); ++n) { const std::string node_name = n->name.GetString(); const rapidjson::Value& node_value = n->value; if ("techniques" == node_name) { techniques_node = &n->value; } else if ("buffers" == node_name) { Constant_buffer_description_container::load(constant_buffer_descriptions, node_value); for (auto& d : constant_buffer_descriptions.descriptions) { if (d.elements.empty()) { constant_buffer_description_cache_.fill_description_from_class(d); } } } else if ("data_layouts" == node_name) { load_data_type_descriptions(node_value, data_layout_descriptions); } else if ("samplers" == node_name) { load_sampler_descriptions(node_value, sampler_descriptions); } } if (!techniques_node) { return nullptr; } Handle<Effect> effect(new Effect(stream.name())); if (!load_techniques(*effect, *techniques_node, constant_buffer_descriptions, sampler_descriptions, data_layout_descriptions)) { return nullptr; } create_constant_buffers(*effect, constant_buffer_descriptions); create_samplers(*effect, sampler_descriptions); Flags<Options> effect_flags(flags); if (!effect_flags.is_set(Options::Use_custom_constant_buffers)) { effect->create_default_constant_buffers(rendering_tool_.device()); } return effect; }