Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Другие темы раздела
OpenGL Рисование модели тора Здравствуйте, кодеры. Использую Opengl 3+ На днях пытался отрендерить тор. Собирал вершины тора для VAO следующим способом: float vertices; int theta = 25; int phi = 25; int r =... https://www.cyberforum.ru/ opengl/ thread2273714.html OpenGL Не работает FrameBuffer
Короче скопипастил я с урока по ссылке ниже: https://learnopengl.com/Advanced-Lighting/HDR и не работает выводит черный экран в комментариях ниже на этом сайте была таже проблема было исправление...
OpenGL Как сделать fbo с mipmap-ами? https://www.cyberforum.ru/ opengl/ thread2271699.html
В общем, нужно что бы у fbo была текстура с уровнями. Само по себе это не проблема, но вот как сделать так что бы после очистки фбо и рендера в него эти уровни тоже заполнялись? Или их пересоздавать...
OpenGL Выбрать из заданных точек четыре различные точки, которые являются вершинами квадрата наибольшего периметра https://www.cyberforum.ru/ opengl/ thread2271283.html
Используя библиотеку glut-3.7.6,написать программу,решающую задачу: На плоскости задано множество точек. Выбрать из них четыре различные точки, которые являются вершинами квадрата наибольшего...
Opengl 3x на linux OpenGL
Здравствуйте. Втоде поставил opengl на linux, но пример с рисованием треугольника не работает: http://opengl-tutorial.blogspot.com/p/2.html. Понял, что это opengl3x, но не знаю, как его поставить на...
OpenGL Class Light https://www.cyberforum.ru/ opengl/ thread2270039.html
Здравствуйте, насчет света я понял в GLSL хотя и не совсем, меня интересует можно ли Создать класс Света и потом применять по мере необходимости, при том что я хочу что бы для света был свой шейдер,...
OpenGL Загрузка из obj Короче, решил сделать такой, небольшой конвертер из obj, в собственный формат. Не получается сделать импорт faces. Уже много, чего пробовал сделать, происходят глюки. Вот в общем код, который... https://www.cyberforum.ru/ opengl/ thread2269504.html OpenGL Шейдер брызг
Всем привет! Люди, которые разбираются в GLSL, помогите с созданием шейдера брызг, например от прыжка в воду. Я не могу понять, как в корне реализовать это, если натолкнете, буду очень благодарен!
OpenGL Sfml не ставится https://www.cyberforum.ru/ opengl/ thread2268555.html
Т.к понял, что freeglut или glut для создания игр не подходит, и нужен sfml или sdl, я решил сначала попробовать поставит sfml. Делаю всё по видео: eRyy8QLOuoA Не работает. В чем дело?
OpenGL Хранить ли векторы в glm::vec4? Если я загружаю 3д модельку, или ещё что-то, то правильно ли хранить все векторы в массиве из glm::vec4? glm::vec4 vertices; Или надо использовать способ лучше? https://www.cyberforum.ru/ opengl/ thread2267924.html
Книжка по GML OpenGL
Недавно узнал про такую штуку, как OpenGL Mathematics (GLM). Нигде не могу найти русскоязычный мануал по нему. Может подскажите, где найти такой?
OpenGL С++ 2D графика glut передача аргументов в функцию рисования https://www.cyberforum.ru/ opengl/ thread2265813.html
День добрый, друзья. Столкнулся с одной задачкой, где решаю функцию, и в заданном диапазоне надо построить график. Значения заданной функции передаю в массив, этот массив передаю в функцию, где потом...
2 / 2 / 0
Регистрация: 23.03.2018
Сообщений: 42
0

Не компилируется SDL + OpenGL на Windows в mingw - OpenGL - Ответ 12531158

10.07.2018, 09:39. Показов 857. Ответов 1
Метки (Все метки)

Здравствуйте. Пишу проект на sdl+opengl. В линуксе всё компилируется нормально, однако, когда я решил скомпилировать это под windows, то вылезает очень много ошибок:

Кликните здесь для просмотра всего текста
E:\lsdge>g++ ka.cpp --pedantic -Wall -lmingw32 -lSDL2main -lopengl32 -lglut32 -
lGLU32 -mwindows -lkernel32 -std=c++11 -static -static-libgcc -static-libstdc++

C:\Users\02DA~1\AppData\Local\Temp\ccTGZngk.o:ka.cpp:(.text+ 0xf): undefined reference to `SDL_Init'
C:\Users\02DA~1\AppData\Local\Temp\ccTGZngk.o:ka.cpp:(.text+ 0x1b): undefined reference to `SDL_GetError'
C:\Users\02DA~1\AppData\Local\Temp\ccTGZngk.o:ka.cpp:(.text+ 0x6e): undefined reference to `SDL_GL_SetAttribute'
C:\Users\02DA~1\AppData\Local\Temp\ccTGZngk.o:ka.cpp:(.text+ 0x82): undefined reference to `SDL_GL_SetAttribute'
C:\Users\02DA~1\AppData\Local\Temp\ccTGZngk.o:ka.cpp:(.text+ 0x96): undefined reference to `SDL_GL_SetAttribute'
C:\Users\02DA~1\AppData\Local\Temp\ccTGZngk.o:ka.cpp:(.text+ 0xaa): undefined reference to `SDL_GL_SetAttribute'
C:\Users\02DA~1\AppData\Local\Temp\ccTGZngk.o:ka.cpp:(.text+ 0xde): undefined reference to `SDL_CreateWindow'
C:\Users\02DA~1\AppData\Local\Temp\ccTGZngk.o:ka.cpp:(.text+ 0x1dc): undefined reference to `SDL_PollEvent'
C:\Users\02DA~1\AppData\Local\Temp\ccTGZngk.o:ka.cpp:(.text+ 0x265): undefined reference to `SDL_GL_SwapWindow'
C:\Users\02DA~1\AppData\Local\Temp\ccTGZngk.o:ka.cpp:(.text+ 0x26f): undefined reference to `SDL_Quit'
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../..\libmingw32.a(main.o):(.text.startup+0xa0): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status

E:\lsdge>pause
Для продолжения нажмите любую клавишу . . .


Код следующий:
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#include <SDL2/SDL.h> // Библиотека SDL 2
 
#include <GL/gl.h> // Библиотека OpenGL
#include <GL/glu.h> // Библиотека GLU
 
#include <iostream> // стандартная библиотека ввода-вывода в C++
using namespace std;
 
SDL_Window *window; // задаем окно для SDL
 
const int width = 640; // ширина окна
const int height = 480; // высота окна
 
void drawCube(float xrf, float yrf, float zrf);
 
void init(){
 
    // Инициализация SDL
 
    if ( SDL_Init(SDL_INIT_VIDEO) < 0 ){
        cout << "Unable to init SDL, error: " << SDL_GetError() << endl;
        exit(1);
    }
 
    // Включаем двойной буфер, настраиваем цвета
 
    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
    SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);
    SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 6);
    SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5);
 
    // Создаем окно с заголовком "Cube", размером 640х480 и расположенным по центру экрана.
 
    window = SDL_CreateWindow("Cube", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL);
 
    //SDL_GLContext glcontext = SDL_GL_CreateContext(window);
 
    if(window == NULL){ // если не получилось создать окно, то выходим
        exit(1);
    }
 
    // Инициализация OpenGL
 
    glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // устанавливаем фоновый цвет на черный
    glClearDepth(1.0);
    glDepthFunc(GL_LESS);
    glEnable(GL_DEPTH_TEST); // включаем тест глубины
    glShadeModel(GL_SMOOTH);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45.0f, (float) width / (float) height, 0.1f, 100.0f); // настраиваем трехмерную перспективу
    glMatrixMode(GL_MODELVIEW); // переходим в трехмерный режим
}
 
int main(int argc, char *argv[]){
 
    init(); // инициализация
 
    bool running = true;
 
    float xrf = 0, yrf = 0, zrf = 0; // углы поворота
 
    while(running){
 
        SDL_Event event; // события SDL
 
        while ( SDL_PollEvent(&event) ){ // начинаем обработку событий
            switch(event.type){ // смотрим:
    case SDL_QUIT: // если произошло событие закрытия окна, то завершаем работу программы
        running = false;
    break;
 
    case SDL_KEYDOWN: // если нажата клавиша
        switch(event.key.keysym.sym){ // смотрим какая
            case SDLK_ESCAPE: // клавиша ESC
    running = false; // завершаем работу программы
            break;
        }
    break;
            }
        }
 
    // пока программа запущена изменяем углы поворота, тем самым вращая куб
 
        xrf -= 0.5;
        yrf -= 0.5;
        zrf -= 0.5;
 
        drawCube(xrf, yrf, zrf); // рисуем сам куб с текущими углами поворота
 
        // обновляем экран
 
        glFlush();
        SDL_GL_SwapWindow(window);
    }
 
    SDL_Quit(); // завершаем работу SDL и выходим
    return 0;
}
 
void drawCube(float xrf, float yrf, float zrf){
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
    glLoadIdentity();
    glTranslatef(0.0f, 0.0f, -7.0f);    // Сдвинуть вглубь экрана
 
    glRotatef(xrf, 1.0f, 0.0f, 0.0f);   // Вращение куба по X, Y, Z
    glRotatef(yrf, 0.0f, 1.0f, 0.0f);   // Вращение куба по X, Y, Z
    glRotatef(zrf, 0.0f, 0.0f, 1.0f);   // Вращение куба по X, Y, Z
 
    glBegin(GL_QUADS);      // Рисуем куб
 
    glColor3f(0.0f, 1.0f, 0.0f);        // Синяя сторона (Верхняя)
    glVertex3f( 1.0f, 1.0f, -1.0f);     // Верхний правый угол квадрата
    glVertex3f(-1.0f, 1.0f, -1.0f);     // Верхний левый
    glVertex3f(-1.0f, 1.0f,  1.0f);     // Нижний левый
    glVertex3f( 1.0f, 1.0f,  1.0f);     // Нижний правый
 
    glColor3f(1.0f, 0.5f, 0.0f);        // Оранжевая сторона (Нижняя)
    glVertex3f( 1.0f, -1.0f,  1.0f);    // Верхний правый угол квадрата
    glVertex3f(-1.0f, -1.0f,  1.0f);    // Верхний левый
    glVertex3f(-1.0f, -1.0f, -1.0f);    // Нижний левый
    glVertex3f( 1.0f, -1.0f, -1.0f);    // Нижний правый
 
    glColor3f(1.0f, 0.0f, 0.0f);        // Красная сторона (Передняя)
    glVertex3f( 1.0f,  1.0f, 1.0f);     // Верхний правый угол квадрата
    glVertex3f(-1.0f,  1.0f, 1.0f);     // Верхний левый
    glVertex3f(-1.0f, -1.0f, 1.0f);     // Нижний левый
    glVertex3f( 1.0f, -1.0f, 1.0f);     // Нижний правый
 
    glColor3f(1.0f,1.0f,0.0f);          // Желтая сторона (Задняя)
    glVertex3f( 1.0f, -1.0f, -1.0f);    // Верхний правый угол квадрата
    glVertex3f(-1.0f, -1.0f, -1.0f);    // Верхний левый
    glVertex3f(-1.0f,  1.0f, -1.0f);    // Нижний левый
    glVertex3f( 1.0f,  1.0f, -1.0f);    // Нижний правый
 
    glColor3f(0.0f,0.0f,1.0f);          // Синяя сторона (Левая)
    glVertex3f(-1.0f,  1.0f,  1.0f);    // Верхний правый угол квадрата
    glVertex3f(-1.0f,  1.0f, -1.0f);    // Верхний левый
    glVertex3f(-1.0f, -1.0f, -1.0f);    // Нижний левый
    glVertex3f(-1.0f, -1.0f,  1.0f);    // Нижний правый
 
    glColor3f(1.0f,0.0f,1.0f);          // Фиолетовая сторона (Правая)
    glVertex3f( 1.0f,  1.0f, -1.0f);    // Верхний правый угол квадрата
    glVertex3f( 1.0f,  1.0f,  1.0f);    // Верхний левый
    glVertex3f( 1.0f, -1.0f,  1.0f);    // Нижний левый
    glVertex3f( 1.0f, -1.0f, -1.0f);    // Нижний правый
 
    glEnd();    // Закончили квадраты
 
}
Что я делаю не так? Подскажите? Очень надо, чтобы всё компилировалось под windows

Вернуться к обсуждению:
Не компилируется SDL + OpenGL на Windows в mingw OpenGL
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.07.2018, 09:39
Готовые ответы и решения:

Не компилируется решение задачи в MinGW (WINDOWS)
#include &lt;stdio.h&gt; int main(void) { int N=0; int D=6; int mp,mk,mc,i; int p=0;...

Подключение SDL 2.0 MinGW
Доброго времени суток. Закинул все файлы SDL по своим местам, но при компиляции через командную...

Clion+MinGW+ SDL
Пожалуйста помогите исправить. Файлы с SDL2 закинул в MinGW Main.cpp #include &lt;iostream&gt;...

Geany + MinGW, не компилируется!
Всем, привет, давно не задавал вопросов уже8-)) Понеслась: Хочу работать в проге &quot;Geany&quot;,...

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.07.2018, 09:39

opengl SDL
Подскажите как сделать чтоб треугольник двигался по нажаатию клавиши (стрелка вверх) в том...

Не компилируется программа с WinAPI на MinGW 64bit
#include &lt;windows.h&gt; const double PI = 3.141592653; LRESULT CALLBACK WndProc(HWND, UINT,...

Программа не компилируется на mingw, но работает на dev c++
Я новичок в СИ, пишу простейшую программу для считывания данных с файла. В дев с++ все прекрасно...

OpenGL - инициализация SDL
Возникла проблема при подключении SDL я делал как описано в уроках пошагово но вот возникает...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru