Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 16:45

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: IUP и OPENGL
СообщениеДобавлено: Ср июн 24, 2020 03:18 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Пытался вкурить пример по IUP с GL
перевел на форт, но вместо вожделенного квадрата там только тьма
https://github.com/LuaDist/iup-examples ... glcanvas.c

Версия на форте (Nova)

Код:
2 Cdecl: IupOpen Iup
2 Cdecl: IupButton Iup
0 Cdecl: IupClose Iup
0 Cdecl: IupFill IUP
1 Cdecl: IupLabel Iup
1 Cdecl: IupDialog Iup
1 Cdecl: IupHide Iup
N-Cdecl: IupVbox Iup
N-Cdecl: IupHbox Iup
1 Cdecl: IupShow Iup
3 Cdecl: IupSetAttribute Iup
4 Cdecl: IupGetIntInt IUP
2 Cdecl: IupGetAttribute IUP
0 Cdecl: IupMainLoop Iup
3 Cdecl: IupSetCallback Iup

0 Cdecl: IupGLCanvasOpen    IupGL
1 Cdecl: IupGLCanvas      IupGL
1 Cdecl: IupGLMakeCurrent   IupGL
1 Cdecl: IupGLIsCurrent      IupGL
1 Cdecl: IupGLSwapBuffers   IupGL

WINAPI: glDrawPixels      OPENGL32
WINAPI: glViewport      OPENGL32
WINAPI: glMatrixMode      OPENGL32
WINAPI: glLoadIdentity      OPENGL32
WINAPI: glClearColor      OPENGL32
WINAPI: glClear       OPENGL32
WINAPI: glColor3i      OPENGL32
WINAPI: glVertex3i      OPENGL32
WINAPI: glVertex2i      OPENGL32
WINAPI: glVertex2f      OPENGL32
WINAPI: glBegin         OPENGL32
WINAPI: glEnd         OPENGL32
WINAPI: glOrtho         OPENGL32

\ создать константную строку для удобства
: W-CONST ALT: HERE >R >IN @ >R PARSE-NAME ALT: S, 0 ALT: C,
R> >IN ! R> CONSTANT ;

W-CONST SIZE
W-CONST TITLE
W-CONST ACTION
W-CONST Yes
W-CONST SCROLLBAR
W-CONST DOUBLE
W-CONST BUFFER

-2 CONSTANT IUP_DEFAULT \

~ER/LOCALS/R-LOCAL.F CONTEXT @ ALT: TEMP-OUT

REQUIRE FLOAT ~ER/FLOAT/FLOAT.F ALSO FLOAT ' PREVIOUS >R

1 CALLBACK: BLA
@ { CANVAS }

SP@ >R
CANVAS IupGLMakeCurrent      

123 200 0 0 glViewport
1 1 1 1  glClearColor
0x4000 0x100 OR glClear

100 0 30 glColor3i

0x0007 glBegin \ квадрат
\ через целые тоже пробовал, все равно не работает
0.9    0.9    glVertex2f
0.9     -0.9    glVertex2f
-0.9     -0.9   glVertex2f
-0.9     0.9    glVertex2f
glEnd

CANVAS IupGLSwapBuffers
R> SP!
IUP_DEFAULT
;

: TEST
{ \ CANVA DLG HB  }
0 0 IupOpen THROW
IupGLCanvasOpen  DROP
0 IupGLCanvas TO CANVA

