All pastes #151168 Raw Edit

fest

public text v1 · immutable
#151168 ·published 2006-08-27 19:34 UTC
rendered paste body
//function to load texture
GLuint LoadTexture(char* filename)
{
SDL_Surface* surf;
if (surf=IMG_Load(filename)) {
if (((surf->w & (surf->w -1))!=0) || ((surf->h & (surf->h -1))!=0))
{
	printf("Taa nav po2 textuura!\n");
}
Uint32 rmask, gmask, bmask, amask;
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
    rmask = 0xff000000;
    gmask = 0x00ff0000;
    bmask = 0x0000ff00;
    amask = 0x000000ff;
#else
    rmask = 0x000000ff;
    gmask = 0x0000ff00;
    bmask = 0x00ff0000;
    amask = 0xff000000;
#endif

    SDL_Surface* surface = SDL_CreateRGBSurface(SDL_SWSURFACE, surf->w, surf->h, 32,
                                   rmask, gmask, bmask, amask);
    if(surface == NULL) {
        printf("CreateRGBSurface nesanaaca: %s\n", SDL_GetError()); 
    }
	SDL_Rect srcrect;
	SDL_Rect dstrect;
	srcrect.x=srcrect.y=dstrect.x=dstrect.y=0;
	dstrect.w=srcrect.w=surf->w;
	dstrect.h=srcrect.h=surf->h;
	//SDL_SetAlpha(surf,0,255);
	SDL_BlitSurface(surf,&srcrect,surface,&dstrect);

	
GLuint surfhandle=0;
glGenTextures(1,&surfhandle);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,surfhandle);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,surface->w,surface->h,0,GL_RGBA,GL_UNSIGNED_BYTE,surface->pixels);
if (surf) SDL_FreeSurface(surf);
if (surface) SDL_FreeSurface(surface);
printf("OpenGL errors: %s\n",glGetError());
printf("Textuura %s veiksmiigi ielaadeeta!\n",filename);
return surfhandle;
}
else printf("Neizdevaas ielaadeet textuuru: %s\n",SDL_GetError());
return 0;
}

//rendering routine
void RenderScene()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glLoadIdentity();

glTranslatef(100,100,0);
glBindTexture(GL_TEXTURE_2D,texture);
glBegin(GL_QUADS);

glTexCoord2i(0,0);
glVertex2f(0,0);

glTexCoord2i(1,0);
glVertex2f(128,0);

glTexCoord2i(1,1);
glVertex2f(128,128);

glTexCoord2i(0,1);
glVertex2f(0,128);
glEnd();

}