#include "dxstdafx.h" #include ".\dxtexture.h" #include #include CDXTexture::CDXTexture() { SetStage(0); m_Stencil = NULL; m_Tex = NULL; m_pBackBuffer = NULL; m_OrigDepthStencil = NULL; m_RTindex = 0; } CDXTexture::~CDXTexture(void) { SAFE_RELEASE(m_Tex); SAFE_RELEASE(m_Stencil); SAFE_RELEASE(m_pBackBuffer); SAFE_RELEASE(m_OrigDepthStencil); } bool CDXTexture::InitTex(LPDIRECT3DDEVICE9 dev, char* filename, char* tex_name, D3DFORMAT format) { CopyToName(tex_name); m_Dev = dev; D3DXIMAGE_INFO info; D3DXCreateTextureFromFileEx( dev, // device (LPCWSTR)filename, // filename D3DX_DEFAULT, // x size D3DX_DEFAULT, // y size D3DX_DEFAULT, // mipmap 0, // usage format,// a tárolási formát a file határozza meg D3DPOOL_DEFAULT,// a videomemóriába legyen D3DX_DEFAULT, // filterek D3DX_DEFAULT, // mipmap filter 0, // nincs colorkey &info, // file infókat ide adja NULL, &m_Tex); return true; } bool CDXTexture::InitTex(LPDIRECT3DDEVICE9 dev, char* tex_name, int width, int height, D3DFORMAT format, bool mipmapped) { CopyToName(tex_name); m_Dev = dev; m_Width = width; m_Height = height; // create new texture HRESULT res = D3DXCreateTexture(m_Dev, width, height, mipmapped ? 0 : 1, D3DUSAGE_RENDERTARGET, format, D3DPOOL_DEFAULT, &m_Tex); if (res != D3D_OK) { return false; } res = m_Dev->CreateDepthStencilSurface(width, height, D3DFMT_D24S8, D3DMULTISAMPLE_NONE,0,true,&m_Stencil,NULL); if (res != D3D_OK){ return false; } return true; } void CDXTexture::CopyToName(char* name) { if (strlen(name) > 512) name[500] = '\0'; strcpy(m_Name, name); }