2013-11-09 2 views
0

Firebreath로 플러그인을 개발하려고합니다. 샘플을 참조하고 테스트 플러그인을 만들 수 있습니다. 이제 LIBSDL로 UI 부분을 작성하기로 결정했습니다.FireBreath 및 Libsdl로 플러그인 만들기

SDL을 사용하여 창을 만들었을 때 브라우저 외부에 창을 새로 만듭니다.

LIBSDL을 사용하여 플러그인 영역 내에 창을 만들 수 있습니까?

+0

내가 SDL에 익숙하지 않은, 그래서 I 잘 모르겠지만 SDL이 플러그인의 HWND의 하위 창인 창을 만들도록해야합니다. 또는 창을 만들고 SDL로 전달하여 – taxilian

+0

Thanks Taxilian을 사용하는 방법을 찾을 수 있는지 확인하십시오. 플러그인의 HWND의 하위 창으로 SDL 창을 사용하면 Mac 및 유닉스와 같은 모든 플랫폼에서 사용할 수 있습니까? –

+0

모든 플랫폼에서 지원할 수있는 Firebreath 플러그인 UI를 만들기위한 라이브러리를 제안 해 주시겠습니까? –

답변

0

예, sdl 1.2.15에서 SDL_WINDOWID라는 환경 변수를 설정할 수 있습니다.이 환경 변수의 값은 sdl에서 사용됩니다. 다음과 같은 정의

bool YourPlugin::onWindowAttached(FB::AttachedEvent *evt, FB::PluginWindow *win) 
{ 
    // The window is attached; act appropriately 
    FB::PluginWindowWin *wnd = dynamic_cast<FB::PluginWindowWin*>(win); 
    set_sdl_window (wnd->getHWND()); 
    // then run your code 
    // ... 
} 

어딘가에 당신의 SDL 클라이언트 코드에서 : 당신을 가정 은 당신이 할 수있는 플러그인 당신 firebreath에서, Windows를 사용하는

int set_sdl_window(HWND window) 
{ 
    char windowid[20] = {0}; 
    char env[100] = {0}; 
    if (window != NULL) { 
     SDL_ulltoa((Uint64)window, windowid, 10); 
     sprintf(env, "SDL_WINDOWID=%s", windowid); 
     SDL_putenv (env); 
     return 0; 
    } 
    return 1; 
}