*Descriere:
Acest refactor inlocuieste vechiul sistem de incarcare a fisierelor .DDS bazat pe DXTCImage cu libraria DirectXTex.
Motivul:
- DXTCImage este vechi si limitat
- era folosit practic doar in GrpImageTexture.cpp
- DirectXTex este mult mai modern si mai flexibil
- dupa aceasta modificare, fisierele DXTCImage.cpp si DXTCImage.h nu mai sunt necesare
Atentie:
DirectXTex este gandit pentru DX11/DX12, iar aici se foloseste un mic convertor pentru compatibilitate cu D3D9.
Daca primiti syserr pentru un format .DDS, inseamna ca trebuie sa extindeti functia de conversie cu formatul vostru.
Nota:
Lib in caz ca aveti nevoie sa le recompilati:
*Link download / Code:
1) Scoatem fisierele DXTCImage din proiect
In Visual Studio, mergem in EterImageLib si stergem din proiect:
2) GrpImageTexture.h
Deschidem GrpImageTexture.h si cautam:
Stergem:
Tot in GrpImageTexture.h cautam:
Stergem:
3) GrpImageTexture.cpp
Deschidem GrpImageTexture.cpp si cautam functia:
Stergem complet aceasta functie:
Tot in GrpImageTexture.cpp, la inceputul fisierului, adaugam:
Tot in GrpImageTexture.cpp cautam functia:
Inlocuim complet cu:
4) UserInterface.cpp
Deschidem UserInterface.cpp si cautam:
Adaugam sub:
Explicatie:
Acest refactor face urmatoarele:
- elimina dependenta de DXTCImage
- foloseste DirectXTex pentru citirea si procesarea fisierelor DDS
- converteste formatele DXGI in D3D9
- copiaza corect mipmap-urile si datele texturilor
- pastreaza un fallback vechi pentru fisierele care nu sunt DDS
Avantaje:
- cod mai curat
- suport mai bun pentru formate DDS
- structura mult mai moderna
- mai usor de extins
Atentie:
Daca un anumit DDS produce eroare, trebuie adaugat formatul lipsa in functia:
Acest refactor inlocuieste vechiul sistem de incarcare a fisierelor .DDS bazat pe DXTCImage cu libraria DirectXTex.
Motivul:
- DXTCImage este vechi si limitat
- era folosit practic doar in GrpImageTexture.cpp
- DirectXTex este mult mai modern si mai flexibil
- dupa aceasta modificare, fisierele DXTCImage.cpp si DXTCImage.h nu mai sunt necesare
Atentie:
DirectXTex este gandit pentru DX11/DX12, iar aici se foloseste un mic convertor pentru compatibilitate cu D3D9.
Daca primiti syserr pentru un format .DDS, inseamna ca trebuie sa extindeti functia de conversie cu formatul vostru.
Nota:
Lib in caz ca aveti nevoie sa le recompilati:
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.*Link download / Code:
1) Scoatem fisierele DXTCImage din proiect
In Visual Studio, mergem in EterImageLib si stergem din proiect:
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.2) GrpImageTexture.h
Deschidem GrpImageTexture.h si cautam:
Cod: Selectaţi tot
#include "../eterImageLib/DXTCImage.h" Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.Tot in GrpImageTexture.h cautam:
Cod: Selectaţi tot
bool CreateDDSTexture(CDXTCImage & image, const BYTE * c_pbBuf); Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.3) GrpImageTexture.cpp
Deschidem GrpImageTexture.cpp si cautam functia:
Cod: Selectaţi tot
bool CGraphicImageTexture::CreateDDSTexture(CDXTCImage& image, const BYTE* /*c_pbBuf*/) Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.Tot in GrpImageTexture.cpp, la inceputul fisierului, adaugam:
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.Tot in GrpImageTexture.cpp cautam functia:
Cod: Selectaţi tot
bool CGraphicImageTexture::CreateFromMemoryFile(UINT bufSize, const void* c_pvBuf, D3DFORMAT d3dFmt, DWORD dwFilter) Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.4) UserInterface.cpp
Deschidem UserInterface.cpp si cautam:
Cod: Selectaţi tot
#pragma comment( lib, "python27.lib" ) Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.Explicatie:
Acest refactor face urmatoarele:
- elimina dependenta de DXTCImage
- foloseste DirectXTex pentru citirea si procesarea fisierelor DDS
- converteste formatele DXGI in D3D9
- copiaza corect mipmap-urile si datele texturilor
- pastreaza un fallback vechi pentru fisierele care nu sunt DDS
Avantaje:
- cod mai curat
- suport mai bun pentru formate DDS
- structura mult mai moderna
- mai usor de extins
Atentie:
Daca un anumit DDS produce eroare, trebuie adaugat formatul lipsa in functia:
Cod: Selectaţi tot
DXGI_to_D3D9_Format




