Example #1
0
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;
}
Example #2
0
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;
}