- bool CGLSLShader::LoadFromTXTFile(const char* FileName)
- {
- vsCode = "";
- fsCode = "";
- CString str(FileName);
- char* pBuf = NULL;
- unsigned long len = 0;
- // VertexShader
- str += ".vert";
- FILE* f = fopen(str.c_str(), "rt");
- if(f == NULL)
- return false;
- fseek(f, 0, SEEK_END);
- len = ftell(f);
- fseek(f, 0, SEEK_SET);
- pBuf = new char[len+1];
- if(pBuf == NULL)
- {
- fclose(f);
- return false;
- }
- fread(pBuf, len, 1, f);
- fclose(f);
- f = NULL;
- pBuf[len] = '\0';
- vsCode = pBuf;
- delete[] pBuf;
- pBuf = NULL;
- // FragmentShader
- str -= 5;
- str += ".frag";
- f = fopen(str.c_str(), "rt");
- if(f == NULL)
- return false;
- fseek(f, 0, SEEK_END);
- len = ftell(f);
- fseek(f, 0, SEEK_SET);
- pBuf = new char[len+1];
- if(pBuf == NULL)
- {
- fclose(f);
- return false;
- }
- fread(pBuf, len, 1, f); // Hier knallt es!!!
- fclose(f);
- pBuf[len] = '\0';
- fsCode = pBuf;
- delete[] pBuf;
- return true;
- }