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


C++ VertexArray::setPurgeLevel方法代码示例

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


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

示例1: init


//.........这里部分代码省略.........

	printf("    Setting up failure texture\n");
	failureTexture = SceneGraph::createTexture("FailureTexture", "textures/notex.png", true, TEXTURE_FILTER_TRILINEAR, TEXTURE_WRAP_REPEAT);
	if (!failureTexture)
		REPORT_ERROR("Couldn't load default texture");

	printf("    Setting up failure cube map\n");
	failureCubeMap = SceneGraph::createCubeMap("FailureCubeMap", "textures/notex.png", "textures/notex.png", "textures/notex.png", "textures/notex.png", "textures/notex.png", "textures/notex.png");
	if (!failureCubeMap)
		REPORT_ERROR("Couldn't load default cube map");

	printf("    Setting up failure vertex array\n");
	failureVertexArray = SceneGraph::createVertexArray("FailureVertexArray", (void *) vertex, 4 * 3, 4, TRIANGLES, USAGE_STATIC);
	printf("      Attribute\n");
	failureVertexArray->setAttribute("Vertex", 0, 3, ATTRIB_FLOAT32, false);
	printf("      Index array\n");
	failureVertexArray->setIndexArray((void *) index, 4, 12);

	printf("    Setting up bulb mesh\n");
	bulbMesh = SceneGraph::createGeometry("LightBulb", "scenes/light.obj", false);
	bulbShader = SceneGraph::createShaderProgram("LightShader", "Light", 0);
	bulbMesh->setShaderProgram(bulbShader, false);

	printf("    Setting up camera mesh\n");
	camMesh = SceneGraph::createGeometry("CameraModel", "scenes/camera.obj", false);
	camShader = SceneGraph::createShaderProgram("CameraShader", "Camera", 0);
	camMesh->setShaderProgram(camShader, false);

	printf("    Setting up arrow mesh\n");
	arrowMesh = SceneGraph::createGeometry("ArrowModel", "scenes/arrow.obj", false);
	arrowShader = SceneGraph::createShaderProgram("ArrowShader", "Axis", 0);
	arrowMesh->setShaderProgram(arrowShader, false);

	state = arrowShader->getRenderState();

	axis[0] = (Geometry *) arrowMesh->duplicate("AxisX", false);
	axis[1] = (Geometry *) arrowMesh->duplicate("AxisY", false);
	axis[2] = (Geometry *) arrowMesh->duplicate("AxisZ", false);

	axis[0]->scale(2.0f, 2.0f, 2.0f);
	axis[1]->scale(2.0f, 2.0f, 2.0f);
	axis[2]->scale(2.0f, 2.0f, 2.0f);

	axis[0]->setRotate(-fPI * 0.5f, 0.0f, 0.0f, 1.0f);
	axis[2]->setRotate(fPI * 0.5f, 1.0f, 0.0f, 0.0f);

	axis[0]->setVector("col", red.vec, 3, UNIFORM_FLOAT32);
	axis[1]->setVector("col", green.vec, 3, UNIFORM_FLOAT32);
	axis[2]->setVector("col", blue.vec, 3, UNIFORM_FLOAT32);

	axisGroup = SceneGraph::createGroup("AxisGroup");
	axisGroup->attachChild(axis[0]);
	axisGroup->attachChild(axis[1]);
	axisGroup->attachChild(axis[2]);

	printf("    Setting up grid\n");
	/* Grid */
	{
		u32 i, o;
		VertexArray *gridva;
		f32 gridv[2 * 21 * 2 * 2];
		vec3f color;

		color = vec3f(0.4f, 0.7f, 0.8f);

		for (i = 0; i < 21; i++) {
			gridv[i * 4] = ((f32) i) - 10.0f;
			gridv[i * 4 + 1] = -10.0f;
			gridv[i * 4 + 2] = ((f32) i) - 10.0f;
			gridv[i * 4 + 3] = 10.0f;
		}

		o = 21 * 4;

		for (i = 0; i < 21; i++) {
			gridv[o + i * 4] = -10.0f;
			gridv[o + i * 4 + 1] = ((f32) i) - 10.0f;
			gridv[o + i * 4 + 2] = 10.0f;
			gridv[o + i * 4 + 3] = ((f32) i) - 10.0f;
		}

		gridva = SceneGraph::createVertexArray("Grid", gridv, 2 * 4, 84, LINES, USAGE_STATIC);
		gridva->setAttribute("Vertex", 0, 2, ATTRIB_FLOAT32, false);
		gridva->setPurgeLevel(0);

		gridShader = SceneGraph::createShaderProgram("GridShader", "Grid", 0);
		gridShader->setPurgeLevel(0);

		state = gridShader->getRenderState();

		gridMesh = SceneGraph::createGeometry("GridMesh", gridva, false);
		gridMesh->setShaderProgram(gridShader, false);

		gridShader->setVector("Color", color.vec, 3, UNIFORM_FLOAT32);
		gridShader->renderState.disableCulling();

	}

	printf("    Default object setup complete\n");
}
开发者ID:patrick-iv,项目名称:EDA221,代码行数:101,代码来源:DefaultObjects.cpp


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