mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 01:07:51 -04:00
init clear to black
This commit is contained in:
parent
6bf66170ee
commit
56327230c4
@ -298,6 +298,7 @@ window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
|
||||
case WM_NCMOUSEMOVE: {
|
||||
if(!_props._bCursorIsVisible) {
|
||||
if(!_cursor_in_windowclientarea) {
|
||||
// SetCursor(_pParentWindowGroup->_hMouseCursor);
|
||||
ShowCursor(true);
|
||||
_cursor_in_windowclientarea=true;
|
||||
}
|
||||
@ -308,6 +309,7 @@ window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
|
||||
case WM_NCMOUSELEAVE: {
|
||||
if(!_props._bCursorIsVisible) {
|
||||
ShowCursor(false);
|
||||
// SetCursor(NULL);
|
||||
_cursor_in_windowclientarea=false;
|
||||
}
|
||||
break;
|
||||
@ -327,6 +329,11 @@ window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
|
||||
_cursor_in_windowclientarea=false;
|
||||
if(!_props._bCursorIsVisible)
|
||||
ShowCursor(false);
|
||||
|
||||
HDC hDC=GetDC(hwnd);
|
||||
PatBlt(hDC,_props._xorg,_props._yorg,_props._xsize,_props._ysize,BLACKNESS);
|
||||
ReleaseDC(hwnd,hDC);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@ -747,8 +754,8 @@ void wdxGraphicsWindow::handle_windowed_resize(HWND hWnd,bool bDoDxReset) {
|
||||
_props._xorg = view_rect.left; // _props origin should reflect upper left of view rectangle
|
||||
_props._yorg = view_rect.top;
|
||||
|
||||
DWORD xsize=(view_rect.right - view_rect.left);
|
||||
DWORD ysize=(view_rect.bottom - view_rect.top);
|
||||
DWORD xsize= RECT_XSIZE(view_rect);
|
||||
DWORD ysize= RECT_YSIZE(view_rect);
|
||||
|
||||
do {
|
||||
// change _props xsize,ysize
|
||||
@ -1021,7 +1028,7 @@ void wdxGraphicsWindowGroup::CreateWindows(void) {
|
||||
|
||||
if (!wc_registered) {
|
||||
// We only need to register the window class once per session.
|
||||
wc.hCursor = _hMouseCursor;
|
||||
wc.hCursor = NULL; //_hMouseCursor;
|
||||
wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
|
||||
wc.lpszMenuName = NULL;
|
||||
wc.lpszClassName = WDX_WINDOWCLASSNAME;
|
||||
@ -1076,8 +1083,8 @@ void wdxGraphicsWindowGroup::CreateWindows(void) {
|
||||
|
||||
xleft=win_rect.left;
|
||||
ytop= win_rect.top;
|
||||
xsize=win_rect.right-win_rect.left;
|
||||
ysize=win_rect.bottom-win_rect.top;
|
||||
xsize=RECT_XSIZE(win_rect);
|
||||
ysize=RECT_YSIZE(win_rect);
|
||||
}
|
||||
|
||||
// BUGBUG: this sets window posns based on desktop arrangement of monitors (that is what GetMonInfo is for).
|
||||
@ -1690,7 +1697,7 @@ bool wdxGraphicsWindow::search_for_device(LPDIRECT3D8 pD3D8,DXDeviceInfo *pDevIn
|
||||
|
||||
// Create the Direct Draw Objects
|
||||
hr = (*_pParentWindowGroup->_pDDCreateEx)(&pDevInfo->guidDeviceIdentifier,(void **)&pDD, IID_IDirectDraw7, NULL);
|
||||
if(hr != DD_OK) {
|
||||
if(FAILED(hr)) {
|
||||
wdxdisplay_cat.fatal() << "DirectDrawCreateEx failed for device ("<<pDevInfo->cardID<< "): result = " << D3DERRORSTRING(hr);
|
||||
return false;
|
||||
}
|
||||
@ -2169,8 +2176,8 @@ CreateScreenBuffersAndDevice(DXScreenData &Display) {
|
||||
view_rect.left=ul.x; view_rect.top=ul.y;
|
||||
view_rect.right=lr.x; view_rect.bottom=lr.y;
|
||||
|
||||
dwRenderWidth = view_rect.right - view_rect.left;
|
||||
dwRenderHeight = view_rect.bottom - view_rect.top;
|
||||
dwRenderWidth = RECT_XSIZE(view_rect);
|
||||
dwRenderHeight = RECT_YSIZE(view_rect);
|
||||
_props._xorg = view_rect.left; // _props should reflect view rectangle
|
||||
_props._yorg = view_rect.top;
|
||||
_props._xsize = dwRenderWidth;
|
||||
@ -2185,19 +2192,18 @@ CreateScreenBuffersAndDevice(DXScreenData &Display) {
|
||||
}
|
||||
} // end create windowed buffers
|
||||
|
||||
hr = Display.pD3DDevice->ResourceManagerDiscardBytes(0);
|
||||
if(hr != DD_OK) {
|
||||
wdxdisplay_cat.fatal() << "ResourceManagerDiscardBytes failed for device #" << Display.CardIDNum << ", " << D3DERRORSTRING(hr);
|
||||
}
|
||||
|
||||
// clear to transparent black to get rid of visible garbage
|
||||
hr = Display.pD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET,0,0.0,0);
|
||||
if(hr != DD_OK) {
|
||||
wdxdisplay_cat.fatal() << "init Clear() to black failed for device #" << Display.CardIDNum << ", " << D3DERRORSTRING(hr);
|
||||
}
|
||||
|
||||
// ========================================================
|
||||
|
||||
// clear window to black
|
||||
HDC hDC=GetDC(Display.hWnd);
|
||||
PatBlt(hDC,_props._xorg,_props._yorg,_props._xsize,_props._ysize,BLACKNESS);
|
||||
ReleaseDC(Display.hWnd,hDC);
|
||||
|
||||
hr = Display.pD3DDevice->ResourceManagerDiscardBytes(0);
|
||||
if(FAILED(hr)) {
|
||||
wdxdisplay_cat.error() << "ResourceManagerDiscardBytes failed for device #" << Display.CardIDNum << ", hr=" << D3DERRORSTRING(hr);
|
||||
}
|
||||
|
||||
resized(dwRenderWidth,dwRenderHeight); // update panda channel/display rgn info
|
||||
|
||||
// Create the viewport
|
||||
@ -2205,7 +2211,7 @@ CreateScreenBuffersAndDevice(DXScreenData &Display) {
|
||||
vp.Width=_props._xsize; vp.Height=_props._ysize;
|
||||
vp.MinZ=0.0f; vp.MaxZ =1.0f;
|
||||
hr = Display.pD3DDevice->SetViewport( &vp );
|
||||
if(hr != DD_OK) {
|
||||
if(FAILED(hr)) {
|
||||
wdxdisplay_cat.fatal() << "SetViewport failed for device #" << Display.CardIDNum << ", " << D3DERRORSTRING(hr);
|
||||
exit(1);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user