Browse Source

Add support for sRGB framebuffers and blending to tinydisplay renderer.

rdb 11 years ago
parent
commit
32a9e4d9ed

+ 1 - 0
panda/src/tinydisplay/p3tinydisplay_composite1.cxx

@@ -6,6 +6,7 @@
 #include "td_light.cxx"
 #include "td_light.cxx"
 #include "memory.cxx"
 #include "memory.cxx"
 #include "specbuf.cxx"
 #include "specbuf.cxx"
+#include "srgb_tables.cxx"
 #include "store_pixel.cxx"
 #include "store_pixel.cxx"
 #include "td_texture.cxx"
 #include "td_texture.cxx"
 #include "tinyGeomMunger.cxx"
 #include "tinyGeomMunger.cxx"

+ 346 - 0
panda/src/tinydisplay/srgb_tables.cxx

@@ -0,0 +1,346 @@
+const unsigned short decode_sRGB[256] = { 0x0000, 0x0013, 0x0027, 0x003b,
+  0x004f, 0x0063, 0x0077, 0x008b, 0x009f, 0x00b3, 0x00c6, 0x00db, 0x00f0,
+  0x0107, 0x011f, 0x0139, 0x0153, 0x016f, 0x018c, 0x01aa, 0x01ca, 0x01eb,
+  0x020d, 0x0231, 0x0256, 0x027d, 0x02a4, 0x02ce, 0x02f9, 0x0325, 0x0352,
+  0x0381, 0x03b2, 0x03e4, 0x0418, 0x044d, 0x0484, 0x04bc, 0x04f6, 0x0531,
+  0x056e, 0x05ad, 0x05ed, 0x062f, 0x0672, 0x06b7, 0x06fe, 0x0746, 0x0791,
+  0x07dc, 0x082a, 0x0879, 0x08ca, 0x091d, 0x0971, 0x09c7, 0x0a1f, 0x0a79,
+  0x0ad4, 0x0b32, 0x0b91, 0x0bf2, 0x0c54, 0x0cb9, 0x0d1f, 0x0d88, 0x0df2,
+  0x0e5e, 0x0ecc, 0x0f3c, 0x0fad, 0x1021, 0x1096, 0x110e, 0x1187, 0x1203,
+  0x1280, 0x12ff, 0x1380, 0x1404, 0x1489, 0x1510, 0x1599, 0x1624, 0x16b2,
+  0x1741, 0x17d2, 0x1865, 0x18fb, 0x1992, 0x1a2c, 0x1ac8, 0x1b65, 0x1c05,
+  0x1ca7, 0x1d4b, 0x1df1, 0x1e99, 0x1f44, 0x1ff0, 0x209f, 0x2150, 0x2203,
+  0x22b8, 0x2370, 0x2429, 0x24e5, 0x25a3, 0x2663, 0x2726, 0x27ea, 0x28b1,
+  0x297a, 0x2a45, 0x2b13, 0x2be3, 0x2cb5, 0x2d89, 0x2e60, 0x2f39, 0x3014,
+  0x30f2, 0x31d2, 0x32b4, 0x3398, 0x347f, 0x3569, 0x3654, 0x3742, 0x3832,
+  0x3925, 0x3a1a, 0x3b11, 0x3c0b, 0x3d07, 0x3e05, 0x3f06, 0x400a, 0x410f,
+  0x4218, 0x4322, 0x442f, 0x453f, 0x4650, 0x4765, 0x487c, 0x4995, 0x4ab1,
+  0x4bcf, 0x4cf0, 0x4e13, 0x4f39, 0x5061, 0x518b, 0x52b9, 0x53e8, 0x551b,
+  0x5650, 0x5787, 0x58c1, 0x59fd, 0x5b3c, 0x5c7e, 0x5dc2, 0x5f09, 0x6052,
+  0x619e, 0x62ec, 0x643d, 0x6591, 0x66e7, 0x6840, 0x699b, 0x6afa, 0x6c5a,
+  0x6dbe, 0x6f24, 0x708c, 0x71f8, 0x7366, 0x74d6, 0x764a, 0x77c0, 0x7938,
+  0x7ab4, 0x7c32, 0x7db3, 0x7f36, 0x80bc, 0x8245, 0x83d1, 0x855f, 0x86f0,
+  0x8884, 0x8a1a, 0x8bb4, 0x8d50, 0x8eee, 0x9090, 0x9234, 0x93db, 0x9585,
+  0x9732, 0x98e1, 0x9a93, 0x9c48, 0x9e00, 0x9fbb, 0xa178, 0xa338, 0xa4fb,
+  0xa6c1, 0xa88a, 0xaa56, 0xac24, 0xadf5, 0xafc9, 0xb1a0, 0xb37a, 0xb557,
+  0xb736, 0xb919, 0xbafe, 0xbce6, 0xbed2, 0xc0c0, 0xc2b0, 0xc4a4, 0xc69b,
+  0xc895, 0xca91, 0xcc91, 0xce93, 0xd098, 0xd2a1, 0xd4ac, 0xd6ba, 0xd8cb,
+  0xdadf, 0xdcf7, 0xdf11, 0xe12e, 0xe34e, 0xe571, 0xe796, 0xe9bf, 0xebeb,
+  0xee1a, 0xf04c, 0xf281, 0xf4b9, 0xf6f4, 0xf932, 0xfb73, 0xfdb7, 0xffff};
+
+const unsigned char encode_sRGB[4096] =   { 0x00, 0x01, 0x02, 0x02, 0x03, 0x04,
+  0x05, 0x06, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0a, 0x0b, 0x0c, 0x0d, 0x0d, 0x0e,
+  0x0f, 0x0f, 0x10, 0x10, 0x11, 0x12, 0x12, 0x13, 0x13, 0x14, 0x14, 0x15, 0x15,
+  0x16, 0x16, 0x17, 0x17, 0x17, 0x18, 0x18, 0x19, 0x19, 0x19, 0x1a, 0x1a, 0x1b,
+  0x1b, 0x1b, 0x1c, 0x1c, 0x1d, 0x1d, 0x1d, 0x1e, 0x1e, 0x1e, 0x1f, 0x1f, 0x1f,
+  0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x22, 0x22, 0x22, 0x22, 0x23, 0x23, 0x23,
+  0x24, 0x24, 0x24, 0x25, 0x25, 0x25, 0x25, 0x26, 0x26, 0x26, 0x26, 0x27, 0x27,
+  0x27, 0x28, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x2a, 0x2a, 0x2a, 0x2a,
+  0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2c, 0x2c, 0x2c, 0x2c, 0x2d, 0x2d, 0x2d, 0x2d,
+  0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2f, 0x2f, 0x2f, 0x2f, 0x30, 0x30, 0x30, 0x30,
+  0x30, 0x31, 0x31, 0x31, 0x31, 0x31, 0x32, 0x32, 0x32, 0x32, 0x32, 0x33, 0x33,
+  0x33, 0x33, 0x33, 0x34, 0x34, 0x34, 0x34, 0x34, 0x35, 0x35, 0x35, 0x35, 0x35,
+  0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x38, 0x38,
+  0x38, 0x38, 0x38, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x3a, 0x3a, 0x3a, 0x3a,
+  0x3a, 0x3a, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
+  0x3c, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
+  0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+  0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
+  0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+  0x44, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x46, 0x46, 0x46, 0x46, 0x46,
+  0x46, 0x46, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x48, 0x48, 0x48, 0x48,
+  0x48, 0x48, 0x48, 0x48, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x4a, 0x4a,
+  0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b,
+  0x4b, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d,
+  0x4d, 0x4d, 0x4d, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4f,
+  0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50,
+  0x50, 0x50, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x52, 0x52,
+  0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53,
+  0x53, 0x53, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x55, 0x55,
+  0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
+  0x56, 0x56, 0x56, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x58,
+  0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x59, 0x59, 0x59, 0x59,
+  0x59, 0x59, 0x59, 0x59, 0x59, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5c,
+  0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5d, 0x5d, 0x5d, 0x5d,
+  0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e,
+  0x5e, 0x5e, 0x5e, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
+  0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x61, 0x61,
+  0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x62, 0x62, 0x62, 0x62, 0x62,
+  0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
+  0x63, 0x63, 0x63, 0x63, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64,
+  0x64, 0x64, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65,
+  0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x67,
+  0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x68, 0x68, 0x68,
+  0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x69, 0x69, 0x69, 0x69, 0x69,
+  0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a,
+  0x6a, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b,
+  0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c,
+  0x6c, 0x6c, 0x6c, 0x6c, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
+  0x6d, 0x6d, 0x6d, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e,
+  0x6e, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f,
+  0x6f, 0x6f, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70,
+  0x70, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71,
+  0x71, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72,
+  0x72, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73,
+  0x73, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74,
+  0x74, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75,
+  0x75, 0x75, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76,
+  0x76, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+  0x77, 0x77, 0x77, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+  0x78, 0x78, 0x78, 0x78, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
+  0x79, 0x79, 0x79, 0x79, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a,
+  0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+  0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c,
+  0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d,
+  0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e,
+  0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f,
+  0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+  0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+  0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
+  0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
+  0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
+  0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x84, 0x84, 0x84, 0x84,
+  0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x85, 0x85,
+  0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
+  0x85, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
+  0x86, 0x86, 0x86, 0x86, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
+  0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+  0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x89, 0x89, 0x89,
+  0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
+  0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
+  0x8a, 0x8a, 0x8a, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
+  0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
+  0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8d, 0x8d,
+  0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
+  0x8d, 0x8d, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
+  0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
+  0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x90, 0x90, 0x90,
+  0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
+  0x90, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
+  0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
+  0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x93, 0x93, 0x93,
+  0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
+  0x93, 0x93, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
+  0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
+  0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x96,
+  0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
+  0x96, 0x96, 0x96, 0x96, 0x96, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
+  0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x98, 0x98, 0x98,
+  0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
+  0x98, 0x98, 0x98, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+  0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a,
+  0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a,
+  0x9a, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b,
+  0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c,
+  0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c,
+  0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d,
+  0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
+  0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
+  0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f,
+  0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0,
+  0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0,
+  0xa0, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1,
+  0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2,
+  0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2,
+  0xa2, 0xa2, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+  0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa4, 0xa4, 0xa4, 0xa4,
+  0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4,
+  0xa4, 0xa4, 0xa4, 0xa4, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5,
+  0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa6,
+  0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6,
+  0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7,
+  0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7,
+  0xa7, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8,
+  0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa9, 0xa9, 0xa9,
+  0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9,
+  0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+  0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+  0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab,
+  0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xac, 0xac, 0xac, 0xac,
+  0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac,
+  0xac, 0xac, 0xac, 0xac, 0xac, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad,
+  0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad,
+  0xad, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae,
+  0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xaf, 0xaf, 0xaf,
+  0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf,
+  0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0,
+  0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0,
+  0xb0, 0xb0, 0xb0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
+  0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb2,
+  0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2,
+  0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb3, 0xb3, 0xb3, 0xb3,
+  0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3,
+  0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+  0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+  0xb4, 0xb4, 0xb4, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5,
+  0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5,
+  0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6,
+  0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb7, 0xb7,
+  0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7,
+  0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8,
+  0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8,
+  0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9,
+  0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9,
+  0xb9, 0xb9, 0xb9, 0xb9, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba,
+  0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba,
+  0xba, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+  0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+  0xbb, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc,
+  0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbd,
+  0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd,
+  0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbe, 0xbe,
+  0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe,
+  0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbf, 0xbf, 0xbf, 0xbf,
+  0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf,
+  0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
+  0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
+  0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1,
+  0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1,
+  0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2,
+  0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2,
+  0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3,
+  0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3,
+  0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
+  0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
+  0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5,
+  0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5,
+  0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
+  0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
+  0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7,
+  0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7,
+  0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8,
+  0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8,
+  0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9,
+  0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9,
+  0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xca, 0xca, 0xca, 0xca, 0xca,
+  0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca,
+  0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xcb, 0xcb, 0xcb, 0xcb,
+  0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb,
+  0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcc, 0xcc, 0xcc,
+  0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+  0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcd, 0xcd,
+  0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
+  0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xce,
+  0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
+  0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
+  0xce, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf,
+  0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf,
+  0xcf, 0xcf, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0,
+  0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0,
+  0xd0, 0xd0, 0xd0, 0xd0, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1,
+  0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1,
+  0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2,
+  0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2,
+  0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd3, 0xd3, 0xd3, 0xd3,
+  0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3,
+  0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd4, 0xd4,
+  0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4,
+  0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4,
+  0xd4, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5,
+  0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5,
+  0xd5, 0xd5, 0xd5, 0xd5, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6,
+  0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6,
+  0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7,
+  0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7,
+  0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd8, 0xd8, 0xd8,
+  0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
+  0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
+  0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9,
+  0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9,
+  0xd9, 0xd9, 0xd9, 0xd9, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda,
+  0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda,
+  0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
+  0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
+  0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdc, 0xdc,
+  0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
+  0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
+  0xdc, 0xdc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
+  0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
+  0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde,
+  0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde,
+  0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xdf, 0xdf,
+  0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf,
+  0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf,
+  0xdf, 0xdf, 0xdf, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+  0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+  0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1,
+  0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1,
+  0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe2,
+  0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2,
+  0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2,
+  0xe2, 0xe2, 0xe2, 0xe2, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3,
+  0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3,
+  0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe4, 0xe4, 0xe4,
+  0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4,
+  0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4,
+  0xe4, 0xe4, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5,
+  0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5,
+  0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6,
+  0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6,
+  0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6,
+  0xe6, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7,
+  0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7,
+  0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8,
+  0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8,
+  0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8,
+  0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9,
+  0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9,
+  0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea,
+  0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea,
+  0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea,
+  0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb,
+  0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb,
+  0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec,
+  0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec,
+  0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec,
+  0xec, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed,
+  0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed,
+  0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xee, 0xee, 0xee, 0xee, 0xee,
+  0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee,
+  0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee,
+  0xee, 0xee, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef,
+  0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef,
+  0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xf0, 0xf0, 0xf0,
+  0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
+  0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
+  0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1,
+  0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1,
+  0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1,
+  0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2,
+  0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2,
+  0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3,
+  0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3,
+  0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3,
+  0xf3, 0xf3, 0xf3, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4,
+  0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4,
+  0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf5, 0xf5,
+  0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5,
+  0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5,
+  0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6,
+  0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6,
+  0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6,
+  0xf6, 0xf6, 0xf6, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7,
+  0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7,
+  0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf8,
+  0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8,
+  0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8,
+  0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9,
+  0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9,
+  0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9,
+  0xf9, 0xf9, 0xf9, 0xf9, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa,
+  0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa,
+  0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa,
+  0xfa, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb,
+  0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb,
+  0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfc, 0xfc,
+  0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc,
+  0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc,
+  0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd,
+  0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd,
+  0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd,
+  0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
+  0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
+  0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
+  0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};

