コード例 #1
0
ファイル: main.c プロジェクト: DataFighter/sdl-gpu
GPU_ShaderBlock load_shaders(Uint32* v, Uint32* f, Uint32* p)
{
    *v = load_shader(GPU_VERTEX_SHADER, "data/shaders/time_mod.vert");

    if(!*v)
        GPU_LogError("Failed to load vertex shader: %s\n", GPU_GetShaderMessage());

    *f = load_shader(GPU_FRAGMENT_SHADER, "data/shaders/time_mod.frag");

    if(!*f)
        GPU_LogError("Failed to load fragment shader: %s\n", GPU_GetShaderMessage());

    *p = GPU_LinkShaders(*v, *f);

    if(!*p)
    {
        GPU_ShaderBlock b = {-1, -1, -1, -1};
        GPU_LogError("Failed to link shader program: %s\n", GPU_GetShaderMessage());
        return b;
    }

    {
        GPU_ShaderBlock block = GPU_LoadShaderBlock(*p, "gpu_Vertex", "gpu_TexCoord", "gpu_Color", "gpu_ModelViewProjectionMatrix");
        GPU_ActivateShaderProgram(*p, &block);

        return block;
    }
}
コード例 #2
0
ファイル: shader.cpp プロジェクト: Heark/wesnoth
void shader_program::activate()
{
	block_ = GPU_LoadShaderBlock(program_object_, "vert_vertex",
								 "vert_texture_pos", "vert_draw_color",
								 "model_view_proj");
	GPU_ActivateShaderProgram(program_object_, &block_);
	//NOTE: this line can be removed once we made sure that a sane overlay
	//      will be set before rendering anything.
	set_overlay(image::get_texture("misc/blank.png"));
}