本文整理汇总了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");
}