2016-06-21 5 views
0

내 OpenGL 응용 프로그램의 GUI로 Chromium Embedded Framework를 사용하고 싶습니다.chromium embedded 버튼 누름 감지

오프 스크린 렌더링을 사용하고 있습니다.

HTML 버튼/링크를 클릭하면 어떻게 감지합니까?

나는 일반적인 검색 용어를 사용하여이 단어를 Google에 시도했지만 잡음 만 있습니다. 일반 사용 위키에도이 항목이 없습니다.

답변

1

OpenGL 응용 프로그램에서 UI 이벤트를 CEF로 전달합니까?

일반적으로 OpenGL CEF 인스턴스를 동일한 창에 첨부해야합니다. 윈도우의 영역을 무효화하라는 요청을 오버라이드하여 OpenGL 코드에 화면 버퍼의 내용을 포함하여 창을 다시 렌더링해야한다고 알립니다. 작업

순서 :

  1. 창은 마우스 이동 이벤트를 수신합니다.
  2. 창이 CEF 인스턴스로 전달됩니다.
  3. CEF가 적용해야한다고 판단한 경우 : 버튼을 가리키면 window.invalidateArea (areaOfTheButton)가 호출됩니다.
  4. 당신은 오프 스크린 비트 맵의 ​​새로운 버전을 포함한 OpenGL 장면을 업데이트함으로써 window.invalidateArea()를 처리합니다.
  5. CEF에서 마우스 이동/위/아래/등에 대한 응답으로 다양한 보조 DOM 이벤트를 수신해야합니다. 창에.

다음을 확인하십시오. http://sciter.com/sciter-and-directx/ - 내 Sciter Engine과 통합 된 HTML/CSS UI가있는 DirectX 창입니다. 지금은 OpenGL과 동일하게 디자인하고 있습니다.

+0

: https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage#markdown-header-asynchronous-javascript-bindings

JS 통합 정비사를 사용하여 사용자 정의 메시지 라우터를 구현하는 것도 가능합니다 : 그것은 여기에 설명 된 메시지 라우터를 사용하여 수행 할 수 있습니다. C++ 코드에서 버튼 누르기를 다시 잡을 수 없습니다. 콜백/이벤트를 찾고 있습니다. 나는 모두를 볼 곳을 모른다. – akaltar

+1

CEF는 DOM 이벤트를 구독하는 간단한 옵션을 제공하지 않는 것 같습니다. 따라서 고유 한 네이티브 함수를 등록하고 스크립트에서 document.addEventListener (yourfunc)를 사용하여 DOM 문서 객체에 첨부해야합니다. ExecuteJavaScript 함수를 사용하여 설정 스크립트를 실행해야합니다. . 참조 : https://bitbucket.org/chromiumembedded/cef/wiki/JavaScriptIntegration#markdown-header-using-js-callbacks –