42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
#include "Material.h"
|
|
#include "Utilities.h"
|
|
|
|
#include "WICTextureLoader9.h"
|
|
|
|
using namespace DirectX;
|
|
|
|
UINT Material::init(IDirect3DDevice9* pD3DDevice, LPCWSTR textureFileName)
|
|
{
|
|
// load texture
|
|
HRESULT hr = CreateWICTextureFromFile(pD3DDevice, textureFileName, &_pTexture, 0, WIC_LOADER_MIP_AUTOGEN);
|
|
CheckFailed(hr, 600);
|
|
|
|
// set material
|
|
D3DMATERIAL9 material = {};
|
|
material.Ambient = { 1.0f, 1.0f, 1.0f, 1.0f };
|
|
material.Diffuse = { 1.0f, 1.0f, 1.0f, 1.0f };
|
|
material.Specular = { 1.0f, 1.0f, 1.0f, 1.0f };
|
|
material.Emissive = { 0.0f, 0.0f, 0.0f, 1.0f };
|
|
material.Power = 1024.0f;
|
|
|
|
pD3DDevice->SetMaterial(&material);
|
|
|
|
return 0;
|
|
}
|
|
|
|
void Material::render(IDirect3DDevice9* pD3DDevice)
|
|
{
|
|
// set texture
|
|
pD3DDevice->SetTexture(0, _pTexture);
|
|
|
|
// set sampler state
|
|
pD3DDevice->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_BORDER);
|
|
pD3DDevice->SetSamplerState(0, D3DSAMP_BORDERCOLOR, D3DCOLOR_XRGB(255, 0, 255));
|
|
pD3DDevice->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_POINT);
|
|
pD3DDevice->SetSamplerState(0, D3DSAMP_MAXMIPLEVEL, 0);
|
|
}
|
|
|
|
void Material::deInit()
|
|
{
|
|
}
|