- Timestamp:
- Nov 7, 2014 1:06:25 PM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 96829
- Location:
- trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/presenter
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/presenter/display_window.cpp
r53232 r53262 25 25 mParentId(parentId) 26 26 { 27 crDebug("CrFbDisplayWindow: created with parentID %p.", parentId);28 27 mFlags.u32Value = 0; 29 28 } … … 65 64 if (mpWindow) 66 65 mpWindow->UpdateEnd(); 66 } 67 68 69 int CrFbDisplayWindow::RegionsChanged(struct CR_FRAMEBUFFER *pFb) 70 { 71 int rc = CrFbDisplayBase::RegionsChanged(pFb); 72 if (!RT_SUCCESS(rc)) 73 { 74 WARN(("err")); 75 return rc; 76 } 77 78 if (mpWindow && mpWindow->GetParentId()) 79 { 80 rc = mpWindow->Create(); 81 if (!RT_SUCCESS(rc)) 82 { 83 WARN(("err")); 84 return rc; 85 } 86 } 87 88 return VINF_SUCCESS; 89 } 90 91 92 int CrFbDisplayWindow::EntryCreated(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry) 93 { 94 int rc = CrFbDisplayBase::EntryCreated(pFb, hEntry); 95 if (!RT_SUCCESS(rc)) 96 { 97 WARN(("err")); 98 return rc; 99 } 100 101 if (mpWindow && mpWindow->GetParentId()) 102 { 103 rc = mpWindow->Create(); 104 if (!RT_SUCCESS(rc)) 105 { 106 WARN(("err")); 107 return rc; 108 } 109 } 110 111 return VINF_SUCCESS; 112 } 113 114 115 int CrFbDisplayWindow::EntryReplaced(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hNewEntry, HCR_FRAMEBUFFER_ENTRY hReplacedEntry) 116 { 117 int rc = CrFbDisplayBase::EntryReplaced(pFb, hNewEntry, hReplacedEntry); 118 if (!RT_SUCCESS(rc)) 119 { 120 WARN(("err")); 121 return rc; 122 } 123 124 if (mpWindow && mpWindow->GetParentId()) 125 { 126 rc = mpWindow->Create(); 127 if (!RT_SUCCESS(rc)) 128 { 129 WARN(("err")); 130 return rc; 131 } 132 } 133 134 return VINF_SUCCESS; 135 } 136 137 138 int CrFbDisplayWindow::EntryTexChanged(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry) 139 { 140 int rc = CrFbDisplayBase::EntryTexChanged(pFb, hEntry); 141 if (!RT_SUCCESS(rc)) 142 { 143 WARN(("err")); 144 return rc; 145 } 146 147 if (mpWindow && mpWindow->GetParentId()) 148 { 149 rc = mpWindow->Create(); 150 if (!RT_SUCCESS(rc)) 151 { 152 WARN(("err")); 153 return rc; 154 } 155 } 156 157 return VINF_SUCCESS; 67 158 } 68 159 … … 334 425 { 335 426 int rc = VINF_SUCCESS; 336 337 crDebug("CrFbDisplayWindow: sync window dimentions: fForceCleanup=%s, mpWindow=%p, isActive()=%s",338 fForceCleanup ? "yes" : "no",339 mpWindow,340 isActive() ? "yes" : "no");341 427 342 428 if (!mpWindow) … … 457 543 } 458 544 545 if (CrFbHas3DData(hFb)) 546 { 547 if (mpWindow && mpWindow->GetParentId()) 548 { 549 rc = mpWindow->Create(); 550 if (!RT_SUCCESS(rc)) 551 { 552 WARN(("err")); 553 return rc; 554 } 555 } 556 } 557 459 558 return VINF_SUCCESS; 460 559 } -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/presenter/server_presenter.h
r53232 r53262 206 206 207 207 CrFbWindow(uint64_t parentId); 208 bool IsCreated() const; 208 209 bool IsVisivle() const; 210 void Destroy(); 209 211 int Reparent(uint64_t parentId); 210 212 int SetVisible(bool fVisible); … … 216 218 void UpdateEnd(); 217 219 uint64_t GetParentId(); 220 int Create(); 218 221 ~CrFbWindow(); 219 222 220 223 protected: 221 224 222 int Create();223 225 void checkRegions(); 224 226 bool isPresentNeeded(); 225 227 bool checkInitedUpdating(); 226 void Destroy();227 228 228 229 private: … … 260 261 virtual int UpdateBegin(struct CR_FRAMEBUFFER *pFb); 261 262 virtual void UpdateEnd(struct CR_FRAMEBUFFER *pFb); 263 virtual int RegionsChanged(struct CR_FRAMEBUFFER *pFb); 264 virtual int EntryCreated(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry); 265 virtual int EntryReplaced(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hNewEntry, HCR_FRAMEBUFFER_ENTRY hReplacedEntry); 266 virtual int EntryTexChanged(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry); 262 267 virtual int FramebufferChanged(struct CR_FRAMEBUFFER *pFb); 263 268 const RTRECT* getViewportRect(); -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/presenter/window.cpp
r53232 r53262 31 31 { 32 32 mFlags.Value = 0; 33 Create(); 34 } 35 33 } 34 35 36 bool CrFbWindow::IsCreated() const 37 { 38 return !!mSpuWindow; 39 } 36 40 37 41 bool CrFbWindow::IsVisivle() const … … 41 45 42 46 47 void CrFbWindow::Destroy() 48 { 49 CRASSERT(!mcUpdates); 50 51 if (!mSpuWindow) 52 return; 53 54 cr_server.head_spu->dispatch_table.WindowDestroy(mSpuWindow); 55 56 mSpuWindow = 0; 57 mFlags.fDataPresented = 0; 58 } 59 60 43 61 int CrFbWindow::Reparent(uint64_t parentId) 44 62 { 63 if (!checkInitedUpdating()) 64 { 65 WARN(("err")); 66 return VERR_INVALID_STATE; 67 } 68 45 69 crDebug("CrFbWindow: reparent to %p (current mxPos=%d, myPos=%d, mWidth=%u, mHeight=%u)", 46 70 parentId, mxPos, myPos, mWidth, mHeight); 47 71 48 if (!checkInitedUpdating())49 {50 WARN(("err"));51 return VERR_INVALID_STATE;52 }53 54 72 uint64_t oldParentId = mParentId; 55 73 … … 63 81 renderspuSetWindowId(mParentId); 64 82 renderspuReparentWindow(mSpuWindow); 83 renderspuSetWindowId(cr_server.screen[0].winID); 65 84 66 85 if (parentId) … … 248 267 if (mSpuWindow) 249 268 { 250 WARN(("window already created"));269 //WARN(("window already created")); 251 270 return VINF_ALREADY_INITIALIZED; 252 271 } … … 269 288 cr_server.head_spu->dispatch_table.WindowShow(mSpuWindow, true); 270 289 271 crDebug("CrFbWindow: create window with parent %p (mxPos=%d, myPos=%d, mWidth=%u, mHeight=%u)",272 mParentId, mxPos, myPos, mWidth, mHeight);273 274 290 return VINF_SUCCESS; 275 291 } … … 331 347 } 332 348 333 334 void CrFbWindow::Destroy()335 {336 CRASSERT(!mcUpdates);337 338 if (!mSpuWindow)339 return;340 341 cr_server.head_spu->dispatch_table.WindowDestroy(mSpuWindow);342 343 mSpuWindow = 0;344 mFlags.fDataPresented = 0;345 }346
Note:
See TracChangeset
for help on using the changeset viewer.