S" 123x200" DROP S" RASTERSIZE" DROP CANVA IupSetAttribute DROP   
DOUBLE BUFFER CANVA IupSetAttribute DROP
['] BLA ACTION CANVA IupSetCallback DROP
0 IupFill CANVA IupFill 4 IupHbox TO HB
HB IupDialog TO DLG
S" GL-TEST" DROP TITLE DLG  IupSetAttribute DROP
S" 300x300" DROP SIZE DLG IupSetAttribute DROP

DLG IupShow
IupMainLoop THROW
IupClose THROW

;
TEST


Вот почему не работает?

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Ср июн 24, 2020 11:59 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 174
Благодарил (а): 20 раз.
Поблагодарили: 13 раз.
Может, ['] BLA передавать при создании glcanvas? Он вообще вызывается?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Ср июн 24, 2020 14:04 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Вызывается он, отдельно проверял этот каллбек
Все как и в примере на Сях

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Ср июн 24, 2020 18:26 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
0.9 0.9 glVertex2f

А если тут через вектор? У OpenGL свои отношения со стеком, лучше передавать указатель на массив. Т.е. glVertex2dv


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Ср июн 24, 2020 18:52 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Hishnik писал(а):
0.9 0.9 glVertex2f

А если тут через вектор? У OpenGL свои отношения со стеком, лучше передавать указатель на массив. Т.е. glVertex2dv

В смысле?
Непонятно откуда значения брать будет?
Толи с FPU толи со стека возвратов?

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Ср июн 24, 2020 21:22 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Сейчас с freeglut начал тестировать та же проблема.
В общем, Хищник прав :))
Лучше использовать массивы.
У меня отчего-то glColor3i тупо не работал.
стоило заменить glColor3f и закинуть флоаты на стек данных, как сразу все нарисовалось

Код:
WINAPI: glutInit          FREEGLUT
WINAPI: glutInitDisplayMode      FREEGLUT
WINAPI: glutInitWindowSize      FREEGLUT
WINAPI: glutInitWindowPosition      FREEGLUT
WINAPI: glutCreateWindow      FREEGLUT
WINAPI: glutReshapeFunc         FREEGLUT
WINAPI: glutDisplayFunc         FREEGLUT
WINAPI: glutSwapBuffers         FREEGLUT
WINAPI: glutMainLoop         FREEGLUT

WINAPI: glDrawPixels      OPENGL32
WINAPI: glViewport      OPENGL32
WINAPI: glMatrixMode      OPENGL32
WINAPI: glLoadIdentity      OPENGL32
WINAPI: glClearColor      OPENGL32
WINAPI: glClear       OPENGL32
WINAPI: glColor3i      OPENGL32
WINAPI: glColor3f      OPENGL32
WINAPI: glVertex3i      OPENGL32
WINAPI: glVertex2i      OPENGL32
WINAPI: glVertex2f      OPENGL32
WINAPI: glVertex2fv      OPENGL32
WINAPI: glVertex2iv      OPENGL32
WINAPI: glBegin         OPENGL32
WINAPI: glEnd         OPENGL32
WINAPI: glOrtho         OPENGL32
WINAPI: glLineWidth      OPENGL32

WINAPI: gluOrtho2D      GLU32


~ER/LOCALS/R-LOCAL.F CONTEXT @ ALT: TEMP-OUT

REQUIRE FLOAT ~ER/FLOAT/FLOAT.F ALSO FLOAT ' PREVIOUS >R



\ калбеки в нове настроены на самоочищение от параметров
\ в этом каллбеке 2 параметра, их очищать не надо. это сделает винда
\ т. к. снимает вызвавший
0 CALLBACK: RESHARE

DUP CELL+ @ SWAP @ { h w }
h w 0 0      glViewport
      
0x1701       glMatrixMode
      glLoadIdentity

\ h int>F FD> 0,0 FD>         \ работает и без этого
\ w int>F FD> 0,0 FD>
\       gluOrtho2D

0x1700 glMatrixMode
glLoadIdentity
;

: F, F> , ;

CREATE L1 0,5 F, 0,5 F,
CREATE L2 -0,5 F, 0,5 F,
CREATE L3 -0,2 F, -0,2 F,
CREATE L4 0,5 F, -0,5 F,

0 CALLBACK: DISP
0x4000 0x100 OR glClear  \ 0x4000 GL_COLOR_BUFFER_BIT

255.0 F> 255.0 F> 0.0 F> glColor3f   \ 3i ,сука, не работает!!!
7 glBegin \ квадрат 7  1 линия
L1      glVertex2fv
255.0 F> 0.0 F> 255.0 F> glColor3f
L2       glVertex2fv
0.0 F> 255.0 F> 255.0 F> glColor3f
L3      glVertex2fv
0.0 F> 44.0 F> 12.0 F> glColor3f
L4 glVertex2fv

