From 390d42d694573ea5a65bd5a6946a08b867143de3 Mon Sep 17 00:00:00 2001 From: Spoike Date: Sun, 6 Sep 2015 05:50:16 +0000 Subject: [PATCH] update tls cert info for triptohell. stop decals from affecting angled surfaces (*sigh*). realtime shadows + d3d9|d3d11 never really worked properly anyway. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4983 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/common/net_ssl_winsspi.c | 25 +-- engine/common/q1bsp.c | 4 +- engine/d3d/d3d11_backend.c | 276 +++++--------------------------- engine/d3d/d3d11_image.c | 3 + engine/d3d/d3d11_shader.c | 123 +++++++------- engine/gl/gl_shadow.c | 4 +- 6 files changed, 121 insertions(+), 314 deletions(-) diff --git a/engine/common/net_ssl_winsspi.c b/engine/common/net_ssl_winsspi.c index d8a0e7da1..0a5c413a0 100644 --- a/engine/common/net_ssl_winsspi.c +++ b/engine/common/net_ssl_winsspi.c @@ -337,7 +337,8 @@ static void SSPI_Encode(sslfile_t *f) } //these are known sites that use self-signed certificates, or are special enough that we don't trust corporate networks to hack in their own certificate authority for a proxy/mitm -static const qbyte triptohell_certdata[] = "\x30\x82\x03\xa1\x30\x82\x02\x89\xa0\x03\x02\x01\x02\x02\x09\x00\x8b\xd0\x05\x63\x62\xd1\x6a\xe3\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x05\x05\x00\x30\x67\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x42\x44\x31\x0c\x30\x0a\x06\x03\x55\x04\x08\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x07\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x0a\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x0b\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x03\x0c\x03\x42\x61\x64\x31\x12\x30\x10\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x09\x01\x16\x03\x42\x61\x64\x30\x1e\x17\x0d\x31\x34\x31\x32\x32\x34\x32\x32\x34\x32\x34\x37\x5a\x17\x0d\x32\x34\x31\x32\x32\x31\x32\x32\x34\x32\x34\x37\x5a\x30\x67\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x42\x44\x31\x0c\x30\x0a\x06\x03\x55\x04\x08\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x07\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x0a\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x0b\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x03\x0c\x03\x42\x61\x64\x31\x12\x30\x10\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x09\x01\x16\x03\x42\x61\x64\x30\x82\x01\x22\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01\x05\x00\x03\x82\x01\x0f\x00\x30\x82\x01\x0a\x02\x82\x01\x01\x00\xaf\x10\x33\xfa\x39\xf5\xae\x2c\x91\x0e\x20\xe6\x3c\x5c\x7c\x1e\xeb\x16\x50\x2f\x05\x30\xfe\x67\xee\xa9\x00\x54\xd9\x4a\x86\xe6\xba\x80\xfb\x1a\x80\x08\x7e\x7b\x13\xe5\x1a\x18\xc9\xd4\x70\xbd\x5d\xc4\x38\xef\x64\xf1\x90\x2c\x53\x49\x93\x24\x36\x3e\x11\x59\x69\xa6\xdf\x37\xb2\x54\x82\x28\x3e\xdd\x30\x75\xa0\x18\xd8\xe1\xf5\x52\x73\x12\x5b\x37\x68\x1c\x59\xbd\x8c\x73\x66\x47\xbc\xcb\x9c\xfe\x38\x92\x8f\x74\xe9\xd1\x2f\x96\xd2\x5d\x6d\x11\x59\xb2\xdc\xbd\x8c\x37\x5b\x22\x76\x98\xe7\xbe\x08\xef\x1e\x99\xc4\xa9\x77\x2c\x9c\x0e\x08\x3c\x8e\xab\x97\x0c\x6a\xd7\x03\xab\xfd\x4a\x1e\x95\xb2\xc2\x9c\x3a\x16\x65\xd7\xaf\x45\x5f\x6e\xe7\xce\x51\xba\xa0\x60\x43\x0e\x07\xc5\x0b\x0a\x82\x05\x26\xc4\x92\x0a\x27\x5b\xfc\x57\x6c\xdf\xe2\x54\x8a\xef\x38\xf1\xf8\xc4\xf8\x51\x16\x27\x1f\x78\x89\x7c\x5b\xd7\x53\xcd\x9b\x54\x2a\xe6\x71\xee\xe4\x56\x2e\xa4\x09\x1a\x61\xf7\x0f\x97\x22\x94\xd7\xef\x21\x6c\xe6\x81\xfb\x54\x5f\x09\x92\xac\xd2\x7c\xab\xd5\xa9\x81\xf4\xc9\xb7\xd6\xbf\x68\xf8\x4f\xdc\xf3\x60\xa3\x3b\x29\x92\x9e\xdd\xa2\xa3\x02\x03\x01\x00\x01\xa3\x50\x30\x4e\x30\x1d\x06\x03\x55\x1d\x0e\x04\x16\x04\x14\x19\xed\xd0\x7b\x16\xaf\xb5\x0c\x9a\xe8\xd3\x46\x2e\x3c\x64\x29\xb6\xc1\x73\x5a\x30\x1f\x06\x03\x55\x1d\x23\x04\x18\x30\x16\x80\x14\x19\xed\xd0\x7b\x16\xaf\xb5\x0c\x9a\xe8\xd3\x46\x2e\x3c\x64\x29\xb6\xc1\x73\x5a\x30\x0c\x06\x03\x55\x1d\x13\x04\x05\x30\x03\x01\x01\xff\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x62\xa7\x26\xeb\xd4\x03\x29\x9c\x09\x33\x69\x7a\x9c\x65\x68\xec\x4c\xb9\x06\xeb\x1e\x51\x6f\x78\x20\xdc\xf6\x44\x5e\x06\x6e\x53\x87\x73\xe6\x14\x15\xb9\x17\x74\x67\xe0\x4e\x48\x38\xbc\x1c\xbd\xd0\xad\xd6\xbd\x8c\xf0\x3a\xe0\x13\x73\x19\xad\x8b\x79\x68\x67\x65\x9b\x7a\x4c\x81\xfb\xd9\x92\x77\x89\xb5\xb0\x53\xb0\xa5\xf7\x2d\x8e\x29\x60\x31\xd1\x9b\x2f\x63\x8a\x5f\x64\xc1\x61\xd5\xb7\xdf\x70\x3b\x2b\xf6\x1a\x96\xb9\xa7\x08\xca\x87\xa6\x8c\x60\xca\x6e\xd7\xee\xba\xef\x89\x0b\x93\xd5\xfd\xfc\x14\xba\xef\x27\xba\x90\x11\x90\xf7\x25\x70\xe7\x4e\xf4\x9c\x13\x27\xc1\xa7\x8e\xd9\x66\x43\x72\x20\x5b\xe1\x5c\x73\x74\xf5\x33\xf2\xa5\xf6\xe1\xd5\xac\xf3\x67\x5c\xe7\xd4\x0a\x8d\x91\x73\x03\x3e\x9d\xbc\x96\xc3\x0c\xdb\xd5\x77\x6e\x76\x44\x69\xaf\x24\x0f\x4f\x8b\x47\x36\x8b\xc3\xd6\x36\xdd\x26\x5a\x9c\xdd\x9c\x43\xee\x29\x43\xdd\x75\x2f\x19\x52\xfc\x1d\x24\x9c\x13\x29\x99\xa0\x6d\x7a\x95\xcc\xa0\x58\x86\xd8\xc5\xb9\xa3\xc2\x3d\x64\x1d\x85\x8a\xca\x53\x55\x8e\x9a\x6d\xc9\x91\x73\xf4\xe1\xe1\xa4\x9b\x76\xfc\x7f\x63\xc2\xb9\x23"; +//old static const qbyte triptohell_certdata[933] = "\x30\x82\x03\xa1\x30\x82\x02\x89\xa0\x03\x02\x01\x02\x02\x09\x00\x8b\xd0\x05\x63\x62\xd1\x6a\xe3\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x05\x05\x00\x30\x67\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x42\x44\x31\x0c\x30\x0a\x06\x03\x55\x04\x08\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x07\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x0a\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x0b\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x03\x0c\x03\x42\x61\x64\x31\x12\x30\x10\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x09\x01\x16\x03\x42\x61\x64\x30\x1e\x17\x0d\x31\x34\x31\x32\x32\x34\x32\x32\x34\x32\x34\x37\x5a\x17\x0d\x32\x34\x31\x32\x32\x31\x32\x32\x34\x32\x34\x37\x5a\x30\x67\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x42\x44\x31\x0c\x30\x0a\x06\x03\x55\x04\x08\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x07\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x0a\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x0b\x0c\x03\x42\x61\x64\x31\x0c\x30\x0a\x06\x03\x55\x04\x03\x0c\x03\x42\x61\x64\x31\x12\x30\x10\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x09\x01\x16\x03\x42\x61\x64\x30\x82\x01\x22\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01\x05\x00\x03\x82\x01\x0f\x00\x30\x82\x01\x0a\x02\x82\x01\x01\x00\xaf\x10\x33\xfa\x39\xf5\xae\x2c\x91\x0e\x20\xe6\x3c\x5c\x7c\x1e\xeb\x16\x50\x2f\x05\x30\xfe\x67\xee\xa9\x00\x54\xd9\x4a\x86\xe6\xba\x80\xfb\x1a\x80\x08\x7e\x7b\x13\xe5\x1a\x18\xc9\xd4\x70\xbd\x5d\xc4\x38\xef\x64\xf1\x90\x2c\x53\x49\x93\x24\x36\x3e\x11\x59\x69\xa6\xdf\x37\xb2\x54\x82\x28\x3e\xdd\x30\x75\xa0\x18\xd8\xe1\xf5\x52\x73\x12\x5b\x37\x68\x1c\x59\xbd\x8c\x73\x66\x47\xbc\xcb\x9c\xfe\x38\x92\x8f\x74\xe9\xd1\x2f\x96\xd2\x5d\x6d\x11\x59\xb2\xdc\xbd\x8c\x37\x5b\x22\x76\x98\xe7\xbe\x08\xef\x1e\x99\xc4\xa9\x77\x2c\x9c\x0e\x08\x3c\x8e\xab\x97\x0c\x6a\xd7\x03\xab\xfd\x4a\x1e\x95\xb2\xc2\x9c\x3a\x16\x65\xd7\xaf\x45\x5f\x6e\xe7\xce\x51\xba\xa0\x60\x43\x0e\x07\xc5\x0b\x0a\x82\x05\x26\xc4\x92\x0a\x27\x5b\xfc\x57\x6c\xdf\xe2\x54\x8a\xef\x38\xf1\xf8\xc4\xf8\x51\x16\x27\x1f\x78\x89\x7c\x5b\xd7\x53\xcd\x9b\x54\x2a\xe6\x71\xee\xe4\x56\x2e\xa4\x09\x1a\x61\xf7\x0f\x97\x22\x94\xd7\xef\x21\x6c\xe6\x81\xfb\x54\x5f\x09\x92\xac\xd2\x7c\xab\xd5\xa9\x81\xf4\xc9\xb7\xd6\xbf\x68\xf8\x4f\xdc\xf3\x60\xa3\x3b\x29\x92\x9e\xdd\xa2\xa3\x02\x03\x01\x00\x01\xa3\x50\x30\x4e\x30\x1d\x06\x03\x55\x1d\x0e\x04\x16\x04\x14\x19\xed\xd0\x7b\x16\xaf\xb5\x0c\x9a\xe8\xd3\x46\x2e\x3c\x64\x29\xb6\xc1\x73\x5a\x30\x1f\x06\x03\x55\x1d\x23\x04\x18\x30\x16\x80\x14\x19\xed\xd0\x7b\x16\xaf\xb5\x0c\x9a\xe8\xd3\x46\x2e\x3c\x64\x29\xb6\xc1\x73\x5a\x30\x0c\x06\x03\x55\x1d\x13\x04\x05\x30\x03\x01\x01\xff\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x62\xa7\x26\xeb\xd4\x03\x29\x9c\x09\x33\x69\x7a\x9c\x65\x68\xec\x4c\xb9\x06\xeb\x1e\x51\x6f\x78\x20\xdc\xf6\x44\x5e\x06\x6e\x53\x87\x73\xe6\x14\x15\xb9\x17\x74\x67\xe0\x4e\x48\x38\xbc\x1c\xbd\xd0\xad\xd6\xbd\x8c\xf0\x3a\xe0\x13\x73\x19\xad\x8b\x79\x68\x67\x65\x9b\x7a\x4c\x81\xfb\xd9\x92\x77\x89\xb5\xb0\x53\xb0\xa5\xf7\x2d\x8e\x29\x60\x31\xd1\x9b\x2f\x63\x8a\x5f\x64\xc1\x61\xd5\xb7\xdf\x70\x3b\x2b\xf6\x1a\x96\xb9\xa7\x08\xca\x87\xa6\x8c\x60\xca\x6e\xd7\xee\xba\xef\x89\x0b\x93\xd5\xfd\xfc\x14\xba\xef\x27\xba\x90\x11\x90\xf7\x25\x70\xe7\x4e\xf4\x9c\x13\x27\xc1\xa7\x8e\xd9\x66\x43\x72\x20\x5b\xe1\x5c\x73\x74\xf5\x33\xf2\xa5\xf6\xe1\xd5\xac\xf3\x67\x5c\xe7\xd4\x0a\x8d\x91\x73\x03\x3e\x9d\xbc\x96\xc3\x0c\xdb\xd5\x77\x6e\x76\x44\x69\xaf\x24\x0f\x4f\x8b\x47\x36\x8b\xc3\xd6\x36\xdd\x26\x5a\x9c\xdd\x9c\x43\xee\x29\x43\xdd\x75\x2f\x19\x52\xfc\x1d\x24\x9c\x13\x29\x99\xa0\x6d\x7a\x95\xcc\xa0\x58\x86\xd8\xc5\xb9\xa3\xc2\x3d\x64\x1d\x85\x8a\xca\x53\x55\x8e\x9a\x6d\xc9\x91\x73\xf4\xe1\xe1\xa4\x9b\x76\xfc\x7f\x63\xc2\xb9\x23"; +static const qbyte triptohell_certdata[917] = "\x30\x82\x03\x91\x30\x82\x02\x79\xa0\x03\x02\x01\x02\x02\x09\x00\xb5\x71\x47\x8d\x5e\x66\xf1\xd9\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x0b\x05\x00\x30\x5f\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x55\x53\x31\x11\x30\x0f\x06\x03\x55\x04\x08\x0c\x08\x4e\x65\x77\x20\x59\x6f\x72\x6b\x31\x11\x30\x0f\x06\x03\x55\x04\x07\x0c\x08\x4e\x65\x77\x20\x59\x6f\x72\x6b\x31\x0c\x30\x0a\x06\x03\x55\x04\x0a\x0c\x03\x46\x54\x45\x31\x1c\x30\x1a\x06\x03\x55\x04\x03\x0c\x13\x66\x74\x65\x2e\x74\x72\x69\x70\x74\x6f\x68\x65\x6c\x6c\x2e\x69\x6e\x66\x6f\x30\x1e\x17\x0d\x31\x34\x31\x32\x32\x35\x30\x30\x35\x38\x31\x34\x5a\x17\x0d\x31\x37\x30\x33\x30\x34\x30\x30\x35\x38\x31\x34\x5a\x30\x5f\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x55\x53\x31\x11\x30\x0f\x06\x03\x55\x04\x08\x0c\x08\x4e\x65\x77\x20\x59\x6f\x72\x6b\x31\x11\x30\x0f\x06\x03\x55\x04\x07\x0c\x08\x4e\x65\x77\x20\x59\x6f\x72\x6b\x31\x0c\x30\x0a\x06\x03\x55\x04\x0a\x0c\x03\x46\x54\x45\x31\x1c\x30\x1a\x06\x03\x55\x04\x03\x0c\x13\x66\x74\x65\x2e\x74\x72\x69\x70\x74\x6f\x68\x65\x6c\x6c\x2e\x69\x6e\x66\x6f\x30\x82\x01\x22\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01\x05\x00\x03\x82\x01\x0f\x00\x30\x82\x01\x0a\x02\x82\x01\x01\x00\xdd\xb8\x7c\x69\x3d\x63\x95\xe3\x88\x15\xfd\xad\x93\x5e\x6b\x97\xfb\x74\xba\x1f\x83\x33\xe5\x8a\x8d\x8f\xb0\xbf\xf9\xd3\xa1\x2c\x65\x53\xa7\xef\xd3\x0f\xdc\x03\x60\x0a\x40\xef\xa8\xef\x3f\xb3\xd9\x8d\x31\x39\x12\x8a\xd8\x0e\x24\x8f\xe5\x58\x26\x86\x4c\x76\x6c\x59\x9a\xab\xea\x1c\x3d\xfb\x62\x62\xad\xaf\xd6\x00\x33\x76\x2d\xbb\xeb\xe8\xec\xb4\x76\x4f\xb0\xbe\xcf\xf0\x46\x94\x40\x02\x99\xd4\xb2\x71\x71\xd6\xf5\x1f\xc3\x4f\x1e\x1e\xb4\x0d\x82\x49\xc4\xa2\xdc\xae\x6f\x4e\x3a\xf9\x0e\xdd\xf4\xd2\x53\xe3\xe7\x7d\x58\x79\xf4\xce\x1f\x6c\xac\x81\x8c\x8c\xe1\x03\x5b\x22\x56\x92\x19\x4f\x74\xc0\x36\x41\xac\x1b\xfa\x9e\xf7\x2a\x0f\xd6\x4b\xcc\x9a\xca\x67\x87\xb7\x95\xdf\xb7\xd4\x7d\x8c\xcc\xa9\x25\xde\xdd\x8c\x1b\xd7\x32\xf2\x84\x25\x46\x7b\x10\x55\xf9\x80\xfd\x5d\xad\xab\xf9\x4c\x1f\xc0\xa5\xd1\x3f\x01\x86\x4d\xfa\x57\xab\x7a\x6d\xec\xf1\xdb\xf4\xad\xf2\x33\xcd\xa0\xed\xfe\x1b\x27\x55\x56\xba\x8c\x47\x70\x16\xd5\x75\x17\x8e\x80\xaa\x49\x5e\x93\x83\x1d\x6f\x1f\x2c\xf7\xa7\x64\xe6\x2e\x88\x8e\xff\x70\x5a\x41\x52\xae\x93\x02\x03\x01\x00\x01\xa3\x50\x30\x4e\x30\x1d\x06\x03\x55\x1d\x0e\x04\x16\x04\x14\x4e\x76\x4a\xce\x7b\x45\x14\x39\xeb\x9c\x28\x56\xb5\x7b\x8a\x18\x6f\x22\x17\x82\x30\x1f\x06\x03\x55\x1d\x23\x04\x18\x30\x16\x80\x14\x4e\x76\x4a\xce\x7b\x45\x14\x39\xeb\x9c\x28\x56\xb5\x7b\x8a\x18\x6f\x22\x17\x82\x30\x0c\x06\x03\x55\x1d\x13\x04\x05\x30\x03\x01\x01\xff\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x0b\x05\x00\x03\x82\x01\x01\x00\x48\x22\x65\xed\x2e\xc5\xed\xbb\xe9\x40\x6c\x80\xc4\x63\x19\xd1\x00\xb4\x30\x34\x17\x7c\x7c\xbd\x1b\xc5\xa9\x43\x0c\x92\x6e\xd6\x2d\x11\x6c\x0d\xa6\xda\x30\xe9\xf7\x46\x7b\x01\xe4\x53\x23\xae\x88\xd1\xf2\xed\xca\x84\x06\x19\x97\xb9\x06\xfb\xda\xec\x72\x2d\x15\x20\xd2\x8f\x66\xad\xb5\xdd\x4b\x4f\xdf\x7e\xaf\xa3\x6c\x7f\x53\x32\x8f\xe2\x19\x5c\x44\x98\x86\x31\xee\xb4\x03\xe7\x27\xa1\x83\xab\xc3\xce\xb4\x9a\x01\xbe\x8c\x64\x2e\x2b\xe3\x4e\x55\xdf\x95\xeb\x16\x87\xbd\xfa\x11\xa2\x3e\x38\x92\x97\x36\xe9\x65\x60\xf3\xac\x68\x44\xb3\x51\x54\x3a\x42\xa8\x98\x9b\xee\x1b\x9e\x79\x6a\xaf\xc0\xbe\x41\xc4\xb1\x96\x42\xd9\x94\xef\x49\x5b\xbe\x2d\x04\xb9\xfb\x92\xbb\xdc\x0e\x29\xfd\xee\xa9\x68\x09\xf9\x9f\x69\x8b\x3d\xe1\x4b\xee\x24\xf9\xfe\x02\x3a\x0a\xb8\xcd\x6c\x07\x43\xa9\x4a\xe7\x03\x34\x2e\x72\xa7\x81\xaa\x40\xa9\x98\x5d\x97\xee\x2a\x99\xc6\x8f\xe8\x6f\x98\xa2\x85\xc9\x0d\x04\x19\x43\x6a\xd3\xc7\x15\x4c\x4b\xbc\xa5\xb8\x9f\x38\xf3\x43\x83\x0c\xef\x97\x6e\xa6\x20\xde\xc5\xd3\x1e\x3e\x5d\xcd\x58\x3d\x5c\x55\x7a\x90\x94"; static struct { wchar_t *hostname; @@ -346,8 +347,8 @@ static struct //FIXME: include expiry information //FIXME: add alternative when one is about to expire } knowncerts[] = { - {L"triptohell.info", 933, triptohell_certdata}, - {L"fte.triptohell.info", 933, triptohell_certdata}, + {L"triptohell.info", sizeof(triptohell_certdata), triptohell_certdata}, + {L"fte.triptohell.info", sizeof(triptohell_certdata), triptohell_certdata}, {NULL} }; @@ -372,19 +373,19 @@ static DWORD VerifyKnownCertificates(DWORD status, wchar_t *domain, qbyte *data, continue; } #endif - if (knowncerts[i].datasize != datasize || memcmp(data, knowncerts[i].data, datasize)) - { - if (status != CERT_E_EXPIRED) - Con_Printf("%ls has an unexpected certificate\n", domain); - if (status == SEC_E_OK) - status = TRUST_E_FAIL; - } - else - { + if (knowncerts[i].datasize == datasize && !memcmp(data, knowncerts[i].data, datasize)) + { //what we know about matched if (status == CERT_E_UNTRUSTEDROOT) status = SEC_E_OK; break; } + else + { + if (status != CERT_E_EXPIRED) + Con_Printf("%ls has an unexpected certificate\n", domain); + if (status == SEC_E_OK) //we (think) we know better. + status = TRUST_E_FAIL; + } } } return status; diff --git a/engine/common/q1bsp.c b/engine/common/q1bsp.c index 40953eec9..c27f899f6 100644 --- a/engine/common/q1bsp.c +++ b/engine/common/q1bsp.c @@ -1352,8 +1352,8 @@ void Fragment_ClipPoly(fragmentdecal_t *dec, int numverts, float *inverts, shade VectorSubtract(inverts+C*2, inverts+C*0, d2); CrossProduct(d1, d2, n); VectorNormalizeFast(n); -// if (DotProduct(n, dec->normal) > 0.1) -// return; //faces too far way from the normal + if (DotProduct(n, dec->normal) < 0.1) + return; //faces too far way from the normal //clip to the first plane specially, so we don't have extra copys numverts = Fragment_ClipPolyToPlane(inverts, verts, numverts, dec->planenorm[0], dec->planedist[0]); diff --git a/engine/d3d/d3d11_backend.c b/engine/d3d/d3d11_backend.c index 62e29437a..3e0049b16 100644 --- a/engine/d3d/d3d11_backend.c +++ b/engine/d3d/d3d11_backend.c @@ -9,6 +9,7 @@ extern ID3D11Device *pD3DDev11; extern ID3D11DeviceContext *d3ddevctx; +extern ID3D11DepthStencilView *fb_backdepthstencil; extern cvar_t r_shadow_realtime_world_lightmaps; extern cvar_t gl_overbright; @@ -2462,195 +2463,6 @@ void D3D11BE_SelectEntity(entity_t *ent) BE_RotateForEntity(ent, ent->model); } -static qboolean BE_GenTempMeshVBO(vbo_t **vbo, mesh_t *mesh) -{ - static vbo_t tmpvbo; - D3D11_MAPPED_SUBRESOURCE msr; - int i; - - D3D11_MAP type; - int sz; - ID3D11Buffer *buf; - - //vbo first - { - vbovdata_t *out; - - sz = sizeof(*out) * mesh->numvertexes; - if (shaderstate.purgevertexstream || shaderstate.vertexstreamoffset + sz > VERTEXSTREAMSIZE) - { - shaderstate.purgevertexstream = false; - shaderstate.vertexstreamoffset = 0; - type = D3D11_MAP_WRITE_DISCARD; - shaderstate.vertexstreamcycle++; - if (shaderstate.vertexstreamcycle == NUMVBUFFERS) - shaderstate.vertexstreamcycle = 0; - } - else - { - type = D3D11_MAP_WRITE_NO_OVERWRITE; //yes sir, sorry sir, we promise to not break anything - } - buf = shaderstate.vertexstream[shaderstate.vertexstreamcycle]; - if (FAILED(ID3D11DeviceContext_Map(d3ddevctx, (ID3D11Resource*)buf, 0, type, 0, &msr))) - { - Con_Printf("BE_RotateForEntity: failed to map vertex stream buffer start\n"); - return false; - } - - //figure out where our pointer is and mark it as consumed - out = (vbovdata_t*)((qbyte*)msr.pData + shaderstate.vertexstreamoffset); - //FIXME: do we actually need to bother setting all this junk? - tmpvbo.coord.d3d.buff = buf; - tmpvbo.coord.d3d.offs = (quintptr_t)&out[0].coord - (quintptr_t)&out[0] + shaderstate.vertexstreamoffset; - tmpvbo.texcoord.d3d.buff = buf; - tmpvbo.texcoord.d3d.offs = (quintptr_t)&out[0].tex - (quintptr_t)&out[0] + shaderstate.vertexstreamoffset; - tmpvbo.lmcoord[0].d3d.buff = buf; - tmpvbo.lmcoord[0].d3d.offs = (quintptr_t)&out[0].lm - (quintptr_t)&out[0] + shaderstate.vertexstreamoffset; - tmpvbo.normals.d3d.buff = buf; - tmpvbo.normals.d3d.offs = (quintptr_t)&out[0].ndir - (quintptr_t)&out[0] + shaderstate.vertexstreamoffset; - tmpvbo.svector.d3d.buff = buf; - tmpvbo.svector.d3d.offs = (quintptr_t)&out[0].sdir - (quintptr_t)&out[0] + shaderstate.vertexstreamoffset; - tmpvbo.tvector.d3d.buff = buf; - tmpvbo.tvector.d3d.offs = (quintptr_t)&out[0].tdir - (quintptr_t)&out[0] + shaderstate.vertexstreamoffset; - tmpvbo.colours[0].d3d.buff = buf; - tmpvbo.colours[0].d3d.offs = (quintptr_t)&out[0].colorsb - (quintptr_t)&out[0] + shaderstate.vertexstreamoffset; - //consumed - shaderstate.vertexstreamoffset += sz; - - //now vomit into the buffer - if (!mesh->normals_array && mesh->colors4f_array[0]) - { - //2d drawing - for (i = 0; i < mesh->numvertexes; i++) - { - VectorCopy(mesh->xyz_array[i], out[i].coord); - Vector2Copy(mesh->st_array[i], out[i].tex); - VectorClear(out[i].ndir); - VectorClear(out[i].sdir); - VectorClear(out[i].tdir); - out[i].colorsb[0] = bound(0, mesh->colors4f_array[0][i][0]*255, 255); - out[i].colorsb[1] = bound(0, mesh->colors4f_array[0][i][1]*255, 255); - out[i].colorsb[2] = bound(0, mesh->colors4f_array[0][i][2]*255, 255); - out[i].colorsb[3] = bound(0, mesh->colors4f_array[0][i][3]*255, 255); - } - } - else if (!mesh->normals_array && mesh->colors4b_array) - { - //2d drawing, ish - for (i = 0; i < mesh->numvertexes; i++) - { - VectorCopy(mesh->xyz_array[i], out[i].coord); - Vector2Copy(mesh->st_array[i], out[i].tex); - VectorClear(out[i].ndir); - VectorClear(out[i].sdir); - VectorClear(out[i].tdir); - *(unsigned int*)out[i].colorsb = *(unsigned int*)mesh->colors4b_array[i]; - } - } - else if (mesh->normals_array && !mesh->colors4f_array[0] && !mesh->colors4b_array) - { - //hlsl-lit models - for (i = 0; i < mesh->numvertexes; i++) - { - VectorCopy(mesh->xyz_array[i], out[i].coord); - Vector2Copy(mesh->st_array[i], out[i].tex); - VectorCopy(mesh->normals_array[i], out[i].ndir); - VectorCopy(mesh->snormals_array[i], out[i].sdir); - VectorCopy(mesh->tnormals_array[i], out[i].tdir); - *(unsigned int*)out[i].colorsb = 0xffffffff; //write colours to ensure nothing is read back within the cpu cache block. - } - } - else - { - //common stuff - for (i = 0; i < mesh->numvertexes; i++) - { - VectorCopy(mesh->xyz_array[i], out[i].coord); - Vector2Copy(mesh->st_array[i], out[i].tex); - } - //not so common stuff - if (mesh->normals_array) - { - for (i = 0; i < mesh->numvertexes; i++) - { - VectorCopy(mesh->normals_array[i], out[i].ndir); - VectorCopy(mesh->snormals_array[i], out[i].sdir); - VectorCopy(mesh->tnormals_array[i], out[i].tdir); - } - } - //some sort of colours - if (mesh->colors4b_array) - { - for (i = 0; i < mesh->numvertexes; i++) - { - Vector4Copy(mesh->colors4b_array[i], out[i].colorsb); - } - } - else if (mesh->colors4f_array[0]) - { - for (i = 0; i < mesh->numvertexes; i++) - { - Vector4Scale(mesh->colors4f_array[0][i], 255, out[i].colorsb); - } - } - else - { - for (i = 0; i < mesh->numvertexes; i++) - { - Vector4Set(out[i].colorsb, 255, 255, 255, 255); - } - } - } - - //and we're done - ID3D11DeviceContext_Unmap(d3ddevctx, (ID3D11Resource*)buf, 0); - } - - //now ebo - { - index_t *out; - sz = sizeof(*out) * mesh->numindexes; - if (shaderstate.purgeindexstream || shaderstate.indexstreamoffset + sz > VERTEXSTREAMSIZE) - { - shaderstate.purgeindexstream = false; - shaderstate.indexstreamoffset = 0; - type = D3D11_MAP_WRITE_DISCARD; - shaderstate.indexstreamcycle++; - if (shaderstate.indexstreamcycle == NUMVBUFFERS) - shaderstate.indexstreamcycle = 0; - } - else - { - type = D3D11_MAP_WRITE_NO_OVERWRITE; - } - buf = shaderstate.indexstream[shaderstate.indexstreamcycle]; - if (FAILED(ID3D11DeviceContext_Map(d3ddevctx, (ID3D11Resource*)buf, 0, type, 0, &msr))) - { - Con_Printf("BE_RotateForEntity: failed to map vertex stream buffer start\n"); - return false; - } - - out = (index_t*)((qbyte*)msr.pData + shaderstate.indexstreamoffset); - tmpvbo.indicies.d3d.buff = buf; - tmpvbo.indicies.d3d.offs = shaderstate.indexstreamoffset; - //consumed - shaderstate.indexstreamoffset += sz; - - memcpy(out, mesh->indexes, sz); - - //and we're done - ID3D11DeviceContext_Unmap(d3ddevctx, (ID3D11Resource*)buf, 0); - } - - tmpvbo.indexcount = mesh->numindexes; - tmpvbo.vertcount = mesh->numvertexes; - tmpvbo.next = NULL; - - *vbo = &tmpvbo; - - return true; -} - void D3D11BE_GenBatchVBOs(vbo_t **vbochain, batch_t *firstbatch, batch_t *stopbatch) { int maxvboelements; @@ -2972,7 +2784,7 @@ static void BE_RotateForEntity (const entity_t *e, const model_t *mod) { int i; float ndr; - float mv[16], modelinv[16]; + float modelinv[16]; float *m = shaderstate.m_model; cbuf_entity_t *cbe; D3D11_MAPPED_SUBRESOURCE msr; @@ -3209,14 +3021,7 @@ void D3D11BE_SubmitBatch(batch_t *batch) shaderstate.curtexnums = shader->defaulttextures; shaderstate.flags = batch->flags; - /*if (!shaderstate.batchvbo) - { - if (!BE_GenTempMeshVBO(&shaderstate.batchvbo, batch->mesh[0])) - return; - BE_DrawMeshChain_Internal(); - } - else*/ - BE_DrawMeshChain_Internal(); + BE_DrawMeshChain_Internal(); } void D3D11BE_DrawMesh_List(shader_t *shader, int nummeshes, mesh_t **meshlist, vbo_t *vbo, texnums_t *texnums, unsigned int beflags) @@ -3234,15 +3039,7 @@ void D3D11BE_DrawMesh_List(shader_t *shader, int nummeshes, mesh_t **meshlist, v shaderstate.nummeshes = nummeshes; shaderstate.flags = beflags; - /*if (!shaderstate.batchvbo) - { - if (!BE_GenTempMeshVBO(&shaderstate.batchvbo, meshlist[0])) - return; - shaderstate.nummeshes = 1; - BE_DrawMeshChain_Internal(); - } - else*/ - BE_DrawMeshChain_Internal(); + BE_DrawMeshChain_Internal(); } void D3D11BE_DrawMesh_Single(shader_t *shader, mesh_t *meshchain, vbo_t *vbo, unsigned int beflags) @@ -3259,14 +3056,7 @@ void D3D11BE_DrawMesh_Single(shader_t *shader, mesh_t *meshchain, vbo_t *vbo, un shaderstate.nummeshes = 1; shaderstate.flags = beflags; - /*if (!shaderstate.batchvbo) - { - if (!BE_GenTempMeshVBO(&shaderstate.batchvbo, meshchain)) - return; - BE_DrawMeshChain_Internal(); - } - else*/ - BE_DrawMeshChain_Internal(); + BE_DrawMeshChain_Internal(); } static void BE_SubmitMeshesSortList(batch_t *sortlist) @@ -3425,13 +3215,6 @@ static void TransformDir(vec3_t in, vec3_t planea[3], vec3_t viewa[3], vec3_t re VectorMA(result, d, viewa[i], result); } } -static void R_RenderScene(void) -{ -// IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_PROJECTION, (D3DMATRIX*)d3d_trueprojection); -// IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_VIEW, (D3DMATRIX*)r_refdef.m_view); - R_SetFrustum (r_refdef.m_projection, r_refdef.m_view); - Surf_DrawWorld(); -} static void R_DrawPortal(batch_t *batch, batch_t **blist) { @@ -3442,7 +3225,7 @@ static void R_DrawPortal(batch_t *batch, batch_t **blist) mesh_t *mesh = batch->mesh[batch->firstmesh]; int sort; - if (r_refdef.recurse || !r_portalrecursion.ival) + if (r_refdef.recurse)// || !r_portalrecursion.ival) return; VectorCopy(mesh->normals_array[0], plane.normal); @@ -3516,17 +3299,32 @@ static void R_DrawPortal(batch_t *batch, batch_t **blist) batch->firstmesh = batch->meshes; } - /*FIXME: can we get away with stenciling the screen?*/ - /*Add to frustum culling instead of clip planes?*/ - glplane[0] = plane.normal[0]; - glplane[1] = plane.normal[1]; - glplane[2] = plane.normal[2]; - glplane[3] = -plane.dist; -// IDirect3DDevice9_SetClipPlane(pD3DDev9, 0, glplane); -// IDirect3DDevice9_SetRenderState(pD3DDev9, D3DRS_CLIPPLANEENABLE, D3DCLIPPLANE0); + + + R_SetFrustum (r_refdef.m_projection, r_refdef.m_view); + /*FIXME: we need to borrow pretty much everything about portal positioning from the gl renderer. make it common code or something, because this is horrendous. + if (r_refdef.frustum_numplanes < MAXFRUSTUMPLANES) + { + extern int SignbitsForPlane (mplane_t *out); + mplane_t fp; + VectorCopy(plane.normal, fp.normal); + fp.dist = plane.dist; + + fp.type = PLANE_ANYZ; + fp.signbits = SignbitsForPlane (&fp); + + if (portaltype == 1 || portaltype == 2) + R_ObliqueNearClip(r_refdef.m_view, &fp); + + //our own culling should be an epsilon forwards so we don't still draw things behind the line due to precision issues. + fp.dist += 0.01; + r_refdef.frustum[r_refdef.frustum_numplanes++] = fp; + } + */ + + shaderstate.curentity = NULL; Surf_SetupFrame(); - R_RenderScene(); -// IDirect3DDevice9_SetRenderState(pD3DDev9, D3DRS_CLIPPLANEENABLE, 0); + Surf_DrawWorld(); for (sort = 0; sort < SHADER_SORT_COUNT; sort++) for (batch = blist[sort]; batch; batch = batch->next) @@ -3539,9 +3337,14 @@ static void R_DrawPortal(batch_t *batch, batch_t **blist) AngleVectors (r_refdef.viewangles, vpn, vright, vup); VectorCopy (r_refdef.vieworg, r_origin); -// IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_PROJECTION, (D3DMATRIX*)d3d_trueprojection); -// IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_VIEW, (D3DMATRIX*)r_refdef.m_view); R_SetFrustum (r_refdef.m_projection, r_refdef.m_view); + shaderstate.curentity = NULL; + + D3D11BE_SetupViewCBuffer(); + + //fixme: should be some other variable... + ID3D11DeviceContext_ClearDepthStencilView(d3ddevctx, fb_backdepthstencil, D3D11_CLEAR_DEPTH, 1, 0); //is it faster to clear the stencil too? + //fixme: mask the batch's depth so that later batches don't break it. } static void BE_SubmitMeshesPortals(batch_t **worldlist, batch_t *dynamiclist) @@ -3581,9 +3384,6 @@ static void BE_SubmitMeshesPortals(batch_t **worldlist, batch_t *dynamiclist) BE_SelectMode(BEM_STANDARD); R_DrawPortal(batch, worldlist); - - /*clear depth again*/ -// IDirect3DDevice9_Clear(pD3DDev9, 0, NULL, D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1, 0); } } } diff --git a/engine/d3d/d3d11_image.c b/engine/d3d/d3d11_image.c index d9407da71..de04cf865 100644 --- a/engine/d3d/d3d11_image.c +++ b/engine/d3d/d3d11_image.c @@ -119,7 +119,10 @@ qboolean D3D11_LoadTextureMips(image_t *tex, struct pendingtextureinfo *mips) int i; if (!sh_config.texfmt[mips->encoding]) + { + Con_Printf("Texture encoding %i not supported by d3d11\n", mips->encoding); return false; + } tdesc.Width = mips->mip[0].width; tdesc.Height = mips->mip[0].height; diff --git a/engine/d3d/d3d11_shader.c b/engine/d3d/d3d11_shader.c index 62326cd3b..78d009c81 100644 --- a/engine/d3d/d3d11_shader.c +++ b/engine/d3d/d3d11_shader.c @@ -9,7 +9,6 @@ extern ID3D11Device *pD3DDev11; //#include //apparently requires win8 sdk, despite being a win7 thing. - #ifndef IID_ID3DBlob //microsoft can be such a pain sometimes. typedef struct _D3D_SHADER_MACRO @@ -44,71 +43,73 @@ extern ID3D11Device *pD3DDev11; STDMETHOD_(SIZE_T, GetBufferSize)(THIS) PURE; }; #undef INTERFACE + + #define D3D11_SHADER_VARIABLE_DESC void + typedef unsigned int D3D_SHADER_INPUT_TYPE; + typedef unsigned int D3D_RESOURCE_RETURN_TYPE; + typedef unsigned int D3D_SRV_DIMENSION; + typedef struct D3D11_SHADER_INPUT_BIND_DESC { + LPCSTR Name; + D3D_SHADER_INPUT_TYPE Type; + UINT BindPoint; + UINT BindCount; + UINT uFlags; + D3D_RESOURCE_RETURN_TYPE ReturnType; + D3D_SRV_DIMENSION Dimension; + UINT NumSamples; + } D3D11_SHADER_INPUT_BIND_DESC; + #define ID3D11ShaderReflectionConstantBuffer void + #define ID3D11ShaderReflectionType void + #define INTERFACE ID3D11ShaderReflectionVariable + DECLARE_INTERFACE(ID3D11ShaderReflectionVariable) + { + STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_VARIABLE_DESC *pDesc) PURE; + + STDMETHOD_(ID3D11ShaderReflectionType*, GetType)(THIS) PURE; + STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetBuffer)(THIS) PURE; + + STDMETHOD_(UINT, GetInterfaceSlot)(THIS_ UINT uArrayIndex) PURE; + }; + #undef INTERFACE + #define D3D11_SHADER_DESC void + #define D3D11_SIGNATURE_PARAMETER_DESC void + #define INTERFACE ID3D11ShaderReflection + DECLARE_INTERFACE_(INTERFACE, IUnknown) + { + STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_DESC *pDesc) PURE; + + STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetConstantBufferByIndex)(THIS_ UINT Index) PURE; + STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetConstantBufferByName)(THIS_ LPCSTR Name) PURE; + + STDMETHOD(GetResourceBindingDesc)(THIS_ UINT ResourceIndex, + D3D11_SHADER_INPUT_BIND_DESC *pDesc) PURE; + + STDMETHOD(GetInputParameterDesc)(THIS_ UINT ParameterIndex, + D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE; + STDMETHOD(GetOutputParameterDesc)(THIS_ UINT ParameterIndex, + D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE; + STDMETHOD(GetPatchConstantParameterDesc)(THIS_ UINT ParameterIndex, + D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE; + + STDMETHOD_(ID3D11ShaderReflectionVariable*, GetVariableByName)(THIS_ LPCSTR Name) PURE; + STDMETHOD(GetResourceBindingDescByName)(THIS_ LPCSTR Name, D3D11_SHADER_INPUT_BIND_DESC *pDesc) PURE; + //more stuff + }; + #define ID3D11ShaderReflection_GetVariableByName(r,v) r->lpVtbl->GetVariableByName(r,v) + #undef INTERFACE +#else +#include #endif + +const GUID IID_ID3D11ShaderReflection = {0x8d536ca1, 0x0cca, 0x4956, 0xa8, 0x37, 0x78, 0x69, 0x63, 0x75, 0x55, 0x84}; #define ID3DBlob_GetBufferPointer(b) b->lpVtbl->GetBufferPointer(b) #define ID3DBlob_Release(b) b->lpVtbl->Release(b) #define ID3DBlob_GetBufferSize(b) b->lpVtbl->GetBufferSize(b) - -#define D3D11_SHADER_VARIABLE_DESC void -typedef unsigned int D3D_SHADER_INPUT_TYPE; -typedef unsigned int D3D_RESOURCE_RETURN_TYPE; -typedef unsigned int D3D_SRV_DIMENSION; -typedef struct D3D11_SHADER_INPUT_BIND_DESC { - LPCSTR Name; - D3D_SHADER_INPUT_TYPE Type; - UINT BindPoint; - UINT BindCount; - UINT uFlags; - D3D_RESOURCE_RETURN_TYPE ReturnType; - D3D_SRV_DIMENSION Dimension; - UINT NumSamples; -} D3D11_SHADER_INPUT_BIND_DESC; -#define ID3D11ShaderReflectionConstantBuffer void -#define ID3D11ShaderReflectionType void -#define INTERFACE ID3D11ShaderReflectionVariable -DECLARE_INTERFACE(ID3D11ShaderReflectionVariable) -{ - STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_VARIABLE_DESC *pDesc) PURE; - - STDMETHOD_(ID3D11ShaderReflectionType*, GetType)(THIS) PURE; - STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetBuffer)(THIS) PURE; - - STDMETHOD_(UINT, GetInterfaceSlot)(THIS_ UINT uArrayIndex) PURE; -}; -#undef INTERFACE -#define D3D11_SHADER_DESC void -#define D3D11_SIGNATURE_PARAMETER_DESC void -const GUID IID_ID3D11ShaderReflection = {0x8d536ca1, 0x0cca, 0x4956, 0xa8, 0x37, 0x78, 0x69, 0x63, 0x75, 0x55, 0x84}; -#define INTERFACE ID3D11ShaderReflection -DECLARE_INTERFACE_(INTERFACE, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_DESC *pDesc) PURE; - - STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetConstantBufferByIndex)(THIS_ UINT Index) PURE; - STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetConstantBufferByName)(THIS_ LPCSTR Name) PURE; - - STDMETHOD(GetResourceBindingDesc)(THIS_ UINT ResourceIndex, - D3D11_SHADER_INPUT_BIND_DESC *pDesc) PURE; - - STDMETHOD(GetInputParameterDesc)(THIS_ UINT ParameterIndex, - D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE; - STDMETHOD(GetOutputParameterDesc)(THIS_ UINT ParameterIndex, - D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE; - STDMETHOD(GetPatchConstantParameterDesc)(THIS_ UINT ParameterIndex, - D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE; - - STDMETHOD_(ID3D11ShaderReflectionVariable*, GetVariableByName)(THIS_ LPCSTR Name) PURE; - STDMETHOD(GetResourceBindingDescByName)(THIS_ LPCSTR Name, D3D11_SHADER_INPUT_BIND_DESC *pDesc) PURE; - //more stuff -}; -#define ID3D11ShaderReflection_GetVariableByName(r,v) r->lpVtbl->GetVariableByName(r,v) #define ID3D11ShaderReflection_Release IUnknown_Release -#undef INTERFACE - HRESULT (WINAPI *pD3DCompile) ( LPCVOID pSrcData, diff --git a/engine/gl/gl_shadow.c b/engine/gl/gl_shadow.c index 9d7c39c50..972899777 100644 --- a/engine/gl/gl_shadow.c +++ b/engine/gl/gl_shadow.c @@ -3360,17 +3360,19 @@ void Sh_CheckSettings(void) canshadowless = true; //the code still has a lot of ifdefs, so will crash if you try it in a merged build. //its not really usable in d3d-only builds either, so no great loss. - canstencil = true; +// canstencil = true; break; #endif #ifdef D3D11QUAKE case QR_DIRECT3D11: canshadowless = true; //all feature levels +/* shadows are buggy right now. tbh they've always been buggy... rendering seems fine, its just the shadowmaps that are bad if (D3D11_BeginShadowMap(0, SHADOWMAP_SIZE*3, SHADOWMAP_SIZE*2)) { D3D11_EndShadowMap(); cansmap = true; //tends to not work properly until feature level 10 for one error or another. } +*/ break; #endif default: