Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите запустить простой пример OpenGL, Нужна помощь 
:(
    Опции темы
sergeydr
  Дата 10.10.2012, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



Запускаю найденый код из Dev-C++:
Код

// OpenGL 3D program.

#include <windows.h>
#include <GL\gl.h>
#include <GL\glu.h>

// заголовки функций
void SetDCPixelFormat(HWND,HDC);
void Initialize(HWND);
void DrawScene(HDC);
LONG WINAPI WndProc(HWND, UINT, WPARAM, LPARAM);

// главная функция
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPSTR lpszCmdLine, int nCmdShow)
{
    static char szAppName[] = "3D APP";
    WNDCLASS wc;
    HWND hwnd;
    MSG msg;

    wc.style = 0;
    wc.lpfnWndProc = (WNDPROC) WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon(NULL, NULL);
    wc.hCursor = (HCURSOR)LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
    wc.lpszMenuName = NULL;
    wc.lpszClassName = szAppName;

    RegisterClass (&wc);

    hwnd = CreateWindow (szAppName, szAppName,
        WS_SYSMENU,
        0, 0, 500, 500,
        HWND_DESKTOP, NULL, hInstance, NULL);

    ShowWindow (hwnd, SW_SHOW);
    UpdateWindow (hwnd);

    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage (&msg);
        DispatchMessage (&msg);
    }
    return msg.wParam;
}


// оконная процедура
LONG WINAPI WndProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    static HDC hdc;
    static HGLRC hrc;
    PAINTSTRUCT ps;

    switch (msg) {

    case WM_CREATE:
        hdc = GetDC (hwnd);
        SetDCPixelFormat (hwnd,hdc);
        hrc = wglCreateContext (hdc);
        wglMakeCurrent (hdc, hrc);
        Initialize(hwnd);
        return 0;

    case WM_PAINT:
        // Draw the scene.
        BeginPaint (hwnd, &ps);
        DrawScene (hdc);
        EndPaint (hwnd, &ps);

        InvalidateRect(hwnd, NULL, FALSE);

        return 0;;

    case WM_DESTROY:
        // Clean up and terminate.
        wglMakeCurrent (NULL, NULL);
        wglDeleteContext (hrc);
        ReleaseDC (hwnd, hdc);
        PostQuitMessage (0);
        return 0;
    }
    return DefWindowProc (hwnd, msg, wParam, lParam);
}


// установка параметров
void SetDCPixelFormat (HWND hwnd,HDC hdc)
{
    int nPixelFormat;
    static PIXELFORMATDESCRIPTOR pfd = {
        sizeof (PIXELFORMATDESCRIPTOR),
        1,
        PFD_DRAW_TO_WINDOW |
        PFD_SUPPORT_OPENGL |
        PFD_GENERIC_ACCELERATED|
        PFD_DOUBLEBUFFER,
        PFD_TYPE_RGBA,
        24,
        0, 0, 0, 0, 0, 0,
        0, 0,
        0, 0, 0, 0, 0,
        32,
        0,
        0,
        PFD_MAIN_PLANE,
        0,
        0, 0, 0
    };

    nPixelFormat = ChoosePixelFormat (hdc, &pfd);
    SetPixelFormat (hdc, nPixelFormat, &pfd);

}

void Initialize(HWND hwnd)
{
    RECT rect;

    GetClientRect(hwnd, &rect);
    glViewport(0,0,rect.right, rect.bottom);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective (40.0, rect.right/rect.bottom, 1.0f, 1000.0f);

    return;
}

void DrawScene(HDC hdc)
{
    static float angle;
    angle += 1.0f;

    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glTranslatef(0.0, 0.0, -2.0);
    glRotatef(angle,0.0, 1.0, 0.0);

    glBegin(GL_TRIANGLES);
        glColor3f(1.0, 0.0, 0.0);
        glVertex3f(-0.5, -0.5, 0.0);

        glColor3f(0.0, 1.0, 1.0);
        glVertex3f(0.5, -0.5, 0.0);

        glColor3f(0.0, 0.0, 1.0);
        glVertex3f(0.0, 0.5, 0.0);
    glEnd();

    glFlush();

    SwapBuffers(hdc);
    return;
}



Появляются следующие ошибки:
  [Linker error] undefined reference to `wglCreateContext@4'
  [Linker error] undefined reference to `wglMakeCurrent@8'
  [Linker error] undefined reference to `wglDeleteContext@4'
  [Linker error] undefined reference to `glViewport@16'
  [Linker error] undefined reference to `glMatrixMode@4'
  [Linker error] undefined reference to `glLoadIdentity@0'
  [Linker error] undefined reference to `gluPerspective@32'
  [Linker error] undefined reference to `glClear@4'
  [Linker error] undefined reference to `glMatrixMode@4'
  [Linker error] undefined reference to `glLoadIdentity@0'
  [Linker error] undefined reference to `glTranslatef@12'
  [Linker error] undefined reference to `glRotatef@16'
  [Linker error] undefined reference to `glBegin@4'
  [Linker error] undefined reference to `glColor3f@12'
  [Linker error] undefined reference to `glVertex3f@12'
  [Linker error] undefined reference to `glColor3f@12'
  [Linker error] undefined reference to `glVertex3f@12'
  [Linker error] undefined reference to `glColor3f@12'
  [Linker error] undefined reference to `glVertex3f@12'
  [Linker error] undefined reference to `glEnd@0'
  [Linker error] undefined reference to `glFlush@0'


Это сообщение отредактировал(а) sergeydr - 10.10.2012, 00:16
PM MAIL   Вверх
Snake174
Дата 10.10.2012, 08:10 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 5.10.2011
Где: Miass

Репутация: нет
Всего: нет



Подключи библиотеки opengl32 и glu32
#pragma comment (lib,"opengl32.lib")
#pragma comment (lib,"glu32.lib")
#pragma comment (lib,"winmm.lib")
PM MAIL   Вверх
sergeydr
Дата 10.10.2012, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



Тот же эффект
PM MAIL   Вверх
Snake174
Дата 11.10.2012, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 5.10.2011
Где: Miass

Репутация: нет
Всего: нет



А через сервис -> параметры компилятора подключал?
PM MAIL   Вверх
Riviero
Дата 11.10.2012, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 25.3.2010

Репутация: нет
Всего: 3



Посмотри сам из каких библиотек и файлов эти функции и подключи их.
PM MAIL   Вверх
sergeydr
Дата 11.10.2012, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



Цитата(Snake174 @ 11.10.2012,  10:24)
А через сервис -> параметры компилятора подключал?

Я любитель в этом занятии, прошу Вас помочь правильно их подключить
PM MAIL   Вверх
Snake174
Дата 11.10.2012, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 5.10.2011
Где: Miass

Репутация: нет
Всего: нет



Проект -> Параметры проекта -> Параметры : Кнопка -> Добавить библиотеку. 

Или Сервис-> Параметры компилятора -> Каталоги -> Библиотеки.
PM MAIL   Вверх
sergeydr
Дата 11.10.2012, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



Спасибо разобрался ошибки исчезли

Одна есть
File format not recognized 


Это сообщение отредактировал(а) sergeydr - 11.10.2012, 16:48
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.