示例#1
0
static bool ep_compile_pass(struct effect_parser *ep,
		struct gs_effect_technique *tech,
		struct ep_technique *tech_in,
		size_t idx)
{
	struct gs_effect_pass *pass;
	struct ep_pass *pass_in;
	bool success = true;

	pass = tech->passes.array+idx;
	pass_in = tech_in->passes.array+idx;

	pass->name = bstrdup(pass_in->name);
	pass->section = EFFECT_PASS;

	if (!ep_compile_pass_shader(ep, tech, pass, pass_in, idx,
				GS_SHADER_VERTEX)) {
		success = false;
		blog(LOG_ERROR, "Pass (%i) <%s> missing vertex shader!",
				idx, pass->name ? pass->name : "");
	}
	if (!ep_compile_pass_shader(ep, tech, pass, pass_in, idx,
				GS_SHADER_PIXEL)) {
		success = false;
		blog(LOG_ERROR, "Pass (%i) <%s> missing pixel shader!",
				idx, pass->name ? pass->name : "");
	}
	return success;
}
示例#2
0
static bool ep_compile_pass(struct effect_parser *ep,
		struct gs_effect_technique *tech,
		struct ep_technique *tech_in,
		size_t idx)
{
	struct gs_effect_pass *pass;
	struct ep_pass *pass_in;
	bool success = true;

	pass = tech->passes.array+idx;
	pass_in = tech_in->passes.array+idx;

	pass->name = bstrdup(pass_in->name);
	pass->section = EFFECT_PASS;

	if (!ep_compile_pass_shader(ep, tech, pass, pass_in, idx,
				GS_SHADER_VERTEX))
		success = false;

	if (!ep_compile_pass_shader(ep, tech, pass, pass_in, idx,
				GS_SHADER_PIXEL))
		success = false;

	return success;
}