Pavel Krajcevski
86741f7a89
Fix some configuration issues with VS2012
2013-11-17 14:17:00 -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
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
ab598c9ef7
Move Pixel class from PVRTCEncoder to FasTCBase.
2013-10-03 17:25:15 -04:00
Pavel Krajcevski
160fbb5e39
Add method for downscaling by averaging nearby pixel values.
2013-10-03 14:12:41 -04:00
Pavel Krajcevski
03f693f104
Add a hook into the PVRTexLib compressor if it's been found via cmake.
2013-09-30 12:38:09 -04:00
Pavel Krajcevski
dcf389d346
Merge PVRTC compressor into split library.
2013-09-27 17:30:16 -04:00
Pavel Krajcevski
ed12d53cd4
Merge in a few changes from master
2013-09-25 15:05:56 -04:00
Pavel Krajcevski
f19b324d28
Make sure to use the proper directory when running RUN_TESTS from MSVC. Note, this doesn't work in Release.
2013-09-25 14:42:35 -04:00
Pavel Krajcevski
79d2ad79ac
Fix some snafus on windows
2013-09-25 14:30:48 -04:00
Pavel Krajcevski
8f4dcca4d7
Add some utility functions for manipulating the block data, including packing colors back into the 64-bit word.
2013-09-24 20:33:48 -04:00
Pavel Krajcevski
340f4f3141
Add pixel packing routines
2013-09-24 19:29:03 -04:00
Pavel Krajcevski
75e570ed16
Fix some compiler snafus
2013-09-24 17:46:09 -04:00
Pavel Krajcevski
1636232717
Make sure that when changing from higher to lower bit depth (i.e. perform a division) that we round to the nearest value
2013-09-24 17:45:19 -04:00
Pavel Krajcevski
995c237e5e
Add downscale test and fix a few bugs and formatting.
2013-09-19 17:47:36 -04:00
Pavel Krajcevski
1d58ea2385
Add RGBA pixel constructor
2013-09-19 15:11:27 -04:00
Pavel Krajcevski
4135e38f22
Set the default wrap behavior to wrap for image upscale, too
2013-09-18 18:00:59 -04:00
Pavel Krajcevski
d4ca50f8ed
Fix the directories in the PVRTC compressor
2013-09-17 18:35:56 -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
b3de3f2c01
If our compile flag is set to output debug images with tests, then actually do it.
2013-09-12 14:45:42 -04:00
Pavel Krajcevski
b3f8fcd454
Decouple upscale directions so that we can non-uniformly scale images.
2013-09-12 14:44:54 -04:00
Pavel Krajcevski
7184d49ccd
Add unpack RGBA for our pixels
2013-09-12 14:41:00 -04:00
Pavel Krajcevski
1115c2f9e4
Add 2BPP helper functions for our blocks.
...
Namely, there are two things that we need to do:
1. Figure out the sub-mode based on the mode bit and the structure of the modulation data. The comments in Block.h describe how we do this.
2. For a given texel index, return 2BPP texel modulation bits.
2013-09-12 14:30:08 -04:00
Pavel Krajcevski
08cad3ba86
Add 2BPP tests
2013-09-12 14:04:20 -04:00
Pavel Krajcevski
0172df4e60
Add final opaque to transparent gradient test.
2013-09-10 13:34:13 -04:00
Pavel Krajcevski
f5e0aa4f9f
Make sure to clear the MSBs of channels that have zero depth that get converted to higher depth values
2013-09-10 13:21:48 -04:00
Pavel Krajcevski
77bb7488cc
Fix typo
2013-09-10 11:58:53 -04:00
Pavel Krajcevski
5020f81f00
Add a transparent pvr image test
2013-09-09 10:33:04 -05:00
Pavel Krajcevski
09b5680245
Some small code style fixes
2013-09-06 13:37:50 -04:00
Pavel Krajcevski
5ac6872dc7
Add a test to make sure that after a bilerp the pixels that should remain unaffected do in fact remain unaffected.
2013-09-06 02:02:34 -04:00
Pavel Krajcevski
3806efe6fc
Add some more hacky includes to be able to output debug images from our tests.
2013-09-06 02:02:02 -04:00
Pavel Krajcevski
b8e155e11c
Switch red and blue channels in our decompressor test.
2013-09-05 14:49:08 -04:00
Pavel Krajcevski
7b72a84d87
Add a working directory for PVR lib tests
...
Unfortunately, the WORKING_DIRECTORY directive for ADD_TEST seems to be broken as of CMake 2.8.10, fortunately there was a mail thread about this issue in 2.6 so I was able to implement the workaround.
2013-09-04 20:43:49 -04:00
Pavel Krajcevski
6149c0af3a
Add PVR tests
...
If cmake was able to find Imagination's PVR library, then it'd be nice to make sure that our decompressor matches theirs. We incur a bit of overhead by adding .pvr files into git, but hopefully this cost will be beneficial to actually figuring out how things are working...
2013-09-04 20:21:56 -04:00
Pavel Krajcevski
052157ea49
Rename our tests to start with the prefix 'Test'
2013-09-04 20:21:28 -04:00
Pavel Krajcevski
abd4ba8b54
Abstract away some utilities that we can use across all of our tests, and add a test for a gray image. The test currently seems to be failing, which is likely due to a bug in our bit depth manipulation code.
2013-09-04 20:20:37 -04:00
Pavel Krajcevski
bb525ae9dc
If all of the PVR blocks are the same then we don't need so much code.
2013-09-04 15:28:51 -04:00
Pavel Krajcevski
9273625eeb
Add initial decompressor test
2013-09-02 19:14:50 -04:00
Pavel Krajcevski
4bbd80aab2
Make sure to preserve bit depth when bilinearly upscaling
2013-09-02 19:14:31 -04:00
Pavel Krajcevski
3f4ffa61b5
Reverse byte order (and interpret the data as a 64 bit word) for PVRTC blocks
2013-09-02 19:13:53 -04:00
Pavel Krajcevski
5cde88d3b7
Add Image tests
2013-08-31 18:31:38 -04:00
Pavel Krajcevski
26005bfd27
Disambiguate the Image.h from PVRTCEncoder and Core
2013-08-31 16:36:10 -04:00
Pavel Krajcevski
21199bc264
Add Pixel tests
2013-08-31 16:06:00 -04:00
Pavel Krajcevski
012d9e3ce0
Add preliminary tests for PVRTC pixels
2013-08-30 19:08:20 -04:00
Pavel Krajcevski
1cc8f57538
Add block tests
2013-08-30 18:44:50 -04:00