Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср авг 05, 2020 17:14

...
Google Search
Forth-FAQ Spy Grafic

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




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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1020
Благодарил (а): 1 раз.
Поблагодарили: 8 раз.
Короче, зря я скачивал эту библиотеку Mesa3D, ошибка в ней.
Применив особое шаманство с помощью функции wglGetProcAddress, я смог получить нужные функции из стандартного OPENGL32
И шейдеры начали компилироваться.
Так узрите, великий оранжевый треугольник сделанный на сером фоне :dmad; :dmad; :dmad;
Изображение

Вот не любят люди говорить очевидные вещи для тех, кто программирует на низком/среднем уровне.

Что надо сделать, чтобы получить нужные функции из OPENGL32 версии 3 и выше?

А надо из OPENGL32.DLL вызвать wglGetProcAddress, которой надо скормить ANSII-строку с именем функции например glCreateShader
получить тем самым указатель на функцию и написать обертку вокруг него.
Ах да, указатель на нужную функцию можно получить только при определении контекста openGL

Короче, для форта ничего сложного.

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6995
Благодарил (а): 17 раз.
Поблагодарили: 114 раз.
В полку 3D-фортов прибыло! :pilot;


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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1020
Благодарил (а): 1 раз.
Поблагодарили: 8 раз.
Hishnik писал(а):
В полку 3D-фортов прибыло! :pilot;

Только впереди еще куча примеров-уроков.

Да и я, если честно, треть не понял из того кода, что перевел с Си на форт :)

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


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

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 1239
Благодарил (а): 3 раз.
Поблагодарили: 45 раз.
Victor__v писал(а):
Hishnik писал(а):
В полку 3D-фортов прибыло! :pilot;

Только впереди еще куча примеров-уроков.

Да и я, если честно, треть не понял из того кода, что перевел с Си на форт :)


А какой первоисточник примеров?
И, под SPF4 запускаются?

P.S. Сам только запускал и смотрел примеры NeHeLessonsIn4th перенесённые под Win32Forth размещённые здесь (немного пришлось подправить версию Win32Forth, чтобы они запустились) и под Андроидом вращающийся треугольник из gForth для него (Упомянут в этой теме. :)


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6995
Благодарил (а): 17 раз.
Поблагодарили: 114 раз.
Victor__v писал(а):
Да и я, если честно, треть не понял из того кода, что перевел с Си на форт

Может выявиться проблема, что все программирование становится похоже на повторение в Форте уже существующего в Си. Получится "то же самое, но на Форте". А надо бы получить какие-то заметные отличия, чтобы пользоваться этим можно было иначе, удобнее для программиста.


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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1020
Благодарил (а): 1 раз.
Поблагодарили: 8 раз.
Hishnik писал(а):
Может выявиться проблема, что все программирование становится похоже на повторение в Форте уже существующего в Си. Получится "то же самое, но на Форте". А надо бы получить какие-то заметные отличия, чтобы пользоваться этим можно было иначе, удобнее для программиста.


Сейчас моя подцель просто понять как это все работает.
В чем преимущество уроков на Си https://learnopengl.com/ , так это в том, что там нет всяких упрощений.
А так свой удобный "фреймворк по OpenGL" на форте можно написать, но для этого неплохо было бы изучить предмет не так ли?

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


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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1020
Благодарил (а): 1 раз.
Поблагодарили: 8 раз.
KPG писал(а):
А какой первоисточник примеров?
И, под SPF4 запускаются?

См. в предыдущем сообщении.
Не пробовал.
Нова в этом деле, ИМХО, удобнее :lol:
Вот отдельная папочка для тестов.


Вложения:
OPENGL-LES1.7z [84.21 Кб]
Скачиваний: 48

_________________
Цель: сделать 64-битную Нову под Винду
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: IUP и OPENGL
СообщениеДобавлено: Вт июн 30, 2020 15:28 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 118
Откуда: Москва
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Кстати, а почему в примере используются разные варианты написания поллитры (0.5 и 0,5)? Или Nova оба варианта одинаково понимает?


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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1020
Благодарил (а): 1 раз.
Поблагодарили: 8 раз.
Total Vacuum писал(а):
Кстати, а почему в примере используются разные варианты написания поллитры (0.5 и 0,5)? Или Nova оба варианта одинаково понимает?

Я реализовал так в либе вещественных чисел чисто для удобства.

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


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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1020
Благодарил (а): 1 раз.
Поблагодарили: 8 раз.
Вопрос по текстурам.

