Forth http://fforum.winglion.ru/ |
|
IUP и OPENGL http://fforum.winglion.ru/viewtopic.php?f=2&t=3271 |
Страница 2 из 2 |
Автор: | Victor__v [ Пт июн 26, 2020 07:07 ] |
Заголовок сообщения: | Re: IUP и OPENGL |
Короче, зря я скачивал эту библиотеку Mesa3D, ошибка в ней. Применив особое шаманство с помощью функции wglGetProcAddress, я смог получить нужные функции из стандартного OPENGL32 И шейдеры начали компилироваться. Так узрите, великий оранжевый треугольник сделанный на сером фоне Вот не любят люди говорить очевидные вещи для тех, кто программирует на низком/среднем уровне. Что надо сделать, чтобы получить нужные функции из OPENGL32 версии 3 и выше? А надо из OPENGL32.DLL вызвать wglGetProcAddress, которой надо скормить ANSII-строку с именем функции например glCreateShader получить тем самым указатель на функцию и написать обертку вокруг него. Ах да, указатель на нужную функцию можно получить только при определении контекста openGL Короче, для форта ничего сложного. |
Автор: | Hishnik [ Пт июн 26, 2020 14:24 ] |
Заголовок сообщения: | Re: IUP и OPENGL |
В полку 3D-фортов прибыло! |
Автор: | Victor__v [ Пт июн 26, 2020 14:34 ] |
Заголовок сообщения: | Re: IUP и OPENGL |
Hishnik писал(а): В полку 3D-фортов прибыло! Только впереди еще куча примеров-уроков. Да и я, если честно, треть не понял из того кода, что перевел с Си на форт |
Автор: | KPG [ Пт июн 26, 2020 16:55 ] |
Заголовок сообщения: | Re: IUP и OPENGL |
Victor__v писал(а): Hishnik писал(а): В полку 3D-фортов прибыло! Только впереди еще куча примеров-уроков. Да и я, если честно, треть не понял из того кода, что перевел с Си на форт А какой первоисточник примеров? И, под SPF4 запускаются? P.S. Сам только запускал и смотрел примеры NeHeLessonsIn4th перенесённые под Win32Forth размещённые здесь (немного пришлось подправить версию Win32Forth, чтобы они запустились) и под Андроидом вращающийся треугольник из gForth для него (Упомянут в этой теме. |
Автор: | Hishnik [ Пт июн 26, 2020 19:02 ] |
Заголовок сообщения: | Re: IUP и OPENGL |
Victor__v писал(а): Да и я, если честно, треть не понял из того кода, что перевел с Си на форт Может выявиться проблема, что все программирование становится похоже на повторение в Форте уже существующего в Си. Получится "то же самое, но на Форте". А надо бы получить какие-то заметные отличия, чтобы пользоваться этим можно было иначе, удобнее для программиста. |
Автор: | Victor__v [ Пт июн 26, 2020 19:24 ] |
Заголовок сообщения: | Re: IUP и OPENGL |
Hishnik писал(а): Может выявиться проблема, что все программирование становится похоже на повторение в Форте уже существующего в Си. Получится "то же самое, но на Форте". А надо бы получить какие-то заметные отличия, чтобы пользоваться этим можно было иначе, удобнее для программиста. Сейчас моя подцель просто понять как это все работает. В чем преимущество уроков на Си https://learnopengl.com/ , так это в том, что там нет всяких упрощений. А так свой удобный "фреймворк по OpenGL" на форте можно написать, но для этого неплохо было бы изучить предмет не так ли? |
Автор: | Victor__v [ Пт июн 26, 2020 19:45 ] | ||
Заголовок сообщения: | Re: IUP и OPENGL | ||
KPG писал(а): А какой первоисточник примеров? И, под SPF4 запускаются? См. в предыдущем сообщении. Не пробовал. Нова в этом деле, ИМХО, удобнее Вот отдельная папочка для тестов.
|
Автор: | Total Vacuum [ Вт июн 30, 2020 15:28 ] |
Заголовок сообщения: | Re: IUP и OPENGL |
Кстати, а почему в примере используются разные варианты написания поллитры (0.5 и 0,5)? Или Nova оба варианта одинаково понимает? |
Автор: | Victor__v [ Вт июн 30, 2020 15:35 ] |
Заголовок сообщения: | Re: IUP и OPENGL |
Total Vacuum писал(а): Кстати, а почему в примере используются разные варианты написания поллитры (0.5 и 0,5)? Или Nova оба варианта одинаково понимает? Я реализовал так в либе вещественных чисел чисто для удобства. |
Автор: | Victor__v [ Ср июл 01, 2020 13:31 ] |
Заголовок сообщения: | Re: IUP и OPENGL |
Вопрос по текстурам. Как их собственно загрузить, чтоб OpenGL понимал? Просто в примеры используются сторонние либы. Знает ли кто-нибудь DLL для загрузки png, например, в память, чтоб OpenGL прочел? А то на форуме только пример с bmp видел с загрузкой в ручном режиме от Хищника |
Автор: | KPG [ Ср июл 01, 2020 14:04 ] |
Заголовок сообщения: | Re: IUP и OPENGL |
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 |
Автор: | Hishnik [ Ср июл 01, 2020 17:40 ] |
Заголовок сообщения: | Re: IUP и OPENGL |
Victor__v писал(а): Знает ли кто-нибудь DLL для загрузки png, например, в память, чтоб OpenGL прочел? OpenGL файлы не читает. Текстура задается в памяти в одном из RGB-форматов, bmp тут просто удобнее, потому что можно пропустить заголовок и получить те самые несжатые пиксельные данные. |
Автор: | zma [ Ср июл 01, 2020 21:07 ] |
Заголовок сообщения: | Re: IUP и OPENGL |
Для чтения различных форматов файлов изображений есть библиотека IM. Можно загрузить какой-нибудь JPEG и получить битмап в памяти, который уже и скормить OpenGL |
Автор: | F-MAP [ Ср июл 01, 2020 22:28 ] |
Заголовок сообщения: | Re: IUP и OPENGL |
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 ; |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |