Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Веб-программирование > Perl
Перезагрузить страницу Perl + OpenGL
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
DarkPerl DarkPerl вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.08.2011
Question Perl + OpenGL - 25.08.2011, 03:29

Доброго времени суток!

Сегодня решил заняться программированием на языке Perl, используя библиотеку OpenGL :D

Возникли вопросы:

Есть два файла:
1 - main.pl
2 - point.pm

В первом файле (main.pl) подключаю второй файл (point.pm) как модуль, например. Пока обойдёмся без ООП, ограничимся модульным вариантом, чтобы каши так сказать не было :D

Код файла main.pl:
Perl Код:
#!/usr/bin/perl

use strict;
use warnings;

use lib 'D:/work/perl/project/modules'; # Путь к папке с модулями
use OpenGL qw/:all/;
use point; # файл с описанием функции рисования точки

my $title = 'Заголовок окна';
my $winw_pos = 0; my $winh_pos = 0; # Позиция окна
my $win_w = 640; my $win_h = 480; # Размеры окна

# Код для рисования сцены
sub draw()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glClearColor(1.0, 1.0, 1.0, 0.0);
   
    draw_point; # Функция для рисования точки. (описана в файле point.pm)
    glutSwapBuffers();
}

# Инициализация
sub main()
{
    glutInit();
    glutDisplayFunc(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowPosition("$winw_pos", "$winh_pos");
    glutInitWindowSize("$win_w", "$win_h");
    glutCreateWindow("$title");
    glutDisplayFunc(\&draw);
    glutMainLoop();
}

main;

Код файла point.pm:
Perl Код:
package point;

use Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(&draw_point);

sub test() { print "Все ок!\n"; }

# функция рисования точки
sub draw_point()
{
    glColor3f(1.0, 0.0, 0.0);
    glPointSize(5.0);
    glBegin(GL_POINTS);
    glVertex3f(0.0, 0.0, 0.0);
    glEnd();
}

return 1;

При запуске файла main.pl получаем ошибку:
Undefined subroutine &point::glColor3f called at D:/work/perl/project/modules/point.pm line 18.

Другими словами, он не находит определение фунции glColor3f в модуле point.pm...

И так, в чем собственно вопрос...

Если подключить библиотеку OpenGL в файле point.pm то всё работает!
Но получается, как я понимаю, повторное подключение OpenGL библиотеки!!!
Я ведь уже подключил её в main.pl

Подскажите, знающие люди, как обойти данное недоразумение??? Или же я чего то не понимаю!?

То есть, как один раз подключить библиотеку в главном файле *.pl и не подключать её повторно в модулях *.pm ???
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Perl ParadoXD MySQL 1 27.12.2011 18:39
SGI скрипт на perl или php Frosts Веб-программирование 1 23.03.2011 21:47
Многопоточность в Perl Baltika+ Perl 2 04.02.2011 18:35
Требуется web-программист (Perl или PHP, готовый переучиться на Perl). офис в Казани uCoz Работа 0 25.01.2011 16:41
Программист Perl. Lola26 Работа 0 07.06.2008 14:59
Perl-разработчик, от 80 000 р. olya Работа 0 17.01.2008 19:03
Программист Perl ABV Group Работа 3 12.07.2007 16:38
Программист Perl ABV Group Работа 2 05.07.2007 17:44
программист на Perl. com Работа 0 27.03.2007 14:35
Perl-разработчик olya Работа 0 08.09.2006 11:45
Доступ к SQL из perl Aris Perl 3 22.08.2005 19:58
Как установить Perl Anonymous Perl 2 07.12.2003 13:24



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов