Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2012, 17:46   #1
Stochfard
 
Регистрация: 10.10.2011
Сообщений: 4
Вопрос OpenGL / C++ / MS VS 2008

Пытаюсь вывести текстуру с картинкой на экран. Создается окно, но текстура в нем не появляется просто черный экран. подскажите в чем проблема.

Код:
#include <iostream>
#include <ctime>
#pragma comment(lib, "glaux.lib") 
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "OpenGL32.lib")
 
#include <GL/glut.h>
#include <GL/glaux.h>
#include <windows.h>
#include <gl\gl.h>
#include <gl\glu.h> 
 
static HGLRC hRC;       // Постоянный контекст рендеринга
static HDC hDC;         // Приватный контекст устройства GDI
void display(void);
void window(int argc, char **argv);
 
GLuint  texture[1];     // Место для одной текстуры
 
GLvoid LoadGLTextures(void)
{
    // Загрузка картинки
    AUX_RGBImageRec *texture1;
    texture1 = auxDIBImageLoad("D:/project/test.bmp");
    // Создание текстуры
    glGenTextures(1, &texture[0]);
    glBindTexture(GL_TEXTURE_2D, texture[0]);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
    glTexImage2D(GL_TEXTURE_2D, 0, 3, texture1->sizeX, texture1->sizeY, 0,
    GL_RGB, GL_UNSIGNED_BYTE, texture1->data);
    
}
void display(void)
{ glClear(GL_COLOR_BUFFER_BIT);
  glLoadIdentity();
  glTranslatef(0.0f,0.0f,-5.0f);
  glBindTexture(GL_TEXTURE_2D, texture[0]);
  glBegin(GL_QUADS);
  glTexCoord2f(0.0f, 0.0f); glVertex2f(100, 100);
  glTexCoord2f(1.0f, 0.0f); glVertex2f( 228, 100);
  glTexCoord2f(1.0f, 1.0f); glVertex2f( 228,  356);
  glTexCoord2f(0.0f, 1.0f); glVertex2f(100,  356);
  glEnd();
  glFlush();
}
 
 
 
void window (int argc, char **argv)
{
  glutInit(&argc, argv);                            // Передача параметров в Glut
  glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);      // Параметры экрана ( 1 буфер | 24 битный цвет RGB)
  glutInitWindowSize(720, 640);                     // Размер окна 
  glutInitWindowPosition(200, 240);                 // Расположение онка на экране
  glutCreateWindow("Test");                         // Имя и команда на создание окна
  glClearColor(0.0, 0.0, 0.0, 0.0);                 // Фоновый цвет окна
  glMatrixMode(GL_PROJECTION);                      // Настройка вида как 2х мерный
  glLoadIdentity();                                 
  glOrtho(0.0, 720.0, 0.0, 720.0, -1.0, 1.0);       // В каких пределах изменяются кардинаты х и у
  LoadGLTextures();                                 // Загрузка текстур
  glEnable(GL_TEXTURE_2D);                          // Разрешение наложение текстуры
  glutDisplayFunc(display);                         // Передаем функцию
  glutMainLoop();                                   // Переход в основной цикл
}
 
int main(int argc, char **argv)
{ 
  window(argc, argv);
  return 0;
}
Stochfard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AccessViolationException в VS 2008 при использовании OpenGL Fataller Общие вопросы .NET 1 13.09.2010 04:44
MS SQL Server 2008 и Visual Studio 2008 C# (Как работать с БД?) cherw9!40k Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 14.01.2010 20:51
VISUAL STUDIO 2008 defaul language - как переключить в VISUAL STUDIO 2008 язык программирования, использ Эйнж Общие вопросы C/C++ 0 27.12.2009 20:39
opengl в MVS 2008 подключение библиотек zak254 Общие вопросы C/C++ 1 29.09.2009 23:18
3d Max + visual 2008 + OpenGL iwaniwan Visual C++ 4 03.05.2009 14:29