Автор |
Сообщение |
|
|
Заголовок сообщения: |
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 - tprintfreeimage.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 ;
[quote="KPG"][quote="Victor__v"]Вопрос по текстурам. Знает ли кто-нибудь DLL для загрузки png, например, в память, чтоб OpenGL прочел?)[/quote] Может использовать стороннюю библиотеку, например freeimage.dll для получения битмапа, а его уже загружать в OpenGL? P.S. Freeimage.dll используется в Win32Forth и форумчанин F-MAP давал ссылку на использование её в своей кадастровой CAD системе F-MAP (сделана на SPF4). У [url=https://web.archive.org/web/20081120151349/http://www.forth.org.ru/~yz/prog.html#dtp]~yz на персональной страничке сайта forth.org.ru был пример печати несколько картинок на одном листе TIFF - tprint[/url][/quote]
freeimage.dll достаточно просто использовать для загрузки любых форматов. Использую такой вариант для вывода картинок на SPF4: [code] \ 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 ;[/code]
|
|
|
|
Добавлено: Ср июл 01, 2020 22:28 |
|
|
|
|
|
Заголовок сообщения: |
Re: IUP и OPENGL |
|
|
Для чтения различных форматов файлов изображений есть библиотека IM. Можно загрузить какой-нибудь JPEG и получить битмап в памяти, который уже и скормить OpenGL
Для чтения различных форматов файлов изображений есть библиотека [url=http://webserver2.tecgraf.puc-rio.br/im/]IM[/url]. Можно загрузить какой-нибудь JPEG и получить битмап в памяти, который уже и скормить OpenGL
|
|
|
|
Добавлено: Ср июл 01, 2020 21:07 |
|
|
|
|
|
Заголовок сообщения: |
Re: IUP и OPENGL |
|
|
Victor__v писал(а): Знает ли кто-нибудь DLL для загрузки png, например, в память, чтоб OpenGL прочел? OpenGL файлы не читает. Текстура задается в памяти в одном из RGB-форматов, bmp тут просто удобнее, потому что можно пропустить заголовок и получить те самые несжатые пиксельные данные.
[quote="Victor__v"]Знает ли кто-нибудь DLL для загрузки png, например, в память, чтоб OpenGL прочел?[/quote] OpenGL файлы не читает. Текстура задается в памяти в одном из RGB-форматов, bmp тут просто удобнее, потому что можно пропустить заголовок и получить те самые несжатые пиксельные данные.
|
|
|
|
Добавлено: Ср июл 01, 2020 17:40 |
|
|
|
|
|
Заголовок сообщения: |
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
[quote="Victor__v"]Вопрос по текстурам. Знает ли кто-нибудь DLL для загрузки png, например, в память, чтоб OpenGL прочел?)[/quote] Может использовать стороннюю библиотеку, например freeimage.dll для получения битмапа, а его уже загружать в OpenGL? P.S. Freeimage.dll используется в Win32Forth и форумчанин F-MAP давал ссылку на использование её в своей кадастровой CAD системе F-MAP (сделана на SPF4). У [url=https://web.archive.org/web/20081120151349/http://www.forth.org.ru/~yz/prog.html#dtp]~yz на персональной страничке сайта forth.org.ru был пример печати несколько картинок на одном листе TIFF - tprint[/url]
|
|
|
|
Добавлено: Ср июл 01, 2020 14:04 |
|
|
|
|
|
Заголовок сообщения: |
Re: IUP и OPENGL |
|
|
Вопрос по текстурам. Как их собственно загрузить, чтоб OpenGL понимал? Просто в примеры используются сторонние либы. Знает ли кто-нибудь DLL для загрузки png, например, в память, чтоб OpenGL прочел? А то на форуме только пример с bmp видел с загрузкой в ручном режиме от Хищника
Вопрос по текстурам.
Как их собственно загрузить, чтоб OpenGL понимал? Просто в примеры используются сторонние либы. Знает ли кто-нибудь DLL для загрузки png, например, в память, чтоб OpenGL прочел? А то на форуме только пример с bmp видел с загрузкой в ручном режиме от Хищника :)
|
|
|
|
Добавлено: Ср июл 01, 2020 13:31 |
|
|
|
|
|
Заголовок сообщения: |
Re: IUP и OPENGL |
|
|
Total Vacuum писал(а): Кстати, а почему в примере используются разные варианты написания поллитры (0.5 и 0,5)? Или Nova оба варианта одинаково понимает? Я реализовал так в либе вещественных чисел чисто для удобства.
[quote="Total Vacuum"]Кстати, а почему в примере используются разные варианты написания поллитры ([b]0.5[/b] и [b]0,5[/b])? Или Nova оба варианта одинаково понимает?[/quote] Я реализовал так в либе вещественных чисел чисто для удобства.
|
|
|
|
Добавлено: Вт июн 30, 2020 15:35 |
|
|
|
|
|
Заголовок сообщения: |
Re: IUP и OPENGL |
|
|
Кстати, а почему в примере используются разные варианты написания поллитры (0.5 и 0,5)? Или Nova оба варианта одинаково понимает?
Кстати, а почему в примере используются разные варианты написания поллитры ([b]0.5[/b] и [b]0,5[/b])? Или Nova оба варианта одинаково понимает?
|
|
|
|
Добавлено: Вт июн 30, 2020 15:28 |
|
|
|
|
|
Заголовок сообщения: |
Re: IUP и OPENGL |
|
|
KPG писал(а): А какой первоисточник примеров? И, под SPF4 запускаются?
См. в предыдущем сообщении. Не пробовал. Нова в этом деле, ИМХО, удобнее Вот отдельная папочка для тестов.
[quote="KPG"] А какой первоисточник примеров? И, под SPF4 запускаются? [/quote] См. в предыдущем сообщении. Не пробовал. Нова в этом деле, ИМХО, удобнее :lol: Вот отдельная папочка для тестов.
|
|
|
|
Добавлено: Пт июн 26, 2020 19:45 |
|
|
|
|
|
Заголовок сообщения: |
Re: IUP и OPENGL |
|
|
Hishnik писал(а): Может выявиться проблема, что все программирование становится похоже на повторение в Форте уже существующего в Си. Получится "то же самое, но на Форте". А надо бы получить какие-то заметные отличия, чтобы пользоваться этим можно было иначе, удобнее для программиста. Сейчас моя подцель просто понять как это все работает. В чем преимущество уроков на Си https://learnopengl.com/ , так это в том, что там нет всяких упрощений. А так свой удобный "фреймворк по OpenGL" на форте можно написать, но для этого неплохо было бы изучить предмет не так ли?
[quote="Hishnik"] Может выявиться проблема, что все программирование становится похоже на повторение в Форте уже существующего в Си. Получится "то же самое, но на Форте". А надо бы получить какие-то заметные отличия, чтобы пользоваться этим можно было иначе, удобнее для программиста.[/quote]
Сейчас моя подцель просто понять как это все работает. В чем преимущество уроков на Си https://learnopengl.com/ , так это в том, что там нет всяких упрощений. А так свой удобный "фреймворк по OpenGL" на форте можно написать, но для этого неплохо было бы изучить предмет не так ли?
|
|
|
|
Добавлено: Пт июн 26, 2020 19:24 |
|
|
|
|
|
Заголовок сообщения: |
Re: IUP и OPENGL |
|
|
Victor__v писал(а): Да и я, если честно, треть не понял из того кода, что перевел с Си на форт Может выявиться проблема, что все программирование становится похоже на повторение в Форте уже существующего в Си. Получится "то же самое, но на Форте". А надо бы получить какие-то заметные отличия, чтобы пользоваться этим можно было иначе, удобнее для программиста.
[quote="Victor__v"]Да и я, если честно, треть не понял из того кода, что перевел с Си на форт[/quote] Может выявиться проблема, что все программирование становится похоже на повторение в Форте уже существующего в Си. Получится "то же самое, но на Форте". А надо бы получить какие-то заметные отличия, чтобы пользоваться этим можно было иначе, удобнее для программиста.
|
|
|
|
Добавлено: Пт июн 26, 2020 19:02 |
|
|
|
|
|
Заголовок сообщения: |
Re: IUP и OPENGL |
|
|
Victor__v писал(а): Hishnik писал(а): В полку 3D-фортов прибыло! Только впереди еще куча примеров-уроков. Да и я, если честно, треть не понял из того кода, что перевел с Си на форт А какой первоисточник примеров? И, под SPF4 запускаются? P.S. Сам только запускал и смотрел примеры NeHeLessonsIn4th перенесённые под Win32Forth размещённые здесь (немного пришлось подправить версию Win32Forth, чтобы они запустились) и под Андроидом вращающийся треугольник из gForth для него ( Упомянут в этой теме.
[quote="Victor__v"][quote="Hishnik"]В полку 3D-фортов прибыло! :pilot;[/quote] Только впереди еще куча примеров-уроков.
Да и я, если честно, треть не понял из того кода, что перевел с Си на форт :)[/quote]
А какой первоисточник примеров? И, под SPF4 запускаются?
P.S. Сам только запускал и смотрел примеры [url=https://sites.google.com/site/win324th/sources]NeHeLessonsIn4th перенесённые под Win32Forth размещённые здесь[/url] (немного пришлось подправить версию Win32Forth, чтобы они запустились) и под Андроидом вращающийся треугольник из gForth для него ([url=http://fforum.winglion.ru/viewtopic.php?f=4&t=3145]Упомянут в этой теме[/url]. :)
|
|
|
|
Добавлено: Пт июн 26, 2020 16:55 |
|
|
|
|
|
Заголовок сообщения: |
Re: IUP и OPENGL |
|
|
Hishnik писал(а): В полку 3D-фортов прибыло! Только впереди еще куча примеров-уроков. Да и я, если честно, треть не понял из того кода, что перевел с Си на форт
[quote="Hishnik"]В полку 3D-фортов прибыло! :pilot;[/quote] Только впереди еще куча примеров-уроков.
Да и я, если честно, треть не понял из того кода, что перевел с Си на форт :)
|
|
|
|
Добавлено: Пт июн 26, 2020 14:34 |
|
|
|
|
|
Заголовок сообщения: |
Re: IUP и OPENGL |
|
|
В полку 3D-фортов прибыло!
В полку 3D-фортов прибыло! :pilot;
|
|
|
|
Добавлено: Пт июн 26, 2020 14:24 |
|
|
|
|
|
Заголовок сообщения: |
Re: IUP и OPENGL |
|
|
Короче, зря я скачивал эту библиотеку Mesa3D, ошибка в ней. Применив особое шаманство с помощью функции wglGetProcAddress, я смог получить нужные функции из стандартного OPENGL32 И шейдеры начали компилироваться. Так узрите, великий оранжевый треугольник сделанный на сером фоне Вот не любят люди говорить очевидные вещи для тех, кто программирует на низком/среднем уровне. Что надо сделать, чтобы получить нужные функции из OPENGL32 версии 3 и выше? А надо из OPENGL32.DLL вызвать wglGetProcAddress, которой надо скормить ANSII-строку с именем функции например glCreateShader получить тем самым указатель на функцию и написать обертку вокруг него. Ах да, указатель на нужную функцию можно получить только при определении контекста openGL Короче, для форта ничего сложного.
Короче, зря я скачивал эту библиотеку Mesa3D, ошибка в ней. Применив особое шаманство с помощью функции [b]wglGetProcAddress[/b], я смог получить нужные функции из стандартного OPENGL32 И шейдеры начали компилироваться. Так узрите, великий оранжевый треугольник сделанный на сером фоне :dmad; :dmad; :dmad; [img]https://sun1-87.userapi.com/Liejfdlr52dSI8yFOlCzUa_7YFoH1_P6xbsWYQ/qdhDQZ8Z0Ow.jpg[/img]
Вот не любят люди говорить очевидные вещи для тех, кто программирует на низком/среднем уровне.
Что надо сделать, чтобы получить нужные функции из OPENGL32 версии 3 и выше?
А надо из OPENGL32.DLL вызвать [b]wglGetProcAddress[/b], которой надо скормить ANSII-строку с именем функции например [b]glCreateShader[/b] получить тем самым указатель на функцию и написать обертку вокруг него. Ах да, указатель на нужную функцию можно получить только при определении контекста openGL
Короче, для форта ничего сложного.
|
|
|
|
Добавлено: Пт июн 26, 2020 07:07 |
|
|
|
|
|
Заголовок сообщения: |
Re: IUP и OPENGL |
|
|
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 Поскольку не только мне посчастливилось столкнуться с похожей ошибкой
[quote="Hishnik"][quote="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 Что делать?[/quote] А какая видеокарта? Может, и правда not supported?[/quote] intel hd graphics 4000 и NVidea GeForce 710M
Вообще подозреваю, что виновата библиотека Mesa3D откуда я и взял OPENGL32.DLL Поскольку не только мне посчастливилось столкнуться с похожей ошибкой
|
|
|
|
Добавлено: Пт июн 26, 2020 00:19 |
|
|
|
|