Hola, ¡muy buenas forer@s! Hoy os traigo una duda un tanto elemental, es decir, bastante básica a mi parecer.
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):
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!
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 (cpp) [Seleccionar]
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!