void FeatureDemo::applyCustomSceneVars(const Scene* pScene, const std::string& filename) { std::string folder = getDirectoryFromFile(filename); Scene::UserVariable var = pScene->getUserVariable("sky_box"); if (var.type == Scene::UserVariable::Type::String) initSkyBox(folder + '\\' + var.str); var = pScene->getUserVariable("env_map"); if (var.type == Scene::UserVariable::Type::String) initEnvMap(folder + '\\' + var.str); var = pScene->getUserVariable("env_map_intensity_scale"); if (var.type == Scene::UserVariable::Type::Double) mEnvMapFactorScale = (float)var.d64; var = pScene->getUserVariable("opacity_scale"); if (var.type == Scene::UserVariable::Type::Double) mOpacityScale = (float)var.d64; }
int* loadTextures(B3DFile* b3d) { int* output; Blitz3DTEXSChunk* texsChunk; unsigned int textureCount; unsigned int iter; texsChunk = getTEXSChunkFromBB3DChunk(getBB3DChunkFromFile(b3d)); textureCount = getTextureArrayCountFromTEXSChunk(texsChunk); output = (int*)calloc(textureCount, sizeof(int)); glEnable(GL_TEXTURE_2D); for (iter = 0; iter < textureCount; iter++) { char* directoryPath; char* fileName; char* filePath; directoryPath = getDirectoryFromFile(b3d); fileName = getFileFromTexture(getTextureArrayEntryFromTEXSChunk(texsChunk, iter)); filePath = (char*)calloc(strlen(directoryPath) + strlen(fileName) + 1, sizeof(char)); sprintf(filePath, "%s%s", directoryPath, fileName); /*printf("full path: %s\n", filePath);*/ if (filePath[strlen(filePath) - 1] == 'g') { /*printf(" is a PNG image\n");*/ output[iter] = loadPNGTexture(filePath); /*printf(" texture id: %d\n", output[iter]);*/ } if (filePath[strlen(filePath) - 1] == 'p') { /*printf(" is a BMP image\n");*/ output[iter] = loadBMPTexture(filePath); /*printf(" texture id: %d\n", output[iter]);*/ } free(filePath); } return output; }