sdword lodAutoSave(lodinfo *LOD) { sdword level; FILE *fp; char *filePath; real32 baseScalar = 1.0f, stripeScalar = 1.0f; fp = fopen(LOD->fileName, "wt"); if (fp == NULL) { dbgWarningf(DBG_Loc, "Cannot open '%s' for writing - not checked out?", LOD->fileName); return(ERROR); } fprintf(fp, "[Auto-Saved LOD file]\n"); fprintf(fp, "pointColor %d,%d,%d\n\n", colRed(LOD->pointColor), colGreen(LOD->pointColor), colBlue(LOD->pointColor)); for (level = 0; level < LOD->nLevels; level++) { fprintf(fp, "\n"); if (LOD->level[level].baseScalar != baseScalar) { baseScalar = LOD->level[level].baseScalar; fprintf(fp, "baseScalar %.2f\n", baseScalar == 0.0f ? 1.0f : baseScalar); } if (LOD->level[level].stripeScalar != stripeScalar) { stripeScalar = LOD->level[level].stripeScalar; fprintf(fp, "stripeScalar %.2f\n", stripeScalar == 0.0f ? 1.0f : stripeScalar); } fprintf(fp, "type%d %s\n", level, lodTypeStrings[LOD->level[level].flags & LM_LODType]); if ((LOD->level[level].flags & LM_LODType) == LT_Mesh) { filePath = strchr(((meshdata *)LOD->level[level].pData)->fileName, '\\') + 1; #if LOD_ERROR_CHECKING if (*filePath == 0) { dbgFatalf(DBG_Loc, "Could not find '\\' in '%s'", ((meshdata *)LOD->level[level].pData)->fileName); } #endif fprintf(fp, "pMeshFile%d %s\n", level, filePath); } fprintf(fp, "mOn%d %.1f\n", level, LOD->level[level].mOn); fprintf(fp, "bOn%d %.0f\n", level, LOD->level[level].bOn); fprintf(fp, "mOff%d %.1f\n", level, LOD->level[level].mOff); fprintf(fp, "bOff%d %.0f\n", level, LOD->level[level].bOff); } fclose(fp); return(0); }
/*----------------------------------------------------------------------------- Name : liLayerFindByName Description : Find a named layer in the specified image. Inputs : image - image to search for name in. name - name of layer to search for. Outputs : .. Return : Pointer to named layer, or NULL if it doesn't exist. ----------------------------------------------------------------------------*/ lilayer *liLayerFindByName(layerimage *image, char *name) { sdword index; for (index = 0; index < image->nLayers; index++) { //for all layers if (!strcmp(name, (char *)image->layers[index].name)) { //if layer names match return(&image->layers[index]); //return pointer to layer } } #if LI_NAMED_LAYER_WARNINGS dbgWarningf(DBG_Loc, "Layer '%s' does not exist in layered image '%s'.", name, #if LI_RETAIN_NAME image->fileName); #else "<no name available>"); #endif //LI_RETAIN_NAME #endif //LI_NAMED_LAYER_WARNINGS return(NULL); //no names layer found }
/*----------------------------------------------------------------------------- Name : primErrorMessagePrint Description : Print any errors generated by rendering system Inputs : line, file - location function called from Outputs : checks error messages and prints out any errors found Return : ----------------------------------------------------------------------------*/ void primErrorMessagePrintFunction(char *file, sdword line) { GLenum errorEnum; //there can be multiple errors simultaneously. detect them all //in one call to this fn for debugging simplicity for (;;) { errorEnum = glGetError(); if (errorEnum == GL_NO_ERROR) { return; } else { //#ifndef khentschel if (RGLtype != GLtype) //#endif { dbgWarningf(file, line, "glGetError returned '%s'", rgluErrorString(errorEnum)); } } } }