MCPcopy Create free account
hub / github.com/assaultcube/AC / loadshadows

Method loadshadows

source/src/vertmodel.h:1102–1127  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1100 }
1101
1102 bool loadshadows(const char *filename)
1103 {
1104 stream *f = opengzfile(filename, "rb");
1105 if(!f) return false;
1106 shadowheader hdr;
1107 if(f->read(&hdr, sizeof(shadowheader))!=sizeof(shadowheader)) { delete f; return false; }
1108 lilswap(&hdr.size, 1);
1109 lilswap(&hdr.frames, 1);
1110 if(hdr.size!=(1<<dynshadowsize) || hdr.frames!=numframes) { delete f; return false; }
1111 lilswap(&hdr.height, 1);
1112 lilswap(&hdr.rad, 1);
1113
1114 uchar *buf = new uchar[hdr.size*hdr.size*hdr.frames];
1115 if(f->read(buf, hdr.size*hdr.size*hdr.frames)!=hdr.size*hdr.size*hdr.frames) { delete f; delete[] buf; return false; }
1116
1117 shadowrad = hdr.rad;
1118 shadows = new GLuint[hdr.frames];
1119 glGenTextures(hdr.frames, shadows);
1120
1121 loopi(hdr.frames) createtexture(shadows[i], hdr.size, hdr.size, &buf[i*hdr.size*hdr.size], 3, true, false, GL_ALPHA);
1122
1123 delete[] buf;
1124 delete f;
1125
1126 return true;
1127 }
1128
1129 void rendershadow(int anim, int varseed, float speed, int basetime, const vec &o, float yaw)
1130 {

Callers

nothing calls this directly

Calls 5

opengzfileFunction · 0.85
lilswapFunction · 0.85
createtextureFunction · 0.85
loopiFunction · 0.70
readMethod · 0.45

Tested by

no test coverage detected