glEnd

glutSwapBuffers   

;

: TEST
0 HERE glutInit
2 glutInitDisplayMode \ 0x0002 GLUT_DOUBLE - двойная буфферизация
600 800 glutInitWindowSize
S" GL-TEST" DROP glutCreateWindow
['] RESHARE glutReshapeFunc
['] DISP glutDisplayFunc
glutMainLoop
;

TEST

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Чт июн 25, 2020 16:55 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Следующий вопрос.

Попробовал запустить продвинутый пример отображения треугольника через шейдеры
https://learnopengl.com/Getting-started/Hello-Triangle

Естественно, файл OPENGL32 валяющийся в папке system32 не подходит для такого кода (тупо нет функций)
Где можно взять подходящуюю DLL для GL версии 3.0 и выше?

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Чт июн 25, 2020 19:32 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Victor__v писал(а):
Естественно, файл OPENGL32 валяющийся в папке system32 не подходит для такого кода (тупо нет функций)
Где можно взять подходящуюю DLL для GL версии 3.0 и выше?

Обновить драйверы, желательно полным пакетом от производителя. Это в случае, если с момента установки ОС вообще ничего специально не ставилось.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Чт июн 25, 2020 20:25 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Hishnik писал(а):
Victor__v писал(а):
Естественно, файл OPENGL32 валяющийся в папке system32 не подходит для такого кода (тупо нет функций)
Где можно взять подходящуюю DLL для GL версии 3.0 и выше?

Обновить драйверы, желательно полным пакетом от производителя. Это в случае, если с момента установки ОС вообще ничего специально не ставилось.

Я обновлял драйверы меньше года назад на видеокарту NVIDEA

Мне нужна, надеюсь, только DLL
Может ли случится так, что она просто валяется где-то под другим названием?

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Чт июн 25, 2020 20:56 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Victor__v писал(а):
Может ли случится так, что она просто валяется где-то под другим названием?

Скорее под тем же названием, правильная (обновленная) версия, но при старте находит старую, которая была в ОС по умолчанию. Это зависит от того, в каком порядке в PATH перечислено. Можно попробовать положить правильный файл прямо в папку проекта.

Кроме того, там еще что-то в glu32.dll


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Чт июн 25, 2020 21:57 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Сейчас вот нашел
https://www.khronos.org/opengl/wiki/Pla ... on_Windows

Там есть как и исходники, так и 2 DLL

Закинул себе в папку с фортом, по крайней мене не вылетает.
Хотя я не уверен в используемой конвенции вызовов. Наверно придется лезть в исходники.
Однако сами функции с этими, как их там, пометками компилятора
То есть функция glCreateShader называется _glCreateShader@4 например

В общем, пример из урока запустил но он не работает :)

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Чт июн 25, 2020 22:21 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Victor__v писал(а):
В общем, пример из урока запустил но он не работает :)

Если ещё пробовать запускать примеры из "древних" OpenGL SDK то они бывает интересно работаю/неработают
в современном графическом окружении операционной системы. :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Чт июн 25, 2020 23:50 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Треугольник нарисовался.
Однако шейдеры не хотят работать.
Ошибка кстати интересная.
glsl 3.00 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.00 ES, and 3.00 ES
Что делать?
в качестве обертки использую freeglut

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Пт июн 26, 2020 00:10 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Victor__v писал(а):
glsl 3.00 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.00 ES, and 3.00 ES
Что делать?

А какая видеокарта? Может, и правда not supported?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Пт июн 26, 2020 00:19 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Hishnik писал(а):
Victor__v писал(а):
glsl 3.00 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.00 ES, and 3.00 ES
Что делать?

А какая видеокарта? Может, и правда not supported?

intel hd graphics 4000
и
NVidea GeForce 710M

Вообще подозреваю, что виновата библиотека Mesa3D откуда я и взял OPENGL32.DLL
Поскольку не только мне посчастливилось столкнуться с похожей ошибкой

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


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

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB