#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <SDL/SDL.h>
SDL_Surface* surface;
#define SCREEN_WIDTH 800
#define SCREEN_HEIGHT 600
#define SCREEN_BPP 255
#define FALSE 0
#define TRUE 1
GLuint texture[1];
int kulka()
{
GLUquadricObj *sphere=NULL;
sphere = gluNewQuadric();
gluQuadricDrawStyle(sphere, GLU_FILL);
gluQuadricTexture(sphere, TRUE);
gluQuadricNormals(sphere, GLU_SMOOTH);
gluSphere(sphere, 1.0, 20, 20);
}
void wyswietlanie(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glRotated(33.5, 3.5, 1.6, 1.0);
kulka();
glFlush();
}
void skalowanie(int s, int w)
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
namespace SDL
{
int LoadGLTextures( )
{
/* Status indicator */
int Status = FALSE;
/* Create storage space for the texture */
SDL_Surface *TextureImage;
/* Load The Bitmap, Check For Errors, If Bitmap's Not Found Quit */
if ( ( TextureImage= SDL_LoadBMP( "abb.bmp" ) ) )
{
/* Set the status to true */
Status = TRUE;
/* Create The Texture */
glGenTextures( 1, &texture[0] );
/* Typical Texture Generation Using Data From The Bitmap */
glBindTexture( GL_TEXTURE_2D, texture[0] );
/* Generate The Texture */
glTexImage2D( GL_TEXTURE_2D, 0, 3, TextureImage->w,
TextureImage->h, 0, GL_BGR,
GL_UNSIGNED_BYTE, TextureImage->pixels );
glGetError();
/* Linear Filtering */
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
glEnable(GL_TEXTURE_2D);
}
/* Free up any memory we may have used */
if ( TextureImage)
SDL_FreeSurface( TextureImage );
return Status;
}
};
int main(int argc,char **argv) //kopjuj wklej p.
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGBA);
glutInitWindowSize(600,800);
glutInitWindowPosition(50,50);
glutCreateWindow("Nakładanie tekstur");
glClearColor(0,0,0,0);
SDL::LoadGLTextures();
glutDisplayFunc(wyswietlanie);
glutReshapeFunc(skalowanie);
glutMainLoop();
}
No comments:
Post a Comment