Pavel Krajcevski
baab69dc99
Fix some MSVC compiler snafus
2013-09-28 22:21:31 -04:00
Pavel Krajcevski
157295efa3
Squelch some compiler warnings.
2013-09-27 17:38:36 -04:00
Pavel Krajcevski
dcf389d346
Merge PVRTC compressor into split library.
2013-09-27 17:30:16 -04:00
Pavel Krajcevski
8ea39890ac
Update compressor to do a simple bounding box algorithm... results are still bad but better than what we've been getting.
2013-09-26 20:19:19 -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
4de5f90edf
Some small bug fixes to our still awful compressor.
2013-09-25 20:10:18 -04:00
Pavel Krajcevski
a57c40005c
Small bug: don't allocate more memory than we have to.
2013-09-25 20:07:44 -04:00
Pavel Krajcevski
2c8254d6c3
Small optimization: reserve vector data before we populate blocks vector.
2013-09-25 16:38:10 -04:00
Pavel Krajcevski
33a1dab0a9
The modulation value is the index.
2013-09-25 16:37:34 -04:00
Pavel Krajcevski
088481afe4
Meant resize instead of reserve.
2013-09-25 16:37:17 -04:00
Pavel Krajcevski
a587899048
Fix some compiler errors with MSVC (and honestly, other compilers should catch them, too.)
2013-09-25 15:06:45 -04:00
Pavel Krajcevski
ed12d53cd4
Merge in a few changes from master
2013-09-25 15:05:56 -04:00
Pavel Krajcevski
79d2ad79ac
Fix some snafus on windows
2013-09-25 14:30:48 -04:00
Pavel Krajcevski
c6d7bdc670
Very preliminary compressor
2013-09-24 20:35:36 -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
3de9abc908
Make PVRTC block size a constant accessible from the global header
2013-09-24 19:30:31 -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
ea68f3a138
PVRTC image quality of life improvements.
2013-09-24 14:00:14 -04:00
Pavel Krajcevski
e9a9988a56
Fix small bug in downsampling that causes artifacts
2013-09-20 12:48:56 -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
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
9f4fa671d9
Add a first pass at content aware downscaling.
2013-09-18 18:03:44 -04:00
Pavel Krajcevski
e609075d04
Split apart the index calculation and pixel lookup functions
2013-09-18 18:03:08 -04:00
Pavel Krajcevski
16cc7f4a93
Use GetHeight/GetWidth() where appropriate instead of m_Width/m_Height
2013-09-18 18:02:35 -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
093576c9e7
Add initial code for our compressor.
2013-09-13 13:10:22 -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
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
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
eb312ccb0a
Small refactor
2013-09-09 14:16:45 -04: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
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
a6e6138084
Change the lerp function to be more explicit.
2013-09-05 14:49:56 -04:00