NickGastovski
может проще сделать GLFW элемент для winforms?
из окна создаваемого с помощью GLFW
просто так у тебя наврятли что либо получится
Поэтому я спрашиваю,можно ли в glfw,так же передать уже готовый hwnd,вместо его создания с 0;
Нет. Вообще, в твоём случае GLFW немного не в тему.
может проще сделать GLFW элемент для winforms?
из окна создаваемого с помощью GLFW
просто так у тебя наврятли что либо получится
Не гуд,проще модифицировать либу,для работы с уже готовым HWND
Рантайм движка должен быть минимально платформозависимым,поэтому я хочу заюзать glfw,для создания контекста.
Поэтому спрашиваю,есть ли возможность выполнять создание контекста,с уже готовым hwnd,из коробки.
Держать 2версии,одну для редактора,другую для рантайма-идиотизм.
От winforms отказываться не хочу.(qt не переношу,wxwidgets люблю,но скорость разработки низкая)
NickGastovski
о какой платформо независимости идет речь
если мы говорим о winforms?
cNoNim,editor winonly
runtime crossplatform
NickGastovski
тада в чем идиотизм держания двух версий?
glfw только инициализирует окно и контекст, рендерингом занимается opengl
ну и подсовывай ему окно редактора, какие проблемы та?
cNoNim,хорошо,объясняю более популярно
В текущей версии,создание окна,контекста,инпут,все сделано на winapi(20кб)=>windows only
Представляем,что надо портировать это все на *nix,mac=>переписываем это все.
А теперь смотрим,не выгоднее ли нам переписать все это на фреймворк?работать с одним API и забыть про это все.
-выгоднее...
А зачем нам держать две версии,когда кроссплатформенная версия покрывает весь функционал?-незачем,поэтому ищу способ передать hwnd
NickGastovski
> qt не переношу
За что?
>За что?
NickGastovski
ты ищешь способ потому что не понимаешь принципов работы
GLFW создает окно и управляет событиями этого окна
событиями окна созданного с помощью WinForm управляет winforms
кроме этого GLFW не делает по большому счету ни чего
если ты собираешься заменить создание окна у GLFW на то что создает WinForms
то тебе так же придется заменять и обработку событий
если ты заменишь это все то ты так и так перепишешь весь функционал GLFW
и какой от этого всего профит?
и вообще ты чета путаешься в показаниях
WinForms это .Net Winapi это натив
таки на чем у тебя там что?
если у тебя редактор .Net то для правильной интеграции с WinForms
правильнее было написать контрол врапер, который будет иметь интерфейс контрола WinForms,
но фактически будет создаваться с помощью GLFW
и так и так работы много, и в том числе придется переписывать некоторый функционал GLFW
но в том раскладе который ты предлагаешь, ты тупо перепишешь весь GLFW для того что бы подсунуть ему окно из WinForms
я не понимаю для чего?
>я не понимаю для чего?
cNoNim
у меня движок полностью Native
Через Swig у меня сгенирированы биндинги для запуска движка(GameStart)
вот,как он выглядит
void EngineStart(IGame*game,int _hwnd) void GameStart( HWND _hwnd){ EngineStart( new Game( ),_hwnd); }
Уже потом,происходит преобразование hwnd из типа int в HWND -в системе создания окна
Ну и дергаю из managed кода
Object::Object():mInit(false){} Object::Object_paint(){if(!mInit) game.GameStart(this.Handle.ToInt32()) }
Object-это класс элемента,в который мы рендерим.
NickGastovski
Object::Object_paint(){if( !mInit) game.GameStart( this.Handle.ToInt32( )) }
в этом месте окно уже создано, и событиями окна управляет WinForms
объясни еще раз для чего тебе здесь GLFW?
только контекст создать?
ну так создай его в редакторе в чем проблема та?
в рантайме создавай окно и контекст с помощью GLFW
в редакторе окно создает WinForms а контекст создавай ручками
и все
для чего у тебя вообще в движке этот дроч с окнами?
зачем движку хендл окна?
создавай контекст вне движка, а в движке просто дергай GL функции
>объясни еще раз для чего тебе здесь GLFW?
я хочу избавиться от платформозависимой части,в коде движка
>только контекст создать?
да,по уже готовому hwnd элемента
>в редакторе окно создает WinForms а контекст создавай ручками
Это не путь джедая=)я стремлюсь уменьшить количество кода
Тихо мирно релизнулись до версии 3.1
Тема в архиве.