static __forceinline bool LOAD_VS(char* DefineString, const char* name, VERTEXSHADER& vertex, int shaderver, ZZshProfile context, const char* depth) { bool flag; char temp[200]; GlslHeaderString(temp, name, depth); sprintf(DefineString, "%s#define VERTEX_SHADER 1\n#define CTX %d\n", temp, context * NOCONTEXT); //ZZLog::WriteLn("Define for VS == '%s'", DefineString); flag = LoadShaderFromFile(vertex.Shader, DefineString, name, GL_VERTEX_SHADER); SetupVertexProgramParameters(&vertex, context); return flag; }
static __forceinline void LOAD_VS(int Index, ZZshProgram prog) { assert(mapShaderResources.find(Index) != mapShaderResources.end()); header = mapShaderResources[Index]; assert((header) != NULL && (header)->index == (Index)); prog = cgCreateProgram(g_cgcontext, CG_OBJECT, (char*)(s_lpShaderResources + (header)->offset), cgvProf, NULL, NULL); if (!cgIsProgram(prog)) { ZZLog::Error_Log("Failed to load vs %d: \n%s", Index, cgGetLastListing(g_cgcontext)); return false; } cgGLLoadProgram(prog); if (cgGetError() != CG_NO_ERROR) ZZLog::Error_Log("Failed to load program %d.", Index); SetupVertexProgramParameters(prog, !!(Index&SH_CONTEXT1)); }