MeshChunkGenerator* CreateMeshChunkGenerator()
{
    MeshChunkGenerator* generator = NEW(MeshChunkGenerator);
    InitReferenceCounter(&generator->refCounter);
    generator->meshConditions = CreateBitConditionSolver();
    return generator;
}
Exemple #2
0
static Shader* CreateShader( const char* vfsPath, int type )
{
    VfsFile* file = OpenVfsFile(vfsPath, VFS_OPEN_READ);
    if(!file)
        return NULL;

    const int fileSize = GetVfsFileSize(file);
    char* fileContent = (char*)Alloc(fileSize);
    ReadVfsFile(file, fileContent, fileSize);
    CloseVfsFile(file);

    Shader* shader = new Shader;
    InitReferenceCounter(&shader->refCounter);
    shader->handle = glCreateShader(type);

    glShaderSource(shader->handle, 1, &fileContent, &fileSize);
    Free(fileContent);

    glCompileShader(shader->handle);

    GLint state;
    glGetShaderiv(shader->handle, GL_COMPILE_STATUS, &state);
    ShowShaderLog(shader, state, vfsPath);
    return shader;
}
Exemple #3
0
MeshChunkGenerator* CreateMeshChunkGenerator()
{
    MeshChunkGenerator* generator = new MeshChunkGenerator;
    memset(generator, 0, sizeof(MeshChunkGenerator));
    InitReferenceCounter(&generator->refCounter);
    generator->meshConditions = CreateBitConditionSolver();
    return generator;
}
Exemple #4
0
ModelWorld* CreateModelWorld()
{
    ModelWorld* world = new ModelWorld;
    memset(world, 0, sizeof(ModelWorld));
    InitReferenceCounter(&world->refCounter);
    REPEAT(MAX_MODELS, i)
        world->drawEntries[i].generatedVariableSet = CreateShaderVariableSet();
    return world;
}
Exemple #5
0
LightWorld* CreateLightWorld( const char* lightCountUniformName,
                              const char* lightPositionName )
{
    LightWorld* world = new LightWorld;
    memset(world, 0, sizeof(LightWorld));
    InitReferenceCounter(&world->refCounter);
    CopyString(lightCountUniformName,
               world->lightCountUniformName,
               sizeof(world->lightCountUniformName));
    CopyString(lightPositionName,
               world->lightPositionName,
               sizeof(world->lightPositionName));
    world->shaderVariableSet = CreateShaderVariableSet();
    return world;
}