VTFLib
v1.3.2 Full - NemPosted: Mar 26th, 2006 - 12:55:28 pm
About:
VTFLib v1.3.2 - VTFLib is available in a two flavours. The Source Code Archive contains the source code, library and prebuilt binaries for VTFLib, VTFEdit and VTFCmd. Download this if you want to modify the library or example applications (or just see how it all works). The Binary Archive contains library and prebuilt binaries for VTFLib, VTFEdit and VTFCmd. Download this if you just want to develop with VTFLib (or want access to all the binaries).
VTFLib also uses nvDXT, and VTFEdit and VTFCmd also use DevIL 1.7.8. In order to compile, you will need to download those libraries and add their paths to Visual Studio.
Download from Web Archive: Download from unofficial Github mirror:
Modified: Jul 25th, 2011 - 3:37:11 pm[ 145010 Views ]
1. NoBodyModified: Apr 23rd, 2006 - 3:46:00 pm
I used VTFLib to make a .vtf importere for Fragmotion, you can grap it here for
now.
VTFtex.zip
(200KB)
VTFtex.zip
(200KB)
2. Ag3nt-XPosted: Jun 11th, 2006 - 11:01:59 pm
the vtflib archive size is diabolical hehehe
3. snakemediaPosted: Aug 19th, 2006 - 9:51:51 am
I have Problem with source have many errors..
I do not know that visual C++ 2005 can't finish this source.
Sorry I do not look that "VISUAL C++ 2005" is worng, "VSIUAL C++ NET" ist right, Grr I download that right file of VISAUL C++ NET now :-(
SnakeMedia
I do not know that visual C++ 2005 can't finish this source.
Sorry I do not look that "VISUAL C++ 2005" is worng, "VSIUAL C++ NET" ist right, Grr I download that right file of VISAUL C++ NET now :-(
SnakeMedia
4. NemPosted: Aug 19th, 2006 - 5:20:45 pm
VTFEdit is written in Visual Studio .NET 2003 (.NET v1.1), not Visual Studio .NET
2005 (.NET v2.0). The two versions have a completly different syntax for C++ code and are not
compatible. You can compile VTFEdit in Visual Studio .NET 2005, however, if you change the
Common Language Runtime Support (general options) to /clr:oldSyntax.
I'll likely convert the project to 2005 in the future, but it is too much of a pain and I have too many other projects to do so at the moment.
I'll likely convert the project to 2005 in the future, but it is too much of a pain and I have too many other projects to do so at the moment.
5. snakemediaPosted: Aug 24th, 2006 - 5:21:23 pm
Hello I can not find this right Visual Version?
Please give me right orginal link to Download-Detail with site!
ZThanks Gb SnakeMedia
Please give me right orginal link to Download-Detail with site!
ZThanks Gb SnakeMedia
6. kiloratPosted: Feb 18th, 2008 - 6:28:36 pm
Hello! Orangebox introduced version 7.4 of VTF, it says in the notes its bitwise
compatible with 7.3, however vtflib checks the version and refuses to work with 7.4.
http://developer.valvesoftware.com/wiki/Vtf#Version_history
http://developer.valvesoftware.com/wiki/Vtf#Version_history
7. NemPosted: Feb 21st, 2008 - 4:25:38 pm
I wrote the linked article so I'm aware of this. I have updated versions of my tools
that support v7.4, but I lost the source code for the PS VTF Plug-In (I'll have to rewrite part of it)
which is why nothing has been released as of yet.
8. half107Modified: Mar 14th, 2009 - 3:28:10 am
HOW do you install!!! ARG!!!!
9. Poab9200Posted: Jul 26th, 2009 - 12:34:44 am
I have a question for you Nem. I posted in the forum as well and just to be double
sure I thought I should post here too.
Anyways I am designing a Scripter for CS:Source, and I was wondering if you could point me into the right direction or at least provide some kind of code that will teach me how to use your library in a C# project. If it helps these are the things that I would like to do.
A. Allow the user to view file info
- File Size
- Flags(Like the ones in your program: VTFEdit
- Dimensions(Width x Height)
- Version
- File Format
- Frames
B. Allow the user to pre-view a selected vtf/spray file in a picturebox.
Again any and all help is greatly appreciated I do know about "Dllimport" with C# but I have yet to work with it. So if you could either respond here or at the forums I would greatly appreciate it.
- Poab
Anyways I am designing a Scripter for CS:Source, and I was wondering if you could point me into the right direction or at least provide some kind of code that will teach me how to use your library in a C# project. If it helps these are the things that I would like to do.
A. Allow the user to view file info
- File Size
- Flags(Like the ones in your program: VTFEdit
- Dimensions(Width x Height)
- Version
- File Format
- Frames
B. Allow the user to pre-view a selected vtf/spray file in a picturebox.
Again any and all help is greatly appreciated I do know about "Dllimport" with C# but I have yet to work with it. So if you could either respond here or at the forums I would greatly appreciate it.
- Poab
10. pipotinoPosted: Aug 13th, 2009 - 8:07:37 pm
how do you convert tfa.files to vmt.???? or at least vtf to vtm ,does vtf edit
work?
11. kabojnkPosted: Jun 13th, 2010 - 5:49:19 am
Hmm, this is interesting. My build on VC2010 is breaking...
1>nvDXTlibMT.vc8.lib(dxt_compress.obj) : error LNK2019: unresolved external symbol _hypot referenced in function "private: void __thiscall JAMA::Eigenvalue<double>::tql2(void)" (?tql2@?$Eigenvalue@N@JAMA@@AAEXXZ)
1>nvDXTlibMT.vc8.lib(NormalMapGen.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ) referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z)
1>nvDXTlibMT.vc8.lib(NormalMapGen.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ) referenced in function "protected: bool __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Grow(unsigned int,bool)" (?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z)
Guessing that it was because dxtlib was built last for VC2010, I decided to try to dig up some source codes to build a lib for VC2010, but all I found was code in tools/src, but it seemed to build the library I needed (unless I'm wrong, which I could be). But it yielded this error:
Error 1 error LNK2019: unresolved external symbol "enum NV_ERROR_CODE __cdecl nvDDS::nvDXTcompress(unsigned char const *,unsigned int,unsigned int,unsigned int,enum nvPixelOrder,class nvCompressionOptions *,enum NV_ERROR_CODE (__cdecl*)(void const *,unsigned int,struct MIPMapData const *,void *),struct tagRECT const *)" (?nvDXTcompress@nvDDS@@YA?AW4NV_ERROR_CODE@@PBEIIIW4nvPixelOrder@@PAVnvCompressionOptions@@P6A?AW42@PBXIPBUMIPMapData@@PAX@ZPBUtagRECT@@@Z) referenced in function "unsigned char __cdecl nvDXTCompressWrapper(unsigned char *,unsigned int,unsigned int,class nvCompressionOptions *,enum NV_ERROR_CODE (__cdecl*)(void const *,unsigned int,struct MIPMapData const *,void *))" (?nvDXTCompressWrapper@@YAEPAEIIPAVnvCompressionOptions@@P6A?AW4NV_ERROR_CODE@@PBXIPBUMIPMapData@@PAX@Z@Z) C:\Users\Kevin\Documents\Visual Studio 2010\Resources\vtflib130\sln\vs8\VTFLib\VTFFile.obj
I am wondering if this is because DDS_Utilities is now version 8.31.1127.1645? Something is getting skewed. Anyway, I don't expect you to know the answer for fix anything, just thinking out loud mostly.
I guess I can try it out on VS2008 tomorrow. But I was just wondering about this since this is my first go with dealing with vtflib's source. Since I don't really need the DDS stuff I might just cut out all of the dxtlib stuff.
By the by, long time lurker big time fan of your tools Nem! Thanks for making them!
1>nvDXTlibMT.vc8.lib(dxt_compress.obj) : error LNK2019: unresolved external symbol _hypot referenced in function "private: void __thiscall JAMA::Eigenvalue<double>::tql2(void)" (?tql2@?$Eigenvalue@N@JAMA@@AAEXXZ)
1>nvDXTlibMT.vc8.lib(NormalMapGen.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ) referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z)
1>nvDXTlibMT.vc8.lib(NormalMapGen.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ) referenced in function "protected: bool __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Grow(unsigned int,bool)" (?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z)
Guessing that it was because dxtlib was built last for VC2010, I decided to try to dig up some source codes to build a lib for VC2010, but all I found was code in tools/src, but it seemed to build the library I needed (unless I'm wrong, which I could be). But it yielded this error:
Error 1 error LNK2019: unresolved external symbol "enum NV_ERROR_CODE __cdecl nvDDS::nvDXTcompress(unsigned char const *,unsigned int,unsigned int,unsigned int,enum nvPixelOrder,class nvCompressionOptions *,enum NV_ERROR_CODE (__cdecl*)(void const *,unsigned int,struct MIPMapData const *,void *),struct tagRECT const *)" (?nvDXTcompress@nvDDS@@YA?AW4NV_ERROR_CODE@@PBEIIIW4nvPixelOrder@@PAVnvCompressionOptions@@P6A?AW42@PBXIPBUMIPMapData@@PAX@ZPBUtagRECT@@@Z) referenced in function "unsigned char __cdecl nvDXTCompressWrapper(unsigned char *,unsigned int,unsigned int,class nvCompressionOptions *,enum NV_ERROR_CODE (__cdecl*)(void const *,unsigned int,struct MIPMapData const *,void *))" (?nvDXTCompressWrapper@@YAEPAEIIPAVnvCompressionOptions@@P6A?AW4NV_ERROR_CODE@@PBXIPBUMIPMapData@@PAX@Z@Z) C:\Users\Kevin\Documents\Visual Studio 2010\Resources\vtflib130\sln\vs8\VTFLib\VTFFile.obj
I am wondering if this is because DDS_Utilities is now version 8.31.1127.1645? Something is getting skewed. Anyway, I don't expect you to know the answer for fix anything, just thinking out loud mostly.
I guess I can try it out on VS2008 tomorrow. But I was just wondering about this since this is my first go with dealing with vtflib's source. Since I don't really need the DDS stuff I might just cut out all of the dxtlib stuff.
By the by, long time lurker big time fan of your tools Nem! Thanks for making them!
12. NemPosted: Jun 13th, 2010 - 12:13:44 pm
The library is built using Visual Studio 2005 because the dependent nvDXTLib only
provides static libraries built for 2003 and 2005. There is a newer version of nvDXTLib, but I don't use
it because they removed features that I was using and completely changed the API.
nvDXTLib is only necessary for creating .vtf images. If you just want to be able to read .vtf images, you can rebuild the library with USE_NVDXT=0 defined.
Another option is to dynamically import the C version of the API.
If you don't have nxDXTLib installed you will have to download it and update your VC++ Directories to point to it.
nvDXTLib is only necessary for creating .vtf images. If you just want to be able to read .vtf images, you can rebuild the library with USE_NVDXT=0 defined.
Another option is to dynamically import the C version of the API.
If you don't have nxDXTLib installed you will have to download it and update your VC++ Directories to point to it.
13. kabojnkModified: Jun 13th, 2010 - 9:07:34 pm
Nem:
The library is built using Visual Studio 2005 because the dependent nvDXTLib only
provides static libraries built for 2003 and 2005. There is a newer version of nvDXTLib, but I don't
use it because they removed features that I was using and completely changed the API.
nvDXTLib is only necessary for creating .vtf images. If you just want to be able to read .vtf images, you can rebuild the library with USE_NVDXT=0 defined.
Another option is to dynamically import the C version of the API.
If you don't have nxDXTLib installed you will have to download it and update your VC++ Directories to point to it.
nvDXTLib is only necessary for creating .vtf images. If you just want to be able to read .vtf images, you can rebuild the library with USE_NVDXT=0 defined.
Another option is to dynamically import the C version of the API.
If you don't have nxDXTLib installed you will have to download it and update your VC++ Directories to point to it.
Yeah, I did download/install it from that page, but the build they have is different than the version required in vtflib (the legacy page you link to only has build 8.31.1127.1645 available for download). I wish they had some sort of previous releases list.
That said, I _do_ only need the library for reading .vtf files, so maybe I will just build it without NVDXT. Thanks for the tip! That will probably save more time than dynamically importing the C version of the API.
FYI, just an update.
The Download link points to:
http://developer.download.nvidia.com/tools/texturetools/DDS_Utilities_8.31.1127.1645.exe
But if you just change the filename to the build mentioned in your comments in VTFFile.cpp (8.31.0225.1745), it's still on the server for download. Here's the URL:
http://developer.download.nvidia.com/tools/texturetools/DDS_Utilities_8.31.0225.1745.exe
Might be helpful.
14. NemPosted: Jun 14th, 2010 - 1:39:34 am
Sorry for the confusion kabojnk, that comment is out of date (I'll remember to update
it). The binaries I released are linked again the version in my previous post. Are you having problems
with it?
15. AndreazzzPosted: Jul 29th, 2010 - 5:53:33 am
Nem, can you upload your version of nvDTX?
17. ScarTPosted: Apr 4th, 2011 - 12:12:34
pm
Is there really no way to build VTFLib under VS2010?
18. NemPosted: Apr 4th, 2011 - 9:30:35 pm
I don't offer official support because I rely on features of nvDXT that were removed
when nVidia rewrote the library.
That said, you have a few options:
That said, you have a few options:
- Disable write support (#define USE_NVDXT 0) to remove all nvDXT dependencies and convert the solution to 2010. You will still be able to read .vtf files.
- Convert the solution to 2010 and compile anyway. The lib files should be binary compatible. Your embedded manifest will probably be wrong but you can either hand edit it or override it.
- Convert the solution to 2010 and use the "Platform Toolset" option to compile against v80. You will need to add this option.
19. JoeShmoePosted: Apr 9th, 2011 - 2:52:28
pm
I'm not going to try to hide the fact that I've always been lost when it comes to
software licenses. I'm writing a program that needs to convert vtf to bmp. Under the GPL and LGPL, what
do I need to include if I wish to package VTFCmd with my program when I distribute it?
Great library, btw.
Great library, btw.
20. NemPosted: Apr 10th, 2011 - 3:10:29 pm
VTFLib is LGPL, so you can link against it and use it in your code without any
requirements on the licensing of your code or the resulting binary. That is you can do whatever you
want, you just have to make any changes to the library itself available upon request.
If you want to include VTFCmd and launch it from your application's binary to do the conversion, the same constraints apply, only changes to the code in VTFCmd need to be available upon request.
Keeping intact the VTFLib (LGPL) or VTFCmd (GPL) license is the only other requirement. This can be fulfilled by copying the appropriate license file to the folder you install the binaries to (e.g. rename "LGPL.txt" to "VTFLib License.txt" and place that file in the same location of VTFLib.dll.
If you want to include VTFCmd and launch it from your application's binary to do the conversion, the same constraints apply, only changes to the code in VTFCmd need to be available upon request.
Keeping intact the VTFLib (LGPL) or VTFCmd (GPL) license is the only other requirement. This can be fulfilled by copying the appropriate license file to the folder you install the binaries to (e.g. rename "LGPL.txt" to "VTFLib License.txt" and place that file in the same location of VTFLib.dll.
21. TyphoxModified: Feb 18th, 2012 - 3:58:41
am
Sad, I can't use it in my Project because it doesn't support mingw and due to
licensing issues I can't modify the files to be usable with Qt :(
Anyway, I'm going to use VTFCmd then...
Anyway, I'm going to use VTFCmd then...
22. jack5500Posted: Apr 13th, 2012 - 5:59:40
am
Why does my input texture have to in the power of 2 when i use VTFCMD, but not when I
use VTFEDIT?
That really bugs me :)
That really bugs me :)
23. maplePosted: Mar 25th, 2014 - 3:14:41
pm
great!
to jack5500:if u want to use vtfcmd, u need ro add "-resize" option.
to jack5500:if u want to use vtfcmd, u need ro add "-resize" option.