Commit graph

57 commits

Author SHA1 Message Date
Pavel Krajcevski 34f90c07a2 Qualify namespace 2015-01-26 15:11:35 -05:00
Pavel Krajcevski 43aa8266b6 Fix license in file 2015-01-26 15:10:56 -05:00
Pavel Krajcevski fb7805d875 Bring CMake integration up to date.
- Add a way to generate a FasTCConfig.cmake file so that you can
use cmake without having to install it.
- Add install paths for users that want to install it.
- Hide all public headers in FasTC/ qualified include path, this way we
know what files are public directly from the source. Also, it lets us
define build-tree and install-tree include directories a lot easier.
2014-11-18 17:07:26 -05:00
Pavel Krajcevski 65b874693e Move stopwatch.h to Core/src/include 2014-03-20 18:32:54 -04:00
Pavel Krajcevski 553dc44ca5 Allow access to the compressed data if the user promises not to change it. 2014-01-23 18:23:55 -05:00
Pavel Krajcevski 6794a0fffb Add hooks to NVTT bc7_export library if present on the users machine. Assumes that all of the cross platform problems are fixed for incorporation into FasTC... Otherwise the options to use NVTT are ignored. 2013-11-19 12:03:03 -05:00
Pavel Krajcevski a80944901e Refactor CompressionJob struct.
In order to better facilitate the change from block stream order to non-block stream order,
a lot of changes were introduced to the way that we feed texture data to the compressors. This
data is embodied in the CompressionJob struct. We have made it so that the compression job
points to both the in and out pointers for our compressed and uncompressed data. Furthermore,
we have made sure that the struct also contains the format that its compressing for, so that if
any threading programs would like to chop up a compression job into smaller chunks based on the
format, it doesn't need to know the format explicitly, it just needs to know certain properties
about the format.

Moreover, the user can now define the start and end pixels from which we would like to compress
to. We can compress subsets of data by changing the in and out pointers and the width and height
values. The compressors will read data linearly until they reach the out pixels based on the width
of the given pixel.
2013-11-08 16:31:19 -05:00
Pavel Krajcevski bae71bbe4f Add Rich Geldreich's ETC1 compressor. 2013-10-21 17:23:33 -04:00
Pavel Krajcevski 3e35fb2c0d Merge SplitCoreLibrary 2013-10-10 11:04:40 -04:00
Pavel Krajcevski 4baf2ce311 Combine image functionality from PVRTCEncoder into Base library. 2013-10-04 18:35:18 -04:00
Pavel Krajcevski ce7bb8e891 Add command line flags to choose between whether or not to use PVRTexLib or FasTC 2013-09-30 12:46:23 -04:00
Pavel Krajcevski 89fbaf8170 Keep track of the image size with the base image rather than the compressed image. It's not always the case that the image data is RGBA8 data. 2013-09-28 22:40:48 -04:00
Pavel Krajcevski c3cb8403b5 Fix our threadsafe streambuf to accept a sink that receives all of the proper output... 2013-09-28 21:44:50 -04:00
Pavel Krajcevski 13af957ab9 Remove BlockStatManager in favor of ostreams 2013-09-28 21:42:24 -04:00
Pavel Krajcevski 7bd54105e4 Add simple implementation of our thread-safe stream buffer. 2013-09-28 18:11:41 -04:00
Pavel Krajcevski 8bc81edf14 Add skeleton for thread safe stream buffer. 2013-09-28 17:30:25 -04:00
Pavel Krajcevski dcf389d346 Merge PVRTC compressor into split library. 2013-09-27 17:30:16 -04:00
Pavel Krajcevski 264e447e80 Deal with this bug once and for all. If we have an image in block stream order, then explicitly reorder it before doing any work. Then keep it that way. I probably could have fixed this in the amount of time I've wasted on it. -____- 2013-09-26 20:17:07 -04:00
Pavel Krajcevski 1093447055 Plug in the infrastructure to start passing images to be compressed. 2013-09-20 12:43:59 -04:00
Pavel Krajcevski 29bd1368e6 Fix a few compiler warnings and add the BPTCEncoder license. 2013-09-15 14:56:09 -04:00
Pavel Krajcevski 28cf254fe5 Initial decoupling of base library from core library. Includes a few formatting changes as well. 2013-09-13 19:36:37 -04:00
Pavel Krajcevski 2540032acc Some small formatting changes 2013-09-13 16:25:00 -04:00
Pavel Krajcevski 9b7bb2cbc7 Add hooks to support outputing images whose pixels are not in block-stream order 2013-09-06 01:38:52 -04:00
Pavel Krajcevski 03a7934644 Get rid of evil tabs once and forever (from cpp/h files) 2013-08-26 16:54:08 -04:00
Pavel Krajcevski fc1baea05f Add a lot of comments and code cleanup 2013-08-22 18:33:42 -04:00
Pavel Krajcevski 7c3b3d8144 Fix a few bugs in our CompressionJobList's 2013-03-11 14:41:08 -04:00
Pavel Krajcevski ae2324153d Repurpose the rest of our scaffolding to use Compression Jobs 2013-03-09 13:36:39 -05:00
Pavel Krajcevski 435f935de3 Update atomics compression algorithm
In general, we want to use this algorithm only with self-contained compression
lists. As such, we've added all of the proper synchronization primitives in
the list object itself. That way, different threads that are working on the
same list will be able to communicate. Ideally, this should eliminate the
number of user-space context switches that happen. Whether or not this is
faster than the other synchronization algorithms that we've tried remains
to be seen...
2013-03-09 13:34:10 -05:00
Pavel Krajcevski abd3961a09 Add a new interface to compressing files which we will call a 'compression job' 2013-03-09 13:22:42 -05:00
Pavel Krajcevski 2127c04987 Add flag to compression settings to use atomics. 2013-03-06 19:01:31 -05:00
Pavel Krajcevski 8ebdc30394 Add Yield function to global namespace
In order to develop a threadsafe texture compression function, we will need
to preempt threads in order to not kill performance while we initialzie everything...
2013-03-06 17:29:22 -05:00
Pavel Krajcevski 771b91b795 Fix a bunch of memory leaks. 2013-02-07 17:01:38 -05:00
Pavel Krajcevski 1b30efe488 Got rid of some more compiler warnings. 2013-01-28 16:57:15 -05:00
Pavel Krajcevski 5dd1fbbd48 Fix a lot of compiler warnings. 2013-01-28 16:30:04 -05:00
Pavel Krajcevski cdbf72b6c0 Merge MSVC support into master. 2013-01-28 11:49:03 -05:00
Pavel Krajcevski deac1e7fad Fix some compiler errors... 2013-01-28 11:44:14 -05:00
Pavel Krajcevski 45e926536a Move Thread.h out of the include directory, and update the BlockStatManager to compensate. 2013-01-27 14:36:19 -05:00
Pavel Krajcevski 5eba3ba6f7 Add license 2012-11-15 11:51:55 -05:00
Pavel Krajcevski 8761821220 More compiler fixes. 2012-11-07 18:01:02 -05:00
Pavel Krajcevski 05e6ca0bc9 Fix windows issues with blockstats... 2012-11-07 16:52:06 -05:00
Pavel Krajcevski e3757fde74 Fix MSVC interpretation of our types. 2012-11-07 15:20:25 -05:00
Pavel Krajcevski 790df0736f Make stats collection threadsafe. 2012-11-01 18:56:13 -04:00
Pavel Krajcevski 545a6f68e2 Add new structure to support creating Images and ImageFiles from compressed images 2012-10-31 17:50:38 -04:00
Pavel Krajcevski 71fbbca1ee Fix a few issues and make sure that when we write out to a file, only the intended values are reported. We still have to fix the accumulated stat reporting and make it thread-safe. 2012-10-31 17:48:53 -04:00
Pavel Krajcevski 99534bc5d0 Add stats function to serial encoder. Otherwise, continue to use non-stats function in threaded mode. 2012-10-31 17:48:52 -04:00
Pavel Krajcevski 1e6a2d4c7b Add new compression function that collects preliminary stats. 2012-10-31 17:48:52 -04:00
Pavel Krajcevski fcbca9ca8d Add files for new block stats in order to track things in our compression algorithms 2012-10-31 17:48:52 -04:00
Pavel Krajcevski f82173f423 Add platform independent file stream reading and writing in order to allow us to write out logs. 2012-10-31 17:48:52 -04:00
Pavel Krajcevski 2c22889533 Broke the coupling between ImageFile and Image. One is strictly for IO, the other can be platform and file format agnostic. 2012-10-31 17:46:13 -04:00
Pavel Krajcevski c1222d75f9 Reorganize a lot of code. Should probably split image and image file classes to separate IO operations and whatnot. 2012-10-31 17:46:12 -04:00