MeshChunkGenerator* CreateMeshChunkGenerator() { MeshChunkGenerator* generator = NEW(MeshChunkGenerator); InitReferenceCounter(&generator->refCounter); generator->meshConditions = CreateBitConditionSolver(); return generator; }
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; }
MeshChunkGenerator* CreateMeshChunkGenerator() { MeshChunkGenerator* generator = new MeshChunkGenerator; memset(generator, 0, sizeof(MeshChunkGenerator)); InitReferenceCounter(&generator->refCounter); generator->meshConditions = CreateBitConditionSolver(); return generator; }
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; }
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; }