• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ create_shader函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: create_program

unsigned int create_program(const char *vsdr, const char *psdr)
{
	unsigned int vs, ps, prog;
	int status;

	if(!(vs = create_shader(GL_VERTEX_SHADER, vsdr))) {
		return 0;
	}
	if(!(ps = create_shader(GL_FRAGMENT_SHADER, psdr))) {
		glDeleteShader(vs);
		return 0;
	}

	prog = glCreateProgram();
	glAttachShader(prog, vs);
	glAttachShader(prog, ps);
	glLinkProgram(prog);

	glGetProgramiv(prog, GL_LINK_STATUS, &status);
	if(!status) {
		fprintf(stderr, "failed to link shader program\n");
		glDeleteProgram(prog);
		prog = 0;
	}
	return prog;
}
开发者ID:SStalker,项目名称:Asteroids,代码行数:26,代码来源:distfield.c


示例2: setup

    void setup() {
        GLuint vertex_shader = create_shader("vertex.shd", GL_VERTEX_SHADER);
        GLuint fragment_shader = create_shader("fragment.shd", GL_FRAGMENT_SHADER);

        program = glCreateProgram();
        glAttachShader(program, vertex_shader);
        glAttachShader(program, fragment_shader);
        glLinkProgram(program);

        glDeleteShader(vertex_shader);
        glDeleteShader(fragment_shader);

        glGenVertexArrays(1, &vertex_array_object);
        glBindVertexArray(vertex_array_object);

        glGenTextures(1, &texture);
        glBindTexture(GL_TEXTURE_2D, texture);
        glTexStorage2D(GL_TEXTURE_2D,
                       1, // Mipmap level
                       GL_RGBA32F,
                       256, 256);

        std::unique_ptr<float[]> texture = createTexture();
        glTexSubImage2D(GL_TEXTURE_2D,
                        0, // level 0
                        0, 0, // offset,
                        256, 256, // size
                        GL_RGBA,
                        GL_FLOAT,
                        texture.get());

        texture.reset();
    }
开发者ID:mlackman,项目名称:study_opengl,代码行数:33,代码来源:main.cpp


示例3: create_programme_from_files

GLuint create_programme_from_files ( const char* vert_file_name, const char* frag_file_name) {
    GLuint vert, frag, programme;
    assert (create_shader (vert_file_name, &vert, GL_VERTEX_SHADER));
    assert (create_shader (frag_file_name, &frag, GL_FRAGMENT_SHADER));
    assert (create_programme (vert, frag, &programme));
    return programme;
}
开发者ID:cognoscola,项目名称:simple_level_editor,代码行数:7,代码来源:shader_loader.cpp


示例4: init_shaders

int init_shaders(void)
{
	GLuint vertex_shader = create_shader("geometry_square.vs", GL_VERTEX_SHADER);
	if (vertex_shader == 0)
		return 0;

	GLuint fragment_shader = create_shader("geometry_square.fs", GL_FRAGMENT_SHADER);
	if (fragment_shader == 0)
		return 0;

	// Link vertex shader and fragment shader
	program = glCreateProgram();
	glAttachShader(program, vertex_shader);
	glAttachShader(program, fragment_shader);
	glLinkProgram(program);

	GLint link_ok = GL_FALSE;
	glGetProgramiv(program, GL_LINK_STATUS, &link_ok);
	if (!link_ok)
	{
		fprintf(stderr, "glLinkProgram: ");
		print_log(program);
	}

	// Bind shader variables
	const char* attribute_name = "coord3d";
	attribute_coord3d = glGetAttribLocation(program, attribute_name);
	if (attribute_coord3d == -1)
	{
		fprintf(stderr, "Cound not bind attribute %s\n", attribute_name);
		return 0;
	}

	return 1;
}
开发者ID:Clearlove1992,项目名称:GraphicsDemos,代码行数:35,代码来源:geometry_square.cpp


示例5: create_program

static GLuint create_program(const char *vsh, const char *fsh)
{
    // Build shaders
    GLuint vertex_shader = create_shader(vsh, GL_VERTEX_SHADER);
    GLuint fragment_shader = create_shader(fsh, GL_FRAGMENT_SHADER);
    
    // Create program
    GLuint program = glCreateProgram();
    
    // Attach shaders
    glAttachShader(program, vertex_shader);
    glAttachShader(program, fragment_shader);
    
    // Link program
    glLinkProgram(program);
    // Check for errors
    GLint status;
    glGetProgramiv(program, GL_LINK_STATUS, &status);
    
    if (status == GL_FALSE) {
        GLchar messages[1024];
        glGetProgramInfoLog(program, sizeof(messages), 0, &messages[0]);
        fprintf(stderr, "GLSL Program Error: %s", messages);
    }
    
    // Delete shaders
    glDeleteShader(vertex_shader);
    glDeleteShader(fragment_shader);
    
    return program;
}
开发者ID:LIJI32,项目名称:SameBoy,代码行数:31,代码来源:shader.c


示例6: create_gs_program

GLuint create_gs_program(const char *vertexfile, const char *geometryfile, const char *fragmentfile, GLint input, GLint output, GLint vertices) {
	GLuint program = glCreateProgram();
	GLuint shader;
	if (vertexfile) {
		shader = create_shader(vertexfile, GL_VERTEX_SHADER);
		if (!shader)
			return 0;
		glAttachShader(program, shader);
	}
	if (geometryfile) {
		shader = create_shader(geometryfile, GL_GEOMETRY_SHADER);
		if (!shader)
			return 0;
		glAttachShader(program, shader);
		glProgramParameteriEXT(program, GL_GEOMETRY_INPUT_TYPE_EXT, input);
		glProgramParameteriEXT(program, GL_GEOMETRY_OUTPUT_TYPE_EXT, output);
		glProgramParameteriEXT(program, GL_GEOMETRY_VERTICES_OUT_EXT, vertices);
	}
	if (fragmentfile) {
		shader = create_shader(fragmentfile, GL_FRAGMENT_SHADER);
		if (!shader)
			return 0;
		glAttachShader(program, shader);
	}
	glLinkProgram(program);
	GLint link_ok = GL_FALSE;
	glGetProgramiv(program, GL_LINK_STATUS, &link_ok);
	if (!link_ok) {
		fprintf(stderr, "glLinkProgram:");
		print_log(program);
		glDeleteProgram(program);
		return 0;
	}
	return program;
}
开发者ID:bcosenza,项目名称:bsh,代码行数:35,代码来源:Shader_utils.cpp


示例7: fprintf

/*
Constructor for the shader. Reads two files and creates vertex shader and fragment shader as
well as links them
*/
Shader::Shader(char* vertexFile, char* fragmentFile)
{
	if((VertexShader = create_shader(vertexFile, GL_VERTEX_SHADER)) == 0)
	{
		fprintf(stderr, "Could not create vertex shader.");
		return;
	}
	if((FragmentShader = create_shader(fragmentFile, GL_FRAGMENT_SHADER)) == 0)
	{
		fprintf(stderr, "Could not create fragment shader.");
		return;
	}

	Program = glCreateProgram();
	glAttachShader(Program, VertexShader);
	glAttachShader(Program, FragmentShader);
	glLinkProgram(Program);

	GLint linkOk = GL_FALSE;
	glGetProgramiv(Program, GL_LINK_STATUS, &linkOk);
	if(!linkOk)
	{
		fprintf(stderr, "glLinkProgram: ");
		print_log(Program);
		return;
	}
}
开发者ID:steenstn,项目名称:SteenGraph,代码行数:31,代码来源:Shader.cpp


示例8: create_program

static void
create_program(struct nested_client *client,
	       const char *vert, const char *frag)
{
  GLint status;

  client->vert = create_shader(vert, GL_VERTEX_SHADER);
  client->frag = create_shader(frag, GL_FRAGMENT_SHADER);

  client->program = glCreateProgram();
  glAttachShader(client->program, client->frag);
  glAttachShader(client->program, client->vert);
  glBindAttribLocation(client->program, POS, "pos");
  glBindAttribLocation(client->program, COL, "color");
  glLinkProgram(client->program);

  glGetProgramiv(client->program, GL_LINK_STATUS, &status);
  if (!status) {
    char log[1000];
    GLsizei len;
    glGetProgramInfoLog(client->program, 1000, &len, log);
    fprintf(stderr, "Error: linking:\n%*s\n", len, log);
    exit(1);
  }

  client->rotation =
    glGetUniformLocation(client->program, "rotation");
}
开发者ID:Igalia,项目名称:webkitgtk-wayland-proto,代码行数:28,代码来源:client.c


示例9: create_program

GLuint create_program(const char *vertexfile, const char *fragmentfile) {
	GLuint program = glCreateProgram();
	GLuint shader;

	if(vertexfile) {
		shader = create_shader(vertexfile, GL_VERTEX_SHADER);
		if(!shader)
			return 0;
		glAttachShader(program, shader);
	}

	if(fragmentfile) {
		shader = create_shader(fragmentfile, GL_FRAGMENT_SHADER);
		if(!shader)
			return 0;
		glAttachShader(program, shader);
	}

	glLinkProgram(program);
	GLint link_ok = GL_FALSE;
	glGetProgramiv(program, GL_LINK_STATUS, &link_ok);
	if (!link_ok) {
		fprintf(stderr, "glLinkProgram:");
		print_log(program);
		glDeleteProgram(program);
		return 0;
	}

	return program;
}
开发者ID:toshipiazza,项目名称:Mandelbrot-OpenGL,代码行数:30,代码来源:shader_utils.cpp


示例10: pos_

fractal_t::fractal_t()
    : pos_(0.5, 0), scale_factor_(1)
{
#ifdef USE_CORE_OPENGL
   TwInit(TW_OPENGL_CORE, NULL);
#else
   TwInit(TW_OPENGL, NULL);
#endif
   // Определение "контролов" GUI
   TwBar *bar = TwNewBar("Parameters");
   TwDefine(" Parameters size='300 50' color='70 100 120' valueswidth=220 iconpos=topleft");

   TwAddButton(bar, "Fullscreen toggle", toggle_fullscreen_callback, NULL,
               " label='Toggle fullscreen mode' key=f");

   // Создание шейдеров
   vs_ = create_shader(GL_VERTEX_SHADER  , "shaders//fractal.glslvs");
   fs_ = create_shader(GL_FRAGMENT_SHADER, "shaders//fractal.glslfs");
   // Создание программы путём линковки шейдерова
   program_ = create_program(vs_, fs_);
   // Создание буфера с вершинными данными
   init_buffer();
   // Создание VAO
   init_vertex_array();
}
开发者ID:Icemore,项目名称:homework,代码行数:25,代码来源:fractal.cpp


示例11: initializeGl

static void initializeGl()
{
  GLuint frag, vert;
  GLuint program;
  GLint status;
  
  frag = create_shader(frag_shader_text, GL_FRAGMENT_SHADER);
  vert = create_shader(vert_shader_text, GL_VERTEX_SHADER);
  
  program = glCreateProgram();
  glAttachShader(program, frag);
  glAttachShader(program, vert);
  glLinkProgram(program);
  
  glGetProgramiv(program, GL_LINK_STATUS, &status);
  if (!status) {
    char log[1000];
    GLsizei len;
    glGetProgramInfoLog(program, 1000, &len, log);
    fprintf(stderr, "Error: linking:\n%*s\n", len, log);
    exit(1);
  }
  
  glUseProgram(program);
  
  glPos = 0;
  glCol = 1;
  
  glBindAttribLocation(program, glPos, "pos");
  glBindAttribLocation(program, glCol, "color");
  glLinkProgram(program);
  
  glRotationUniform = glGetUniformLocation(program, "rotation");
}
开发者ID:emutavchi,项目名称:pxCore,代码行数:34,代码来源:SimpleOpenGL.cpp


示例12: initPointClouds

void initPointClouds(const char* vertS, const char* fragS, float pntSize) {

    GLint link_ok = GL_FALSE;

    GLuint vs, fs;
    vs = create_shader(vertS, GL_VERTEX_SHADER);
    fs = create_shader(fragS, GL_FRAGMENT_SHADER);
    //printf("vs=%i fs=%i\n",vs,fs);
    __pg.Partprogram = glCreateProgram();
    glAttachShader(__pg.Partprogram, vs);
    glAttachShader(__pg.Partprogram, fs);
    glLinkProgram(__pg.Partprogram);
    glGetProgramiv(__pg.Partprogram, GL_LINK_STATUS, &link_ok);
    if (!link_ok) {
        printf("particle glLinkProgram error \n");
        print_log(__pg.Partprogram);
        //    return 0;
    }

    __pg.part_vert_attrib =
        getShaderLocation(shaderAttrib, __pg.Partprogram, "vertex_attrib");
    __pg.part_mvp_uniform =
        getShaderLocation(shaderUniform, __pg.Partprogram, "mvp_uniform");
    __pg.part_tex_uniform =
        getShaderLocation(shaderUniform, __pg.Partprogram, "u_texture");

    __pg.part_size_uniform =
        getShaderLocation(shaderUniform, __pg.Partprogram, "u_point_size");
    glUseProgram(__pg.Partprogram);
    glUniform1f(__pg.part_size_uniform, pntSize);

}
开发者ID:PDKK,项目名称:doubleHexapod,代码行数:32,代码来源:support.c


示例13: params

Program::Program(map<string, GLint> params, string shader_name) : params(params) {
	if ((vs = create_shader((shader_name+".v.glsl").c_str(), GL_VERTEX_SHADER))   == 0) exit(-1);
	if ((fs = create_shader((shader_name+".f.glsl").c_str(), GL_FRAGMENT_SHADER)) == 0) exit(-1);

	GLint compile_ok = GL_FALSE, link_ok = GL_FALSE;

	id = glCreateProgram();
	glAttachShader(id, vs);
	glAttachShader(id, fs);
	glLinkProgram(id);
	glGetProgramiv(id, GL_LINK_STATUS, &link_ok);
	if (!link_ok) {
		fprintf(stderr, "glLinkProgram:");
		print_log(id);
		exit(-1);
	}

	for(auto& kv : this->params){
		if(kv.first.substr(0, 7) == "uniform"){
			bindUniform(kv.first.substr(8).c_str(), kv.second, id); /*uniform*/
		}
		else{
			bindAttribute(kv.first.substr(10).c_str(), kv.second, id); /*attribute*/
		}
	}
}
开发者ID:Darks10,项目名称:HappyLand,代码行数:26,代码来源:Program.cpp


示例14: init_resources

int init_resources()
{
	//added in the stuff for working with the color buffers here:
	GLfloat triangle_colors[] = {
		1.0, 1.0, 0.0,
		0.0, 0.0, 1.0,
		1.0, 0.0, 0.0,
		};
	glGenBuffers(1, &vbo_triangle_colors);//these are just like below, so shouldn't be anything
	glBindBuffer(GL_ARRAY_BUFFER, vbo_triangle_colors);//new to you. gen buffer, pass stuff
	glBufferData(GL_ARRAY_BUFFER, sizeof(triangles_colors), triangle_colors, GL_STATIC_DRAW);
	glBindBuffer(GL_ARRAY_BUFFER, 0);//and then lastly unbind.


	GLfloat triangle_vertices[] = {
		 0.0,  0.8,
		-0.8, -0.8,
		 0.8, -0.8,
		};
	glGenBuffers(1, &vbo_triangle);
	glBindBuffer(GL_ARRAY_BUFFER, vbo_triangle);
	glBufferData(GL_ARRAY_BUFFER, sizeof(triangle_vertices), triangle_vertices, GL_STATIC_DRAW);
	glBindBuffer(GL_ARRAY_BUFFER, 0);	
	GLint link_ok = GL_FALSE;

	GLuint vs, fs;
	if ((vs = create_shader("triangle.v.glsl", GL_VERTEX_SHADER))   == 0) return 0;
	if ((fs = create_shader("triangle.f.glsl", GL_FRAGMENT_SHADER)) == 0) return 0;

	program = glCreateProgram();
	glAttachShader(program, vs);
	glAttachShader(program, fs);
	glLinkProgram(program);
	glGetProgramiv(program, GL_LINK_STATUS, &link_ok);
	if (!link_ok)
	{
		fprintf(stderr, "glLinkProgram:");
		return 0;
	}

	const char* attribute_name = "coord2d";	
	attribute_coord2d = glGetAttribLocation(program, attribute_name);
	if (attribute_coord2d == -1) 
	{
		fprintf(stderr, "Could not bind attribute %s\n", attribute_name);
		return 0;
	}

	//this again should look familiar. 
	attribute_name = "v_color";
	attribute_v_color = glGetAttribLocation(program, attribute_name);
	if (attribute_v_color == -1)
	{
		fprintf(stderr, "Could not bind attribute %s\n", attribute_name);
		return 0;
	}

	return 1;
}	
开发者ID:Narcolapser,项目名称:Littlefoot-Landmines,代码行数:59,代码来源:s5.c


示例15: LoadShader

void Shader::LoadShader(const char* vertex,const char* fragment) {
    std::vector<GLuint>shaders;
    shaders.push_back(create_shader(vertex,GL_VERTEX_SHADER));
    shaders.push_back(create_shader(fragment,GL_FRAGMENT_SHADER));

    GLuint ProgramID=create_program(shaders);
    programID=ProgramID;
}
开发者ID:tim099,项目名称:GameTest,代码行数:8,代码来源:Shader.cpp


示例16: createObj

int createObj(struct obj_t *obj, int numVerts, float *verts, float *txVert,
              float *norms, char *vertShader, char *fragShader)
{
    obj->num_verts = numVerts;

    glGenBuffers(1, &obj->vbo_vert);
    glBindBuffer(GL_ARRAY_BUFFER, obj->vbo_vert);
    glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 3 * numVerts, verts,
                 GL_STATIC_DRAW);

    glGenBuffers(1, &obj->vbo_tex);
    glBindBuffer(GL_ARRAY_BUFFER, obj->vbo_tex);
    glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 2 * numVerts, txVert,
                 GL_STATIC_DRAW);

    glGenBuffers(1, &obj->vbo_norm);
    glBindBuffer(GL_ARRAY_BUFFER, obj->vbo_norm);
    glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 3 * numVerts, norms,
                 GL_STATIC_DRAW);

    GLint link_ok = GL_FALSE;

    GLuint vs, fs;
    if ((vs = create_shader(vertShader, GL_VERTEX_SHADER)) == 0)
        return 0;
    if ((fs = create_shader(fragShader, GL_FRAGMENT_SHADER)) == 0)
        return 0;

    obj->program = glCreateProgram();
    glAttachShader(obj->program, vs);
    glAttachShader(obj->program, fs);
    glLinkProgram(obj->program);
    glGetProgramiv(obj->program, GL_LINK_STATUS, &link_ok);
    if (!link_ok) {
        printf("glLinkProgram:");
        print_log(obj->program);
        return 0;
    }

    obj->vert_attrib =
        getShaderLocation(shaderAttrib, obj->program, "vertex_attrib");
    obj->tex_attrib =
        getShaderLocation(shaderAttrib, obj->program, "uv_attrib");
    obj->norm_attrib =
        getShaderLocation(shaderAttrib, obj->program, "norm_attrib");
    obj->mvp_uniform =
        getShaderLocation(shaderUniform, obj->program, "mvp_uniform");
    obj->mv_uniform =
        getShaderLocation(shaderUniform, obj->program, "mv_uniform");
    obj->tex_uniform =
        getShaderLocation(shaderUniform, obj->program, "u_texture");
    obj->lightDir_uniform =
        getShaderLocation(shaderUniform, obj->program, "u_lightDir");
    obj->viewDir_uniform =
        getShaderLocation(shaderUniform, obj->program, "u_viewDir");


}
开发者ID:PDKK,项目名称:PodDisplay,代码行数:58,代码来源:obj.c


示例17: init_gl

static void
init_gl(struct window *window)
{
	GLuint frag, vert;
	GLuint program;
	GLint status;

	frag = create_shader(window, frag_shader_text, GL_FRAGMENT_SHADER);
	vert = create_shader(window, vert_shader_text, GL_VERTEX_SHADER);

	program = glCreateProgram();

    if (g_UseBinary) {
        load_program_binary("simple-egl-shader.fx", 0x9130, program);

        glUseProgram(program);
	
        window->gl.pos = 0;
        window->gl.col = 1;

        glBindAttribLocation(program, window->gl.pos, "pos");
        glBindAttribLocation(program, window->gl.col, "color");

    }
    else
    {
        glAttachShader(program, frag);
        glAttachShader(program, vert);
        glLinkProgram(program);

        glGetProgramiv(program, GL_LINK_STATUS, &status);
        if (!status) {
            char log[1000];
            GLsizei len;
            glGetProgramInfoLog(program, 1000, &len, log);
            fprintf(stderr, "Error: linking:\n%*s\n", len, log);
            exit(1);
        }

        if (g_CompileBinary) {
            compile_program_binary(program, "simple-egl-shader.fx");
            exit(EXIT_SUCCESS);
        }

        glUseProgram(program);
	
        window->gl.pos = 0;
        window->gl.col = 1;

        glBindAttribLocation(program, window->gl.pos, "pos");
        glBindAttribLocation(program, window->gl.col, "color");
        glLinkProgram(program);
    }
    
	window->gl.rotation_uniform =
		glGetUniformLocation(program, "rotation");
}
开发者ID:4DA,项目名称:glesv2-binary-shader,代码行数:57,代码来源:simple-egl.c


