many exports to scriptengine
This commit is contained in:
@ -19,65 +19,57 @@ namespace BlueCore
|
||||
//------------------------------------------------------------------------------
|
||||
void Model::render(RenderDevice *device) const
|
||||
{
|
||||
ModelMesh->render();
|
||||
/*
|
||||
// ModelMesh->render();
|
||||
|
||||
glEnable(GL_LIGHTING);
|
||||
glDepthFunc ( GL_LEQUAL );
|
||||
glEnable ( GL_DEPTH_TEST );
|
||||
glDepthMask ( GL_TRUE );
|
||||
*/
|
||||
/*
|
||||
|
||||
glEnableClientState (GL_VERTEX_ARRAY );
|
||||
glEnableClientState (GL_TEXTURE_COORD_ARRAY );
|
||||
glEnableClientState (GL_NORMAL_ARRAY );
|
||||
|
||||
mesh->vertex_buffer.bind();
|
||||
mesh->index_buffer.bind();
|
||||
*/
|
||||
/*
|
||||
glMaterialfv (GL_FRONT, GL_SHININESS, &pass.Shininess);
|
||||
glMaterialfv (GL_FRONT, GL_SPECULAR, ( GLfloat * ) &pass.Specular );
|
||||
glMaterialfv (GL_FRONT, GL_SHININESS, &LitPass.Shininess);
|
||||
glMaterialfv (GL_FRONT, GL_SPECULAR, ( GLfloat * ) &LitPass.Specular );
|
||||
|
||||
// setup shader
|
||||
if (pass.Program && ShaderManager::getSingleton()->usingShaders() )
|
||||
if (LitPass.Program)
|
||||
{
|
||||
ShaderManager::getSingleton()->useShaderProgram(pass.Program);
|
||||
device->setShaderProgram(LitPass.Program);
|
||||
|
||||
int textureId = 0;
|
||||
std::vector<Model::TextureUnit>::iterator titer;
|
||||
int textureId = 0;
|
||||
|
||||
std::vector<Model::TextureUnit>::const_iterator titer;
|
||||
for (titer = LitPass.Textures.begin(); titer != LitPass.Textures.end(); titer++)
|
||||
{
|
||||
device->setTexture(textureId, ( *titer ).mTexture );
|
||||
device->setTexture(LitPass.Program, textureId, ( *titer ).mName);
|
||||
textureId++;
|
||||
}
|
||||
|
||||
for (titer = pass.Textures.begin(); titer != pass.Textures.end(); titer++)
|
||||
{
|
||||
Renderer::getSingleton()->bindTexture(( *titer ).mTexture, textureId );
|
||||
ShaderManager::getSingleton()->useTexture(pass.Program, textureId, ( *titer ).mName);
|
||||
textureId++;
|
||||
}
|
||||
if (LitPass.Tangents)
|
||||
{
|
||||
//device->setTangentBuffer(LitPass.Program, &ModelMesh->TangentBuffer, "tangent");
|
||||
//device->setTangentBuffer(LitPass.Program, &ModelMesh->BitangentBuffer, "bitangent");
|
||||
}
|
||||
|
||||
|
||||
if (pass.Tangents)
|
||||
{
|
||||
ShaderManager::getSingleton()->useTangentBuffer(pass.Program, &mesh->tangent_buffer, "tangent");
|
||||
ShaderManager::getSingleton()->useTangentBuffer(pass.Program, &mesh->bitangent_buffer,
|
||||
"bitangent");
|
||||
}
|
||||
}
|
||||
/*
|
||||
else
|
||||
{
|
||||
glActiveTextureARB (GL_TEXTURE2_ARB );
|
||||
glDisable (GL_TEXTURE_2D );
|
||||
glActiveTextureARB (GL_TEXTURE1_ARB );
|
||||
glDisable (GL_TEXTURE_2D );
|
||||
int textureId = 0;
|
||||
int textureId = 0;
|
||||
|
||||
std::vector<Model::TextureUnit>::iterator titer;
|
||||
for (titer = pass.Textures.begin(); titer != pass.Textures.end(); titer++)
|
||||
{
|
||||
Renderer::getSingleton()->bindTexture(( *titer ).mTexture, textureId );
|
||||
std::vector<Model::TextureUnit>::iterator titer;
|
||||
for (titer = pass.Textures.begin(); titer != pass.Textures.end(); titer++)
|
||||
{
|
||||
Renderer::getSingleton()->bindTexture(( *titer ).mTexture, textureId );
|
||||
ShaderManager::getSingleton()->useTexture(pass.Program, textureId, ( *titer ).mName);
|
||||
textureId++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// render subsets
|
||||
SubsetVector::iterator iter;
|
||||
for (iter = mesh->surface_subsets.begin(); iter
|
||||
@ -86,7 +78,20 @@ void Model::render(RenderDevice *device) const
|
||||
Subset subset = *iter;
|
||||
mesh->index_buffer.draw(subset.first, subset.count);
|
||||
}
|
||||
*/
|
||||
|
||||
ModelMesh->render();
|
||||
|
||||
device->setShaderProgram(0);
|
||||
|
||||
glActiveTextureARB (GL_TEXTURE2_ARB );
|
||||
glDisable (GL_TEXTURE_2D );
|
||||
glActiveTextureARB (GL_TEXTURE1_ARB );
|
||||
glDisable (GL_TEXTURE_2D );
|
||||
glActiveTextureARB (GL_TEXTURE0_ARB );
|
||||
glDisable (GL_TEXTURE_2D );
|
||||
|
||||
/*
|
||||
// cleanup
|
||||
if (pass.Program && ShaderManager::getSingleton()->usingShaders() )
|
||||
{
|
||||
@ -98,6 +103,7 @@ void Model::render(RenderDevice *device) const
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
glPopMatrix();
|
||||
|
||||
glActiveTextureARB (GL_TEXTURE2_ARB );
|
||||
@ -120,11 +126,13 @@ ModelManager::ModelManager(TextureManager *texturemanager,
|
||||
_TextureManager(texturemanager), _ShaderManager(shadermanager),
|
||||
_MeshManager(meshmanager)
|
||||
{
|
||||
clog << ">>> ModelManager constructed ..."<< endline;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
ModelManager::~ModelManager()
|
||||
{
|
||||
clog << ">>> ModelManager destructed ..."<< endline;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user