OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 08 Октябрь, 2024 02:05

Часовой пояс: UTC + 3 часа


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему  [ Сообщений: 140 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Вторник, 30 Апрель, 2013 15:50 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Исходники данного проекта открыты? Где можно посмотреть реализацию?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Вторник, 30 Апрель, 2013 18:07 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Разработка открытая, но я пока исходники не публикую, потому что они для этого не готовы. Если у Вас есть вопросы, спрашивайте в этой ветке, я постараюсь ответить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Вторник, 30 Апрель, 2013 19:12 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Пётр Кушнир писал(а):
Разработка открытая, но я пока исходники не публикую, потому что они для этого не готовы. Если у Вас есть вопросы, спрашивайте в этой ветке, я постараюсь ответить.


Я пробывал писать, gui библиотеку на основе sdl. На каждый контроллер я завёл отдельный список и при перемещении мыши или нажатии кнопки, проходился по всем спискам и перебирал совпадение координат контроллера и мыши.

Я смотрел первые реализации gtk. У них проверка происходит в одном списке. Есть одна структура c union полями. Это даёт преимущества, всё реализовано в одном месте. Так как в обероне объединений нет, как это сделано у вас?

К примеру создание кнопок происходит так. Я намеренно не использую ооп.

{$mode objfpc}{$H+}

program Main;

uses
GUI, Button;

var
A: PButton;
B: PButton;
begin
GUI.Init(800, 600, 32);

A := Button.Create('Hello 1', 50, 50, 100, 30);

B := Button.Create('Hello 2', 50, 100, 100, 30);

Button.SetPos(A, 300, 50);

GUI.Loop;
end.

Пётр Кушнир писал(а):
Ну тут понятно, что для контролов уровня Windows или Qt нужен труд не только кодеров, но и дизайнеров,


Уверен, что для реализации стандартного интерфейса они не нужны. Если делать стиль windows 2000. Хватит только линий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Вторник, 30 Апрель, 2013 20:13 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Библиотека FreeGlut предоставляет средства по созданию окон с готовыми к использованию GL-контекстами.
Эти окна мы используем как порты, реализовав абстракции из Ports.
FreeGlut так же позволяет регистрировать процедуры-коллбэки для каждого окна, в коллбэки передаются данные о пользовательском вводе. То есть, при вызове коллбэка мы можем узнать окно, к которому относится данный вызов.
Полученные данные я помещаю в объекты-сообщения и передаю оконной подсистеме. В основе моей реализации оконной подсистемы используется паттерн Объект-сообщение.
Вот короткая цитата из Мёссенбёка (перевод Ивана Кузьмицкого):
Цитата:
9.4.1 Объект-сообщение

Одним из доступных способов работы с сообщениями являются методы. Другой способ - относиться к термину "отправка сообщения" буквально: в этом случае "сообщение" является пакетом данных (объект "сообщение") который рассылается от одного объекта-обработчика к другому. Для исполнения подобного, нам необходимы различные типы объектов-сообщений и метод, в котором эти объекты-сообщения обрабатываются.

Модуль Windows предоставляет для реализации абстракции оконной системы, которые просто нужно чётко исполнить. А выше моих реализаций уже работают стандартные механизмы БлэкБокса, фреймы, отображения, контейнеры, сообщения. Про них вы сможете прочитать в документации ББ, я их не менял.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Среда, 08 Май, 2013 00:14 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Вопрос - будет ли возможность работа с растром не через WinAPI, а более высокоуровнево и портабельно? То есть есть ряд задач когда у нас на входе есть массив представляющий набор пикселей, то есть растр, и это дело надо быстро выводить на экран. Скажем проигрывание видео.

PS. Функции вида PutPixel меня не интересуют. Нужно именно скопом вывести растр на экран. На входе массив содержащий данные для каждого пикселя.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Среда, 08 Май, 2013 11:23 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Да, растр очень важен... Давно мысли о дополнении к стандартному Port в плане растров бродют.

Если подумать глубже, то вообще можно было бы заложить "абстрактный растр" где-то под Port. Чтобы рендерить портовые операции на этот абстрактный растр независимо от графической платформы, а потом уже растр выводить через платформу.
Правда, эта мысль идёт сейчас вразрез с работой Ивана и Петра, как я понимаю - они используют OpenGL на уровне реализации рисования примитивов... так?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Среда, 08 Май, 2013 11:59 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Да, реализация интерфейса Ports делается полностью на OpenGL, в этом плане все дороги открыты, т.к. у OpenGL много возможностей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Среда, 08 Май, 2013 19:19 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Илья Ермаков писал(а):
Давно мысли о дополнении к стандартному Port в плане растров бродют.Если подумать глубже, то вообще можно было бы заложить "абстрактный растр" где-то под Port. Чтобы рендерить портовые операции на этот абстрактный растр независимо от графической платформы, а потом уже растр выводить через платформу.

Цитата:
Ports are carriers for pixel data. Examples of ports are screen and printer ports.

Чисто технически, порт и есть растр, а его физическим представлением в данном случае является кадровый буфер OpenGL. Хотя, есть и отличие, кадровые буферы обычно каждую "секунду" новые, а ББ-шный порт рассчитывает в некоторых случаях на то, что данные на экране хранятся без изменения до особой команды.
Но наверное такой режим можно и для OpenGL реализовать.
Поэтому, опять же, чисто технически, не хватает только особого Ports.Rider'а с методами, которые позволят гонять битмапы в буфер (а скорее всего, в текстуру на полигоне) и из него (как-нибудь сверхиффехтивна и сверхбыстра :) ).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Среда, 15 Май, 2013 10:58 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
После праздников сразу наступила жара, код совсем не пишется. Попробовал графоманство: Porting BlackBox.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Среда, 15 Май, 2013 13:27 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Пётр Кушнир писал(а):
После праздников сразу наступила жара, код совсем не пишется. Попробовал графоманство: Porting BlackBox.
Расширить жалкую оперативную память мозга текстом перед глазами -- мощная штука.

Пож., указывайте в текстах авторство.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Вторник, 28 Май, 2013 15:10 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Бинд к GLFW https://code.google.com/p/cp-glfw/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Вторник, 28 Май, 2013 20:53 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Вы пилите альтернативный хост?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Вторник, 28 Май, 2013 20:56 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Нет. Просто решил поделиться биндом.

ps Кстати, под линуксом наверно придется [ccall] выставлять у процедур.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Вторник, 28 Май, 2013 21:52 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Да можно везде ставить, в винде тоже работает, для либ, скомпиленых под MinGW.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Вторник, 28 Май, 2013 22:13 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Наверно так и сделаю


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Вторник, 05 Ноябрь, 2013 16:39 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Хотелось бы узнать судьбу проекта. Что сделано, что осталось, развивается ли?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Вторник, 05 Ноябрь, 2013 19:25 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Все Вас ждут, вот представляете?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Вторник, 05 Ноябрь, 2013 19:45 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
С вами сложно вести диалог.

Я лишь всего задал вопрос, в каком состоянии находится данная разработка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Вторник, 05 Ноябрь, 2013 19:51 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4707
Откуда: Россия, Орёл
Товарищи, давайте поспокойнее. Ругаться в ЛС.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox на OpenGL
СообщениеДобавлено: Вторник, 05 Ноябрь, 2013 19:54 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Jordan писал(а):
С вами сложно вести диалог.
Предполагаю, что Вы будете более уместны в этом треде http://oberspace.dyndns.org/index.php/t ... l#msg17268


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 140 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7  След.

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB