当前位置: 首页>>代码示例>>C++>>正文


C++ texture::bind方法代码示例

本文整理汇总了C++中texture::bind方法的典型用法代码示例。如果您正苦于以下问题:C++ texture::bind方法的具体用法?C++ texture::bind怎么用?C++ texture::bind使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在texture的用法示例。


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

示例1: display

// функция вызывается при перерисовке окна
// в том числе и принудительно, по командам glutPostRedisplay
void display (void)
{
	// отчищаем буфер цвета и буфер глубины
	int rst=glGetError();

	glClearColor(0.78125,0.78125,0.76171875,1.0);
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glEnable(GL_DEPTH_TEST);

	glDisable(GL_LIGHTING);
	
	// отрисовка осей
	// задание толщины линии
	glLineWidth(0.5);
	glEnableClientState(GL_VERTEX_ARRAY);
	glEnableClientState(GL_COLOR_ARRAY);
	glColorPointer(3,GL_FLOAT,sizeof(vertex),&axes[0].color);
	glVertexPointer(3,GL_FLOAT,sizeof(vertex),&axes[0].coordinate);
	glDrawArrays(GL_LINES,0,3*2);
	glDisableClientState(GL_COLOR_ARRAY);
	glDisableClientState(GL_VERTEX_ARRAY);

	glEnable(GL_LIGHTING);

	// режим вывода полигонов (выводим в виде линии)
	glPolygonMode(GL_FRONT_AND_BACK,/*GL_LINE*/GL_FILL);

	// устанавливаем камеру
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();

	//gluLookAt(0,30,20,0,0,0,0,1,0);
	glMultMatrixd(cam->getOrientation());
	// позиция камеры
	glMultMatrixd(cam->getPosition());

	firstLight.use();
	secondLight.use(GL_LIGHT1);

	planeMaterial.use();
	planeShader.activate();

	glEnable(GL_TEXTURE_2D);
	glClientActiveTexture(GL_TEXTURE0);

	GLint texLoc = glGetUniformLocation(planeShader.getProgramId(), "MyTex");

	glUniform1i(texLoc,0);

	glTexEnvi ( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );

	glColor3f(0.4f,0.8f,0.4f);
	glNormal3f(0.0,1.0,0.0);
	glEnableClientState(GL_VERTEX_ARRAY);
	glEnableClientState(GL_TEXTURE_COORD_ARRAY);

	surfaceTex.bind();

	glTexCoordPointer(2,GL_FLOAT,0,surfaceTexCoord);
	glVertexPointer(3,GL_FLOAT,sizeof(vertex),&surface[0].coordinate);
	glDrawElements(GL_TRIANGLES,18*3,GL_UNSIGNED_INT,surfaceIndex);
	glDisableClientState(GL_TEXTURE_COORD_ARRAY);
	glDisableClientState(GL_VERTEX_ARRAY);

	glDisable(GL_TEXTURE_2D);

	modelShader.activate();

	for(unsigned int i=0; i<objects.size(); i++)
	{
		objects[i]->render(filterMode); // call to object3ds method for rendering
	}

	shader::disactivate();

	glCullFace(GL_BACK);

	glColor3f(0.2f,0.2f,0.2f);
	glutWireSphere(0.07, 16, 16);
	
	if (isDrawingFps)
	{
		drawFps();
	}

	// смена переднего и заднего буферов
	glutSwapBuffers();
};
开发者ID:PaveLiArcH,项目名称:3ds_viewer,代码行数:90,代码来源:main.cpp


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