Commit Graph

587 Commits

Author SHA1 Message Date
Pavel Krajcevski
914eeae284 PThreads are weird on OS X 2014-03-13 21:45:14 -04:00
Pavel Krajcevski
b1ef548a7c Fix test iteration constant 2014-03-13 21:45:03 -04:00
Pavel Krajcevski
44ebe5d0bb Hook ASTC decompressor into the rest of FasTC 2014-03-12 19:41:48 -04:00
Pavel Krajcevski
c6364cc2a7 Made utils functions static inline and removed block size from compression specification
I'm not completely sure what the best strategy is in this case. Ultimately, it's good
that the format itself carries the block dimensions. It makes a lot of the code somewhat
uglier though, but really the only thing that we're sullying is the succinct ability to
determine what large-scale format it's in (PVRTC vs ASTC instead of 2bpp PVRTC vs 4bpp).
2014-03-12 19:38:35 -04:00
Pavel Krajcevski
0afa26ac74 Add proper return value 2014-03-12 19:38:17 -04:00
Pavel Krajcevski
0cac0c5c0a Add .astc file loader 2014-03-12 19:26:39 -04:00
Pavel Krajcevski
d3afd51b3d Why is this signed? 2014-03-12 19:26:28 -04:00
Pavel Krajcevski
6738df64f4 Add ASTC values to KTX loader 2014-03-12 18:43:48 -04:00
Pavel Krajcevski
b5f3cde554 Add ASTC compression formats 2014-03-12 14:02:34 -04:00
Pavel Krajcevski
7ee0df9a5a Add 2bpp PVRTC compression format 2014-03-12 14:01:31 -04:00
Pavel Krajcevski
0a4726bfe2 Merge branch 'master' into DecompressASTC 2014-03-12 13:29:17 -04:00
Pavel Krajcevski
f1b5bc3831 Use references to images from image loader.
In general, we should really copy the images with the built-in Clone()
function, but then we'd need to manage memory, etc. To avoid that headache,
we can simply just use references.
2014-03-12 13:18:56 -04:00
Pavel Krajcevski
a51e63f5c0 Fix some KTX IO bugs 2014-03-12 13:18:43 -04:00
Pavel Krajcevski
865239542a Cast our strlens to uint32 to avoid compiler warnings. 2014-03-12 12:13:16 -04:00
Pavel Krajcevski
cc566471e9 Disambiguate the sqrts we're using 2014-03-12 12:12:20 -04:00
Pavel Krajcevski
6fdc3814b1 Seriously, I hate compiler warnings 2014-03-12 03:51:16 -04:00
Pavel Krajcevski
02e1749051 More compiler warnings 2014-03-12 03:46:23 -04:00
Pavel Krajcevski
b885ac2d15 Don't pull submodules when doing travis-ci builds 2014-03-12 03:43:20 -04:00
Pavel Krajcevski
caf4864761 More compiler warnings. 2014-03-12 03:40:45 -04:00
Pavel Krajcevski
33f575685d Add travis.ci image to readme 2014-03-12 03:36:03 -04:00
Pavel Krajcevski
c5d0a803e9 One more small piece of determinism 2014-03-12 03:31:53 -04:00
Pavel Krajcevski
7ecb217d20 More determinism 2014-03-12 03:29:05 -04:00
Pavel Krajcevski
98ee740c7a Update travis.yml to output the test log if it exists. 2014-03-12 03:14:59 -04:00
Pavel Krajcevski
88821fbbb0 Prevent the compiler from deciding whether or not the float is big enough to overflow or not... 2014-03-12 03:02:17 -04:00
Pavel Krajcevski
e96cecc13a Add some typename specifiers 2014-03-12 03:01:28 -04:00
Pavel Krajcevski
479ba8e76d Fix a bunch of MSVC compiler warnings and errors.
Most notably, we need to actually fix a bug in MSVC that doesn't know how to properly instantiate
enums in partial template specialization. There are more details outlined here:

http://stackoverflow.com/questions/15466594/why-does-msvc-fail-to-compile-this-template-function

The fix in this commit closes #10

Also in this commit is a hacky way to allow GL defines. Apparently "LoadImage" is defined as a
macro even with WIN32_LEAN_AND_MEAN. This means that we have to #undef the code that includes
it, meaning that we also need to make sure not to actually mix GLDefines.h with any file that needs
to use the functions from Windows.h
2014-03-12 02:43:09 -04:00
Pavel Krajcevski
0eae5548a3 Make unit tests a bit more deterministic 2014-03-12 02:42:45 -04:00
Pavel Krajcevski
c5aab908ef Relax the test parameters on eigenvalue calculation 2014-03-12 02:42:09 -04:00
Pavel Krajcevski
ce99d79bab Add some static casts 2014-03-12 02:41:23 -04:00
Pavel Krajcevski
ebfd8f8f81 Override LoadImage for ktx files 2014-03-11 18:27:37 -04:00
Pavel Krajcevski
41a7abcdbb Let the image loader return the actual image pointer instead of having the data be constructed 2014-03-11 18:04:26 -04:00
Pavel Krajcevski
625b202b46 Add travis-ci yml file 2014-03-11 17:27:52 -04:00
Pavel Krajcevski
8acd89cbc5 Add virtual destructor 2014-03-11 17:26:55 -04:00
Pavel Krajcevski
272e753006 Add OpenGL defines for ASTC 2014-03-11 17:26:32 -04:00
Pavel Krajcevski
dd41fc6ba1 Finish first pass of ASTC decompressor
Added color unquantization, the partition selection function, and the
actual lerping of colors once the texels have been decoded.
2014-03-11 16:52:41 -04:00
Pavel Krajcevski
cebce26be1 Change our pixel component type to be signed 2014-03-11 16:52:02 -04:00
Pavel Krajcevski
3dd1444ff6 Add clamping to our pixels 2014-03-11 16:48:25 -04:00
Pavel Krajcevski
86678c0cfe Add 4-value pixel constructor 2014-03-11 16:40:31 -04:00
Pavel Krajcevski
f0110360c4 Add texel unquantization 2014-03-10 18:56:39 -04:00
Pavel Krajcevski
4e45988caa Refactor to FasTC::Replicate where appropriate 2014-03-10 18:56:28 -04:00
Pavel Krajcevski
ed61bcfee4 Add generatl bit replication function 2014-03-10 18:30:27 -04:00
Pavel Krajcevski
0ca2917caa Fix some small compiler warnings. 2014-03-10 15:02:43 -04:00
Pavel Krajcevski
267a959f75 Add some extra PVRTC debugging 2014-03-10 15:02:28 -04:00
Pavel Krajcevski
1f5cb9294c Add ASTCEncoder tests
Start with small tests to make sure that integer sequence encoding is working the way
that it needs to. Ideally there will be many more tests here, but for now we are trying
to get ASTC decompression working and testing is not a priority.
2014-03-10 15:00:30 -04:00
Pavel Krajcevski
fb7d80b385 Break out the integer sequence encoding into its own module. 2014-03-10 14:59:45 -04:00
Pavel Krajcevski
56c199fc5d Add bit counter to utils 2014-03-10 14:58:36 -04:00
Pavel Krajcevski
5a68febdda More work on ASTC decode.
Fixed the notion that the CEM data was right after the first six bits
after the partition mode. It's actually right before the texel weight
data. Still not sure whether or not the texel weights are read in
the opposite order from the color data...

Also, added some preliminary integer sequence decoding. This will need
to be tested before we actually figure out if we did it correctly or not...
2014-03-07 19:32:15 -05:00
Pavel Krajcevski
94db169582 Add a utility Bits class to help work with bit ranges in integers. Ideally we should add a bunch of other classical bitwise operations here 2014-03-07 19:31:22 -05:00
Pavel Krajcevski
8b9849182a Add additional error check. 2014-02-28 19:04:25 -05:00
Pavel Krajcevski
be24a67bfc Add color endpoint mode decoding 2014-02-27 17:02:38 -05:00