00001 00005 #pragma once 00006 #include "d3d.h" 00007 #include "d3d10drv.h" 00008 00009 class TexConversion 00010 { 00011 private: 00012 00016 struct TextureFormat 00017 { 00018 bool supported; 00019 char blocksize; 00020 bool directAssign; 00021 DXGI_FORMAT d3dFormat; 00022 void (*conversionFunc)(FTextureInfo&, DWORD, void *, int); 00023 }; 00024 static TexConversion::TextureFormat formats[]; 00025 00028 static void fromPaletted(FTextureInfo& Info,DWORD PolyFlags,void *target, int mipLevel); 00029 static void fromBGRA7(FTextureInfo& Info,DWORD PolyFlags,void *target,int mipLevel); 00031 00032 static void convertMip(FTextureInfo& Info,TextureFormat &format, DWORD PolyFlags,int mipLevel, D3D10_SUBRESOURCE_DATA &data); 00033 static D3D::TextureMetaData buildMetaData(FTextureInfo& Info, DWORD PolyFlags,DWORD customPolyFlags=0); 00034 00035 public: 00036 static bool loadOverride(FTextureInfo& Info, DWORD PolyFlags); 00037 static void convertAndCache(FTextureInfo& Info, DWORD PolyFlags); 00038 static void update(FTextureInfo& Info,DWORD PolyFlags); 00039 00040 };