Как их собственно загрузить, чтоб OpenGL понимал?
Просто в примеры используются сторонние либы.
Знает ли кто-нибудь DLL для загрузки png, например, в память, чтоб OpenGL прочел?
А то на форуме только пример с bmp видел с загрузкой в ручном режиме от Хищника :)

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


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

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 1239
Благодарил (а): 3 раз.
Поблагодарили: 45 раз.
Victor__v писал(а):
Вопрос по текстурам.
Знает ли кто-нибудь DLL для загрузки png, например, в память, чтоб OpenGL прочел?)

Может использовать стороннюю библиотеку, например freeimage.dll для получения битмапа, а его уже загружать в OpenGL?

P.S. Freeimage.dll используется в Win32Forth и форумчанин F-MAP давал ссылку на использование её в своей кадастровой CAD системе F-MAP (сделана на SPF4).
У ~yz на персональной страничке сайта forth.org.ru был пример печати несколько картинок на одном листе TIFF - tprint


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6995
Благодарил (а): 17 раз.
Поблагодарили: 114 раз.
Victor__v писал(а):
Знает ли кто-нибудь DLL для загрузки png, например, в память, чтоб OpenGL прочел?

OpenGL файлы не читает. Текстура задается в памяти в одном из RGB-форматов, bmp тут просто удобнее, потому что можно пропустить заголовок и получить те самые несжатые пиксельные данные.


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

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 75
Благодарил (а): 9 раз.
Поблагодарили: 5 раз.
Для чтения различных форматов файлов изображений есть библиотека IM. Можно загрузить какой-нибудь JPEG и получить битмап в памяти, который уже и скормить OpenGL


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

Зарегистрирован: Пт июн 06, 2008 14:21
Сообщения: 110
Откуда: Карелия
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.
KPG писал(а):
Victor__v писал(а):
Вопрос по текстурам.
Знает ли кто-нибудь DLL для загрузки png, например, в память, чтоб OpenGL прочел?)

Может использовать стороннюю библиотеку, например freeimage.dll для получения битмапа, а его уже загружать в OpenGL?

P.S. Freeimage.dll используется в Win32Forth и форумчанин F-MAP давал ссылку на использование её в своей кадастровой CAD системе F-MAP (сделана на SPF4).
У ~yz на персональной страничке сайта forth.org.ru был пример печати несколько картинок на одном листе TIFF - tprint


freeimage.dll достаточно просто использовать для загрузки любых форматов. Использую такой вариант для вывода картинок на SPF4:
Код:
\  Test 09.09.2010 13:15:13
WINAPI: _FreeImage_Initialise@4   FreeImage.dll
WINAPI: _FreeImage_DeInitialise@0 FreeImage.dll
WINAPI: _FreeImage_GetFileType@8  FreeImage.dll
WINAPI: _FreeImage_Load@12        FreeImage.dll
WINAPI: _FreeImage_Save@16        FreeImage.dll
WINAPI: _FreeImage_Unload@4       FreeImage.dll
WINAPI: _FreeImage_GetWidth@4         FreeImage.dll
WINAPI: _FreeImage_GetHeight@4        FreeImage.dll
WINAPI: _FreeImage_GetVersion@0       FreeImage.dll
WINAPI: _FreeImage_GetInfo@4          FreeImage.dll
\ WINAPI: _FreeImage_GetMemorySize@4    FreeImage.dll

: Bi->pal \ размер палитры
hdib biClrUsed @ ?DUP IF EXIT THEN
hdib biBitCount W@
DUP 1 = IF DROP 2 ELSE
DUP 4 = IF DROP 16 ELSE
    8 = IF 256  ELSE
    0 THEN THEN THEN
;

\ Вставить картинку из файла на metadc
\ например в форму  c масштабированием

: Picture { fa fu x y h w \ f rw rh -- }  \ fa fu - путь к файлу
                                      \ x - с верху до верх-левого угла
fu IF                                \ y - слева   до верх-левого угла
                                     \ h - раст. от верха до низа рисунка
                                     \ w - ширина рисунка


0 fa      _FreeImage_GetFileType@8
0 fa ROT _FreeImage_Load@12  -> f
f IF
f _FreeImage_GetWidth@4 -> rw
f _FreeImage_GetHeight@4 -> rh
f _FreeImage_GetInfo@4 TO hdib  \ заголовок dib
  hdib DUP @ + Bi->pal  4 * + TO datdib \ данные

  COLORONCOLOR    metaDC SetStretchBltMode
  SRCCOPY DIB_RGB_COLORS hdib datdib  rh rw   0 0
  h w  x  y
  metaDC StretchDIBits DROP
         metaDC SetStretchBltMode DROP

  f _FreeImage_Unload@4  DROP
  THEN
   THEN
;


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

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


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

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


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

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