Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 4
1

Visual Studio не читает операторы, что начинаются на "glu" ("gluBuild2DMipmaps", "gluPerspective")

16.04.2019, 19:50. Просмотров 434. Ответов 6
Метки нет (Все метки)

Этот код должен выводить на экран кубик, который по идее должен вращаться, но возникла проблема: для выполнения этого кода я подключи библиотеку SFML. Все работало корректно, но когда я прописал "gluBuild2DMipmaps" и "gluPerspective", VS их не воспринимал. Отчетливо видно что VS не находит только те операторы которые начинаются с "glu". Прошу помочь мне с данной проблемой. Код ниже:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <SFML/Graphics.hpp>
#include <SFML/OpenGL.hpp>
#pragma comment(lib, "glu32.lib")
using namespace sf;
 
int main()
{
    RenderWindow window(VideoMode(800, 600), "SFML OpenGL");
    Texture t;
    t.loadFromFile("resources/background.jpg");
    Sprite background(t);
 
    GLuint texture = 0;
    {
        Image image;
        image.loadFromFile("resources/texture.jpg");
 
        glGenTextures(1, &texture);
        glBindTexture(GL_TEXTURE_2D, texture);
        gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, image.getSize().x, image.getSize().y, GL_RGBA, GL_UNSIGNED_BYTE, image.getPixelsPtr());
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
    }
 
    glEnable(GL_DEPTH_TEST);
    glDepthMask(GL_TRUE);
    glClearDepth(1.f);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(90.f, 1.f, 1.f, 500.f);
    glEnable(GL_TEXTURE_2D);
 
    Clock clock;
 
    while (window.isOpen())
    {
        Event event;
        while (window.pollEvent(event));
        {
            if (event.type == Event::Closed)
                window.close();
        }
 
        float time = clock.getElapsedTime().asSeconds() * 100;
        float size = 20.f;
 
        // Drow the background
        window.pushGLStates();
        window.draw(background);
        window.popGLStates();
 
        // Clear the depth buffer
        glClear(GL_DEPTH_BUFFER_BIT);
 
        // Apply some transformations (смещаем кубик на 100 единиц)
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        glTranslatef(0, 0, -100);
        glRotatef(time, 50, 50, 0);
 
        // Draw a cube
        glBindTexture(GL_TEXTURE_2D, texture);
        glBegin(GL_QUADS);
            // Back
            glTexCoord2f(0, 0); glVertex3f(-size, -size, -size);
            glTexCoord2f(1, 0); glVertex3f( size, -size, -size);
            glTexCoord2f(1, 1); glVertex3f( size,  size, -size);
            glTexCoord2f(0, 1); glVertex3f(-size,  size, -size);
 
            // Front
            glTexCoord2f(0, 0); glVertex3f( size, -size,  size);
            glTexCoord2f(1, 0); glVertex3f(-size, -size,  size);
            glTexCoord2f(1, 1); glVertex3f(-size,  size,  size);
            glTexCoord2f(0, 1); glVertex3f( size,  size,  size);
 
            // Left
            glTexCoord2f(0, 0); glVertex3f(-size, -size,  size);
            glTexCoord2f(1, 0); glVertex3f(-size, -size, -size);
            glTexCoord2f(1, 1); glVertex3f(-size,  size, -size);
            glTexCoord2f(0, 1); glVertex3f(-size,  size,  size);
 
            // Right
            glTexCoord2f(0, 0); glVertex3f( size, -size, -size);
            glTexCoord2f(1, 0); glVertex3f( size, -size,  size);
            glTexCoord2f(1, 1); glVertex3f( size,  size,  size);
            glTexCoord2f(0, 1); glVertex3f( size,  size, -size);
 
 
            // Bottom
            glTexCoord2f(0, 0); glVertex3f(-size, -size,  size);
            glTexCoord2f(1, 0); glVertex3f( size, -size,  size);
            glTexCoord2f(1, 1); glVertex3f( size, -size, -size);
            glTexCoord2f(0, 1); glVertex3f(-size, -size, -size);
 
            // Top
            glTexCoord2f(0, 0); glVertex3f(-size,  size, -size);
            glTexCoord2f(1, 0); glVertex3f( size,  size, -size);
            glTexCoord2f(1, 1); glVertex3f( size,  size,  size);
            glTexCoord2f(0, 1); glVertex3f(-size,  size,  size);
 
        glEnd();
 
        // Display all
        window.display();
    }
 
    glDeleteTextures(1, &texture);
 
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2019, 19:50
Ответы с готовыми решениями:

Visual Studio не читает операторы, что начинаются на "glu" ("gluBuild2DMipmaps", "gluPerspective")
Данный код должен выводить на экран кубик который должен вращаться, но возникла проблема. Для...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;,...

Зачем перегружать операторы "++", "<<", ">>" и что они дают?
Здравствуйте. Я хотел спросить зачем перегружать оператор &quot;++&quot;, &quot;&lt;&lt;&quot;, &quot;&gt;&gt;&quot; и что они нам дают?

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов), которые разделяются...

6
459 / 250 / 55
Регистрация: 17.05.2015
Сообщений: 794
16.04.2019, 20:08 2
Цитата Сообщение от camelotos Посмотреть сообщение
Прошу помочь мне с данной проблемой
C++
1
#include <gl/gl.h>
0
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 4
16.04.2019, 22:57  [ТС] 3
eva2326, Увы, всё равно не помогло. Ума не приложу, что делать с этим...
0
1346 / 986 / 312
Регистрация: 28.07.2012
Сообщений: 2,743
16.04.2019, 23:45 4
camelotos,

C++
1
2
#include <GL/glut.h>
#pragma comment(lib, "glut32.lib")
Добавлено через 9 минут
Нет, фигню написал. Глут тут не нужен.

Добавлено через 4 минуты
Цитата Сообщение от camelotos Посмотреть сообщение
VS их не воспринимал
Какие были ошибки?

#include <gl\GLU.h> не спасает?
0
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 4
17.04.2019, 13:13  [ТС] 5
Нет, не спасает.
Ошибки такие:
идентификатор "gluBuild2DMipmaps" не определён
идентификатор "gluPerspective" не определён
0
Грамотный. Безпорно.
16787 / 9683 / 1869
Регистрация: 27.09.2012
Сообщений: 24,028
Записей в блоге: 2
17.04.2019, 13:41 6
camelotos, версия OpenGL какая? gluPerspective является устаревшим в OpenGL 3.0 и удален вовсе из OpenGL 3.1.

Добавлено через 3 минуты
Ответ с официального форума SFML:
GLU was removed from the <SFML/OpenGL.hpp> header in 2.3 because it is old/slow and might not even be available on some systems. It is recommended to not use GLU any longer. You will always be able to construct a replacement for a GLU function that you might have used in the past just using standard OpenGL.
0
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 4
17.04.2019, 15:14  [ТС] 7
Да, скорее всего проблема из-за версии. Т.е. мне просто нужно установить более старые версии SFML и OpenGL?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2019, 15:14

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование)
Разработать программу с использованием наследования классов, реализующую классы: − воин;...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления"
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс"
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания"
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.