+ 6 - 0
panda/src/tinydisplay/srgb_tables.h

@@ -0,0 +1,6 @@
+/* 8-bit sRGB to 16-bit linear */
+extern const unsigned short decode_sRGB[256];
+
+/* 12-bit linear to 8-bit sRGB.  I used 12-bit because it can
+   represent all possible 8-bit sRGB values. */
+extern const unsigned char encode_sRGB[4096];

+ 21 - 2
panda/src/tinydisplay/store_pixel.h

@@ -18,7 +18,7 @@
 /* This file generates lots of "template" variations, using #define
 /* This file generates lots of "template" variations, using #define
    and #include, similar to the way ztriangle.h works. */
    and #include, similar to the way ztriangle.h works. */
 
 
-static void 
+static void
 FNAME(store_pixel) (ZBuffer *zb, PIXEL &result, int r, int g, int b, int a) {
 FNAME(store_pixel) (ZBuffer *zb, PIXEL &result, int r, int g, int b, int a) {
   unsigned int fr = PIXEL_R(result);
   unsigned int fr = PIXEL_R(result);
   unsigned int fg = PIXEL_G(result);
   unsigned int fg = PIXEL_G(result);
@@ -32,8 +32,27 @@ FNAME(store_pixel) (ZBuffer *zb, PIXEL &result, int r, int g, int b, int a) {
   result = RGBA_TO_PIXEL(r, g, b, a);
   result = RGBA_TO_PIXEL(r, g, b, a);
 }
 }
 
 
+#ifdef FNAME_S
+/* sRGB variant. */
 
 
-#undef FNAME  
+static void
+FNAME_S(store_pixel) (ZBuffer *zb, PIXEL &result, int r, int g, int b, int a) {
+  unsigned int fr = PIXEL_SR(result);
+  unsigned int fg = PIXEL_SG(result);
+  unsigned int fb = PIXEL_SB(result);
+  unsigned int fa = PIXEL_A(result);
+
+  r = STORE_PIXEL_0(fr, ((unsigned int)r * OP_A(fr, r) >> 16) + ((unsigned int)fr * OP_B(fr, r) >> 16));
+  g = STORE_PIXEL_1(fg, ((unsigned int)g * OP_A(fg, g) >> 16) + ((unsigned int)fg * OP_B(fg, g) >> 16));
+  b = STORE_PIXEL_2(fg, ((unsigned int)b * OP_A(fb, b) >> 16) + ((unsigned int)fb * OP_B(fb, b) >> 16));
+  a = STORE_PIXEL_3(fg, ((unsigned int)a * OP_A(fa, a) >> 16) + ((unsigned int)fa * OP_B(fa, a) >> 16));
+  result = SRGBA_TO_PIXEL(r, g, b, a);
+}
+
+#undef FNAME_S
+#endif
+
+#undef FNAME
 #undef OP_A
 #undef OP_A
 #undef OP_B
 #undef OP_B
 #undef STORE_PIXEL_0
 #undef STORE_PIXEL_0

+ 22 - 0
panda/src/tinydisplay/store_pixel.py

@@ -63,6 +63,9 @@ for op_a in Operands:
         for mask in range(0, 16):
         for mask in range(0, 16):
             fname = getFname(op_a, op_b, mask)
             fname = getFname(op_a, op_b, mask)
             print >> code, '#define FNAME(name) %s' % (fname)
             print >> code, '#define FNAME(name) %s' % (fname)
+            if mask & (1 | 2 | 3):
+                print >> code, '#define FNAME_S(name) %s_s' % (fname)
+
             print >> code, '#define OP_A(f, i) ((unsigned int)(%s))' % (CodeTable[op_a])
             print >> code, '#define OP_A(f, i) ((unsigned int)(%s))' % (CodeTable[op_a])
             print >> code, '#define OP_B(f, i) ((unsigned int)(%s))' % (CodeTable[op_b])
             print >> code, '#define OP_B(f, i) ((unsigned int)(%s))' % (CodeTable[op_b])
             for b in range(0, 4):
             for b in range(0, 4):
@@ -91,3 +94,22 @@ for op_a in Operands:
     print >> code, '  },'
     print >> code, '  },'
 print >> code, '};'
 print >> code, '};'
 
 
+print >> code
+
+# Now do this again, but for the sRGB function pointers.
+print >> table, 'extern const ZB_storePixelFunc store_pixel_funcs_sRGB%s;' % (arraySize)
+print >> code, 'const ZB_storePixelFunc store_pixel_funcs_sRGB%s = {' % (arraySize)
+
+for op_a in Operands:
+    print >> code, '  {'
+    for op_b in Operands:
+        print >> code, '    {'
+        for mask in range(0, 16):
+            fname = getFname(op_a, op_b, mask)
+            if mask & (1 | 2 | 3):
+                print >> code, '      %s_s,' % (fname)
+            else:
+                print >> code, '      %s,' % (fname)
+        print >> code, '    },'
+    print >> code, '  },'
+print >> code, '};'

File diff suppressed because it is too large
+ 126 - 0
panda/src/tinydisplay/store_pixel_code.h


+ 1 - 0
panda/src/tinydisplay/store_pixel_table.h

@@ -1,3 +1,4 @@
 /* This file is generated code--do not edit.  See store_pixel.py. */
 /* This file is generated code--do not edit.  See store_pixel.py. */
 
 
 extern const ZB_storePixelFunc store_pixel_funcs[14][14][16];
 extern const ZB_storePixelFunc store_pixel_funcs[14][14][16];
+extern const ZB_storePixelFunc store_pixel_funcs_sRGB[14][14][16];

+ 58 - 25
panda/src/tinydisplay/tinyGraphicsStateGuardian.cxx

@@ -226,31 +226,35 @@ clear(DrawableRegion *clearable) {
       (!clearable->get_clear_stencil_active())) {
       (!clearable->get_clear_stencil_active())) {
     return;
     return;
   }
   }
-  
+
   set_state_and_transform(RenderState::make_empty(), _internal_transform);
   set_state_and_transform(RenderState::make_empty(), _internal_transform);
 
 
   bool clear_color = false;
   bool clear_color = false;
-  int r, g, b, a;
+  PIXEL color = 0;
   if (clearable->get_clear_color_active()) {
   if (clearable->get_clear_color_active()) {
     LColor v = clearable->get_clear_color();
     LColor v = clearable->get_clear_color();
-    r = (int)(v[0] * 0xffff);
-    g = (int)(v[1] * 0xffff);
-    b = (int)(v[2] * 0xffff);
-    a = (int)(v[3] * 0xffff);
+
+    if (_current_properties->get_srgb_color()) {
+      color = SRGBA_TO_PIXEL(
+        (v[0] * 0xffff), (v[1] * 0xffff),
+        (v[2] * 0xffff), (v[3] * 0xffff));
+    } else {
+      color = RGBA_TO_PIXEL(
+        (v[0] * 0xffff), (v[1] * 0xffff),
+        (v[2] * 0xffff), (v[3] * 0xffff));
+    }
     clear_color = true;
     clear_color = true;
   }
   }
-  
+
   bool clear_z = false;
   bool clear_z = false;
-  int z;
+  int z = 0;
   if (clearable->get_clear_depth_active()) {
   if (clearable->get_clear_depth_active()) {
     // We ignore the specified depth clear value, since we don't
     // We ignore the specified depth clear value, since we don't
     // support alternate depth compare functions anyway.
     // support alternate depth compare functions anyway.
-    z = 0;
     clear_z = true;
     clear_z = true;
   }
   }
 
 
-  ZB_clear_viewport(_c->zb, clear_z, z,
-                    clear_color, r, g, b, a,
+  ZB_clear_viewport(_c->zb, clear_z, z, clear_color, color,
                     _c->viewport.xmin, _c->viewport.ymin,
                     _c->viewport.xmin, _c->viewport.ymin,
                     _c->viewport.xsize, _c->viewport.ysize);
                     _c->viewport.xsize, _c->viewport.ysize);
 }
 }
@@ -280,7 +284,7 @@ prepare_display_region(DisplayRegionPipelineReader *dr) {
     if (_aux_frame_buffer == (ZBuffer *)NULL) {
     if (_aux_frame_buffer == (ZBuffer *)NULL) {
       _aux_frame_buffer = ZB_open(xsize, ysize, ZB_MODE_RGBA, 0, 0, 0, 0);
       _aux_frame_buffer = ZB_open(xsize, ysize, ZB_MODE_RGBA, 0, 0, 0, 0);
     } else if (_aux_frame_buffer->xsize < xsize || _aux_frame_buffer->ysize < ysize) {
     } else if (_aux_frame_buffer->xsize < xsize || _aux_frame_buffer->ysize < ysize) {
-      ZB_resize(_aux_frame_buffer, NULL, 
+      ZB_resize(_aux_frame_buffer, NULL,
                 max(_aux_frame_buffer->xsize, xsize),
                 max(_aux_frame_buffer->xsize, xsize),
                 max(_aux_frame_buffer->ysize, ysize));
                 max(_aux_frame_buffer->ysize, ysize));
     }
     }
@@ -297,7 +301,7 @@ prepare_display_region(DisplayRegionPipelineReader *dr) {
   _c->viewport.ysize = ysize;
   _c->viewport.ysize = ysize;
   set_scissor(0.0f, 1.0f, 0.0f, 1.0f);
   set_scissor(0.0f, 1.0f, 0.0f, 1.0f);
 
 
-  nassertv(xmin >= 0 && xmin < _c->zb->xsize && 
+  nassertv(xmin >= 0 && xmin < _c->zb->xsize &&
            ymin >= 0 && ymin < _c->zb->ysize &&
            ymin >= 0 && ymin < _c->zb->ysize &&
            xmin + xsize >= 0 && xmin + xsize <= _c->zb->xsize &&
            xmin + xsize >= 0 && xmin + xsize <= _c->zb->xsize &&
            ymin + ysize >= 0 && ymin + ysize <= _c->zb->ysize);
            ymin + ysize >= 0 && ymin + ysize <= _c->zb->ysize);
@@ -736,7 +740,7 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader,
   for (i = 0; i < num_used_vertices; ++i) {
   for (i = 0; i < num_used_vertices; ++i) {
     GLVertex *v = &_vertices[i];
     GLVertex *v = &_vertices[i];
     const LVecBase4 &d = rvertex.get_data4();
     const LVecBase4 &d = rvertex.get_data4();
-    
+
     v->coord.v[0] = d[0];
     v->coord.v[0] = d[0];
     v->coord.v[1] = d[1];
     v->coord.v[1] = d[1];
     v->coord.v[2] = d[2];
     v->coord.v[2] = d[2];
@@ -755,7 +759,7 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader,
       _c->current_color.v[1] = d[1] * s[1];
       _c->current_color.v[1] = d[1] * s[1];
       _c->current_color.v[2] = d[2] * s[2];
       _c->current_color.v[2] = d[2] * s[2];
       _c->current_color.v[3] = d[3] * s[3];
       _c->current_color.v[3] = d[3] * s[3];
-      
+
       if (_color_material_flags) {
       if (_color_material_flags) {
         if (_color_material_flags & CMF_ambient) {
         if (_color_material_flags & CMF_ambient) {
           _c->materials[0].ambient = _c->current_color;
           _c->materials[0].ambient = _c->current_color;
@@ -794,6 +798,8 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader,
   // Set up the appropriate function callback for filling triangles,
   // Set up the appropriate function callback for filling triangles,
   // according to the current state.
   // according to the current state.
 
 
+  bool srgb_blend = _current_properties->get_srgb_color();
+
   int depth_write_state = 0;  // zon
   int depth_write_state = 0;  // zon
   const DepthWriteAttrib *target_depth_write = DCAST(DepthWriteAttrib, _target_rs->get_attrib_def(DepthWriteAttrib::get_class_slot()));
   const DepthWriteAttrib *target_depth_write = DCAST(DepthWriteAttrib, _target_rs->get_attrib_def(DepthWriteAttrib::get_class_slot()));
   if (target_depth_write->get_mode() != DepthWriteAttrib::M_on) {
   if (target_depth_write->get_mode() != DepthWriteAttrib::M_on) {
@@ -805,11 +811,23 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader,
   const ColorWriteAttrib *target_color_write = DCAST(ColorWriteAttrib, _target_rs->get_attrib_def(ColorWriteAttrib::get_class_slot()));
   const ColorWriteAttrib *target_color_write = DCAST(ColorWriteAttrib, _target_rs->get_attrib_def(ColorWriteAttrib::get_class_slot()));
   unsigned int color_channels =
   unsigned int color_channels =
     target_color_write->get_channels() & _color_write_mask;
     target_color_write->get_channels() & _color_write_mask;
-  if (color_channels != ColorWriteAttrib::C_all) {
+
+  if (color_channels == ColorWriteAttrib::C_all) {
+    if (srgb_blend) {
+      color_write_state = 4;  // csstore
+    } else {
+      color_write_state = 0;  // cstore
+    }
+  } else {
     // Implement a color mask.
     // Implement a color mask.
     int op_a = get_color_blend_op(ColorBlendAttrib::O_one);
     int op_a = get_color_blend_op(ColorBlendAttrib::O_one);
     int op_b = get_color_blend_op(ColorBlendAttrib::O_zero);
     int op_b = get_color_blend_op(ColorBlendAttrib::O_zero);
-    _c->zb->store_pix_func = store_pixel_funcs[op_a][op_b][color_channels];
+
+    if (srgb_blend) {
+      _c->zb->store_pix_func = store_pixel_funcs_sRGB[op_a][op_b][color_channels];
+    } else {
+      _c->zb->store_pix_func = store_pixel_funcs[op_a][op_b][color_channels];
+    }
     color_write_state = 2;   // cgeneral
     color_write_state = 2;   // cgeneral
   }
   }
 
 
@@ -817,12 +835,22 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader,
   switch (target_transparency->get_mode()) {
   switch (target_transparency->get_mode()) {
   case TransparencyAttrib::M_alpha:
   case TransparencyAttrib::M_alpha:
   case TransparencyAttrib::M_dual:
   case TransparencyAttrib::M_dual:
-    color_write_state = 1;    // cblend
-    if (color_channels != ColorWriteAttrib::C_all) {
+    if (color_channels == ColorWriteAttrib::C_all) {
+      if (srgb_blend) {
+        color_write_state = 5;    // csblend
+      } else {
+        color_write_state = 1;    // cblend
+      }
+    } else {
       // Implement a color mask, with alpha blending.
       // Implement a color mask, with alpha blending.
       int op_a = get_color_blend_op(ColorBlendAttrib::O_incoming_alpha);
       int op_a = get_color_blend_op(ColorBlendAttrib::O_incoming_alpha);
       int op_b = get_color_blend_op(ColorBlendAttrib::O_one_minus_incoming_alpha);
       int op_b = get_color_blend_op(ColorBlendAttrib::O_one_minus_incoming_alpha);
-      _c->zb->store_pix_func = store_pixel_funcs[op_a][op_b][color_channels];
+
+      if (srgb_blend) {
+        _c->zb->store_pix_func = store_pixel_funcs_sRGB[op_a][op_b][color_channels];
+      } else {
+        _c->zb->store_pix_func = store_pixel_funcs[op_a][op_b][color_channels];
+      }
       color_write_state = 2;   // cgeneral
       color_write_state = 2;   // cgeneral
     }
     }
     break;
     break;
@@ -835,15 +863,20 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader,
   if (target_color_blend->get_mode() == ColorBlendAttrib::M_add) {
   if (target_color_blend->get_mode() == ColorBlendAttrib::M_add) {
     // If we have a color blend set that we can support, it overrides
     // If we have a color blend set that we can support, it overrides
     // the transparency set.
     // the transparency set.
-    int op_a = get_color_blend_op(target_color_blend->get_operand_a());
-    int op_b = get_color_blend_op(target_color_blend->get_operand_b());
-    _c->zb->store_pix_func = store_pixel_funcs[op_a][op_b][color_channels];
     LColor c = target_color_blend->get_color();
     LColor c = target_color_blend->get_color();
     _c->zb->blend_r = (int)(c[0] * ZB_POINT_RED_MAX);
     _c->zb->blend_r = (int)(c[0] * ZB_POINT_RED_MAX);
     _c->zb->blend_g = (int)(c[1] * ZB_POINT_GREEN_MAX);
     _c->zb->blend_g = (int)(c[1] * ZB_POINT_GREEN_MAX);
     _c->zb->blend_b = (int)(c[2] * ZB_POINT_BLUE_MAX);
     _c->zb->blend_b = (int)(c[2] * ZB_POINT_BLUE_MAX);
     _c->zb->blend_a = (int)(c[3] * ZB_POINT_ALPHA_MAX);
     _c->zb->blend_a = (int)(c[3] * ZB_POINT_ALPHA_MAX);
 
 
+    int op_a = get_color_blend_op(target_color_blend->get_operand_a());
+    int op_b = get_color_blend_op(target_color_blend->get_operand_b());
+
+    if (srgb_blend) {
+      _c->zb->store_pix_func = store_pixel_funcs_sRGB[op_a][op_b][color_channels];
+    } else {
+      _c->zb->store_pix_func = store_pixel_funcs[op_a][op_b][color_channels];
+    }
     color_write_state = 2;     // cgeneral
     color_write_state = 2;     // cgeneral
   }
   }
 
 
@@ -882,7 +915,7 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader,
     depth_test_state = 0;      // zless
     depth_test_state = 0;      // zless
     _c->depth_test = 0;
     _c->depth_test = 0;
   }
   }
-  
+
   const ShadeModelAttrib *target_shade_model = DCAST(ShadeModelAttrib, _target_rs->get_attrib_def(ShadeModelAttrib::get_class_slot()));
   const ShadeModelAttrib *target_shade_model = DCAST(ShadeModelAttrib, _target_rs->get_attrib_def(ShadeModelAttrib::get_class_slot()));
   ShadeModelAttrib::Mode shade_model = target_shade_model->get_mode();
   ShadeModelAttrib::Mode shade_model = target_shade_model->get_mode();
   if (!needs_normal && !needs_color) {
   if (!needs_normal && !needs_color) {
@@ -939,7 +972,7 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader,
   pixel_count_smooth_multitex2 = 0;
   pixel_count_smooth_multitex2 = 0;
   pixel_count_smooth_multitex3 = 0;
   pixel_count_smooth_multitex3 = 0;
 #endif  // DO_PSTATS
 #endif  // DO_PSTATS
-  
+
   return true;
   return true;
 }
 }
 
 

+ 9 - 15
panda/src/tinydisplay/zbuffer.cxx

@@ -130,7 +130,7 @@ ZB_resize(ZBuffer * zb, void *frame_buffer, int xsize, int ysize) {
   }
   }
 }
 }
 
 
-static void 
+static void
 ZB_copyBuffer(const ZBuffer * zb,
 ZB_copyBuffer(const ZBuffer * zb,
               void *buf,
               void *buf,
               int linesize) {
               int linesize) {
@@ -210,7 +210,7 @@ static void ZB_copyFrameBufferRGB24(const ZBuffer * zb,
   int y, n;
   int y, n;
 
 
   fprintf(stderr, "copyFrameBufferRGB24\n");
   fprintf(stderr, "copyFrameBufferRGB24\n");
-    
+
   q = zb->pbuf;
   q = zb->pbuf;
   p1 = (unsigned char *) buf;
   p1 = (unsigned char *) buf;
 
 
@@ -282,12 +282,12 @@ void ZB_zoomFrameBuffer(ZBuffer *dest, int dest_xmin, int dest_ymin, int dest_xs
                         const ZBuffer *source, int source_xmin, int source_ymin, int source_xsize, int source_ysize) {
                         const ZBuffer *source, int source_xmin, int source_ymin, int source_xsize, int source_ysize) {
   int tyinc = dest->linesize / PSZB;
   int tyinc = dest->linesize / PSZB;
   int fyinc = source->linesize / PSZB;
   int fyinc = source->linesize / PSZB;
-  
+
   int fyt = 0;
   int fyt = 0;
   for (int ty = 0; ty < dest_ysize; ++ty) {
   for (int ty = 0; ty < dest_ysize; ++ty) {
     int fy = fyt / dest_ysize;
     int fy = fyt / dest_ysize;
     fyt += source_ysize;
     fyt += source_ysize;
-    
+
     PIXEL *tp = dest->pbuf + dest_xmin + (dest_ymin + ty) * tyinc;
     PIXEL *tp = dest->pbuf + dest_xmin + (dest_ymin + ty) * tyinc;
     PIXEL *fp = source->pbuf + source_xmin + (source_ymin + fy) * fyinc;
     PIXEL *fp = source->pbuf + source_xmin + (source_ymin + fy) * fyinc;
     ZPOINT *tz = dest->zbuf + dest_xmin + (dest_ymin + ty) * dest->xsize;
     ZPOINT *tz = dest->zbuf + dest_xmin + (dest_ymin + ty) * dest->xsize;
@@ -296,7 +296,7 @@ void ZB_zoomFrameBuffer(ZBuffer *dest, int dest_xmin, int dest_ymin, int dest_xs
     for (int tx = 0; tx < dest_xsize; ++tx) {
     for (int tx = 0; tx < dest_xsize; ++tx) {
       int fx = fxt / dest_xsize;
       int fx = fxt / dest_xsize;
       fxt += source_xsize;
       fxt += source_xsize;
-      
+
       tp[tx] = fp[fx];
       tp[tx] = fp[fx];
       tz[tx] = fz[fx];
       tz[tx] = fz[fx];
     }
     }
@@ -384,17 +384,14 @@ memset_RGB24(void *adr,int r, int v, int b,long count) {
 }
 }
 
 
 void
 void
-ZB_clear(ZBuffer * zb, int clear_z, ZPOINT z,
-         int clear_color, unsigned int r, unsigned int g, unsigned int b, unsigned int a) {
-  unsigned int color;
+ZB_clear(ZBuffer * zb, int clear_z, ZPOINT z, int clear_color, PIXEL color) {
   int y;
   int y;
   PIXEL *pp;
   PIXEL *pp;
-  
+
   if (clear_z) {
   if (clear_z) {
     memset(zb->zbuf, 0, zb->xsize * zb->ysize * sizeof(ZPOINT));
     memset(zb->zbuf, 0, zb->xsize * zb->ysize * sizeof(ZPOINT));
   }
   }
   if (clear_color) {
   if (clear_color) {
-    color = RGBA_TO_PIXEL(r, g, b, a);
     pp = zb->pbuf;
     pp = zb->pbuf;
     for (y = 0; y < zb->ysize; y++) {
     for (y = 0; y < zb->ysize; y++) {
       memset_l(pp, color, zb->xsize);
       memset_l(pp, color, zb->xsize);
@@ -404,15 +401,13 @@ ZB_clear(ZBuffer * zb, int clear_z, ZPOINT z,
 }
 }
 
 
 void
 void
-ZB_clear_viewport(ZBuffer * zb, int clear_z, ZPOINT z,
-                  int clear_color, unsigned int r, unsigned int g, unsigned int b, unsigned int a,
+ZB_clear_viewport(ZBuffer * zb, int clear_z, ZPOINT z, int clear_color, PIXEL color,
                   int xmin, int ymin, int xsize, int ysize) {
                   int xmin, int ymin, int xsize, int ysize) {
-  unsigned int color;
   int y;
   int y;
   PIXEL *pp;
   PIXEL *pp;
   ZPOINT *zz;
   ZPOINT *zz;
 
 
-  nassertv(xmin >= 0 && xmin < zb->xsize && 
+  nassertv(xmin >= 0 && xmin < zb->xsize &&
            ymin >= 0 && ymin < zb->ysize &&
            ymin >= 0 && ymin < zb->ysize &&
            xmin + xsize >= 0 && xmin + xsize <= zb->xsize &&
            xmin + xsize >= 0 && xmin + xsize <= zb->xsize &&
            ymin + ysize >= 0 && ymin + ysize <= zb->ysize);
            ymin + ysize >= 0 && ymin + ysize <= zb->ysize);
@@ -425,7 +420,6 @@ ZB_clear_viewport(ZBuffer * zb, int clear_z, ZPOINT z,
     }
     }
   }
   }
   if (clear_color) {
   if (clear_color) {
-    color = RGBA_TO_PIXEL(r, g, b, a);
     pp = zb->pbuf + xmin + ymin * (zb->linesize / PSZB);
     pp = zb->pbuf + xmin + ymin * (zb->linesize / PSZB);
     for (y = 0; y < ysize; ++y) {
     for (y = 0; y < ysize; ++y) {
       memset_l(pp, color, xsize);
       memset_l(pp, color, xsize);

+ 31 - 12
panda/src/tinydisplay/zbuffer.h

@@ -7,6 +7,7 @@
 
 
 #include "zfeatures.h"
 #include "zfeatures.h"
 #include "pbitops.h"
 #include "pbitops.h"
+#include "srgb_tables.h"
 
 
 typedef unsigned int ZPOINT;
 typedef unsigned int ZPOINT;
 #define ZB_Z_BITS 20
 #define ZB_Z_BITS 20
@@ -72,10 +73,19 @@ typedef unsigned int ZPOINT;
   ((((unsigned int)(a) << 16) & 0xff000000) | (((unsigned int)(r) << 8) & 0xff0000) | ((unsigned int)(g) & 0xff00) | ((unsigned int)(b) >> 8))
   ((((unsigned int)(a) << 16) & 0xff000000) | (((unsigned int)(r) << 8) & 0xff0000) | ((unsigned int)(g) & 0xff00) | ((unsigned int)(b) >> 8))
 #define RGBA8_TO_PIXEL(r,g,b,a)                                   \
 #define RGBA8_TO_PIXEL(r,g,b,a)                                   \
   ((((unsigned int)(a) << 24) & 0xff000000) | (((unsigned int)(r) << 16) & 0xff0000) | (((unsigned int)(g) << 8) & 0xff00) | (unsigned int)(b))
   ((((unsigned int)(a) << 24) & 0xff000000) | (((unsigned int)(r) << 16) & 0xff0000) | (((unsigned int)(g) << 8) & 0xff00) | (unsigned int)(b))
+
+#define SRGB_TO_PIXEL(r,g,b) \
+  ((encode_sRGB[(unsigned int)(r) >> 4] << 16) | (encode_sRGB10[(unsigned int)(g) >> 4] << 8) | (encode_sRGB[(unsigned int)(b) >> 4]))
+#define SRGBA_TO_PIXEL(r,g,b,a) \
+  ((((unsigned int)(a) << 16) & 0xff000000) | (encode_sRGB[(unsigned int)(r) >> 4] << 16) | (encode_sRGB[(unsigned int)(g) >> 4] << 8) | (encode_sRGB[(unsigned int)(b) >> 4]))
+
 #define PIXEL_R(p) (((unsigned int)(p) & 0xff0000) >> 8)
 #define PIXEL_R(p) (((unsigned int)(p) & 0xff0000) >> 8)
 #define PIXEL_G(p) ((unsigned int)(p) & 0xff00)
 #define PIXEL_G(p) ((unsigned int)(p) & 0xff00)
 #define PIXEL_B(p) (((unsigned int)(p) & 0x00ff) << 8)
 #define PIXEL_B(p) (((unsigned int)(p) & 0x00ff) << 8)
 #define PIXEL_A(p) (((unsigned int)(p) & 0xff000000) >> 16)
 #define PIXEL_A(p) (((unsigned int)(p) & 0xff000000) >> 16)
+#define PIXEL_SR(p) (decode_sRGB[((unsigned int)(p) & 0xff0000) >> 16])
+#define PIXEL_SG(p) (decode_sRGB[((unsigned int)(p) & 0xff00) >> 8])
+#define PIXEL_SB(p) (decode_sRGB[((unsigned int)(p) & 0x00ff)])
 typedef unsigned int PIXEL;
 typedef unsigned int PIXEL;
 #define PSZB 4
 #define PSZB 4
 #define PSZSH 5
 #define PSZSH 5
@@ -97,13 +107,24 @@ typedef unsigned int PIXEL;
 #define PCOMPONENT_BLEND(c1, c2, a2) \
 #define PCOMPONENT_BLEND(c1, c2, a2) \
   ((((unsigned int)(c1) * ((unsigned int)0xffff - (unsigned int)(a2)) + (unsigned int)(c2) * (unsigned int)(a2))) >> 16)
   ((((unsigned int)(c1) * ((unsigned int)0xffff - (unsigned int)(a2)) + (unsigned int)(c2) * (unsigned int)(a2))) >> 16)
 
 
-#define PIXEL_BLEND(r1, g1, b1, r2, g2, b2, a2) \
+#define _BLEND_RGB(r1, g1, b1, r2, g2, b2, a2) \
   RGBA_TO_PIXEL(PCOMPONENT_BLEND(r1, r2, a2),   \
   RGBA_TO_PIXEL(PCOMPONENT_BLEND(r1, r2, a2),   \
                 PCOMPONENT_BLEND(g1, g2, a2),   \
                 PCOMPONENT_BLEND(g1, g2, a2),   \
                 PCOMPONENT_BLEND(b1, b2, a2),   \
                 PCOMPONENT_BLEND(b1, b2, a2),   \
                 a2)
                 a2)
+
+#define _BLEND_SRGB(r1, g1, b1, r2, g2, b2, a2) \
+  SRGBA_TO_PIXEL(PCOMPONENT_BLEND(r1, r2, a2),   \
+                 PCOMPONENT_BLEND(g1, g2, a2),   \
+                 PCOMPONENT_BLEND(b1, b2, a2),   \
+                 a2)
+
 #define PIXEL_BLEND_RGB(rgb, r, g, b, a) \
 #define PIXEL_BLEND_RGB(rgb, r, g, b, a) \
-  PIXEL_BLEND(PIXEL_R(rgb), PIXEL_G(rgb), PIXEL_B(rgb), r, g, b, a)
+  _BLEND_RGB(PIXEL_R(rgb), PIXEL_G(rgb), PIXEL_B(rgb), r, g, b, a)
+
+#define PIXEL_BLEND_SRGB(rgb, r, g, b, a) \
+  _BLEND_SRGB(PIXEL_SR(rgb), PIXEL_SG(rgb), PIXEL_SB(rgb), r, g, b, a)
+
 
 
 typedef struct {
 typedef struct {
   PIXEL *pixmap;
   PIXEL *pixmap;
@@ -120,7 +141,7 @@ typedef void (*ZB_storePixelFunc)(ZBuffer *zb, PIXEL &result, int r, int g, int
 
 
 typedef PIXEL (*ZB_lookupTextureFunc)(ZTextureDef *texture_def, int s, int t, unsigned int level, unsigned int level_dx);
 typedef PIXEL (*ZB_lookupTextureFunc)(ZTextureDef *texture_def, int s, int t, unsigned int level, unsigned int level_dx);
 
 
-typedef int (*ZB_texWrapFunc)(int coord, int max_coord); 
+typedef int (*ZB_texWrapFunc)(int coord, int max_coord);
 
 
 struct ZTextureDef {
 struct ZTextureDef {
   ZTextureLevel *levels;
   ZTextureLevel *levels;
@@ -138,11 +159,11 @@ struct ZBuffer {
   int xsize,ysize;
   int xsize,ysize;
   int linesize; /* line size, in bytes */
   int linesize; /* line size, in bytes */
   int mode;
   int mode;
-  
+
   ZPOINT *zbuf;
   ZPOINT *zbuf;
   PIXEL *pbuf;
   PIXEL *pbuf;
   int frame_buffer_allocated;
   int frame_buffer_allocated;
-  
+
   int nb_colors;
   int nb_colors;
   unsigned char *dctable;
   unsigned char *dctable;
   int *ctable;
   int *ctable;
@@ -156,14 +177,14 @@ struct ZBufferPoint {
   int x,y,z;     /* integer coordinates in the zbuffer */
   int x,y,z;     /* integer coordinates in the zbuffer */
   int s,t;       /* coordinates for the mapping */
   int s,t;       /* coordinates for the mapping */
   int r,g,b,a;     /* color indexes */
   int r,g,b,a;     /* color indexes */
-  
+
   PN_stdfloat sz,tz;   /* temporary coordinates for mapping */
   PN_stdfloat sz,tz;   /* temporary coordinates for mapping */
 
 
   int sa, ta;   /* mapping coordinates for optional second texture stage */
   int sa, ta;   /* mapping coordinates for optional second texture stage */
-  PN_stdfloat sza,tza; 
+  PN_stdfloat sza,tza;
 
 
   int sb, tb;   /* mapping coordinates for optional third texture stage */
   int sb, tb;   /* mapping coordinates for optional third texture stage */
-  PN_stdfloat szb,tzb; 
+  PN_stdfloat szb,tzb;
 };
 };
 
 
 /* zbuffer.c */
 /* zbuffer.c */
@@ -200,10 +221,8 @@ ZBuffer *ZB_open(int xsize,int ysize,int mode,
 void ZB_close(ZBuffer *zb);
 void ZB_close(ZBuffer *zb);
 
 
 void ZB_resize(ZBuffer *zb,void *frame_buffer,int xsize,int ysize);
 void ZB_resize(ZBuffer *zb,void *frame_buffer,int xsize,int ysize);
-void ZB_clear(ZBuffer *zb, int clear_z, ZPOINT z,
-              int clear_color, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
-void ZB_clear_viewport(ZBuffer * zb, int clear_z, ZPOINT z,
-                       int clear_color, unsigned int r, unsigned int g, unsigned int b, unsigned int a,
+void ZB_clear(ZBuffer *zb, int clear_z, ZPOINT z, int clear_color, PIXEL color);
+void ZB_clear_viewport(ZBuffer * zb, int clear_z, ZPOINT z, int clear_color, PIXEL color,
                        int xmin, int ymin, int xsize, int ysize);
                        int xmin, int ymin, int xsize, int ysize);
 
 
 PIXEL lookup_texture_nearest(ZTextureDef *texture_def, int s, int t, unsigned int level, unsigned int level_dx);
 PIXEL lookup_texture_nearest(ZTextureDef *texture_def, int s, int t, unsigned int level, unsigned int level_dx);

+ 5 - 4
panda/src/tinydisplay/ztriangle.py

@@ -20,7 +20,7 @@ Options = [
     [ 'zon', 'zoff' ],
     [ 'zon', 'zoff' ],
 
 
     # color write
     # color write
-    [ 'cstore', 'cblend', 'cgeneral', 'coff' ],
+    [ 'cstore', 'cblend', 'cgeneral', 'coff', 'csstore', 'csblend' ],
 
 
     # alpha test
     # alpha test
     [ 'anone', 'aless', 'amore' ],
     [ 'anone', 'aless', 'amore' ],
@@ -64,6 +64,10 @@ CodeTable = {
     'cgeneral' : '#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)',
     'cgeneral' : '#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)',
     'coff' : '#define STORE_PIX(pix, rgb, r, g, b, a)',
     'coff' : '#define STORE_PIX(pix, rgb, r, g, b, a)',
 
 
+    # color write, sRGB
+    'csstore' : '#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)',
+    'csblend' : '#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)',
+
     # alpha test
     # alpha test
     'anone' : '#define ACMP(zb, a) 1',
     'anone' : '#define ACMP(zb, a) 1',
     'aless' : '#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)',
     'aless' : '#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)',
@@ -264,6 +268,3 @@ print >> table_decl, 'extern const ZB_fillTriangleFunc fill_tri_funcs%s;' % (arr
 writeTableEntry([])
 writeTableEntry([])
 print >> table_def, '};'
 print >> table_def, '};'
 
 
-
-        
-        

+ 445 - 1
panda/src/tinydisplay/ztriangle_code_1.h

@@ -348,8 +348,182 @@
 #define FNAME(name) FB_triangle_zon_cblend_amore_zless_tgeneral_ ## name
 #define FNAME(name) FB_triangle_zon_cblend_amore_zless_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zon_cgeneral_anone_znone_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zon_cgeneral_anone_znone_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zon_cgeneral_anone_znone_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zon_cgeneral_anone_zless_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zon_cgeneral_anone_zless_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zon_cgeneral_anone_zless_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zon_cgeneral_aless_znone_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zon_cgeneral_aless_znone_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zon_cgeneral_aless_znone_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zon_cgeneral_aless_zless_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zon_cgeneral_aless_zless_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zon_cgeneral_aless_zless_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zon_cgeneral_amore_znone_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zon_cgeneral_amore_znone_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zon_cgeneral_amore_znone_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zon_cgeneral_amore_zless_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zon_cgeneral_amore_zless_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zon_cgeneral_amore_zless_tgeneral_ ## name
+#include "ztriangle_two.h"
+
 
 
-ZB_fillTriangleFunc ztriangle_code_1[540] = {
+ZB_fillTriangleFunc ztriangle_code_1[810] = {
   FB_triangle_zon_cstore_anone_znone_tnearest_white_untextured,
   FB_triangle_zon_cstore_anone_znone_tnearest_white_untextured,
   FB_triangle_zon_cstore_anone_znone_tnearest_white_textured,
   FB_triangle_zon_cstore_anone_znone_tnearest_white_textured,
   FB_triangle_zon_cstore_anone_znone_tnearest_white_perspective,
   FB_triangle_zon_cstore_anone_znone_tnearest_white_perspective,
@@ -890,4 +1064,274 @@ ZB_fillTriangleFunc ztriangle_code_1[540] = {
   FB_triangle_zon_cblend_amore_zless_tgeneral_smooth_perspective,
   FB_triangle_zon_cblend_amore_zless_tgeneral_smooth_perspective,
   FB_triangle_zon_cblend_amore_zless_tgeneral_smooth_multitex2,
   FB_triangle_zon_cblend_amore_zless_tgeneral_smooth_multitex2,
   FB_triangle_zon_cblend_amore_zless_tgeneral_smooth_multitex3,
   FB_triangle_zon_cblend_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_white_untextured,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_white_textured,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_white_perspective,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_flat_untextured,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_flat_textured,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_flat_perspective,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_untextured,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_textured,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_perspective,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_white_untextured,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_white_textured,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_white_perspective,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_flat_untextured,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_flat_textured,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_flat_perspective,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_untextured,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_textured,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_perspective,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_white_untextured,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_white_textured,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_white_perspective,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_flat_untextured,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_flat_textured,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_flat_perspective,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_untextured,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_textured,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_perspective,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_white_untextured,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_white_textured,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_white_perspective,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_flat_untextured,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_flat_textured,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_flat_perspective,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_untextured,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_textured,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_perspective,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_white_untextured,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_white_textured,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_white_perspective,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_flat_untextured,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_flat_textured,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_flat_perspective,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_untextured,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_textured,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_perspective,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_white_untextured,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_white_textured,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_white_perspective,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_flat_untextured,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_flat_textured,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_flat_perspective,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_untextured,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_textured,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_perspective,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_white_untextured,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_white_textured,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_white_perspective,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_flat_untextured,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_flat_textured,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_flat_perspective,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_untextured,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_textured,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_perspective,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_white_untextured,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_white_textured,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_white_perspective,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_flat_untextured,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_flat_textured,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_flat_perspective,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_untextured,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_textured,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_perspective,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_white_untextured,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_white_textured,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_white_perspective,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_flat_untextured,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_flat_textured,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_flat_perspective,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_untextured,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_textured,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_perspective,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_white_untextured,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_white_textured,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_white_perspective,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_flat_untextured,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_flat_textured,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_flat_perspective,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_untextured,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_textured,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_perspective,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_white_untextured,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_white_textured,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_white_perspective,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_flat_untextured,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_flat_textured,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_flat_perspective,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_untextured,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_textured,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_perspective,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_white_untextured,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_white_textured,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_white_perspective,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_flat_untextured,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_flat_textured,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_flat_perspective,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_untextured,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_textured,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_perspective,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_white_untextured,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_white_textured,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_white_perspective,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_flat_untextured,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_flat_textured,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_flat_perspective,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_untextured,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_textured,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_perspective,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_white_untextured,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_white_textured,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_white_perspective,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_flat_untextured,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_flat_textured,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_flat_perspective,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_untextured,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_textured,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_perspective,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_white_untextured,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_white_textured,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_white_perspective,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_flat_untextured,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_flat_textured,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_flat_perspective,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_untextured,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_textured,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_perspective,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_white_untextured,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_white_textured,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_white_perspective,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_flat_untextured,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_flat_textured,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_flat_perspective,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_untextured,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_textured,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_perspective,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_white_untextured,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_white_textured,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_white_perspective,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_flat_untextured,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_flat_textured,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_flat_perspective,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_untextured,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_textured,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_perspective,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_white_untextured,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_white_textured,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_white_perspective,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_flat_untextured,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_flat_textured,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_flat_perspective,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_untextured,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_textured,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_perspective,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex3,
 };
 };

+ 787 - 343
panda/src/tinydisplay/ztriangle_code_2.h

@@ -1,625 +1,529 @@
 /* This file is generated code--do not edit.  See ztriangle.py. */
 /* This file is generated code--do not edit.  See ztriangle.py. */
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zon_cgeneral_anone_znone_tnearest_ ## name
+#define FNAME(name) FB_triangle_zon_coff_anone_znone_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zon_cgeneral_anone_znone_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zon_coff_anone_znone_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zon_cgeneral_anone_znone_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zon_coff_anone_znone_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zon_cgeneral_anone_zless_tnearest_ ## name
+#define FNAME(name) FB_triangle_zon_coff_anone_zless_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zon_cgeneral_anone_zless_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zon_coff_anone_zless_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zon_cgeneral_anone_zless_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zon_coff_anone_zless_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zon_cgeneral_aless_znone_tnearest_ ## name
+#define FNAME(name) FB_triangle_zon_coff_aless_znone_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zon_cgeneral_aless_znone_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zon_coff_aless_znone_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zon_cgeneral_aless_znone_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zon_coff_aless_znone_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zon_cgeneral_aless_zless_tnearest_ ## name
+#define FNAME(name) FB_triangle_zon_coff_aless_zless_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zon_cgeneral_aless_zless_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zon_coff_aless_zless_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zon_cgeneral_aless_zless_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zon_coff_aless_zless_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zon_cgeneral_amore_znone_tnearest_ ## name
+#define FNAME(name) FB_triangle_zon_coff_amore_znone_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zon_cgeneral_amore_znone_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zon_coff_amore_znone_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zon_cgeneral_amore_znone_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zon_coff_amore_znone_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zon_cgeneral_amore_zless_tnearest_ ## name
+#define FNAME(name) FB_triangle_zon_coff_amore_zless_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zon_cgeneral_amore_zless_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zon_coff_amore_zless_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zon_cgeneral_amore_zless_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zon_coff_amore_zless_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zon_coff_anone_znone_tnearest_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_anone_znone_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zon_coff_anone_znone_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_anone_znone_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zon_coff_anone_znone_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_anone_znone_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zon_coff_anone_zless_tnearest_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_anone_zless_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zon_coff_anone_zless_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_anone_zless_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zon_coff_anone_zless_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_anone_zless_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zon_coff_aless_znone_tnearest_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_aless_znone_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zon_coff_aless_znone_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_aless_znone_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zon_coff_aless_znone_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_aless_znone_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zon_coff_aless_zless_tnearest_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_aless_zless_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zon_coff_aless_zless_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_aless_zless_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zon_coff_aless_zless_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_aless_zless_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zon_coff_amore_znone_tnearest_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_amore_znone_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zon_coff_amore_znone_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_amore_znone_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zon_coff_amore_znone_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_amore_znone_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zon_coff_amore_zless_tnearest_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_amore_zless_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zon_coff_amore_zless_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_amore_zless_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z) (zpix) = (z)
 #define STORE_Z(zpix, z) (zpix) = (z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zon_coff_amore_zless_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zon_csstore_amore_zless_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zon_csblend_anone_znone_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zon_csblend_anone_znone_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zon_csblend_anone_znone_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zon_csblend_anone_zless_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zon_csblend_anone_zless_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zon_csblend_anone_zless_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zon_csblend_aless_znone_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zon_csblend_aless_znone_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zon_csblend_aless_znone_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zon_csblend_aless_zless_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zon_csblend_aless_zless_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zon_csblend_aless_zless_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zon_csblend_amore_znone_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zon_csblend_amore_znone_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zon_csblend_amore_znone_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zon_csblend_amore_zless_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zon_csblend_amore_zless_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z) (zpix) = (z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zon_csblend_amore_zless_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 
 
-ZB_fillTriangleFunc ztriangle_code_2[540] = {
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_white_untextured,
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_white_textured,
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_white_perspective,
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_flat_untextured,
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_flat_textured,
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_flat_perspective,
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_untextured,
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_textured,
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_perspective,
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_white_untextured,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_white_textured,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_white_perspective,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_flat_untextured,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_flat_textured,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_flat_perspective,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_untextured,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_textured,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_perspective,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_white_untextured,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_white_textured,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_white_perspective,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_flat_untextured,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_flat_textured,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_flat_perspective,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_untextured,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_textured,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_perspective,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_white_untextured,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_white_textured,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_white_perspective,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_flat_untextured,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_flat_textured,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_flat_perspective,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_untextured,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_textured,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_perspective,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_white_untextured,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_white_textured,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_white_perspective,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_flat_untextured,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_flat_textured,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_flat_perspective,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_untextured,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_textured,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_perspective,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_white_untextured,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_white_textured,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_white_perspective,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_flat_untextured,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_flat_textured,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_flat_perspective,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_untextured,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_textured,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_perspective,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_white_untextured,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_white_textured,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_white_perspective,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_flat_untextured,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_flat_textured,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_flat_perspective,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_untextured,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_textured,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_perspective,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_white_untextured,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_white_textured,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_white_perspective,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_flat_untextured,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_flat_textured,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_flat_perspective,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_untextured,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_textured,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_perspective,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_white_untextured,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_white_textured,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_white_perspective,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_flat_untextured,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_flat_textured,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_flat_perspective,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_untextured,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_textured,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_perspective,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_white_untextured,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_white_textured,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_white_perspective,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_flat_untextured,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_flat_textured,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_flat_perspective,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_untextured,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_textured,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_perspective,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_white_untextured,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_white_textured,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_white_perspective,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_flat_untextured,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_flat_textured,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_flat_perspective,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_untextured,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_textured,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_perspective,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_white_untextured,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_white_textured,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_white_perspective,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_flat_untextured,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_flat_textured,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_flat_perspective,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_untextured,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_textured,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_perspective,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_white_untextured,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_white_textured,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_white_perspective,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_flat_untextured,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_flat_textured,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_flat_perspective,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_untextured,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_textured,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_perspective,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_white_untextured,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_white_textured,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_white_perspective,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_flat_untextured,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_flat_textured,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_flat_perspective,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_untextured,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_textured,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_perspective,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_white_untextured,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_white_textured,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_white_perspective,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_flat_untextured,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_flat_textured,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_flat_perspective,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_untextured,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_textured,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_perspective,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_white_untextured,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_white_textured,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_white_perspective,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_flat_untextured,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_flat_textured,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_flat_perspective,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_untextured,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_textured,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_perspective,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_white_untextured,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_white_textured,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_white_perspective,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_flat_untextured,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_flat_textured,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_flat_perspective,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_untextured,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_textured,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_perspective,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_white_untextured,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_white_textured,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_white_perspective,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_flat_untextured,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_flat_textured,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_flat_perspective,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_untextured,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_textured,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_perspective,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex3,
+ZB_fillTriangleFunc ztriangle_code_2[810] = {
   FB_triangle_zon_coff_anone_znone_tnearest_white_untextured,
   FB_triangle_zon_coff_anone_znone_tnearest_white_untextured,
   FB_triangle_zon_coff_anone_znone_tnearest_white_textured,
   FB_triangle_zon_coff_anone_znone_tnearest_white_textured,
   FB_triangle_zon_coff_anone_znone_tnearest_white_perspective,
   FB_triangle_zon_coff_anone_znone_tnearest_white_perspective,
@@ -890,4 +794,544 @@ ZB_fillTriangleFunc ztriangle_code_2[540] = {
   FB_triangle_zon_coff_amore_zless_tgeneral_smooth_perspective,
   FB_triangle_zon_coff_amore_zless_tgeneral_smooth_perspective,
   FB_triangle_zon_coff_amore_zless_tgeneral_smooth_multitex2,
   FB_triangle_zon_coff_amore_zless_tgeneral_smooth_multitex2,
   FB_triangle_zon_coff_amore_zless_tgeneral_smooth_multitex3,
   FB_triangle_zon_coff_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_znone_tnearest_white_untextured,
+  FB_triangle_zon_csstore_anone_znone_tnearest_white_textured,
+  FB_triangle_zon_csstore_anone_znone_tnearest_white_perspective,
+  FB_triangle_zon_csstore_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_znone_tnearest_flat_untextured,
+  FB_triangle_zon_csstore_anone_znone_tnearest_flat_textured,
+  FB_triangle_zon_csstore_anone_znone_tnearest_flat_perspective,
+  FB_triangle_zon_csstore_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_znone_tnearest_smooth_untextured,
+  FB_triangle_zon_csstore_anone_znone_tnearest_smooth_textured,
+  FB_triangle_zon_csstore_anone_znone_tnearest_smooth_perspective,
+  FB_triangle_zon_csstore_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_white_untextured,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_white_textured,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_white_perspective,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_flat_untextured,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_flat_textured,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_flat_perspective,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_untextured,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_textured,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_perspective,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_white_untextured,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_white_textured,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_white_perspective,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_flat_untextured,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_flat_textured,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_flat_perspective,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_untextured,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_textured,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_perspective,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_zless_tnearest_white_untextured,
+  FB_triangle_zon_csstore_anone_zless_tnearest_white_textured,
+  FB_triangle_zon_csstore_anone_zless_tnearest_white_perspective,
+  FB_triangle_zon_csstore_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_zless_tnearest_flat_untextured,
+  FB_triangle_zon_csstore_anone_zless_tnearest_flat_textured,
+  FB_triangle_zon_csstore_anone_zless_tnearest_flat_perspective,
+  FB_triangle_zon_csstore_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_zless_tnearest_smooth_untextured,
+  FB_triangle_zon_csstore_anone_zless_tnearest_smooth_textured,
+  FB_triangle_zon_csstore_anone_zless_tnearest_smooth_perspective,
+  FB_triangle_zon_csstore_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_white_untextured,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_white_textured,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_white_perspective,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_flat_untextured,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_flat_textured,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_flat_perspective,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_untextured,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_textured,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_perspective,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_white_untextured,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_white_textured,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_white_perspective,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_flat_untextured,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_flat_textured,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_flat_perspective,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_untextured,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_textured,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_perspective,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_znone_tnearest_white_untextured,
+  FB_triangle_zon_csstore_aless_znone_tnearest_white_textured,
+  FB_triangle_zon_csstore_aless_znone_tnearest_white_perspective,
+  FB_triangle_zon_csstore_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_znone_tnearest_flat_untextured,
+  FB_triangle_zon_csstore_aless_znone_tnearest_flat_textured,
+  FB_triangle_zon_csstore_aless_znone_tnearest_flat_perspective,
+  FB_triangle_zon_csstore_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_znone_tnearest_smooth_untextured,
+  FB_triangle_zon_csstore_aless_znone_tnearest_smooth_textured,
+  FB_triangle_zon_csstore_aless_znone_tnearest_smooth_perspective,
+  FB_triangle_zon_csstore_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_white_untextured,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_white_textured,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_white_perspective,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_flat_untextured,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_flat_textured,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_flat_perspective,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_untextured,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_textured,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_perspective,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_white_untextured,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_white_textured,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_white_perspective,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_flat_untextured,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_flat_textured,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_flat_perspective,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_untextured,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_textured,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_perspective,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_zless_tnearest_white_untextured,
+  FB_triangle_zon_csstore_aless_zless_tnearest_white_textured,
+  FB_triangle_zon_csstore_aless_zless_tnearest_white_perspective,
+  FB_triangle_zon_csstore_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_zless_tnearest_flat_untextured,
+  FB_triangle_zon_csstore_aless_zless_tnearest_flat_textured,
+  FB_triangle_zon_csstore_aless_zless_tnearest_flat_perspective,
+  FB_triangle_zon_csstore_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_zless_tnearest_smooth_untextured,
+  FB_triangle_zon_csstore_aless_zless_tnearest_smooth_textured,
+  FB_triangle_zon_csstore_aless_zless_tnearest_smooth_perspective,
+  FB_triangle_zon_csstore_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_white_untextured,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_white_textured,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_white_perspective,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_flat_untextured,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_flat_textured,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_flat_perspective,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_untextured,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_textured,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_perspective,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_white_untextured,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_white_textured,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_white_perspective,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_flat_untextured,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_flat_textured,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_flat_perspective,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_untextured,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_textured,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_perspective,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_znone_tnearest_white_untextured,
+  FB_triangle_zon_csstore_amore_znone_tnearest_white_textured,
+  FB_triangle_zon_csstore_amore_znone_tnearest_white_perspective,
+  FB_triangle_zon_csstore_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_znone_tnearest_flat_untextured,
+  FB_triangle_zon_csstore_amore_znone_tnearest_flat_textured,
+  FB_triangle_zon_csstore_amore_znone_tnearest_flat_perspective,
+  FB_triangle_zon_csstore_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_znone_tnearest_smooth_untextured,
+  FB_triangle_zon_csstore_amore_znone_tnearest_smooth_textured,
+  FB_triangle_zon_csstore_amore_znone_tnearest_smooth_perspective,
+  FB_triangle_zon_csstore_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_white_untextured,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_white_textured,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_white_perspective,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_flat_untextured,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_flat_textured,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_flat_perspective,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_untextured,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_textured,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_perspective,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_white_untextured,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_white_textured,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_white_perspective,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_flat_untextured,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_flat_textured,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_flat_perspective,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_untextured,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_textured,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_perspective,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_zless_tnearest_white_untextured,
+  FB_triangle_zon_csstore_amore_zless_tnearest_white_textured,
+  FB_triangle_zon_csstore_amore_zless_tnearest_white_perspective,
+  FB_triangle_zon_csstore_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_zless_tnearest_flat_untextured,
+  FB_triangle_zon_csstore_amore_zless_tnearest_flat_textured,
+  FB_triangle_zon_csstore_amore_zless_tnearest_flat_perspective,
+  FB_triangle_zon_csstore_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_zless_tnearest_smooth_untextured,
+  FB_triangle_zon_csstore_amore_zless_tnearest_smooth_textured,
+  FB_triangle_zon_csstore_amore_zless_tnearest_smooth_perspective,
+  FB_triangle_zon_csstore_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_white_untextured,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_white_textured,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_white_perspective,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_flat_untextured,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_flat_textured,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_flat_perspective,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_untextured,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_textured,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_perspective,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_white_untextured,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_white_textured,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_white_perspective,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_flat_untextured,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_flat_textured,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_flat_perspective,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_untextured,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_textured,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_perspective,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_znone_tnearest_white_untextured,
+  FB_triangle_zon_csblend_anone_znone_tnearest_white_textured,
+  FB_triangle_zon_csblend_anone_znone_tnearest_white_perspective,
+  FB_triangle_zon_csblend_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_znone_tnearest_flat_untextured,
+  FB_triangle_zon_csblend_anone_znone_tnearest_flat_textured,
+  FB_triangle_zon_csblend_anone_znone_tnearest_flat_perspective,
+  FB_triangle_zon_csblend_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_znone_tnearest_smooth_untextured,
+  FB_triangle_zon_csblend_anone_znone_tnearest_smooth_textured,
+  FB_triangle_zon_csblend_anone_znone_tnearest_smooth_perspective,
+  FB_triangle_zon_csblend_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_white_untextured,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_white_textured,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_white_perspective,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_flat_untextured,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_flat_textured,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_flat_perspective,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_untextured,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_textured,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_perspective,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_white_untextured,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_white_textured,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_white_perspective,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_flat_untextured,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_flat_textured,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_flat_perspective,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_untextured,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_textured,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_perspective,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_zless_tnearest_white_untextured,
+  FB_triangle_zon_csblend_anone_zless_tnearest_white_textured,
+  FB_triangle_zon_csblend_anone_zless_tnearest_white_perspective,
+  FB_triangle_zon_csblend_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_zless_tnearest_flat_untextured,
+  FB_triangle_zon_csblend_anone_zless_tnearest_flat_textured,
+  FB_triangle_zon_csblend_anone_zless_tnearest_flat_perspective,
+  FB_triangle_zon_csblend_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_zless_tnearest_smooth_untextured,
+  FB_triangle_zon_csblend_anone_zless_tnearest_smooth_textured,
+  FB_triangle_zon_csblend_anone_zless_tnearest_smooth_perspective,
+  FB_triangle_zon_csblend_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_white_untextured,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_white_textured,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_white_perspective,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_flat_untextured,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_flat_textured,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_flat_perspective,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_untextured,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_textured,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_perspective,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_white_untextured,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_white_textured,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_white_perspective,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_flat_untextured,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_flat_textured,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_flat_perspective,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_untextured,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_textured,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_perspective,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_znone_tnearest_white_untextured,
+  FB_triangle_zon_csblend_aless_znone_tnearest_white_textured,
+  FB_triangle_zon_csblend_aless_znone_tnearest_white_perspective,
+  FB_triangle_zon_csblend_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_znone_tnearest_flat_untextured,
+  FB_triangle_zon_csblend_aless_znone_tnearest_flat_textured,
+  FB_triangle_zon_csblend_aless_znone_tnearest_flat_perspective,
+  FB_triangle_zon_csblend_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_znone_tnearest_smooth_untextured,
+  FB_triangle_zon_csblend_aless_znone_tnearest_smooth_textured,
+  FB_triangle_zon_csblend_aless_znone_tnearest_smooth_perspective,
+  FB_triangle_zon_csblend_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_white_untextured,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_white_textured,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_white_perspective,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_flat_untextured,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_flat_textured,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_flat_perspective,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_untextured,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_textured,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_perspective,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_white_untextured,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_white_textured,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_white_perspective,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_flat_untextured,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_flat_textured,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_flat_perspective,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_untextured,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_textured,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_perspective,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_zless_tnearest_white_untextured,
+  FB_triangle_zon_csblend_aless_zless_tnearest_white_textured,
+  FB_triangle_zon_csblend_aless_zless_tnearest_white_perspective,
+  FB_triangle_zon_csblend_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_zless_tnearest_flat_untextured,
+  FB_triangle_zon_csblend_aless_zless_tnearest_flat_textured,
+  FB_triangle_zon_csblend_aless_zless_tnearest_flat_perspective,
+  FB_triangle_zon_csblend_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_zless_tnearest_smooth_untextured,
+  FB_triangle_zon_csblend_aless_zless_tnearest_smooth_textured,
+  FB_triangle_zon_csblend_aless_zless_tnearest_smooth_perspective,
+  FB_triangle_zon_csblend_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_white_untextured,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_white_textured,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_white_perspective,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_flat_untextured,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_flat_textured,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_flat_perspective,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_untextured,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_textured,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_perspective,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_white_untextured,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_white_textured,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_white_perspective,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_flat_untextured,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_flat_textured,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_flat_perspective,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_untextured,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_textured,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_perspective,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_znone_tnearest_white_untextured,
+  FB_triangle_zon_csblend_amore_znone_tnearest_white_textured,
+  FB_triangle_zon_csblend_amore_znone_tnearest_white_perspective,
+  FB_triangle_zon_csblend_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_znone_tnearest_flat_untextured,
+  FB_triangle_zon_csblend_amore_znone_tnearest_flat_textured,
+  FB_triangle_zon_csblend_amore_znone_tnearest_flat_perspective,
+  FB_triangle_zon_csblend_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_znone_tnearest_smooth_untextured,
+  FB_triangle_zon_csblend_amore_znone_tnearest_smooth_textured,
+  FB_triangle_zon_csblend_amore_znone_tnearest_smooth_perspective,
+  FB_triangle_zon_csblend_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_white_untextured,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_white_textured,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_white_perspective,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_flat_untextured,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_flat_textured,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_flat_perspective,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_untextured,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_textured,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_perspective,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_white_untextured,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_white_textured,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_white_perspective,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_flat_untextured,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_flat_textured,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_flat_perspective,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_untextured,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_textured,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_perspective,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_zless_tnearest_white_untextured,
+  FB_triangle_zon_csblend_amore_zless_tnearest_white_textured,
+  FB_triangle_zon_csblend_amore_zless_tnearest_white_perspective,
+  FB_triangle_zon_csblend_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_zless_tnearest_flat_untextured,
+  FB_triangle_zon_csblend_amore_zless_tnearest_flat_textured,
+  FB_triangle_zon_csblend_amore_zless_tnearest_flat_perspective,
+  FB_triangle_zon_csblend_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_zless_tnearest_smooth_untextured,
+  FB_triangle_zon_csblend_amore_zless_tnearest_smooth_textured,
+  FB_triangle_zon_csblend_amore_zless_tnearest_smooth_perspective,
+  FB_triangle_zon_csblend_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_white_untextured,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_white_textured,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_white_perspective,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_flat_untextured,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_flat_textured,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_flat_perspective,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_untextured,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_textured,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_perspective,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_white_untextured,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_white_textured,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_white_perspective,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_flat_untextured,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_flat_textured,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_flat_perspective,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_untextured,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_textured,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_perspective,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_multitex3,
 };
 };

+ 445 - 1
panda/src/tinydisplay/ztriangle_code_3.h

@@ -348,8 +348,182 @@
 #define FNAME(name) FB_triangle_zoff_cblend_amore_zless_tgeneral_ ## name
 #define FNAME(name) FB_triangle_zoff_cblend_amore_zless_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zoff_cgeneral_anone_znone_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zoff_cgeneral_anone_znone_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zoff_cgeneral_anone_znone_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zoff_cgeneral_anone_zless_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zoff_cgeneral_anone_zless_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zoff_cgeneral_anone_zless_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zoff_cgeneral_aless_znone_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zoff_cgeneral_aless_znone_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zoff_cgeneral_aless_znone_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zoff_cgeneral_aless_zless_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zoff_cgeneral_aless_zless_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zoff_cgeneral_aless_zless_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zoff_cgeneral_amore_znone_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zoff_cgeneral_amore_znone_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zoff_cgeneral_amore_znone_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zoff_cgeneral_amore_zless_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zoff_cgeneral_amore_zless_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zoff_cgeneral_amore_zless_tgeneral_ ## name
+#include "ztriangle_two.h"
+
 
 
-ZB_fillTriangleFunc ztriangle_code_3[540] = {
+ZB_fillTriangleFunc ztriangle_code_3[810] = {
   FB_triangle_zoff_cstore_anone_znone_tnearest_white_untextured,
   FB_triangle_zoff_cstore_anone_znone_tnearest_white_untextured,
   FB_triangle_zoff_cstore_anone_znone_tnearest_white_textured,
   FB_triangle_zoff_cstore_anone_znone_tnearest_white_textured,
   FB_triangle_zoff_cstore_anone_znone_tnearest_white_perspective,
   FB_triangle_zoff_cstore_anone_znone_tnearest_white_perspective,
@@ -890,4 +1064,274 @@ ZB_fillTriangleFunc ztriangle_code_3[540] = {
   FB_triangle_zoff_cblend_amore_zless_tgeneral_smooth_perspective,
   FB_triangle_zoff_cblend_amore_zless_tgeneral_smooth_perspective,
   FB_triangle_zoff_cblend_amore_zless_tgeneral_smooth_multitex2,
   FB_triangle_zoff_cblend_amore_zless_tgeneral_smooth_multitex2,
   FB_triangle_zoff_cblend_amore_zless_tgeneral_smooth_multitex3,
   FB_triangle_zoff_cblend_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_white_untextured,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_white_textured,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_white_perspective,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_flat_untextured,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_flat_textured,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_flat_perspective,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_untextured,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_textured,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_perspective,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_white_untextured,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_white_textured,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_white_perspective,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_flat_untextured,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_flat_textured,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_flat_perspective,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_untextured,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_textured,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_perspective,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_white_untextured,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_white_textured,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_white_perspective,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_flat_untextured,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_flat_textured,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_flat_perspective,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_untextured,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_textured,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_perspective,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_white_untextured,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_white_textured,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_white_perspective,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_flat_untextured,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_flat_textured,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_flat_perspective,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_untextured,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_textured,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_perspective,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_white_untextured,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_white_textured,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_white_perspective,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_flat_untextured,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_flat_textured,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_flat_perspective,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_untextured,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_textured,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_perspective,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_white_untextured,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_white_textured,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_white_perspective,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_flat_untextured,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_flat_textured,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_flat_perspective,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_untextured,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_textured,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_perspective,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_white_untextured,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_white_textured,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_white_perspective,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_flat_untextured,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_flat_textured,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_flat_perspective,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_untextured,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_textured,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_perspective,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_white_untextured,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_white_textured,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_white_perspective,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_flat_untextured,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_flat_textured,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_flat_perspective,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_untextured,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_textured,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_perspective,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_white_untextured,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_white_textured,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_white_perspective,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_flat_untextured,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_flat_textured,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_flat_perspective,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_untextured,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_textured,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_perspective,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_white_untextured,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_white_textured,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_white_perspective,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_flat_untextured,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_flat_textured,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_flat_perspective,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_untextured,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_textured,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_perspective,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_white_untextured,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_white_textured,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_white_perspective,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_flat_untextured,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_flat_textured,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_flat_perspective,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_untextured,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_textured,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_perspective,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_white_untextured,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_white_textured,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_white_perspective,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_flat_untextured,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_flat_textured,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_flat_perspective,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_untextured,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_textured,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_perspective,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_white_untextured,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_white_textured,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_white_perspective,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_flat_untextured,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_flat_textured,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_flat_perspective,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_untextured,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_textured,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_perspective,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_white_untextured,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_white_textured,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_white_perspective,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_flat_untextured,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_flat_textured,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_flat_perspective,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_untextured,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_textured,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_perspective,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_white_untextured,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_white_textured,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_white_perspective,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_flat_untextured,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_flat_textured,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_flat_perspective,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_untextured,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_textured,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_perspective,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_white_untextured,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_white_textured,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_white_perspective,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_flat_untextured,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_flat_textured,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_flat_perspective,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_untextured,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_textured,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_perspective,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_white_untextured,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_white_textured,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_white_perspective,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_flat_untextured,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_flat_textured,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_flat_perspective,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_untextured,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_textured,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_perspective,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_white_untextured,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_white_textured,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_white_perspective,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_flat_untextured,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_flat_textured,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_flat_perspective,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_untextured,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_textured,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_perspective,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex3,
 };
 };

+ 787 - 343
panda/src/tinydisplay/ztriangle_code_4.h

@@ -1,625 +1,529 @@
 /* This file is generated code--do not edit.  See ztriangle.py. */
 /* This file is generated code--do not edit.  See ztriangle.py. */
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zoff_cgeneral_anone_znone_tnearest_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_anone_znone_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zoff_cgeneral_anone_znone_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_anone_znone_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zoff_cgeneral_anone_znone_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_anone_znone_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zoff_cgeneral_anone_zless_tnearest_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_anone_zless_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zoff_cgeneral_anone_zless_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_anone_zless_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zoff_cgeneral_anone_zless_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_anone_zless_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zoff_cgeneral_aless_znone_tnearest_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_aless_znone_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zoff_cgeneral_aless_znone_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_aless_znone_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zoff_cgeneral_aless_znone_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_aless_znone_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zoff_cgeneral_aless_zless_tnearest_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_aless_zless_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zoff_cgeneral_aless_zless_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_aless_zless_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zoff_cgeneral_aless_zless_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_aless_zless_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zoff_cgeneral_amore_znone_tnearest_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_amore_znone_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zoff_cgeneral_amore_znone_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_amore_znone_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zoff_cgeneral_amore_znone_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_amore_znone_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zoff_cgeneral_amore_zless_tnearest_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_amore_zless_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zoff_cgeneral_amore_zless_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_amore_zless_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zoff_cgeneral_amore_zless_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zoff_coff_amore_zless_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zoff_coff_anone_znone_tnearest_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_anone_znone_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zoff_coff_anone_znone_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_anone_znone_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zoff_coff_anone_znone_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_anone_znone_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zoff_coff_anone_zless_tnearest_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_anone_zless_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zoff_coff_anone_zless_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_anone_zless_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) 1
 #define ACMP(zb, a) 1
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zoff_coff_anone_zless_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_anone_zless_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zoff_coff_aless_znone_tnearest_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_aless_znone_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zoff_coff_aless_znone_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_aless_znone_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zoff_coff_aless_znone_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_aless_znone_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zoff_coff_aless_zless_tnearest_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_aless_zless_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zoff_coff_aless_zless_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_aless_zless_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zoff_coff_aless_zless_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_aless_zless_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zoff_coff_amore_znone_tnearest_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_amore_znone_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zoff_coff_amore_znone_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_amore_znone_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) 1
 #define ZCMP(zpix, z) 1
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zoff_coff_amore_znone_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_amore_znone_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
-#define FNAME(name) FB_triangle_zoff_coff_amore_zless_tnearest_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_amore_zless_tnearest_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
-#define FNAME(name) FB_triangle_zoff_coff_amore_zless_tmipmap_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_amore_zless_tmipmap_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 #define STORE_Z(zpix, z)
 #define STORE_Z(zpix, z)
-#define STORE_PIX(pix, rgb, r, g, b, a)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
 #define INTERP_MIPMAP
 #define INTERP_MIPMAP
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
 #define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
-#define FNAME(name) FB_triangle_zoff_coff_amore_zless_tgeneral_ ## name
+#define FNAME(name) FB_triangle_zoff_csstore_amore_zless_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zoff_csblend_anone_znone_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zoff_csblend_anone_znone_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zoff_csblend_anone_znone_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zoff_csblend_anone_zless_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zoff_csblend_anone_zless_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) 1
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zoff_csblend_anone_zless_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zoff_csblend_aless_znone_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zoff_csblend_aless_znone_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zoff_csblend_aless_znone_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zoff_csblend_aless_zless_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zoff_csblend_aless_zless_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zoff_csblend_aless_zless_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zoff_csblend_amore_znone_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zoff_csblend_amore_znone_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) 1
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zoff_csblend_amore_znone_tgeneral_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t)
+#define FNAME(name) FB_triangle_zoff_csblend_amore_zless_tnearest_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level)
+#define FNAME(name) FB_triangle_zoff_csblend_amore_zless_tmipmap_ ## name
+#include "ztriangle_two.h"
+
+#define STORE_Z(zpix, z)
+#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)
+#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha)
+#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z))
+#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx)
+#define INTERP_MIPMAP
+#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx))
+#define FNAME(name) FB_triangle_zoff_csblend_amore_zless_tgeneral_ ## name
 #include "ztriangle_two.h"
 #include "ztriangle_two.h"
 
 
 
 
-ZB_fillTriangleFunc ztriangle_code_4[540] = {
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_white_untextured,
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_white_textured,
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_white_perspective,
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_flat_untextured,
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_flat_textured,
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_flat_perspective,
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_untextured,
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_textured,
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_perspective,
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_white_untextured,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_white_textured,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_white_perspective,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_flat_untextured,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_flat_textured,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_flat_perspective,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_untextured,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_textured,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_perspective,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_white_untextured,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_white_textured,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_white_perspective,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_flat_untextured,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_flat_textured,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_flat_perspective,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_untextured,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_textured,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_perspective,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_white_untextured,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_white_textured,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_white_perspective,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_flat_untextured,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_flat_textured,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_flat_perspective,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_untextured,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_textured,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_perspective,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_white_untextured,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_white_textured,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_white_perspective,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_flat_untextured,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_flat_textured,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_flat_perspective,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_untextured,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_textured,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_perspective,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_white_untextured,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_white_textured,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_white_perspective,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_flat_untextured,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_flat_textured,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_flat_perspective,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_untextured,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_textured,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_perspective,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_white_untextured,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_white_textured,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_white_perspective,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_flat_untextured,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_flat_textured,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_flat_perspective,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_untextured,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_textured,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_perspective,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_white_untextured,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_white_textured,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_white_perspective,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_flat_untextured,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_flat_textured,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_flat_perspective,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_untextured,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_textured,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_perspective,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_white_untextured,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_white_textured,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_white_perspective,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_flat_untextured,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_flat_textured,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_flat_perspective,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_untextured,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_textured,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_perspective,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_white_untextured,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_white_textured,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_white_perspective,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_flat_untextured,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_flat_textured,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_flat_perspective,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_untextured,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_textured,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_perspective,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_white_untextured,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_white_textured,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_white_perspective,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_flat_untextured,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_flat_textured,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_flat_perspective,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_untextured,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_textured,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_perspective,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_white_untextured,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_white_textured,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_white_perspective,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_flat_untextured,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_flat_textured,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_flat_perspective,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_untextured,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_textured,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_perspective,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_white_untextured,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_white_textured,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_white_perspective,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_flat_untextured,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_flat_textured,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_flat_perspective,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_untextured,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_textured,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_perspective,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_white_untextured,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_white_textured,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_white_perspective,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_flat_untextured,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_flat_textured,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_flat_perspective,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_untextured,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_textured,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_perspective,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_white_untextured,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_white_textured,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_white_perspective,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_flat_untextured,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_flat_textured,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_flat_perspective,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_untextured,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_textured,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_perspective,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_white_untextured,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_white_textured,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_white_perspective,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_flat_untextured,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_flat_textured,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_flat_perspective,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_untextured,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_textured,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_perspective,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_white_untextured,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_white_textured,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_white_perspective,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_flat_untextured,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_flat_textured,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_flat_perspective,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_untextured,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_textured,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_perspective,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_white_untextured,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_white_textured,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_white_perspective,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_flat_untextured,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_flat_textured,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_flat_perspective,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex3,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_untextured,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_textured,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_perspective,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex2,
-  FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex3,
+ZB_fillTriangleFunc ztriangle_code_4[810] = {
   FB_triangle_zoff_coff_anone_znone_tnearest_white_untextured,
   FB_triangle_zoff_coff_anone_znone_tnearest_white_untextured,
   FB_triangle_zoff_coff_anone_znone_tnearest_white_textured,
   FB_triangle_zoff_coff_anone_znone_tnearest_white_textured,
   FB_triangle_zoff_coff_anone_znone_tnearest_white_perspective,
   FB_triangle_zoff_coff_anone_znone_tnearest_white_perspective,
@@ -890,4 +794,544 @@ ZB_fillTriangleFunc ztriangle_code_4[540] = {
   FB_triangle_zoff_coff_amore_zless_tgeneral_smooth_perspective,
   FB_triangle_zoff_coff_amore_zless_tgeneral_smooth_perspective,
   FB_triangle_zoff_coff_amore_zless_tgeneral_smooth_multitex2,
   FB_triangle_zoff_coff_amore_zless_tgeneral_smooth_multitex2,
   FB_triangle_zoff_coff_amore_zless_tgeneral_smooth_multitex3,
   FB_triangle_zoff_coff_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_white_untextured,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_white_textured,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_white_perspective,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_flat_untextured,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_flat_textured,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_flat_perspective,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_untextured,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_textured,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_perspective,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_white_untextured,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_white_textured,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_white_perspective,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_flat_untextured,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_flat_textured,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_flat_perspective,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_untextured,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_textured,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_perspective,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_white_untextured,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_white_textured,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_white_perspective,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_flat_untextured,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_flat_textured,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_flat_perspective,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_untextured,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_textured,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_perspective,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_white_untextured,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_white_textured,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_white_perspective,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_flat_untextured,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_flat_textured,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_flat_perspective,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_untextured,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_textured,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_perspective,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_white_untextured,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_white_textured,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_white_perspective,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_flat_untextured,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_flat_textured,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_flat_perspective,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_untextured,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_textured,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_perspective,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_white_untextured,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_white_textured,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_white_perspective,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_flat_untextured,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_flat_textured,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_flat_perspective,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_untextured,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_textured,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_perspective,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_white_untextured,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_white_textured,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_white_perspective,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_flat_untextured,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_flat_textured,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_flat_perspective,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_untextured,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_textured,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_perspective,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_white_untextured,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_white_textured,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_white_perspective,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_flat_untextured,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_flat_textured,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_flat_perspective,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_untextured,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_textured,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_perspective,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_white_untextured,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_white_textured,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_white_perspective,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_flat_untextured,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_flat_textured,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_flat_perspective,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_untextured,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_textured,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_perspective,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_white_untextured,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_white_textured,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_white_perspective,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_flat_untextured,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_flat_textured,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_flat_perspective,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_untextured,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_textured,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_perspective,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_white_untextured,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_white_textured,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_white_perspective,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_flat_untextured,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_flat_textured,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_flat_perspective,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_untextured,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_textured,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_perspective,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_white_untextured,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_white_textured,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_white_perspective,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_flat_untextured,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_flat_textured,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_flat_perspective,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_untextured,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_textured,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_perspective,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_white_untextured,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_white_textured,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_white_perspective,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_flat_untextured,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_flat_textured,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_flat_perspective,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_untextured,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_textured,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_perspective,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_white_untextured,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_white_textured,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_white_perspective,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_flat_untextured,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_flat_textured,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_flat_perspective,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_untextured,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_textured,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_perspective,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_white_untextured,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_white_textured,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_white_perspective,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_flat_untextured,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_flat_textured,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_flat_perspective,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_untextured,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_textured,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_perspective,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_white_untextured,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_white_textured,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_white_perspective,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_flat_untextured,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_flat_textured,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_flat_perspective,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_untextured,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_textured,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_perspective,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_white_untextured,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_white_textured,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_white_perspective,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_flat_untextured,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_flat_textured,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_flat_perspective,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_untextured,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_textured,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_perspective,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_white_untextured,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_white_textured,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_white_perspective,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_flat_untextured,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_flat_textured,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_flat_perspective,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_untextured,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_textured,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_perspective,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_white_untextured,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_white_textured,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_white_perspective,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_flat_untextured,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_flat_textured,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_flat_perspective,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_untextured,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_textured,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_perspective,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_white_untextured,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_white_textured,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_white_perspective,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_flat_untextured,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_flat_textured,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_flat_perspective,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_untextured,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_textured,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_perspective,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_white_untextured,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_white_textured,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_white_perspective,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_flat_untextured,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_flat_textured,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_flat_perspective,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_untextured,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_textured,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_perspective,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_white_untextured,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_white_textured,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_white_perspective,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_flat_untextured,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_flat_textured,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_flat_perspective,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_untextured,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_textured,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_perspective,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_white_untextured,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_white_textured,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_white_perspective,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_flat_untextured,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_flat_textured,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_flat_perspective,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_untextured,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_textured,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_perspective,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_white_untextured,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_white_textured,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_white_perspective,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_flat_untextured,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_flat_textured,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_flat_perspective,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_untextured,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_textured,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_perspective,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_white_untextured,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_white_textured,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_white_perspective,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_flat_untextured,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_flat_textured,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_flat_perspective,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_untextured,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_textured,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_perspective,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_white_untextured,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_white_textured,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_white_perspective,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_flat_untextured,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_flat_textured,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_flat_perspective,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_untextured,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_textured,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_perspective,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_white_untextured,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_white_textured,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_white_perspective,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_flat_untextured,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_flat_textured,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_flat_perspective,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_untextured,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_textured,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_perspective,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_white_untextured,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_white_textured,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_white_perspective,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_flat_untextured,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_flat_textured,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_flat_perspective,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_untextured,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_textured,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_perspective,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_white_untextured,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_white_textured,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_white_perspective,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_flat_untextured,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_flat_textured,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_flat_perspective,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_untextured,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_textured,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_perspective,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_white_untextured,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_white_textured,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_white_perspective,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_flat_untextured,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_flat_textured,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_flat_perspective,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_untextured,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_textured,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_perspective,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_white_untextured,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_white_textured,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_white_perspective,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_flat_untextured,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_flat_textured,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_flat_perspective,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_untextured,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_textured,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_perspective,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_white_untextured,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_white_textured,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_white_perspective,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_flat_untextured,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_flat_textured,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_flat_perspective,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_untextured,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_textured,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_perspective,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_white_untextured,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_white_textured,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_white_perspective,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_flat_untextured,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_flat_textured,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_flat_perspective,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_untextured,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_textured,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_perspective,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_white_untextured,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_white_textured,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_white_perspective,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_flat_untextured,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_flat_textured,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_flat_perspective,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_untextured,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_textured,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_perspective,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_white_untextured,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_white_textured,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_white_perspective,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_flat_untextured,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_flat_textured,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_flat_perspective,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_untextured,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_textured,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_perspective,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_white_untextured,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_white_textured,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_white_perspective,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_flat_untextured,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_flat_textured,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_flat_perspective,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_multitex3,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_untextured,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_textured,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_perspective,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_multitex2,
+  FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_multitex3,
 };
 };

File diff suppressed because it is too large
+ 960 - 92
panda/src/tinydisplay/ztriangle_table.cxx


+ 1 - 1
panda/src/tinydisplay/ztriangle_table.h

@@ -1,3 +1,3 @@
 /* This file is generated code--do not edit.  See ztriangle.py. */
 /* This file is generated code--do not edit.  See ztriangle.py. */
 
 
-extern const ZB_fillTriangleFunc fill_tri_funcs[2][4][3][2][3][3][5];
+extern const ZB_fillTriangleFunc fill_tri_funcs[2][6][3][2][3][3][5];

Some files were not shown because too many files changed in this diff