Здравствуйте , не могу наложить текстуру в OpenGL. В OpenGL я пока, что не сильно разбираюсь, пытаюсь выключать и свет и глубину и всякие разные параметры но ничего не выводиться, выводиться квадрат на котором должна быть наложена текстура, если включаю свет, то квадрат заливается серым цветом, если без цвета то фоновым. И еще после glEnd(); происходит GL_INVALID_OPERATION 1282. А на протяжении всего кода ошибок нету! Код | // Инициализируем класс Texture = new CTexture(); // Просим класс "Texture" загрузить указанное изображение в переданную структуру: //Texture->LoadTexture(IL_PNG,(char*)TextureName.c_str(),&textures[0]); Texture->LoadTexture(IL_PNG,"c:\\note.png",&textures[0]);
|
Текстуру загружаю с помощью Devila, она загружается нормально. Код |
wxPaintDC dc(this); #ifndef __WXMOTIF__ if (!GetContext()) return; #endif SetCurrent(); // Init OpenGL once, but after SetCurrent /* if (!m_init) { InitGL(); m_init = true; }*/ int w=0,h=0; this->GetSize(&w,&h); GLenum error = glGetError(); glViewport( 0,0,w,h ); error = glGetError(); glMatrixMode( GL_PROJECTION ); error = glGetError(); glLoadIdentity(); error = glGetError(); // Reset The Current Matrix to E glOrtho( 0, w, h, 0, 0, 1 ); error = glGetError(); glMatrixMode(GL_MODELVIEW); error = glGetError(); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer error = glGetError(); glLoadIdentity(); // Reset The View error = glGetError();
glEnable(GL_TEXTURE_2D); error = glGetError(); error = glGetError(); //glDisable(GL_DEPTH_TEST); error = glGetError(); //glEnable(GL_COLOR); glDisable(GL_BLEND); //glEnable(GL_DEPTH_TEST); glDisable(GL_DEPTH_TEST);
error = glGetError(); glColor4f(0.0f,0.5f,0.5f,1.0f); // Full Brightness, 50% Alpha ( NEW ) //glTranslatef((-1)*(w/2-(GLfloat)textures[0].width/2)+10,(-1)*(h/2-(GLfloat)textures[0].height/2),0.0f); glBindTexture(GL_TEXTURE_2D, textures[0].texID); error = glGetError();
glEnable(GL_LIGHTING); error = glGetError(); glEnable(GL_LIGHT0); error = glGetError(); glLightf(GL_LIGHT0, GL_POSITION, -128.0f); glBegin(GL_QUADS); glTexCoord2i(0,2); glVertex2i(0,textures[0].height); glTexCoord2i(2,2); glVertex2i(textures[0].width,textures[0].height); glTexCoord2i(2,0); glVertex2i(textures[0].width,0); glTexCoord2i(0,0); glVertex2i(0,0); glEnd(); error = glGetError();
//glFlush(); error = glGetError(); SwapBuffers(); error = glGetError();
|
|