Changeset 51670 in vbox
- Timestamp:
- Jun 19, 2014 3:12:30 PM (10 years ago)
- Location:
- trunk/src/VBox
- Files:
-
- 10 edited
-
Frontends/VBoxSDL/Framebuffer.cpp (modified) (1 diff)
-
Frontends/VBoxSDL/Framebuffer.h (modified) (1 diff)
-
Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp (modified) (3 diffs)
-
Frontends/VirtualBox/src/runtime/UIFrameBuffer.h (modified) (1 diff)
-
GuestHost/OpenGL/include/cr_server.h (modified) (1 diff)
-
HostServices/SharedOpenGL/crserver/crservice.cpp (modified) (4 diffs)
-
HostServices/SharedOpenGL/crserverlib/server.h (modified) (1 diff)
-
HostServices/SharedOpenGL/crserverlib/server_main.c (modified) (2 diffs)
-
HostServices/SharedOpenGL/crserverlib/server_presenter.cpp (modified) (1 diff)
-
Main/idl/VirtualBox.xidl (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VBoxSDL/Framebuffer.cpp
r51634 r51670 577 577 } 578 578 579 STDMETHODIMP VBoxSDLFB::Notify3DEvent(ULONG uType, BYTE *pReserved)579 STDMETHODIMP VBoxSDLFB::Notify3DEvent(ULONG uType, ComSafeArrayIn(BYTE, aData)) 580 580 { 581 581 return E_NOTIMPL; -
trunk/src/VBox/Frontends/VBoxSDL/Framebuffer.h
r51634 r51670 96 96 STDMETHOD(ProcessVHWACommand)(BYTE *pCommand); 97 97 98 STDMETHOD(Notify3DEvent)(ULONG uType, BYTE *pReserved);98 STDMETHOD(Notify3DEvent)(ULONG uType, ComSafeArrayIn(BYTE, aData)); 99 99 100 100 // internal public methods -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp
r51657 r51670 409 409 } 410 410 411 STDMETHODIMP UIFrameBuffer::Notify3DEvent(ULONG uType, BYTE *pData)411 STDMETHODIMP UIFrameBuffer::Notify3DEvent(ULONG uType, ComSafeArrayIn(BYTE, aData)) 412 412 { 413 413 /* Lock access to frame-buffer: */ … … 426 426 } 427 427 428 com::SafeArray<BYTE> data(ComSafeArrayInArg(aData)); 428 429 switch (uType) 429 430 { … … 432 433 /* Notify machine-view with the async-signal 433 434 * about 3D overlay visibility change: */ 434 BOOL fVisible = !!pData;435 BOOL fVisible = data[0]; 435 436 LogRel2(("UIFrameBuffer::Notify3DEvent: Sending to async-handler: " 436 437 "(VBOX3D_NOTIFY_EVENT_TYPE_VISIBLE_3DDATA = %s)\n", -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.h
r51627 r51670 152 152 /** EMT callback: Notifies frame-buffer about 3D backend event. 153 153 * @param uType Event type. Currently only VBOX3D_NOTIFY_EVENT_TYPE_VISIBLE_3DDATA is supported. 154 * @param pData Event-specific data, depends on the supplied event type.155 * @note Any EMT callback is subsequent. No any other EMT callback can be called until this one processed. 156 * @note Calls to this and #setMarkAsUnused method are synchronized (from GUI side). */ 157 STDMETHOD(Notify3DEvent)(ULONG uType, BYTE *pData);154 * @param aData Event-specific data, depends on the supplied event type. 155 * @note Any EMT callback is subsequent. No any other EMT callback can be called until this one processed. 156 * @note Calls to this and #setMarkAsUnused method are synchronized (from GUI side). */ 157 STDMETHOD(Notify3DEvent)(ULONG uType, ComSafeArrayIn(BYTE, aData)); 158 158 159 159 /** Returns frame-buffer data address. */ -
trunk/src/VBox/GuestHost/OpenGL/include/cr_server.h
r51330 r51670 132 132 typedef DECLCALLBACKPTR(void, PFNCR_SERVER_RPW_DATA) (const struct CR_SERVER_RPW_ENTRY* pEntry, void *pvEntryTexData); 133 133 134 typedef DECLCALLBACKPTR(void, PFNCRSERVERNOTIFYEVENT) (int32_t screenId, uint32_t uEvent, void* pvData);134 typedef DECLCALLBACKPTR(void, PFNCRSERVERNOTIFYEVENT) (int32_t screenId, uint32_t uEvent, void* pvData, uint32_t cbData); 135 135 136 136 typedef struct CR_SERVER_RPW_ENTRY -
trunk/src/VBox/HostServices/SharedOpenGL/crserver/crservice.cpp
r51524 r51670 32 32 #include <VBox/hgcmsvc.h> 33 33 #include <VBox/log.h> 34 #include <VBox/com/array.h> 34 35 #include <VBox/com/ErrorInfo.h> 35 36 #include <VBox/com/VirtualBox.h> … … 227 228 } 228 229 229 static DECLCALLBACK(void) svcNotifyEventCB(int32_t screenId, uint32_t uEvent, void* pvData)230 static DECLCALLBACK(void) svcNotifyEventCB(int32_t screenId, uint32_t uEvent, void* pvData, uint32_t cbData) 230 231 { 231 232 ComPtr<IDisplay> pDisplay; … … 245 246 return; 246 247 247 pFramebuffer->Notify3DEvent(uEvent, (BYTE*)pvData); 248 com::SafeArray<BYTE> data(cbData); 249 if (cbData) 250 memcpy(data.raw(), pvData, cbData); 251 252 pFramebuffer->Notify3DEvent(uEvent, ComSafeArrayAsInParam(data)); 248 253 } 249 254 … … 1231 1236 do { 1232 1237 /* determine if the framebuffer is functional */ 1233 rc = pFramebuffer->Notify3DEvent(VBOX3D_NOTIFY_EVENT_TYPE_TEST_FUNCTIONAL, NULL); 1238 com::SafeArray<BYTE> data; 1239 rc = pFramebuffer->Notify3DEvent(VBOX3D_NOTIFY_EVENT_TYPE_TEST_FUNCTIONAL, ComSafeArrayAsInParam(data)); 1234 1240 1235 1241 if (rc == S_OK) -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server.h
r51655 r51670 141 141 void crVBoxServerMuralFbResizeEnd(HCR_FRAMEBUFFER hFb); 142 142 143 void crVBoxServerNotifyEvent(int32_t idScreen, uint32_t uEvent, void* pvData);143 void crVBoxServerNotifyEvent(int32_t idScreen, uint32_t uEvent, void* pvData, uint32_t cbData); 144 144 145 145 void crServerRedirMuralFbClear(CRMuralInfo *mural); -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.c
r51524 r51670 2784 2784 } 2785 2785 2786 void crVBoxServerNotifyEvent(int32_t idScreen, uint32_t uEvent, void* pvData)2786 void crVBoxServerNotifyEvent(int32_t idScreen, uint32_t uEvent, void* pvData, uint32_t cbData) 2787 2787 { 2788 2788 /* this is something unexpected, but just in case */ … … 2793 2793 } 2794 2794 2795 cr_server.pfnNotifyEventCB(idScreen, uEvent, pvData );2795 cr_server.pfnNotifyEventCB(idScreen, uEvent, pvData, cbData); 2796 2796 } 2797 2797 -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_presenter.cpp
r51536 r51670 2900 2900 if (mFlags.fNeVisible != fVisible || mFlags.fNeForce) 2901 2901 { 2902 crVBoxServerNotifyEvent(mu32Screen, VBOX3D_NOTIFY_EVENT_TYPE_VISIBLE_3DDATA, fVisible ? (void*)1 : NULL);2902 crVBoxServerNotifyEvent(mu32Screen, VBOX3D_NOTIFY_EVENT_TYPE_VISIBLE_3DDATA, &fVisible, sizeof(fVisible)); 2903 2903 mFlags.fNeVisible = fVisible; 2904 2904 mFlags.fNeForce = 0; -
trunk/src/VBox/Main/idl/VirtualBox.xidl
r51627 r51670 15273 15273 <interface 15274 15274 name="IFramebuffer" extends="$unknown" 15275 uuid=" c42d2714-6263-473f-a6c4-3d3b38983e74"15275 uuid="16d73cd3-da84-4a11-a607-ebab57d050d0" 15276 15276 wsmap="managed" 15277 15277 > … … 15344 15344 </attribute> 15345 15345 15346 <method name="notifyUpdate" wsmap="suppress">15346 <method name="notifyUpdate"> 15347 15347 <desc> 15348 15348 Informs about an update. … … 15497 15497 <desc>event type. Currently only VBOX3D_NOTIFY_EVENT_TYPE_VISIBLE_3DDATA is supported.</desc> 15498 15498 </param> 15499 <param name="data" type="octet" mod="ptr" dir="in">15499 <param name="data" type="octet" dir="in" safearray="yes"> 15500 15500 <desc>event-specific data, depends on the supplied event type</desc> 15501 15501 </param>
Note:
See TracChangeset
for help on using the changeset viewer.

