Example #1
0
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();
}
Example #2
0
void QMapView::initializeGL()
{
    qglClearColor(Qt::blue);//цвет для очистки буфера изображения
    glEnable(GL_TEXTURE_2D);  // установить режим двумерных текстур
    glEnable(GL_DEPTH_TEST); // устанавливает режим проверки глубины пикселей
    genTextures();
    m_nMap=createMap();
}
Example #3
0
void loadTextures()
{
    vramSetBankA(VRAM_A_TEXTURE);
    vramSetBankF(VRAM_F_TEX_PALETTE_SLOT0);
    vramSetBankG(VRAM_G_TEX_PALETTE_SLOT5);
    glGenTextures(20, textureIDS);
    genTextures();
}
Example #4
0
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;
}
Example #5
0
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 );
}
Example #7
0
/*!\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;
}