Pavel Krajcevski
9acd9db7b3
Merge branch 'master' into CompressPVRTC
2013-09-18 17:55:32 -04:00
Pavel Krajcevski
e0ec005ac8
Fix link problems
2013-09-18 14:00:53 -04:00
Pavel Krajcevski
1a70ddf57a
Remove spurious comment
2013-09-17 18:52:02 -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
2540032acc
Some small formatting changes
2013-09-13 16:25:00 -04:00
Pavel Krajcevski
093576c9e7
Add initial code for our compressor.
2013-09-13 13:10:22 -04:00
Pavel Krajcevski
0afa1281a8
Change default wrap mode to wrap
2013-09-13 13:10:07 -04:00
Pavel Krajcevski
571bf1ebd0
Remove dead code
2013-09-12 15:01:30 -04:00
Pavel Krajcevski
f7404c44b9
Refactor debug output for modulation info.
2013-09-12 15:01:19 -04:00
Pavel Krajcevski
1b073eb4b7
Add 2BPP decompression
2013-09-12 14:45:56 -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
9f6e6e7233
Fix bug with debug images
2013-09-12 14:32:33 -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
dd625fca71
When going from 344(3/4) pixels to 4555, the alpha channel only has a zero appended to it. Hence we must clear that bit for each pixel that was transparent during decoding.
2013-09-10 13:22:53 -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
eb312ccb0a
Small refactor
2013-09-09 14:16:45 -04:00
Pavel Krajcevski
5020f81f00
Add a transparent pvr image test
2013-09-09 10:33:04 -05:00
Pavel Krajcevski
6c8eea5520
Add superfluous code from when I was trying to match the decoder to PVR library.
2013-09-09 10:31:53 -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
91c79cd717
Fix Bilinear upscale
...
There were a couple of fixes.
1. Add another set of pixels to an image that represent the fractional bits that get populated as a result of doing a bilerp.
2. Do not consider individual axes when doing the bilerp. Instead, assign a weight to each of the different texels that we will use for the bilerp. Then, combine them and save the fractional bits.
2013-09-06 01:58:53 -04:00
Pavel Krajcevski
92827c23fc
Add a debug function to our intermediate PVRTC images
2013-09-06 01:57:06 -04:00
Pavel Krajcevski
0d0c65f536
Actually index into our pixels properly...
2013-09-06 01:55:25 -04:00
Pavel Krajcevski
2263080faa
Fix the interleaving by doing it when we're actually reading in the blocks
2013-09-06 01:55:06 -04:00
Pavel Krajcevski
db914018f1
Two enhancements:
...
1. Make sure to use the same lerping code for both modulation modes when decompressing.
2. Accept a flag during decompression that outputs the debug images that were computed during decompression.
2013-09-06 01:53:10 -04:00
Pavel Krajcevski
7403e77d4d
Add some hacky includes and libraries to support writing out debug images
2013-09-06 01:50:46 -04:00
Pavel Krajcevski
0f659269e7
Add error message when we can't load a file.
2013-09-06 01:39:23 -04:00
Pavel Krajcevski
c367d11e9d
Formatting
2013-09-06 01:39:11 -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
a6e6138084
Change the lerp function to be more explicit.
2013-09-05 14:49:56 -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
669b2c0934
Reverse the order for modulating our bits... I'm not convinced that this is right
2013-09-04 20:18:43 -04:00
Pavel Krajcevski
34ab853a62
Make sure to take into account the interleaved nature of the blocks when decompressing
2013-09-04 20:18:03 -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
df81c73456
Default wrap mode to clamp
2013-09-02 19:12:43 -04:00