示例18: init_resources

int init_resources()
{
	GLfloat triangle_attributes[] ={
		 0.0,  0.8,   1.0, 1.0, 0.0,
		-0.8, -0.8,   0.0, 0.0, 1.0,
		 0.8, -0.8,   1.0, 0.0, 0.0,
		};

	glGenBuffers(1, &vbo_triangle);
	glBindBuffer(GL_ARRAY_BUFFER, vbo_triangle);
	glBufferData(GL_ARRAY_BUFFER, sizeof(triangle_attributes), triangle_attributes, GL_STATIC_DRAW);
	glBindBuffer(GL_ARRAY_BUFFER, 0);	
	
	GLint link_ok = GL_FALSE;

	GLuint vs, fs;
	if ((vs = create_shader("triangle6.v.glsl", GL_VERTEX_SHADER))   == 0) return 0;
	if ((fs = create_shader("triangle8.f.glsl", GL_FRAGMENT_SHADER)) == 0) return 0;

	program = glCreateProgram();
	glAttachShader(program, vs);
	glAttachShader(program, fs);
	glLinkProgram(program);
	glGetProgramiv(program, GL_LINK_STATUS, &link_ok);
	if (!link_ok)
	{
		fprintf(stderr, "glLinkProgram:");
		return 0;
	}

	const char* attribute_name = "coord2d";	
	attribute_coord2d = glGetAttribLocation(program, attribute_name);
	if (attribute_coord2d == -1) 
	{
		fprintf(stderr, "Could not bind attribute %s\n", attribute_name);
		return 0;
	}

	attribute_name = "v_color";
	attribute_v_color = glGetAttribLocation(program, attribute_name);
	if (attribute_v_color == -1)
	{
		fprintf(stderr, "Could not bind attribute %s\n", attribute_name);
		return 0;
	}
	const char* uniform_name;
	uniform_name = "fade";
	uniform_fade = glGetUniformLocation(program, uniform_name);
	if (uniform_fade == -1)
	{
		fprintf(stderr, "could not bind uniform %s\n",uniform_name);
		return 0;
	}

	return 1;
}	
开发者ID:Narcolapser,项目名称:Littlefoot-Landmines,代码行数:56,代码来源:s10.cpp


示例19: setup_program

void setup_program(GLuint* program_id)
{
    GLuint shaders[2];

    fprintf (stderr, "This routine was called\n");

    shaders[1] = create_shader("FragmentShader.glsl",GL_FRAGMENT_SHADER);
    shaders[0] = create_shader("VertexShader.glsl",GL_VERTEX_SHADER);
    program_id[0] = create_gl_program(shaders, 2, GL_TRUE);
}
开发者ID:PIesy,项目名称:LifeGame,代码行数:10,代码来源:main.c


示例20: create_program

/// \brief Create program.
///
/// \param vertex Vertex shader.
/// \param fragment Fragment shader.
/// \return Program ID
GLuint create_program(const char *vertex, const char *fragment)
{
  GLuint ret = dnload_glCreateProgram();

  dnload_glAttachShader(ret, create_shader(vertex, GL_VERTEX_SHADER));
  dnload_glAttachShader(ret, create_shader(fragment, GL_FRAGMENT_SHADER));

  dnload_glLinkProgram(ret);

  return ret;
}
开发者ID:faemiyah,项目名称:dnload,代码行数:16,代码来源:quad.cpp



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ create_singlethread_workqueue函数代码示例发布时间:2022-05-30
下一篇:
C++ create_session函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap