OSDev http://osdev.su/ |
|
Perl + OpenGL http://osdev.su/viewtopic.php?f=18&t=439 |
Страница 1 из 1 |
Автор: | DarkPerl [ 25 авг 2011, 01:58 ] |
Заголовок сообщения: | Perl + OpenGL |
Доброго времени суток! Сегодня решил заняться программированием на языке Perl, используя библиотеку OpenGL :D Возникли вопросы: Есть два файла: 1 - main.pl 2 - point.pm В первом файле (main.pl) подключаю второй файл (point.pm) как модуль, например. Пока обойдёмся без ООП, ограничимся модульным вариантом, чтобы каши так сказать не было :D Код файла main.pl: #!/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: 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 :confused: Подскажите, знающие люди, как обойти данное недоразумение??? Или же я чего то не понимаю!? То есть, как один раз подключить библиотеку в главном файле *.pl и не подключать её повторно в модулях *.pm ??? |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |