Ambient lightning + Multitexture (Les shaders ne se superposent pas)
This commit is contained in:
@@ -5,7 +5,7 @@ ModelClass::ModelClass()
|
||||
{
|
||||
m_vertexBuffer = 0;
|
||||
m_indexBuffer = 0;
|
||||
m_Texture = 0;
|
||||
m_Textures = 0;
|
||||
m_model = 0;
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ ModelClass::~ModelClass()
|
||||
{
|
||||
}
|
||||
|
||||
bool ModelClass::Initialize(ID3D11Device* device, ID3D11DeviceContext* deviceContext, char* modelFilename, char* textureFilename)
|
||||
bool ModelClass::Initialize(ID3D11Device* device, ID3D11DeviceContext* deviceContext, char* modelFilename, char* textureFilename1, char* textureFilename2)
|
||||
{
|
||||
bool result;
|
||||
|
||||
@@ -36,8 +36,8 @@ bool ModelClass::Initialize(ID3D11Device* device, ID3D11DeviceContext* deviceCon
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// Load the texture for this model.
|
||||
result = LoadTexture(device, deviceContext, textureFilename);
|
||||
// Load the textures for this model.
|
||||
result = LoadTextures(device, deviceContext, textureFilename1, textureFilename2);
|
||||
if (!result)
|
||||
{
|
||||
return false;
|
||||
@@ -49,8 +49,8 @@ bool ModelClass::Initialize(ID3D11Device* device, ID3D11DeviceContext* deviceCon
|
||||
|
||||
void ModelClass::Shutdown()
|
||||
{
|
||||
// Release the model texture.
|
||||
ReleaseTexture();
|
||||
// Release the model textures.
|
||||
ReleaseTextures();
|
||||
|
||||
// Shutdown the vertex and index buffers.
|
||||
ShutdownBuffers();
|
||||
@@ -76,9 +76,9 @@ int ModelClass::GetIndexCount()
|
||||
return m_indexCount;
|
||||
}
|
||||
|
||||
ID3D11ShaderResourceView* ModelClass::GetTexture()
|
||||
ID3D11ShaderResourceView* ModelClass::GetTexture(int index)
|
||||
{
|
||||
return m_Texture->GetTexture();
|
||||
return m_Textures[index].GetTexture();
|
||||
}
|
||||
|
||||
|
||||
@@ -225,15 +225,21 @@ void ModelClass::RenderBuffers(ID3D11DeviceContext* deviceContext)
|
||||
return;
|
||||
}
|
||||
|
||||
bool ModelClass::LoadTexture(ID3D11Device* device, ID3D11DeviceContext* deviceContext, char* filename)
|
||||
bool ModelClass::LoadTextures(ID3D11Device* device, ID3D11DeviceContext* deviceContext, char* filename1, char* filename2)
|
||||
{
|
||||
bool result;
|
||||
|
||||
|
||||
// Create and initialize the texture object.
|
||||
m_Texture = new TextureClass;
|
||||
// Create and initialize the texture object array.
|
||||
m_Textures = new TextureClass[2];
|
||||
|
||||
result = m_Texture->Initialize(device, deviceContext, filename);
|
||||
result = m_Textures[0].Initialize(device, deviceContext, filename1);
|
||||
if (!result)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
result = m_Textures[1].Initialize(device, deviceContext, filename2);
|
||||
if (!result)
|
||||
{
|
||||
return false;
|
||||
@@ -242,14 +248,16 @@ bool ModelClass::LoadTexture(ID3D11Device* device, ID3D11DeviceContext* deviceCo
|
||||
return true;
|
||||
}
|
||||
|
||||
void ModelClass::ReleaseTexture()
|
||||
void ModelClass::ReleaseTextures()
|
||||
{
|
||||
// Release the texture object.
|
||||
if (m_Texture)
|
||||
// Release the texture object array.
|
||||
if (m_Textures)
|
||||
{
|
||||
m_Texture->Shutdown();
|
||||
delete m_Texture;
|
||||
m_Texture = 0;
|
||||
m_Textures[0].Shutdown();
|
||||
m_Textures[1].Shutdown();
|
||||
|
||||
delete[] m_Textures;
|
||||
m_Textures = 0;
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user