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
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
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
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
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