Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 00:02

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - IUP и OPENGL
Автор Сообщение
  Заголовок сообщения:  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
;
Сообщение Добавлено: Ср июл 01, 2020 22:28
  Заголовок сообщения:  Re: IUP и OPENGL  Ответить с цитатой
Для чтения различных форматов файлов изображений есть библиотека IM. Можно загрузить какой-нибудь JPEG и получить битмап в памяти, который уже и скормить OpenGL
Сообщение Добавлено: Ср июл 01, 2020 21:07
  Заголовок сообщения:  Re: IUP и OPENGL  Ответить с цитатой
Victor__v писал(а):
Знает ли кто-нибудь DLL для загрузки png, например, в память, чтоб OpenGL прочел?

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
Сообщение Добавлено: Ср июл 01, 2020 14:04
  Заголовок сообщения:  Re: IUP и OPENGL  Ответить с цитатой
Вопрос по текстурам.

Как их собственно загрузить, чтоб OpenGL понимал?
Просто в примеры используются сторонние либы.
Знает ли кто-нибудь DLL для загрузки png, например, в память, чтоб OpenGL прочел?
А то на форуме только пример с bmp видел с загрузкой в ручном режиме от Хищника :)
Сообщение Добавлено: Ср июл 01, 2020 13:31
  Заголовок сообщения:  Re: IUP и OPENGL  Ответить с цитатой
Total Vacuum писал(а):
Кстати, а почему в примере используются разные варианты написания поллитры (0.5 и 0,5)? Или Nova оба варианта одинаково понимает?

Я реализовал так в либе вещественных чисел чисто для удобства.
Сообщение Добавлено: Вт июн 30, 2020 15:35
  Заголовок сообщения:  Re: IUP и OPENGL  Ответить с цитатой
Кстати, а почему в примере используются разные варианты написания поллитры (0.5 и 0,5)? Или Nova оба варианта одинаково понимает?
Сообщение Добавлено: Вт июн 30, 2020 15:28
  Заголовок сообщения:  Re: IUP и OPENGL  Ответить с цитатой
KPG писал(а):
А какой первоисточник примеров?
И, под SPF4 запускаются?

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


Вложения:
OPENGL-LES1.7z [84.21 Кб]
Скачиваний: 702
Сообщение Добавлено: Пт июн 26, 2020 19:45
  Заголовок сообщения:  Re: IUP и OPENGL  Ответить с цитатой
Hishnik писал(а):
Может выявиться проблема, что все программирование становится похоже на повторение в Форте уже существующего в Си. Получится "то же самое, но на Форте". А надо бы получить какие-то заметные отличия, чтобы пользоваться этим можно было иначе, удобнее для программиста.


Сейчас моя подцель просто понять как это все работает.
В чем преимущество уроков на Си https://learnopengl.com/ , так это в том, что там нет всяких упрощений.
А так свой удобный "фреймворк по OpenGL" на форте можно написать, но для этого неплохо было бы изучить предмет не так ли?
Сообщение Добавлено: Пт июн 26, 2020 19:24
  Заголовок сообщения:  Re: IUP и OPENGL  Ответить с цитатой
Victor__v писал(а):
Да и я, если честно, треть не понял из того кода, что перевел с Си на форт

Может выявиться проблема, что все программирование становится похоже на повторение в Форте уже существующего в Си. Получится "то же самое, но на Форте". А надо бы получить какие-то заметные отличия, чтобы пользоваться этим можно было иначе, удобнее для программиста.
Сообщение Добавлено: Пт июн 26, 2020 19:02
  Заголовок сообщения:  Re: IUP и OPENGL  Ответить с цитатой
Victor__v писал(а):
Hishnik писал(а):
В полку 3D-фортов прибыло! :pilot;

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

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


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

P.S. Сам только запускал и смотрел примеры NeHeLessonsIn4th перенесённые под Win32Forth размещённые здесь (немного пришлось подправить версию Win32Forth, чтобы они запустились) и под Андроидом вращающийся треугольник из gForth для него (Упомянут в этой теме. :)
Сообщение Добавлено: Пт июн 26, 2020 16:55
  Заголовок сообщения:  Re: IUP и OPENGL  Ответить с цитатой
Hishnik писал(а):
В полку 3D-фортов прибыло! :pilot;

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

Да и я, если честно, треть не понял из того кода, что перевел с Си на форт :)
Сообщение Добавлено: Пт июн 26, 2020 14:34
  Заголовок сообщения:  Re: IUP и OPENGL  Ответить с цитатой
В полку 3D-фортов прибыло! :pilot;
Сообщение Добавлено: Пт июн 26, 2020 14:24
  Заголовок сообщения:  Re: IUP и OPENGL  Ответить с цитатой
Короче, зря я скачивал эту библиотеку Mesa3D, ошибка в ней.
Применив особое шаманство с помощью функции wglGetProcAddress, я смог получить нужные функции из стандартного OPENGL32
И шейдеры начали компилироваться.
Так узрите, великий оранжевый треугольник сделанный на сером фоне :dmad; :dmad; :dmad;
Изображение

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

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

А надо из OPENGL32.DLL вызвать wglGetProcAddress, которой надо скормить ANSII-строку с именем функции например glCreateShader
получить тем самым указатель на функцию и написать обертку вокруг него.
Ах да, указатель на нужную функцию можно получить только при определении контекста 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
Поскольку не только мне посчастливилось столкнуться с похожей ошибкой
Сообщение Добавлено: Пт июн 26, 2020 00:19

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


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