void light::initializeGL() { GLfloat mat_specular[]={1.0,1.0,1.0,1.0}; GLfloat mat_shininess[]={50.0}; GLfloat light_position[]={1.0,1.0,-1.0,0.0}; GLfloat white_light[]={1.0,1.0,1.0,1.0}; glClearColor(0.0,0.0,0.0,0.0); //glShadeModel(GL_FLAT); glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular); glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess); glLightfv(GL_LIGHT0,GL_POSITION,light_position); glLightfv(GL_LIGHT0,GL_DIFFUSE,white_light); glLightfv(GL_LIGHT0,GL_SPECULAR,white_light); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_DEPTH_TEST); glEnable(GL_TEXTURE_2D); genTextures(); //падрыхтоўка стэка матрыц трансфармацыі glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glPushMatrix(); }
void QMapView::initializeGL() { qglClearColor(Qt::blue);//цвет для очистки буфера изображения glEnable(GL_TEXTURE_2D); // установить режим двумерных текстур glEnable(GL_DEPTH_TEST); // устанавливает режим проверки глубины пикселей genTextures(); m_nMap=createMap(); }
void loadTextures() { vramSetBankA(VRAM_A_TEXTURE); vramSetBankF(VRAM_F_TEX_PALETTE_SLOT0); vramSetBankG(VRAM_G_TEX_PALETTE_SLOT5); glGenTextures(20, textureIDS); genTextures(); }
int main(int argc, char **argv) { clear_logs(); log_info("%s\n", "- - - - - - - - - - log Start - - - - - - - - - -"); renderer = init(); loadScene(renderer); genTextures( renderer ); enterLoop(renderer); terminate(renderer); return EXIT_SUCCESS; }
Skybox::Skybox( const char* top, const char* bottom, const char* left, const char* right, const char* front, const char* back ) { sides[SKY_LEFT].loadFromFile(left); // x negativo sides[SKY_RIGHT].loadFromFile(right); // x positivo sides[SKY_BOTTOM].loadFromFile(bottom); // y negativo sides[SKY_TOP].loadFromFile(top); // y positivo sides[SKY_BACK].loadFromFile(back); // z negativo sides[SKY_FRONT].loadFromFile(front); // z positivo // Crea las texturas OpenGL genTextures(); // Inicializa el shader initShader(); // Crea y genera los buffers de vertices genBuffers(); }
void Scene::initializeGL() { // Цвет для очистки буфера изображения - будет просто фон окна glClearColor( 1.0f, 1.0f, 1.0f, 1.0f ); // Устанавливает режим проверки глубины пикселей glEnable( GL_DEPTH_TEST ); // Отключает режим сглаживания цветов glShadeModel( GL_FLAT ); // Устанавливаем режим, когда строятся только внешние поверхности glEnable( GL_CULL_FACE ); glEnable( GL_TEXTURE_2D); genTextures(); // Активизация массива вершин glEnableClientState( GL_VERTEX_ARRAY ); // Активизация массива текстурных координат glEnableClientState( GL_TEXTURE_COORD_ARRAY ); }
/*!\brief Gets all the file names of every .png image found in the given directory. Outputs a series of power 2 sized textures which contain all * the individual images as one sheet (or several depending on how many images you have and what your max sized square is). It also outputs * a single textfile which lists which texture pack contains which images. They are listed using their file names minus the png extension. * If a series of images are found, they are listed as an animation with a single reference name. So if you have cat_1.png cat_2.png cat_3.png * you will get animation 'cat' with 3 frames. */ int main(int argc, const char *argv[], const char **envp ){ char const *refstrSourceDir = DEFAULT_SOURCE; char const *refstrOutputFile = DEFAULT_OUTPUT; char const *refstrJavapak = NULL; char const *refstrManClass = NULL; unsigned int maxSquare = 1024; eOutputFormat format = eFormatDefault; char ignoreOutputFiles[256]; memset(ignoreOutputFiles, 0, sizeof(ignoreOutputFiles)); short usePadding=FALSE; bool enforcePow2=FALSE; printf("---Texture Cram---\n"); /** parse command arguments */ while(argc > 0){ if(argc > 1 && strncmp(argv[argc-2], SWITCH_DIR, 2)==0 ){ refstrSourceDir = argv[argc-1]; printf("Source directory is %s\n", refstrSourceDir); --argc; }else if(argc > 1 && strncmp(argv[argc-2], SWITCH_OUTPUT, 2)==0 ){ refstrOutputFile = argv[argc-1]; printf("Output path is %s\n", refstrOutputFile); --argc; }else if(argc > 1 && strncmp(argv[argc-2], SWITCH_MAXSQUARE, 2)==0 ){ maxSquare = atoi(argv[argc-1]); --argc; }else if(argc > 1 && strncmp(argv[argc-2], SWITCH_MAN_FORMAT, 2)==0 ){ if( strncmp(argv[argc-1], MAN_FORMAT_C, strlen(MAN_FORMAT_C) ) == 0 ){ format = eFormatC; printf("Manifest is C\n"); }else if( strncmp(argv[argc-1], MAN_FORMAT_JAVA, strlen(MAN_FORMAT_JAVA) ) == 0 ){ format = eFormatJava; printf("Manifest is java\n"); }else{ printf("Manifest is default\n"); } //- todo others --argc; }else if(argc > 1 && strncmp(argv[argc-2], SWITCH_JAVAPAK, 5)==0 ){ refstrJavapak = argv[argc-1]; printf("Java pack is: %s\n", refstrJavapak); --argc; }else if(argc > 1 && strncmp(argv[argc-2], SWITCH_CLASS, 5)==0 ){ refstrManClass = argv[argc-1]; printf("parent class is: %s\n", refstrManClass); --argc; }else if(argc > 1 && strncmp(argv[argc-2], SWITCH_PAD, 4)==0 ){ usePadding=TRUE; printf("Padding used\n"); --argc; }else if(strncmp(argv[argc-1], SWITCH_NEARPOW2, 2)==0){ enforcePow2 = TRUE; } --argc; } printf("The max size is %i\n", maxSquare); char *strBaseOut=NULL; getBaseDir(&strBaseOut, refstrOutputFile); char *strBaseName=NULL; getOutputNameFromFullPath(&strBaseName, refstrOutputFile); char **subDirs = calloc(2, sizeof(char*)); size_t numDirs = 1; copyString(&subDirs[0], refstrSourceDir); subDirs[1] = NULL; char buffCurOut[256]; size_t iDir; for(iDir=0; iDir < numDirs; ++iDir){ sTex **dynarrTextures = NULL; sSheetList sheets; memset(&sheets, 0, sizeof(sheets)); sFileList files; memset(&files, 0, sizeof(files)); sStillList stills; memset(&stills, 0, sizeof(stills)); sSeqList seqs; memset(&seqs, 0, sizeof(seqs)); sFontList fonts; memset(&fonts, 0, sizeof(fonts)); sManifest theMan; memset(&theMan, 0, sizeof(theMan)); if(getFiles(subDirs[iDir], &files, ignoreOutputFiles, SEARCH_PATTERN) != NOPROB) continue; if(strBaseName == NULL) getOutputNameFromFullPath(&strBaseName, subDirs[iDir]); snprintf(ignoreOutputFiles, 256, "%s*", strBaseName); if(strBaseOut != NULL) snprintf(buffCurOut, 256, "%s%s", strBaseOut, strBaseName); else strncpy(buffCurOut, strBaseName, 256); if(files.num > 0){ if(genTextures(subDirs[iDir], &files, &dynarrTextures) != NOPROB) goto LOOP_PROB; } if(dynarrTextures != NULL){ /** we only need to sort sequences and stills */ if(sortTextures(dynarrTextures, &seqs, &stills) != NOPROB) goto LOOP_PROB; } { /** fonts */ sTex **dynarrFntTexs =NULL; sFontInfo **dynarrFntIfo = genFontInfos(subDirs[iDir], ignoreOutputFiles); if(dynarrFntIfo != NULL && genTexFromFonts(dynarrFntIfo, &dynarrFntTexs, &fonts) != NOPROB) goto LOOP_PROB; unsigned int startIdx; if(dynarrTextures == NULL){ startIdx = 0; }else{ for(startIdx=0; dynarrTextures[startIdx] != NULL; ++startIdx) ; } appendTexArr(&dynarrTextures, dynarrFntTexs); genFontFromInfo((const sFontInfo **)dynarrFntIfo, &fonts, startIdx); cleanupFontInfos(&dynarrFntIfo); } if(dynarrTextures == NULL){ DBUG_WARN("No textures found"); goto LOOP_PROB; } if(arrangeTextures(dynarrTextures, &seqs, &stills, &fonts, &sheets, maxSquare) != NOPROB) goto LOOP_PROB; if(genMan( strBaseName, &seqs, &stills, &fonts, &sheets, (const sTex **)dynarrTextures, &theMan ) != NOPROB) goto LOOP_PROB; switch(format){ case eFormatDefault: if(writeManifestInTxt(buffCurOut, &theMan, (const sTex **)dynarrTextures) != NOPROB) goto LOOP_PROB; break; case eFormatC: if(writeManifestInC(buffCurOut, &theMan, (const sTex **)dynarrTextures) != NOPROB) goto LOOP_PROB; break; case eFormatJava: if(writeManifestInJava(buffCurOut, refstrJavapak, refstrManClass, &theMan, (const sTex **)dynarrTextures)!=NOPROB) goto LOOP_PROB; break; default: break; } if(writeSheets(strBaseOut, strBaseName, dynarrTextures, &sheets) != NOPROB) goto LOOP_PROB; { char **moreDirs = NULL; getDirs(subDirs[iDir], &moreDirs); if(moreDirs != NULL){ size_t iMore; for(iMore = 0; moreDirs[iMore] != NULL; ++iMore){ ++numDirs; subDirs = realloc(subDirs, (numDirs + 1) * sizeof(char*)); snprintf(buffCurOut, 245, "%s/%s", subDirs[iDir], moreDirs[iMore]); SAFE_DELETE(moreDirs[iMore]); copyString(&subDirs[ numDirs - 1], buffCurOut); subDirs[numDirs] = NULL; } } SAFE_DELETE(moreDirs); } LOOP_PROB: cleanupFileList(&files); cleanupTextures(&dynarrTextures); cleanupSheetList(&sheets); cleanupStillList(&stills); cleanupSeqList(&seqs); cleanupManifest(&theMan); SAFE_DELETE(subDirs[iDir]); SAFE_DELETE(strBaseName); } SAFE_DELETE(strBaseName); SAFE_DELETE(strBaseOut); SAFE_DELETE(subDirs); LOG("Finished!\n"); return 0; }