本文整理汇总了C++中SubMesh::get_data方法的典型用法代码示例。如果您正苦于以下问题:C++ SubMesh::get_data方法的具体用法?C++ SubMesh::get_data怎么用?C++ SubMesh::get_data使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SubMesh
的用法示例。
在下文中一共展示了SubMesh::get_data方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: render
//.........这里部分代码省略.........
glEnableVertexAttribArray(0);
glDrawArrays(GL_TRIANGLES, 0, (faces_size_sphere0/12)*3);
glDisableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, GL_NONE);
glBindTexture(GL_TEXTURE_CUBE_MAP, GL_NONE);
//cgResetPassState(p0);
//////////////////////////////////////////////////////////////
float mvp[16];
Matrix4 mvp_aos = camera->m_projection_aos*camera->m_view_aos;
copy_matrix4_to_float(mvp_aos,mvp);
if (plant_shader_time > 60.0)
{
plant_shader_time = 0.0;
}
plant_shader_time += et;
cgshaders->set_effect_param_1f(std::string("PLANT_SHADER_TIME"), (float)plant_shader_time);
//#if 0
for (unsigned int x = 0; x < objects.size(); x++)
{
DisplayInterface * di = objects.at(x);
for (int k = 0; k < di->submeshes_size(); k++)
{
SubMesh * sm = di->get_submesh(k);
if (!sm) continue;
if (!sm->get_data()) continue;
//if (pass == L_SHADOW_PASS && sm->get_data()->cast_shadows[0] == 0)
// continue;
//if (pass == L_2ND_SHADOW_PASS && sm->get_data()->cast_shadows[1] == 0)
// continue;
if (sm->callback != 0)
{
mparams[5] = sm->get_data()->shininess;
mparams[6] = sm->get_data()->tc_scale_x;
mparams[7] = sm->get_data()->tc_scale_y;
mparams[8] = (float)win_w;
mparams[9] = (float)win_h;
sm->callback(sm->get_data(),
cgshaders,
int_params,
mparams,
float_params,
lights_positions,
camera->m_view,
camera->m_inv_view,
0,
0,
mvp,
0,
0);
}
}
}
//#endif
//
// ARK
cgshaders->set_pass_state(cgshaders->get_first_pass(std::string("tbn0")));