Me preguntaba si alguien tendría la amabilidad de explicarme este código. He de decir que ando muy perdido en cuanto a librerías en C++, puesto que he pasado de programar con iostream a programar con la API de Windows y OpenGL. Bueno, aquí os dejo el código (me podéis explicar, si queréis, siendo técnicos, para que tengáis que escribir menos):
Código
bool CShader::loadShader(string sFile, int a_iType) { FILE* fp = fopen(sFile.c_str(), "rt"); if(!fp)return false; // Get all lines from a file vector<string> sLines; char sLine[255]; while(fgets(sLine, 255, fp))sLines.push_back(sLine); fclose(fp); const char** sProgram = new const char*[ESZ(sLines)]; FOR(i, ESZ(sLines))sProgram[i] = sLines[i].c_str(); uiShader = glCreateShader(a_iType); glShaderSource(uiShader, ESZ(sLines), sProgram, NULL); glCompileShader(uiShader); delete[] sProgram; int iCompilationStatus; glGetShaderiv(uiShader, GL_COMPILE_STATUS, &iCompilationStatus); if(iCompilationStatus == GL_FALSE)return false; iType = a_iType; bLoaded = true; return 1; }
Notas:
* No hace falta que me expliqueis esto: uiShader = glCreateShader(a_iType), esto: glShaderSource(uiShader, ESZ(sLines), sProgram, NULL); ni esto: glCompileShader(uiShader);
* Explicad solo lo que sepais, y así todos podrán ayudar y nadie se confundirá
¡MUCHAS GRACIAS POR SU ATENCIÓN Y POR SU AYUDA!